| (* Library module defined by the International Standard | |
| Information technology - programming languages | |
| BS ISO/IEC 10514-1:1996E Part 1: Modula-2, Base Language. | |
| Copyright ISO/IEC (International Organization for Standardization | |
| and International Electrotechnical Commission) 1996-2021. | |
| It may be freely copied for the purpose of implementation (see page | |
| 707 of the Information technology - Programming languages Part 1: | |
| Modula-2, Base Language. BS ISO/IEC 10514-1:1996). *) | |
| 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 *) | |
| 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 *) | |
| 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 *) | |
| (* Returns the sine of z *) | |
| (* <DEF_TARGET_PROCEDURE(sin,LONGCOMPLEX,LONGCOMPLEX,__builtin_csinl,cbuiltin.csinl)> *) | |
| (* Returns the cosine of z *) | |
| (* <DEF_TARGET_PROCEDURE(cos,LONGCOMPLEX,LONGCOMPLEX,__builtin_ccosl,cbuiltin.ccosl)> *) | |
| (* Returns the tangent of z *) | |
| (* <DEF_TARGET_PROCEDURE(tan,LONGCOMPLEX,LONGCOMPLEX,__builtin_ctanl,cbuiltin.ctanl)> *) | |
| (* <DEF_TARGET_PROCEDURE(arcsin,LONGCOMPLEX,LONGCOMPLEX,__builtin_arcsin,cbuiltin.arcsin)> *) | |
| (* Returns the arcsine of z *) | |
| (* <DEF_TARGET_PROCEDURE(arccos,LONGCOMPLEX,LONGCOMPLEX,__builtin_arccos,cbuiltin.arccos)> *) | |
| (* Returns the arccosine of z *) | |
| (* <DEF_TARGET_PROCEDURE(arctan,LONGCOMPLEX,LONGCOMPLEX,__builtin_arctan,cbuiltin.arctan)> *) | |
| (* 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 raising of an exception in a routine from this module; otherwise | |
| returns FALSE. | |
| *) | |
| END LongComplexMath. |