Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/python3.12/internal/pycore_dtoa.h
$ cat -n /usr/include/python3.12/internal/pycore_dtoa.h 1 #ifndef Py_INTERNAL_DTOA_H 2 #define Py_INTERNAL_DTOA_H 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #ifndef Py_BUILD_CORE 8 # error "this header requires Py_BUILD_CORE define" 9 #endif 10 11 #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR 12 13 14 #if _PY_SHORT_FLOAT_REPR == 1 15 16 typedef uint32_t ULong; 17 18 struct 19 Bigint { 20 struct Bigint *next; 21 int k, maxwds, sign, wds; 22 ULong x[1]; 23 }; 24 25 #ifdef Py_USING_MEMORY_DEBUGGER 26 27 struct _dtoa_state { 28 int _not_used; 29 }; 30 #define _dtoa_interp_state_INIT(INTERP) \ 31 {0} 32 33 #else // !Py_USING_MEMORY_DEBUGGER 34 35 /* The size of the Bigint freelist */ 36 #define Bigint_Kmax 7 37 38 #ifndef PRIVATE_MEM 39 #define PRIVATE_MEM 2304 40 #endif 41 #define Bigint_PREALLOC_SIZE \ 42 ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) 43 44 struct _dtoa_state { 45 /* p5s is a linked list of powers of 5 of the form 5**(2**i), i >= 2 */ 46 // XXX This should be freed during runtime fini. 47 struct Bigint *p5s; 48 struct Bigint *freelist[Bigint_Kmax+1]; 49 double preallocated[Bigint_PREALLOC_SIZE]; 50 double *preallocated_next; 51 }; 52 #define _dtoa_state_INIT(INTERP) \ 53 { \ 54 .preallocated_next = (INTERP)->dtoa.preallocated, \ 55 } 56 57 #endif // !Py_USING_MEMORY_DEBUGGER 58 59 60 /* These functions are used by modules compiled as C extension like math: 61 they must be exported. */ 62 63 PyAPI_FUNC(double) _Py_dg_strtod(const char *str, char **ptr); 64 PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits, 65 int *decpt, int *sign, char **rve); 66 PyAPI_FUNC(void) _Py_dg_freedtoa(char *s); 67 68 #endif // _PY_SHORT_FLOAT_REPR == 1 69 70 #ifdef __cplusplus 71 } 72 #endif 73 #endif /* !Py_INTERNAL_DTOA_H */
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™