MATHLIB.MOD 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * MATHLIB.MOD - Floating point support (see also COREMATH.A) *
  5. * *
  6. * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*%F _fdata *)
  11. (*# call(seg_name => null) *)
  12. (*# data(seg_name => null) *)
  13. (*%E *)
  14. (*# check(stack=>off,
  15. index=>off,
  16. range=>off,
  17. overflow=>off,
  18. nil_ptr=>off) *)
  19. (*# module(implementation=>off) *)
  20. IMPLEMENTATION MODULE MATHLIB;
  21. PROCEDURE LoadControlWord(C : BITSET); IN AsmLib;
  22. PROCEDURE StoreControlWord() : BITSET; IN AsmLib;
  23. PROCEDURE ClearExceptions(); IN AsmLib;
  24. PROCEDURE StoreEnvironment(VAR Env: Environment); IN AsmLib;
  25. PROCEDURE InternalBcdToLong(A: PackedBcd) : LONGREAL; IN AsmLib;
  26. PROCEDURE Rexp(VAR I : INTEGER;A : LONGREAL) : LONGREAL;
  27. BEGIN
  28. RETURN CoreMath.frexp(A, I);
  29. END Rexp;
  30. PROCEDURE LongToBcd(A: LONGREAL) : PackedBcd;
  31. VAR res:PackedBcd;
  32. BEGIN
  33. CoreMath._bcd(TEMPREAL(A),NearADR(res));
  34. RETURN res;
  35. END LongToBcd;
  36. PROCEDURE BcdToLong(A: PackedBcd) : LONGREAL;
  37. BEGIN
  38. RETURN InternalBcdToLong(A);
  39. END BcdToLong;
  40. PROCEDURE IntPow(X:LONGREAL;K:INTEGER):LONGREAL;
  41. BEGIN
  42. RETURN LONGREAL(CoreMath._pow_int(TEMPREAL(X),K));
  43. END IntPow;
  44. PROCEDURE ATan2(X,Y : LONGREAL) : LONGREAL;
  45. BEGIN
  46. RETURN CoreMath.atan2(Y, X);
  47. END ATan2;
  48. END MATHLIB.
  49.