17db96d56Sopenharmony_ci#ifndef Py_CPYTHON_COMPLEXOBJECT_H 27db96d56Sopenharmony_ci# error "this header file must not be included directly" 37db96d56Sopenharmony_ci#endif 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_citypedef struct { 67db96d56Sopenharmony_ci double real; 77db96d56Sopenharmony_ci double imag; 87db96d56Sopenharmony_ci} Py_complex; 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci/* Operations on complex numbers from complexmodule.c */ 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex); 137db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex); 147db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex); 157db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex); 167db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex); 177db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex); 187db96d56Sopenharmony_ciPyAPI_FUNC(double) _Py_c_abs(Py_complex); 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci/* Complex object interface */ 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci/* 237db96d56Sopenharmony_ciPyComplexObject represents a complex number with double-precision 247db96d56Sopenharmony_cireal and imaginary parts. 257db96d56Sopenharmony_ci*/ 267db96d56Sopenharmony_citypedef struct { 277db96d56Sopenharmony_ci PyObject_HEAD 287db96d56Sopenharmony_ci Py_complex cval; 297db96d56Sopenharmony_ci} PyComplexObject; 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex); 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ciPyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op); 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci#ifdef Py_BUILD_CORE 367db96d56Sopenharmony_ci/* Format the object based on the format_spec, as defined in PEP 3101 377db96d56Sopenharmony_ci (Advanced String Formatting). */ 387db96d56Sopenharmony_ciextern int _PyComplex_FormatAdvancedWriter( 397db96d56Sopenharmony_ci _PyUnicodeWriter *writer, 407db96d56Sopenharmony_ci PyObject *obj, 417db96d56Sopenharmony_ci PyObject *format_spec, 427db96d56Sopenharmony_ci Py_ssize_t start, 437db96d56Sopenharmony_ci Py_ssize_t end); 447db96d56Sopenharmony_ci#endif // Py_BUILD_CORE 45