(*---------------------------------------------------------------------------
    :Program.    UPN.def
    :Author.     Philippe Gressly 
    :Address.    Näfenhaus, CH-8926 Kappel a/Albis
    :Phone.      
    :Shortcut.   [Philu]
    :Version.    1.0
    :Date.       (7.) 1989
    :Copyright.  PD.
    :Language.   Modula-II
    :Translator. M2Amiga
    :Imports.    MathLibLong
    :UpDate.     
    :Contents.   More Formulas then MathLibLong
    :Remark.     none
---------------------------------------------------------------------------*)
DEFINITION MODULE NewMathLib;

TYPE ArErType = (ArNoEr,         (* Kein Fehler *)
                 ArOverFl,       (* Arithmetischer OverFlow *)
                 ArNDef);        (* Arithmetischer Ausdruck nicht definiert *)


VAR ArEr: ArErType; 

(* Die fogenden Proceduren ändern ev. die Variable ArEr ! *)

PROCEDURE SQRT(x: LONGREAL): LONGREAL;

PROCEDURE EXP(x:  LONGREAL): LONGREAL;
PROCEDURE LN(x:   LONGREAL): LONGREAL;
PROCEDURE LOG(x:LONGREAL): LONGREAL;

PROCEDURE SIN(x: LONGREAL): LONGREAL;
PROCEDURE COS(x: LONGREAL): LONGREAL;
PROCEDURE TAN(x: LONGREAL): LONGREAL;
PROCEDURE ARCTAN(x:LONGREAL): LONGREAL;

PROCEDURE SINh(x: LONGREAL): LONGREAL;
PROCEDURE COSh(x: LONGREAL): LONGREAL;
PROCEDURE TANh(x: LONGREAL): LONGREAL;
PROCEDURE ARCSINh(x:LONGREAL): LONGREAL;
PROCEDURE ARCCOSh(x:LONGREAL): LONGREAL;
PROCEDURE ARCTANh(x:LONGREAL): LONGREAL;

PROCEDURE FACT(x: LONGREAL): LONGREAL;
(* Fakultaet *)

PROCEDURE SIGN(x: LONGREAL): LONGREAL;
(* -1.0 IF x < 0.0
    0.0 IF x = 0.0
    1.0 IF x > 0.0
 *)
PROCEDURE DegToRad(x: LONGREAL): LONGREAL;
PROCEDURE RadToDeg(x: LONGREAL): LONGREAL;

END NewMathLib.
