Home Tutorial Win32 API Reference Projects

 Reference Index ISO Modules Utility & Information SysClock Strings CharClass Storage ProgramArgs GeneralUserExceptions Number/text conversion ConvTypes WholeStr RealStr LongStr WholeConv RealConv LongConv Mathematics library RealMath LongMath ComplexMath LongComplexMath LowLong LowReal Standard channels, constants StdChans ChanConsts IOConsts IOLink IO on specified channels IOResult IOChan RawIO TextIO WholeIO RealIO LongIO IO on standard channels SIOResult SRawIO STextIO SWholeIO SRealIO SLongIO Files and devices SeqFile RndFile StreamFile TermFile Processes Processes Semaphores System modules SYSTEM COROUTINES EXCEPTIONS TERMINATION M2EXCEPTION

```DEFINITION MODULE LongComplexMath;

(* Mathematical functions for the type LONGCOMPLEX *)

CONST
i =    CMPLX (0.0, 1.0);
one =  CMPLX (1.0, 0.0);
zero = CMPLX (0.0, 0.0);

PROCEDURE abs (z: LONGCOMPLEX): LONGREAL;
(* Returns the length of z *)

PROCEDURE arg (z: LONGCOMPLEX): LONGREAL;
(* Returns the angle that z subtends to the positive real axis, in the range [-pi, pi] *)

PROCEDURE conj (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the complex conjugate of z *)

PROCEDURE power (base: LONGCOMPLEX; exponent: LONGREAL): LONGCOMPLEX;
(* Returns the value of the number base raised to the power exponent *)

PROCEDURE sqrt (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the principal square root of z with arg in the range [-pi/2, pi/2] *)

PROCEDURE exp (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the complex exponential of z *)

PROCEDURE ln (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the principal value of the natural logarithm of z *)

PROCEDURE sin (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the sine of z *)

PROCEDURE cos (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the cosine of z *)

PROCEDURE tan (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the tangent of z *)

PROCEDURE arcsin (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the arcsine of z *)

PROCEDURE arccos (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the arccosine of z *)

PROCEDURE arctan (z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the arctangent of z *)

PROCEDURE polarToComplex (abs, arg: LONGREAL): LONGCOMPLEX;
(* Returns the complex number with the specified polar coordinates *)

PROCEDURE scalarMult (scalar: LONGREAL; z: LONGCOMPLEX): LONGCOMPLEX;
(* Returns the scalar product of scalar with z *)

PROCEDURE IsCMathException (): BOOLEAN;
(* Returns TRUE if the current coroutine is in the exceptional execution state
because of the LongComplexMath exception; otherwise returns FALSE.
*)

END LongComplexMath.
```