# The GNU Modula-2 front end to GCC

#### gm2-libs-iso/LongMath

```DEFINITION MODULE LongMath;

(* Mathematical functions for the type LONGREAL *)

CONST

pi   = 3.1415926535897932384626433832795028841972;

exp1 = 2.7182818284590452353602874713526624977572;

PROCEDURE __BUILTIN__ sqrt (x: LONGREAL): LONGREAL;
(* Returns the positive square root of x *)

PROCEDURE __BUILTIN__ exp (x: LONGREAL): LONGREAL;
(* Returns the exponential of x *)

PROCEDURE __BUILTIN__ ln (x: LONGREAL): LONGREAL;
(* Returns the natural logarithm of x *)

(* The angle in all trigonometric functions is measured in radians *)

PROCEDURE __BUILTIN__ sin (x: LONGREAL): LONGREAL;
(* Returns the sine of x *)

PROCEDURE __BUILTIN__ cos (x: LONGREAL): LONGREAL;
(* Returns the cosine of x *)

PROCEDURE tan (x: LONGREAL): LONGREAL;
(* Returns the tangent of x *)

PROCEDURE arcsin (x: LONGREAL): LONGREAL;
(* Returns the arcsine of x *)

PROCEDURE arccos (x: LONGREAL): LONGREAL;
(* Returns the arccosine of x *)

PROCEDURE arctan (x: LONGREAL): LONGREAL;
(* Returns the arctangent of x *)

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

PROCEDURE round (x: LONGREAL): INTEGER;
(* Returns the value of x rounded to the nearest integer *)

PROCEDURE IsRMathException (): 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 LongMath.

```