/* file generated by oo2c -- do not edit */
#ifndef _MODULE_LComplexMath_
#define _MODULE_LComplexMath_

typedef struct LComplexMath__LONGCOMPLEXDesc {
  double r;
  double i;
} LComplexMath__LONGCOMPLEXDesc;
typedef struct LComplexMath__LONGCOMPLEXDesc* LComplexMath__LONGCOMPLEX;
extern LComplexMath__LONGCOMPLEX LComplexMath__i;
extern LComplexMath__LONGCOMPLEX LComplexMath__one;
extern LComplexMath__LONGCOMPLEX LComplexMath__zero;
extern LComplexMath__LONGCOMPLEX LComplexMath__CMPLX(double r, double i);
extern LComplexMath__LONGCOMPLEX LComplexMath__Copy(LComplexMath__LONGCOMPLEX z);
#include "ComplexMath.h"
extern LComplexMath__LONGCOMPLEX LComplexMath__Long(ComplexMath__COMPLEX z);
extern ComplexMath__COMPLEX LComplexMath__Short(LComplexMath__LONGCOMPLEX z);
extern double LComplexMath__RealPart(LComplexMath__LONGCOMPLEX z);
extern double LComplexMath__ImagPart(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__add(LComplexMath__LONGCOMPLEX z1, LComplexMath__LONGCOMPLEX z2);
extern LComplexMath__LONGCOMPLEX LComplexMath__sub(LComplexMath__LONGCOMPLEX z1, LComplexMath__LONGCOMPLEX z2);
extern LComplexMath__LONGCOMPLEX LComplexMath__mul(LComplexMath__LONGCOMPLEX z1, LComplexMath__LONGCOMPLEX z2);
extern LComplexMath__LONGCOMPLEX LComplexMath__div(LComplexMath__LONGCOMPLEX z1, LComplexMath__LONGCOMPLEX z2);
extern double LComplexMath__abs(LComplexMath__LONGCOMPLEX z);
extern double LComplexMath__arg(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__conj(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__power(LComplexMath__LONGCOMPLEX base, double exponent);
extern LComplexMath__LONGCOMPLEX LComplexMath__sqrt(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__exp(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__ln(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__sin(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__cos(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__tan(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__arcsin(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__arccos(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__arctan(LComplexMath__LONGCOMPLEX z);
extern LComplexMath__LONGCOMPLEX LComplexMath__polarToComplex(double abs, double arg);
extern LComplexMath__LONGCOMPLEX LComplexMath__scalarMult(double scalar, LComplexMath__LONGCOMPLEX z);
extern unsigned char LComplexMath__IsCMathException(void);
extern struct _TD LComplexMath__LONGCOMPLEXDesc_td;
extern void LComplexMath_init(void);

#endif
