mirror of
https://github.com/python/cpython.git
synced 2024-12-11 18:53:56 +08:00
53876d9cd8
svn+ssh://pythondev@svn.python.org/python/trunk ........ r62380 | christian.heimes | 2008-04-19 01:13:07 +0200 (Sat, 19 Apr 2008) | 3 lines I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math. The patch also adds acosh, asinh, atanh, log1p and copysign to all platforms. Finally it fixes differences between platforms like different results or exceptions for edge cases. Have fun :) ........ r62382 | christian.heimes | 2008-04-19 01:40:40 +0200 (Sat, 19 Apr 2008) | 2 lines Added new files to Windows project files More Windows related fixes are coming soon ........ r62383 | christian.heimes | 2008-04-19 01:49:11 +0200 (Sat, 19 Apr 2008) | 1 line Stupid me. Py_RETURN_NAN should actually return something ... ........
61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
/* Complex number structure */
|
|
|
|
#ifndef Py_COMPLEXOBJECT_H
|
|
#define Py_COMPLEXOBJECT_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct {
|
|
double real;
|
|
double imag;
|
|
} Py_complex;
|
|
|
|
/* Operations on complex numbers from complexmodule.c */
|
|
|
|
#define c_sum _Py_c_sum
|
|
#define c_diff _Py_c_diff
|
|
#define c_neg _Py_c_neg
|
|
#define c_prod _Py_c_prod
|
|
#define c_quot _Py_c_quot
|
|
#define c_pow _Py_c_pow
|
|
#define c_abs _Py_c_abs
|
|
|
|
PyAPI_FUNC(Py_complex) c_sum(Py_complex, Py_complex);
|
|
PyAPI_FUNC(Py_complex) c_diff(Py_complex, Py_complex);
|
|
PyAPI_FUNC(Py_complex) c_neg(Py_complex);
|
|
PyAPI_FUNC(Py_complex) c_prod(Py_complex, Py_complex);
|
|
PyAPI_FUNC(Py_complex) c_quot(Py_complex, Py_complex);
|
|
PyAPI_FUNC(Py_complex) c_pow(Py_complex, Py_complex);
|
|
PyAPI_FUNC(double) 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_DATA(PyTypeObject) PyComplex_Type;
|
|
|
|
#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type)
|
|
#define PyComplex_CheckExact(op) (Py_TYPE(op) == &PyComplex_Type)
|
|
|
|
PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex);
|
|
PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag);
|
|
|
|
PyAPI_FUNC(double) PyComplex_RealAsDouble(PyObject *op);
|
|
PyAPI_FUNC(double) PyComplex_ImagAsDouble(PyObject *op);
|
|
PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Py_COMPLEXOBJECT_H */
|