home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / obrn-a_1.5_lib.lha / oberon-a / source2.lha / source / amiga / MathIEEEDoubBas.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  2.9 KB  |  138 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: MathIEEEDoubBas.mod $
  4.   Description: Interface to mathieeedoubbas.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.7 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/26 02:39:55 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  23. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  24. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  25.  
  26. MODULE [2] MathIEEEDoubBas;
  27.  
  28. (*
  29.   This module is not defined.  This is because the compiler cannot yet
  30.   handle the LONGREAL as an 8-byte IEEE double-precision real.
  31.   Have patience.
  32. *)
  33.  
  34. (*
  35. IMPORT SYS := SYSTEM, Kernel, e := Exec, m := MathLibrary;
  36.  
  37.  
  38. (*-- MathIEEEDoubBas Base variable --------------------------------------*)
  39.  
  40. CONST
  41.  
  42.   pi      * = 3.141592653589793D;
  43.  
  44.   twoPi   * = 6.283185307179586D;
  45.   pi2     * = 1.570796326794897D;
  46.   pi4     * = 0.785398163397448D;
  47.  
  48.   e       * = 2.718281828459045D;
  49.  
  50.   log10   * = 2.302585092994046D;
  51.   fpTen   * = 10.0D;
  52.   fpOne   * = 1.0D;
  53.   fpHalf  * = 0.5D;
  54.   fpZero  * = 0.0D;
  55.  
  56.   mathIEEEDoubBasName * = "mathieeedoubbas.library";
  57.  
  58. VAR
  59.  
  60.   base * : m.MathIEEEBasePtr;
  61.  
  62.  
  63. (*-- Library Functions ------------------------------------------------*)
  64.  
  65.  
  66. PROCEDURE Fix* [base,-30]
  67.   ( parm [0] : e.DOUBLE )
  68.   : LONGINT;
  69.  
  70. PROCEDURE Flt* [base,-36]
  71.   ( integer [0] : LONGINT  )
  72.   : e.DOUBLE;
  73.  
  74. PROCEDURE Cmp* [base,-42]
  75.   ( leftParm  [0] : e.DOUBLE;
  76.     rightParm [1] : e.DOUBLE )
  77.   : LONGINT;
  78.  
  79. PROCEDURE Tst* [base,-48]
  80.   ( parm [0] : e.DOUBLE )
  81.   : LONGINT;
  82.  
  83. PROCEDURE Abs* [base,-54]
  84.   ( parm [0] : e.DOUBLE )
  85.   : e.DOUBLE;
  86.  
  87. PROCEDURE Neg* [base,-60]
  88.   ( parm [0] : e.DOUBLE )
  89.   : e.DOUBLE;
  90.  
  91. PROCEDURE Add* [base,-66]
  92.   ( leftParm  [0] : e.DOUBLE;
  93.     rightParm [1] : e.DOUBLE )
  94.   : e.DOUBLE;
  95.  
  96. PROCEDURE Sub* [base,-72]
  97.   ( leftParm  [0] : e.DOUBLE;
  98.     rightParm [1] : e.DOUBLE )
  99.   : e.DOUBLE;
  100.  
  101. PROCEDURE Mul* [base,-78]
  102.   ( leftParm  [0] : e.DOUBLE;
  103.     rightParm [1] : e.DOUBLE )
  104.   : e.DOUBLE;
  105.  
  106. PROCEDURE Div* [base,-84]
  107.   ( dividend [0] : e.DOUBLE;
  108.     divisor  [1] : e.DOUBLE )
  109.   : e.DOUBLE;
  110.  
  111. PROCEDURE Floor* [base,-90]
  112.   ( parm [0] : e.DOUBLE )
  113.   : e.DOUBLE;
  114.  
  115. PROCEDURE Ceil* [base,-96]
  116.   ( parm [0] : e.DOUBLE )
  117.   : e.DOUBLE;
  118.  
  119.  
  120. (*-- Library Base variable --------------------------------------------*)
  121.  
  122. <*$LongVars-*>
  123.  
  124. (*-----------------------------------*)
  125. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  126.  
  127. BEGIN (* CloseLib *)
  128.   IF base # NIL THEN e.CloseLibrary (base) END
  129. END CloseLib;
  130.  
  131. BEGIN
  132.   base := SYS.VAL (m.MathIEEEBasePtr,
  133.                    e.OpenLibrary (mathIEEEDoubBasName, e.libraryMinimum));
  134.   IF base = NIL THEN HALT (100) END;
  135.   Kernel.SetCleanup (CloseLib)
  136. *)
  137. END MathIEEEDoubBas.
  138.