| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- Listing:
- 1 (* Release 3.10 *)
- 2 (*-------------------------------------------------------------------------*
- 3 * *
- 4 * MATHLIB.DEF - Modula-2 MATH library *
- 5 * *
- 6 * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. *
- 7 * All Rights Reserved *
- 8 * *
- 9 *--------------------------------------------------------------------------*)
- 10
- 11 (*# call(o_a_copy => on,
- 12 o_a_size => on) *)
- 13 (*%F _fdata *)
- 14 (*# call(seg_name => null) *)
- 15 (*# data(seg_name => null) *)
- 16 (*%E *)
- 17 (*# module(implementation=>off,init_code=>off) *)
- 18
- 19 DEFINITION MODULE MATHLIB;
- 20
- 21 IMPORT SYSTEM, CoreMath, Lib;
- 22
- 23 (* Implemented in Core Library
- 24
- 25 PROCEDURE Sin (A : LONGREAL) : LONGREAL;
- 26 PROCEDURE Cos (A : LONGREAL) : LONGREAL;
- 27 PROCEDURE Tan (A : LONGREAL) : LONGREAL;
- 28 PROCEDURE SinH(A : LONGREAL) : LONGREAL;
- 29 PROCEDURE CosH(A : LONGREAL) : LONGREAL;
- 30 PROCEDURE TanH(A : LONGREAL) : LONGREAL;
- 31 PROCEDURE ASin(A : LONGREAL) : LONGREAL;
- 32 PROCEDURE ACos(A : LONGREAL) : LONGREAL;
- 33 PROCEDURE ATan(A : LONGREAL) : LONGREAL;
- 34
- 35 PROCEDURE Exp (A : LONGREAL) : LONGREAL;
- 36 PROCEDURE Log (A : LONGREAL) : LONGREAL;
- 37 PROCEDURE Log10(A : LONGREAL) : LONGREAL;
- 38 PROCEDURE Pow(X,Y : LONGREAL) : LONGREAL;
- 39
- 40 PROCEDURE Mod(X,Y : LONGREAL) : LONGREAL;
- 41 PROCEDURE Sqrt(A : LONGREAL) : LONGREAL;
- 42
- 43 *)
- 44 PROCEDURE Rexp(VAR I : INTEGER;A : LONGREAL) : LONGREAL;
- 45 PROCEDURE ATan2(X,Y : LONGREAL) : LONGREAL;
- 46
- 47 CONST
- 48 Sin = CoreMath.sin;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 49 Cos = CoreMath.cos;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 50 Tan = CoreMath.tan;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 51 SinH = CoreMath.sinh;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 52 CosH = CoreMath.cosh;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 53 TanH = CoreMath.tanh;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 54 ASin = CoreMath.asin;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 55 ACos = CoreMath.acos;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 56 ATan = CoreMath.atan;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 57
- 58 Exp = CoreMath.exp;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 59 Log = CoreMath.log;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 60 Log10 = CoreMath.log10;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 61 Pow = CoreMath.pow;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 62
- 63 Mod = CoreMath.fmod;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 64 Sqrt = CoreMath.sqrt;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 65
- 66 (* 8087 instructions *)
- 67 TYPE
- 68 PackedBcd = ARRAY[0..9] OF SHORTCARD;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 69 Environment = RECORD
- 70 ControlWord : BITSET;
- ***** ^ undeclared identifier
- 71 StatusWord : BITSET;
- ***** ^ undeclared identifier
- 72 TagWord : BITSET;
- ***** ^ undeclared identifier
- 73 IP : CARDINAL;
- 74 Opcode : CARDINAL;
- 75 DataPointer : CARDINAL;
- 76 R80287 : CARDINAL;
- 77 END;
- ***** ^ not supported yet
- 78
- 79 PROCEDURE LongToBcd(A: LONGREAL) : PackedBcd;
- 80 PROCEDURE BcdToLong(A: PackedBcd) : LONGREAL;
- 81 PROCEDURE IntPow(X:LONGREAL;K:INTEGER):LONGREAL;
- 82
- 83
- 84 (*# save *)
- 85 (*# call(reg_param => (ax,bx,cx,dx,st0), reg_saved => (ds,si,di,st1,st2)) *)
- 86 PROCEDURE LoadControlWord(C : BITSET);
- ***** ^ undeclared identifier
- 87 PROCEDURE StoreControlWord() : BITSET;
- ***** ^ undeclared identifier
- 88 PROCEDURE ClearExceptions();
- 89 PROCEDURE StoreEnvironment(VAR En: Environment);
- 90 (*# restore *)
- 91
- 92 (* end of 8087 instructions *)
- 93
- 94 (*
- 95 TYPE
- 96 StrPtr = POINTER TO ARRAY [0..15] OF CHAR;
- 97 Exception = RECORD
- 98 type: CARDINAL;
- 99 Name: StrPtr;
- 100 arg1, arg2, retval: LONGREAL;
- 101 END;
- 102 VAR
- 103 MathError : PROCEDURE (VAR E: Exception): INTEGER;
- 104 *)
- 105
- 106 (* Values for error type parameter to MathError procedure *)
- 107
- 108 CONST
- 109 DOMAIN = 1; (* parameter not in valid domain *)
- 110 SING = 2; (* function is incalculable at this place *)
- 111 OVERFLOW = 3; (* result exceeds representable range *)
- 112 UNDERFLOW = 4; (* result too close to zero to be represented *)
- 113 TLOSS = 5; (* total loss of precision (eg. Sine (2**65)) *)
- 114 PLOSS = 6; (* partial precision loss *)
- 115
- 116 (* Math Constants *)
- 117
- 118 CONST
- 119 M_E = 2.718281828459045240; (* e *)
- 120 M_Log2E = 1.442695040888963410; (* log2 of e *)
- 121 M_Log10E = 0.434294481903251828; (* log10 of e *)
- 122 M_Ln2 = 0.693147180559945309; (* log2 of 2 *)
- 123 M_Ln10 = 2.302585092994045680; (* log2 of 10 *)
- 124 M_Pi = 3.141592653589793240; (* Pi *)
- 125 M_PiBy2 = 1.570796326794896620; (* Pi/2 *)
- 126 M_PiBy4 = 0.785398163397448310; (* Pi/4 *)
- 127 M_1ByPy = 0.318309886183790672; (* 1/Pi *)
- 128 M_2ByPy = 0.636619772367581343; (* 2/Pi *)
- 129 M_1BySqrtPi = 0.564189583547756287; (* 1/sqrt(Pi) *)
- 130 M_2BySqrtPi = 1.128379167095512570; (* 2/sqrt(Pi) *)
- 131 M_Sqrt2 = 1.414213562373095050; (* Sqrt(2) *)
- 132 M_Sqrt2By2 = 0.707106781186547524; (* Sqrt(2)/2 *)
- 133
- 134
- 135
- 136 CONST
- 137 Exception ::= CoreMath.Exception;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 138 StrPtr ::= CoreMath.StrPtr;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 139 MathError ::= CoreMath.matherr;
- ***** ^ not supported yet
- ***** ^ not supported yet
- 140
- 141 END MATHLIB.
- ***** ^ not supported yet
- 45 errors
|