Mercurial > cpython-lru_cache-weakref
annotate Include/floatobject.h @ 58765:2ba7677bfa95 legacy-trunk
testCopysign was defined twice in test_math; combine the definitions
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Sat, 06 Feb 2010 23:11:25 +0000 |
| parents | 92e06cdbeab9 |
| children |
| rev | line source |
|---|---|
| 145 | 1 |
| 6 | 2 /* Float object interface */ |
| 3 | |
| 4 /* | |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
5 PyFloatObject represents a (double precision) floating point number. |
| 6 | 6 */ |
| 7 | |
|
13444
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
8 #ifndef Py_FLOATOBJECT_H |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
9 #define Py_FLOATOBJECT_H |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
10 #ifdef __cplusplus |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
11 extern "C" { |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
12 #endif |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
13 |
| 6 | 14 typedef struct { |
|
13444
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
15 PyObject_HEAD |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
16 double ob_fval; |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
17 } PyFloatObject; |
| 6 | 18 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
19 PyAPI_DATA(PyTypeObject) PyFloat_Type; |
| 6 | 20 |
|
19550
19d271f297dc
Make the PyXXX_Check() macros for the numeric types inheritance-aware.
Guido van Rossum <guido@python.org>
parents:
17707
diff
changeset
|
21 #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) |
|
44350
26384b8180c7
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents:
44262
diff
changeset
|
22 #define PyFloat_CheckExact(op) (Py_TYPE(op) == &PyFloat_Type) |
| 6 | 23 |
|
53802
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
24 /* The str() precision PyFloat_STR_PRECISION is chosen so that in most cases, |
|
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
25 the rounding noise created by various operations is suppressed, while |
|
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
26 giving plenty of precision for practical use. */ |
|
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
27 |
|
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
28 #define PyFloat_STR_PRECISION 12 |
|
1d8f24d40c2c
Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson.
Eric Smith <eric@trueblade.com>
parents:
47897
diff
changeset
|
29 |
|
46473
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
30 #ifdef Py_NAN |
|
46476
a1997399f872
Stupid me. Py_RETURN_NAN should actually return something ...
Christian Heimes <christian@cheimes.de>
parents:
46473
diff
changeset
|
31 #define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) |
|
46473
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
32 #endif |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
33 |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
34 #define Py_RETURN_INF(sign) do \ |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
35 if (copysign(1., sign) == 1.) { \ |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
36 return PyFloat_FromDouble(Py_HUGE_VAL); \ |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
37 } else { \ |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
38 return PyFloat_FromDouble(-Py_HUGE_VAL); \ |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
39 } while(0) |
|
5bc7b20dc04a
I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
Christian Heimes <christian@cheimes.de>
parents:
45143
diff
changeset
|
40 |
| 44085 | 41 PyAPI_FUNC(double) PyFloat_GetMax(void); |
| 42 PyAPI_FUNC(double) PyFloat_GetMin(void); | |
| 43 PyAPI_FUNC(PyObject *) PyFloat_GetInfo(void); | |
| 44 | |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
45 /* Return Python float from string PyObject. Second argument ignored on |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
46 input, and, if non-NULL, NULL is stored into *junk (this tried to serve a |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
47 purpose once but can't be made to work as intended). */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
48 PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*, char** junk); |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
49 |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
50 /* Return Python float from C double. */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
51 PyAPI_FUNC(PyObject *) PyFloat_FromDouble(double); |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
52 |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
53 /* Extract C double from Python float. The macro version trades safety for |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
54 speed. */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
55 PyAPI_FUNC(double) PyFloat_AsDouble(PyObject *); |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
56 #define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval) |
| 6 | 57 |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
58 /* Write repr(v) into the char buffer argument, followed by null byte. The |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
59 buffer must be "big enough"; >= 100 is very safe. |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
60 PyFloat_AsReprString(buf, x) strives to print enough digits so that |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
61 PyFloat_FromString(buf) then reproduces x exactly. */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
62 PyAPI_FUNC(void) PyFloat_AsReprString(char*, PyFloatObject *v); |
|
17707
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
63 |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
64 /* Write str(v) into the char buffer argument, followed by null byte. The |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
65 buffer must be "big enough"; >= 100 is very safe. Note that it's |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
66 unusual to be able to get back the float you started with from |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
67 PyFloat_AsString's result -- use PyFloat_AsReprString() if you want to |
|
fe4c1034b480
SF bug #422177: Results from .pyc differs from .py
Tim Peters <tim.peters@gmail.com>
parents:
14375
diff
changeset
|
68 preserve precision across conversions. */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
19839
diff
changeset
|
69 PyAPI_FUNC(void) PyFloat_AsString(char*, PyFloatObject *v); |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
70 |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
71 /* _PyFloat_{Pack,Unpack}{4,8} |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
72 * |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
73 * The struct and pickle (at least) modules need an efficient platform- |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
74 * independent way to store floating-point values as byte strings. |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
75 * The Pack routines produce a string from a C double, and the Unpack |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
76 * routines produce a C double from such a string. The suffix (4 or 8) |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
77 * specifies the number of bytes in the string. |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
78 * |
| 34972 | 79 * On platforms that appear to use (see _PyFloat_Init()) IEEE-754 formats |
| 80 * these functions work by copying bits. On other platforms, the formats the | |
| 81 * 4- byte format is identical to the IEEE-754 single precision format, and | |
| 82 * the 8-byte format to the IEEE-754 double precision format, although the | |
| 83 * packing of INFs and NaNs (if such things exist on the platform) isn't | |
| 84 * handled correctly, and attempting to unpack a string containing an IEEE | |
| 85 * INF or NaN will raise an exception. | |
| 86 * | |
| 87 * On non-IEEE platforms with more precision, or larger dynamic range, than | |
| 88 * 754 supports, not all values can be packed; on non-IEEE platforms with less | |
| 89 * precision, or smaller dynamic range, not all values can be unpacked. What | |
| 90 * happens in such cases is partly accidental (alas). | |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
91 */ |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
92 |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
93 /* The pack routines write 4 or 8 bytes, starting at p. le is a bool |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
94 * argument, true if you want the string in little-endian format (exponent |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
95 * last, at p+3 or p+7), false if you want big-endian format (exponent |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
96 * first, at p). |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
97 * Return value: 0 if all is OK, -1 if error (and an exception is |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
98 * set, most likely OverflowError). |
| 34972 | 99 * There are two problems on non-IEEE platforms: |
| 100 * 1): What this does is undefined if x is a NaN or infinity. | |
| 101 * 2): -0.0 and +0.0 produce the same string. | |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
102 */ |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
103 PyAPI_FUNC(int) _PyFloat_Pack4(double x, unsigned char *p, int le); |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
104 PyAPI_FUNC(int) _PyFloat_Pack8(double x, unsigned char *p, int le); |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
105 |
|
44262
24749a380409
Backport of r59456:59458 from py3k to trunk
Christian Heimes <christian@cheimes.de>
parents:
44085
diff
changeset
|
106 /* Used to get the important decimal digits of a double */ |
|
24749a380409
Backport of r59456:59458 from py3k to trunk
Christian Heimes <christian@cheimes.de>
parents:
44085
diff
changeset
|
107 PyAPI_FUNC(int) _PyFloat_Digits(char *buf, double v, int *signum); |
|
24749a380409
Backport of r59456:59458 from py3k to trunk
Christian Heimes <christian@cheimes.de>
parents:
44085
diff
changeset
|
108 PyAPI_FUNC(void) _PyFloat_DigitsInit(void); |
|
24749a380409
Backport of r59456:59458 from py3k to trunk
Christian Heimes <christian@cheimes.de>
parents:
44085
diff
changeset
|
109 |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
110 /* The unpack routines read 4 or 8 bytes, starting at p. le is a bool |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
111 * argument, true if the string is in little-endian format (exponent |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
112 * last, at p+3 or p+7), false if big-endian (exponent first, at p). |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
113 * Return value: The unpacked double. On error, this is -1.0 and |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
114 * PyErr_Occurred() is true (and an exception is set, most likely |
| 34972 | 115 * OverflowError). Note that on a non-IEEE platform this will refuse |
| 116 * to unpack a string that represents a NaN or infinity. | |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
117 */ |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
118 PyAPI_FUNC(double) _PyFloat_Unpack4(const unsigned char *p, int le); |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
119 PyAPI_FUNC(double) _PyFloat_Unpack8(const unsigned char *p, int le); |
|
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
120 |
| 45143 | 121 /* free list api */ |
|
47897
0738119c1ef8
- Issue #2862: Make int and float freelist management consistent with other
Gregory P. Smith <greg@mad-scientist.com>
parents:
47392
diff
changeset
|
122 PyAPI_FUNC(int) PyFloat_ClearFreeList(void); |
|
28335
70003b0cb837
New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a
Tim Peters <tim.peters@gmail.com>
parents:
24752
diff
changeset
|
123 |
|
47392
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
124 /* Format the object based on the format_spec, as defined in PEP 3101 |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
125 (Advanced String Formatting). */ |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
126 PyAPI_FUNC(PyObject *) _PyFloat_FormatAdvanced(PyObject *obj, |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
127 char *format_spec, |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
128 Py_ssize_t format_spec_len); |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
46476
diff
changeset
|
129 |
|
57324
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
130 /* Round a C double x to the closest multiple of 10**-ndigits. Returns a |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
131 Python float on success, or NULL (with an appropriate exception set) on |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
132 failure. Used in builtin_round in bltinmodule.c. */ |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
133 PyAPI_FUNC(PyObject *) _Py_double_round(double x, int ndigits); |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
134 |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
135 |
|
92e06cdbeab9
Issue #7117, continued: Change round implementation to use the correctly-rounded
Mark Dickinson <dickinsm@gmail.com>
parents:
53802
diff
changeset
|
136 |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
137 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
138 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
139 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
140 #endif /* !Py_FLOATOBJECT_H */ |
