1 2cdef extern from "Python.h": 3 4 ctypedef struct Py_complex: 5 double imag 6 double real 7 8 ############################################################################ 9 # 7.2.5.2 Complex Numbers as Python Objects 10 ############################################################################ 11 12 # PyComplexObject 13 # This subtype of PyObject represents a Python complex number object. 14 15 ctypedef class __builtin__.complex [object PyComplexObject]: 16 cdef Py_complex cval 17 # not making these available to keep them read-only: 18 #cdef double imag "cval.imag" 19 #cdef double real "cval.real" 20 21 # PyTypeObject PyComplex_Type 22 # This instance of PyTypeObject represents the Python complex 23 # number type. It is the same object as complex and 24 # types.ComplexType. 25 26 bint PyComplex_Check(object p) 27 # Return true if its argument is a PyComplexObject or a subtype of 28 # PyComplexObject. 29 30 bint PyComplex_CheckExact(object p) 31 # Return true if its argument is a PyComplexObject, but not a subtype of PyComplexObject. 32 33 object PyComplex_FromCComplex(Py_complex v) 34 # Return value: New reference. 35 # Create a new Python complex number object from a C Py_complex value. 36 37 object PyComplex_FromDoubles(double real, double imag) 38 # Return value: New reference. 39 # Return a new PyComplexObject object from real and imag. 40 41 double PyComplex_RealAsDouble(object op) except? -1 42 # Return the real part of op as a C double. 43 44 double PyComplex_ImagAsDouble(object op) except? -1 45 # Return the imaginary part of op as a C double. 46 47 Py_complex PyComplex_AsCComplex(object op) 48 # Return the Py_complex value of the complex number op. 49 # 50 # Returns (-1+0i) in case of an error 51