Coverage Report

Created: 2022-07-08 09:39

/home/mdboom/Work/builds/cpython/Include/floatobject.h
Line
Count
Source
1
2
/* Float object interface */
3
4
/*
5
PyFloatObject represents a (double precision) floating point number.
6
*/
7
8
#ifndef Py_FLOATOBJECT_H
9
#define Py_FLOATOBJECT_H
10
#ifdef __cplusplus
11
extern "C" {
12
#endif
13
14
PyAPI_DATA(PyTypeObject) PyFloat_Type;
15
16
#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
17
#define PyFloat_CheckExact(op) Py_IS_TYPE((op), &PyFloat_Type)
18
19
#define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN)
20
21
#define Py_RETURN_INF(sign)                          \
22
    do {                                             \
23
        if (copysign(1., sign) == 1.) {              \
24
            return PyFloat_FromDouble(Py_HUGE_VAL);  \
25
        }                                            \
26
        else {                                       \
27
            return PyFloat_FromDouble(-Py_HUGE_VAL); \
28
        }                                            \
29
    } while(0)
30
31
PyAPI_FUNC(double) PyFloat_GetMax(void);
32
PyAPI_FUNC(double) PyFloat_GetMin(void);
33
PyAPI_FUNC(PyObject*) PyFloat_GetInfo(void);
34
35
/* Return Python float from string PyObject. */
36
PyAPI_FUNC(PyObject*) PyFloat_FromString(PyObject*);
37
38
/* Return Python float from C double. */
39
PyAPI_FUNC(PyObject*) PyFloat_FromDouble(double);
40
41
/* Extract C double from Python float.  The macro version trades safety for
42
   speed. */
43
PyAPI_FUNC(double) PyFloat_AsDouble(PyObject*);
44
45
#ifndef Py_LIMITED_API
46
#  define Py_CPYTHON_FLOATOBJECT_H
47
#  include "cpython/floatobject.h"
48
#  undef Py_CPYTHON_FLOATOBJECT_H
49
#endif
50
51
#ifdef __cplusplus
52
}
53
#endif
54
#endif /* !Py_FLOATOBJECT_H */