diff options
author | Victor Stinner <vstinner@python.org> | 2022-04-06 23:05:27 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-06 23:05:27 (GMT) |
commit | ca219f6dfc57f8f4984f96df0f733b7de92fe91c (patch) | |
tree | 0accddd1872a266bd1da71bd29464adf3071a24b /Include/cpython | |
parent | 612e422c6ea9df60d3382ed1491d8254c283e93f (diff) | |
download | cpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.zip cpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.tar.gz cpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.tar.bz2 |
bpo-35134: Add Include/cpython/complexobject.h header (GH-32383)
Move the private _PyComplex_FormatAdvancedWriter() function to the
internal C API. This function is no longer exported.
Diffstat (limited to 'Include/cpython')
-rw-r--r-- | Include/cpython/complexobject.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Include/cpython/complexobject.h b/Include/cpython/complexobject.h new file mode 100644 index 0000000..b7d7283 --- /dev/null +++ b/Include/cpython/complexobject.h @@ -0,0 +1,44 @@ +#ifndef Py_CPYTHON_COMPLEXOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + double real; + double imag; +} Py_complex; + +/* Operations on complex numbers from complexmodule.c */ + +PyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex); +PyAPI_FUNC(double) _Py_c_abs(Py_complex); + +/* Complex object interface */ + +/* +PyComplexObject represents a complex number with double-precision +real and imaginary parts. +*/ +typedef struct { + PyObject_HEAD + Py_complex cval; +} PyComplexObject; + +PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex); + +PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op); + +#ifdef Py_BUILD_CORE +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyComplex_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); +#endif // Py_BUILD_CORE |