Switch to side-by-side view

--- 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.