(*-------------------------------------------------------------------------*)
(*                                                                         *)
(*  Amiga Oberon Interface Module:                    Date: 02-Nov-92      *)
(*                                                                         *)
(*   © 1992 by Fridtjof Siebert                                            *)
(*                                                                         *)
(*-------------------------------------------------------------------------*)

MODULE MathIEEEDoubBas;

IMPORT ex   := Exec,
       I    := Intuition,
       ml * := MathLibrary,
       sys  := SYSTEM;

CONST

  pi      * = 3.141592653589793D;

  twoPi   * = 2 * pi;
  pi2     * = pi / 2;
  pi4     * = pi / 4;

  e       * = 2.718281828459045D;

  log10   * = 2.302585092994046D;
  fpTen   * = 10.0D;
  fpOne   * = 1.0D;
  fpHalf  * = 0.5D;
  fpZero  * = 0.0D;

  mathIEEEDoubBasName * = "mathieeedoubbas.library";


VAR

  base * : ml.MathIEEEBasePtr;


PROCEDURE Fix*  {base,- 30}(x{0} : LONGREAL): LONGINT;
PROCEDURE Flt*  {base,- 36}(x{0} : LONGINT ): LONGREAL;
PROCEDURE Cmp*  {base,- 42}(x{0} : LONGREAL;
                            y{2} : LONGREAL): LONGINT;
PROCEDURE Tst*  {base,- 48}(x{0} : LONGREAL): LONGINT;
PROCEDURE Abs*  {base,- 54}(x{0} : LONGREAL): LONGREAL;
PROCEDURE Neg*  {base,- 60}(x{0} : LONGREAL): LONGREAL;
PROCEDURE Add*  {base,- 66}(x{0} : LONGREAL;
                            y{2} : LONGREAL): LONGREAL;
PROCEDURE Sub*  {base,- 72}(x{0} : LONGREAL;
                            y{2} : LONGREAL): LONGREAL;
PROCEDURE Mul*  {base,- 78}(x{0} : LONGREAL;
                            y{2} : LONGREAL): LONGREAL;
PROCEDURE Div*  {base,- 84}(x{0} : LONGREAL;
                            y{2} : LONGREAL): LONGREAL;
PROCEDURE Floor*{base,- 90}(x{0} : LONGREAL): LONGREAL;
PROCEDURE Ceil* {base,- 96}(x{0} : LONGREAL): LONGREAL;


(* $OvflChk- $RangeChk- $StackChk- $NilChk- $ReturnChk- $CaseChk- *)


BEGIN

  base := ex.OpenLibrary(mathIEEEDoubBasName,33);
  IF base=NIL THEN
    sys.SETREG(0,I.DisplayAlert(0,"\x00\x64\x14missing mathieeedoubbas.library\o\o",50));
    HALT(0)
  END;

CLOSE

  IF base#NIL THEN ex.CloseLibrary(base) END;

END MathIEEEDoubBas.




