| 
									
										
										
										
											2021-10-14 23:41:06 +02:00
										 |  |  | #ifndef Py_INTERNAL_FLOATOBJECT_H
 | 
					
						
							|  |  |  | #define Py_INTERNAL_FLOATOBJECT_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_BUILD_CORE
 | 
					
						
							|  |  |  | #  error "this header requires Py_BUILD_CORE define"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-09 12:59:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-03 10:23:43 +02:00
										 |  |  | #include "pycore_unicodeobject.h" // _PyUnicodeWriter
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-09 12:59:26 -07:00
										 |  |  | /* runtime lifecycle */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void _PyFloat_InitState(PyInterpreterState *); | 
					
						
							|  |  |  | extern PyStatus _PyFloat_InitTypes(PyInterpreterState *); | 
					
						
							|  |  |  | extern void _PyFloat_Fini(PyInterpreterState *); | 
					
						
							| 
									
										
										
										
											2022-01-21 01:42:25 +01:00
										 |  |  | extern void _PyFloat_FiniType(PyInterpreterState *); | 
					
						
							| 
									
										
										
										
											2021-12-09 12:59:26 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* other API */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-16 09:37:14 -07:00
										 |  |  | enum _py_float_format_type { | 
					
						
							|  |  |  |     _py_float_format_unknown, | 
					
						
							|  |  |  |     _py_float_format_ieee_big_endian, | 
					
						
							|  |  |  |     _py_float_format_ieee_little_endian, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _Py_float_runtime_state { | 
					
						
							|  |  |  |     enum _py_float_format_type float_format; | 
					
						
							|  |  |  |     enum _py_float_format_type double_format; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-09 12:59:26 -07:00
										 |  |  | #ifndef WITH_FREELISTS
 | 
					
						
							|  |  |  | // without freelists
 | 
					
						
							|  |  |  | #  define PyFloat_MAXFREELIST 0
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef PyFloat_MAXFREELIST
 | 
					
						
							|  |  |  | #  define PyFloat_MAXFREELIST   100
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _Py_float_state { | 
					
						
							|  |  |  | #if PyFloat_MAXFREELIST > 0
 | 
					
						
							|  |  |  |     /* Special free list
 | 
					
						
							|  |  |  |        free_list is a singly-linked list of available PyFloatObjects, | 
					
						
							|  |  |  |        linked via abuse of their ob_type members. */ | 
					
						
							|  |  |  |     int numfree; | 
					
						
							|  |  |  |     PyFloatObject *free_list; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-19 14:02:19 -04:00
										 |  |  | void _PyFloat_ExactDealloc(PyObject *op); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-14 23:41:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-25 03:44:11 +02:00
										 |  |  | extern void _PyFloat_DebugMallocStats(FILE* out); | 
					
						
							| 
									
										
										
										
											2021-10-14 23:41:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Format the object based on the format_spec, as defined in PEP 3101
 | 
					
						
							|  |  |  |    (Advanced String Formatting). */ | 
					
						
							| 
									
										
										
										
											2023-07-25 03:44:11 +02:00
										 |  |  | extern int _PyFloat_FormatAdvancedWriter( | 
					
						
							| 
									
										
										
										
											2021-10-14 23:41:06 +02:00
										 |  |  |     _PyUnicodeWriter *writer, | 
					
						
							|  |  |  |     PyObject *obj, | 
					
						
							|  |  |  |     PyObject *format_spec, | 
					
						
							|  |  |  |     Py_ssize_t start, | 
					
						
							|  |  |  |     Py_ssize_t end); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_INTERNAL_FLOATOBJECT_H */
 |