annotate Include/floatobject.h @ 57303:4aa4c19dfaed legacy-trunk

#1757126: fix typo with the cyrillic_asian alias
author Philip Jenvey <pjenvey@underboss.org>
date Tue, 17 Nov 2009 02:42:26 +0000
parents 1d8f24d40c2c
children 92e06cdbeab9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
1
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 /* Float object interface */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
c218d1ac916e Feature #1534
Christian Heimes <christian@cheimes.de>
parents: 42333
diff changeset
41 PyAPI_FUNC(double) PyFloat_GetMax(void);
c218d1ac916e Feature #1534
Christian Heimes <christian@cheimes.de>
parents: 42333
diff changeset
42 PyAPI_FUNC(double) PyFloat_GetMin(void);
c218d1ac916e Feature #1534
Christian Heimes <christian@cheimes.de>
parents: 42333
diff changeset
43 PyAPI_FUNC(PyObject *) PyFloat_GetInfo(void);
c218d1ac916e Feature #1534
Christian Heimes <christian@cheimes.de>
parents: 42333
diff changeset
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
79 * On platforms that appear to use (see _PyFloat_Init()) IEEE-754 formats
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
80 * these functions work by copying bits. On other platforms, the formats the
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
81 * 4- byte format is identical to the IEEE-754 single precision format, and
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
82 * the 8-byte format to the IEEE-754 double precision format, although the
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
83 * packing of INFs and NaNs (if such things exist on the platform) isn't
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
84 * handled correctly, and attempting to unpack a string containing an IEEE
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
85 * INF or NaN will raise an exception.
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
86 *
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
87 * On non-IEEE platforms with more precision, or larger dynamic range, than
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
88 * 754 supports, not all values can be packed; on non-IEEE platforms with less
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
89 * precision, or smaller dynamic range, not all values can be unpacked. What
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
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
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
99 * There are two problems on non-IEEE platforms:
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
100 * 1): What this does is undefined if x is a NaN or infinity.
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
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
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
115 * OverflowError). Note that on a non-IEEE platform this will refuse
1dd8a0d64432 This is my patch:
Michael W. Hudson <mwh@python.net>
parents: 28335
diff changeset
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
8fdd6d62ea55 Patch #1953
Christian Heimes <christian@cheimes.de>
parents: 44350
diff changeset
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
1329
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1257
diff changeset
130 #ifdef __cplusplus
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1257
diff changeset
131 }
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1257
diff changeset
132 #endif
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1257
diff changeset
133 #endif /* !Py_FLOATOBJECT_H */