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

MODULE MathFFP;

IMPORT ex * := Exec,
       I    := Intuition,
       s    := SYSTEM;

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

  e     * = 2.718281828459045;
  log10 * = 2.302585092994046;

  fpTen  * = 10;
  fpOne  * = 1;
  fpHalf * = 1/2;
  fpZero * = 0;

CONST
  MathFFPName * = "mathffp.library";

VAR
  base * : ex.LibraryPtr;

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

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

BEGIN

  base := ex.OpenLibrary(MathFFPName,33);
  IF base=NIL THEN HALT(0) END;

CLOSE

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

END MathFFP.


