Skip to content

Commit

Permalink
complex numbers a la Konrad Hinsen
Browse files Browse the repository at this point in the history
  • Loading branch information
gvanrossum committed Jan 12, 1996
1 parent 77654a7 commit f9fca92
Show file tree
Hide file tree
Showing 2 changed files with 611 additions and 0 deletions.
49 changes: 49 additions & 0 deletions Include/complexobject.h
Original file line number Diff line number Diff line change
@@ -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 */

0 comments on commit f9fca92

Please sign in to comment.