17db96d56Sopenharmony_ci#ifndef Py_INTERNAL_FLOATOBJECT_H 27db96d56Sopenharmony_ci#define Py_INTERNAL_FLOATOBJECT_H 37db96d56Sopenharmony_ci#ifdef __cplusplus 47db96d56Sopenharmony_ciextern "C" { 57db96d56Sopenharmony_ci#endif 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE 87db96d56Sopenharmony_ci# error "this header requires Py_BUILD_CORE define" 97db96d56Sopenharmony_ci#endif 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci/* runtime lifecycle */ 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ciextern void _PyFloat_InitState(PyInterpreterState *); 157db96d56Sopenharmony_ciextern PyStatus _PyFloat_InitTypes(PyInterpreterState *); 167db96d56Sopenharmony_ciextern void _PyFloat_Fini(PyInterpreterState *); 177db96d56Sopenharmony_ciextern void _PyFloat_FiniType(PyInterpreterState *); 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci/* other API */ 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci#ifndef WITH_FREELISTS 237db96d56Sopenharmony_ci// without freelists 247db96d56Sopenharmony_ci# define PyFloat_MAXFREELIST 0 257db96d56Sopenharmony_ci#endif 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci#ifndef PyFloat_MAXFREELIST 287db96d56Sopenharmony_ci# define PyFloat_MAXFREELIST 100 297db96d56Sopenharmony_ci#endif 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_cistruct _Py_float_state { 327db96d56Sopenharmony_ci#if PyFloat_MAXFREELIST > 0 337db96d56Sopenharmony_ci /* Special free list 347db96d56Sopenharmony_ci free_list is a singly-linked list of available PyFloatObjects, 357db96d56Sopenharmony_ci linked via abuse of their ob_type members. */ 367db96d56Sopenharmony_ci int numfree; 377db96d56Sopenharmony_ci PyFloatObject *free_list; 387db96d56Sopenharmony_ci#endif 397db96d56Sopenharmony_ci}; 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_civoid _PyFloat_ExactDealloc(PyObject *op); 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci 447db96d56Sopenharmony_ciPyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out); 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci/* Format the object based on the format_spec, as defined in PEP 3101 487db96d56Sopenharmony_ci (Advanced String Formatting). */ 497db96d56Sopenharmony_ciPyAPI_FUNC(int) _PyFloat_FormatAdvancedWriter( 507db96d56Sopenharmony_ci _PyUnicodeWriter *writer, 517db96d56Sopenharmony_ci PyObject *obj, 527db96d56Sopenharmony_ci PyObject *format_spec, 537db96d56Sopenharmony_ci Py_ssize_t start, 547db96d56Sopenharmony_ci Py_ssize_t end); 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci#ifdef __cplusplus 577db96d56Sopenharmony_ci} 587db96d56Sopenharmony_ci#endif 597db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_FLOATOBJECT_H */ 60