--- a
+++ b/LngCmplxMath.def
@@ -0,0 +1,137 @@
+DEFINITION MODULE LngCmplxMath;
+
+ (*------------------------------------------------------------------------*)
+ (* Baisisrechenoperationen f端r den Record-Typ Deklera.LONGCMPLX *)
+ (* und abgeleitete Funktionen *)
+ (* Mathematical functions for the type LONGCMPLX *)
+ (* *)
+ (* This module should not be used in new projects !!! *)
+ (*------------------------------------------------------------------------*)
+ (* Implementation : Michael Riedl *)
+ (* Licence : GNU Lesser General Public License (LGPL) *)
+ (*------------------------------------------------------------------------*)
+
+ (* $Id: LngCmplxMath.def,v 1.2 2017/09/24 10:14:20 mriedl Exp mriedl $ *)
+
+FROM Deklera IMPORT LONGCMPLX;
+
+PROCEDURE CMPLX(real,imag : LONGREAL) : LONGCMPLX;
+
+PROCEDURE CAdd(x,y : LONGCMPLX) : LONGCMPLX; (* x + y *)
+PROCEDURE CSub(x,y : LONGCMPLX) : LONGCMPLX; (* x - y *)
+PROCEDURE CMul(x,y : LONGCMPLX) : LONGCMPLX; (* x*y *)
+PROCEDURE CDiv(x,y : LONGCMPLX) : LONGCMPLX; (* x / y *)
+PROCEDURE CRez(x : LONGCMPLX) : LONGCMPLX; (* 1 / x *)
+
+(* Fehlt
+ *
+ * CONST
+ * i = CMPLX (0.0, 1.0);
+ * one = CMPLX (1.0, 0.0);
+ * zero = CMPLX (0.0, 0.0);
+*)
+
+PROCEDURE abs(z: LONGCMPLX): LONGREAL;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the length of z *)
+ (*----------------------------------------------------------------*)
+
+(* Fehlt
+ *
+ * PROCEDURE arg (z: LONGCMPLX): LONGREAL;
+ *
+ * (*----------------------------------------------------------------*)
+ * (* Returns the angle that z subtends to the positive real axis *)
+ * (*----------------------------------------------------------------*)
+ *)
+
+PROCEDURE conj (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the complex conjugate of z *)
+ (*----------------------------------------------------------------*)
+(* Fehlt
+ *
+ * PROCEDURE power (base: LONGCMPLX; exponent: LONGREAL): LONGCMPLX;
+ *
+ * (*----------------------------------------------------------------*)
+ * (* value of the number base raised to the power exponent *)
+ * (*----------------------------------------------------------------*)
+ *)
+
+PROCEDURE sqrt (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the principal square root of z *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE exp (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the complex exponential of z *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE ln (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the principal value of the natural logarithm of z *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE sin (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the sine of z *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE cos (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the cosine of z *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE tan (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the tangent of z *)
+ (*----------------------------------------------------------------*)
+(* Fehlt
+ *
+ * PROCEDURE arcsin (z: LONGCMPLX): LONGCMPLX;
+ *
+ * (*----------------------------------------------------------------*)
+ * (* Returns the arcsine of z *)
+ * (*----------------------------------------------------------------*)
+ *)
+
+(* Fehlt
+ *
+ * PROCEDURE arccos (z: LONGCMPLX): LONGCMPLX;
+ *
+ * (*----------------------------------------------------------------*)
+ * (* Returns the arccosine of z *)
+ * (*----------------------------------------------------------------*)
+*)
+
+PROCEDURE arctan (z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the arctangent of z *)
+ (*----------------------------------------------------------------*)
+
+(* Fehlt
+ *
+ * PROCEDURE polarToComplex (abs, arg: LONGREAL): LONGCMPLX;
+ *
+ * (*----------------------------------------------------------------*)
+ * (* Complex number with the specified polar coordinates *)
+ * (*----------------------------------------------------------------*)
+ *)
+
+PROCEDURE scalarMult (scalar: LONGREAL; z: LONGCMPLX): LONGCMPLX;
+
+ (*----------------------------------------------------------------*)
+ (* Returns the scalar product of scalar with z *)
+ (*----------------------------------------------------------------*)
+
+END LngCmplxMath.