summaryrefslogtreecommitdiffstats
path: root/Include/complexobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/complexobject.h')
-rw-r--r--Include/complexobject.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/Include/complexobject.h b/Include/complexobject.h
new file mode 100644
index 0000000..09a8683
--- /dev/null
+++ b/Include/complexobject.h
@@ -0,0 +1,49 @@
+#ifndef COMPLEXOBJECT_H
+#define COMPLEXOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Complex number structure */
+
+typedef struct {
+ double real;
+ double imag;
+} complex;
+
+/* Operations on complex numbers from complexmodule.c */
+
+extern complex c_sum();
+extern complex c_diff();
+extern complex c_neg();
+extern complex c_prod();
+extern complex c_quot();
+extern complex c_pow();
+
+
+/* Complex object interface */
+
+/*
+PyComplexObject represents a complex number with double-precision
+real and imaginary parts.
+*/
+
+typedef struct {
+ PyObject_HEAD
+ complex cval;
+} PyComplexObject;
+
+extern DL_IMPORT(PyTypeObject) PyComplex_Type;
+
+#define PyComplex_Check(op) ((op)->ob_type == &PyComplex_Type)
+
+extern PyObject *PyComplex_FromCComplex Py_PROTO((complex));
+extern PyObject *PyComplex_FromDoubles Py_PROTO((double real, double imag));
+
+extern double PyComplex_RealAsDouble Py_PROTO((PyObject *op));
+extern double PyComplex_ImagAsDouble Py_PROTO((PyObject *op));
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !COMPLEXOBJECT_H */