1991-02-19 13:39:46 +01:00
|
|
|
|
1990-10-14 13:07:46 +01:00
|
|
|
/* Float object interface */
|
|
|
|
|
|
|
|
/*
|
2024-07-19 10:06:02 +02:00
|
|
|
PyFloatObject represents a (double precision) floating-point number.
|
1990-10-14 13:07:46 +01:00
|
|
|
*/
|
|
|
|
|
2000-07-09 02:20:36 +02:00
|
|
|
#ifndef Py_FLOATOBJECT_H
|
|
|
|
#define Py_FLOATOBJECT_H
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2002-08-12 09:21:58 +02:00
|
|
|
PyAPI_DATA(PyTypeObject) PyFloat_Type;
|
1990-10-14 13:07:46 +01:00
|
|
|
|
2001-08-29 17:45:32 +02:00
|
|
|
#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
|
2022-06-16 13:49:43 +02:00
|
|
|
#define PyFloat_CheckExact(op) Py_IS_TYPE((op), &PyFloat_Type)
|
1990-10-14 13:07:46 +01:00
|
|
|
|
2022-02-25 01:32:57 +01:00
|
|
|
#define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN)
|
2008-04-19 02:31:39 +02:00
|
|
|
|
2021-10-14 23:41:06 +02:00
|
|
|
#define Py_RETURN_INF(sign) \
|
|
|
|
do { \
|
|
|
|
if (copysign(1., sign) == 1.) { \
|
|
|
|
return PyFloat_FromDouble(Py_HUGE_VAL); \
|
|
|
|
} \
|
|
|
|
else { \
|
|
|
|
return PyFloat_FromDouble(-Py_HUGE_VAL); \
|
|
|
|
} \
|
2011-09-28 23:58:57 +02:00
|
|
|
} while(0)
|
2008-04-19 02:31:39 +02:00
|
|
|
|
2007-12-01 13:22:32 +01:00
|
|
|
PyAPI_FUNC(double) PyFloat_GetMax(void);
|
|
|
|
PyAPI_FUNC(double) PyFloat_GetMin(void);
|
2021-10-14 23:41:06 +02:00
|
|
|
PyAPI_FUNC(PyObject*) PyFloat_GetInfo(void);
|
2007-12-01 13:22:32 +01:00
|
|
|
|
2007-03-18 19:35:15 +01:00
|
|
|
/* Return Python float from string PyObject. */
|
2021-10-14 23:41:06 +02:00
|
|
|
PyAPI_FUNC(PyObject*) PyFloat_FromString(PyObject*);
|
2001-05-08 17:19:57 +02:00
|
|
|
|
|
|
|
/* Return Python float from C double. */
|
2021-10-14 23:41:06 +02:00
|
|
|
PyAPI_FUNC(PyObject*) PyFloat_FromDouble(double);
|
1990-10-14 13:07:46 +01:00
|
|
|
|
2001-05-08 17:19:57 +02:00
|
|
|
/* Extract C double from Python float. The macro version trades safety for
|
|
|
|
speed. */
|
2021-10-14 23:41:06 +02:00
|
|
|
PyAPI_FUNC(double) PyFloat_AsDouble(PyObject*);
|
1993-07-28 11:05:47 +02:00
|
|
|
|
2010-12-03 21:14:31 +01:00
|
|
|
#ifndef Py_LIMITED_API
|
2021-10-14 23:41:06 +02:00
|
|
|
# define Py_CPYTHON_FLOATOBJECT_H
|
|
|
|
# include "cpython/floatobject.h"
|
|
|
|
# undef Py_CPYTHON_FLOATOBJECT_H
|
|
|
|
#endif
|
2008-05-30 20:10:19 +02:00
|
|
|
|
1993-07-28 11:05:47 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif /* !Py_FLOATOBJECT_H */
|