longmath.mod 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. IMPLEMENTATION MODULE LongMath;
  2. IMPORT Math;
  3. PROCEDURE sqrt (x : LONGREAL) : LONGREAL;
  4. BEGIN RETURN Math.sqrt(x) END sqrt;
  5. PROCEDURE exp (x : LONGREAL) : LONGREAL;
  6. BEGIN RETURN Math.exp(x) END exp;
  7. PROCEDURE ln (x : LONGREAL) : LONGREAL;
  8. BEGIN RETURN Math.ln(x) END ln;
  9. PROCEDURE sin (x : LONGREAL) : LONGREAL;
  10. BEGIN RETURN Math.sin(x) END sin;
  11. PROCEDURE cos (x : LONGREAL) : LONGREAL;
  12. BEGIN RETURN Math.cos(x) END cos;
  13. PROCEDURE tan (x : LONGREAL) : LONGREAL;
  14. BEGIN RETURN Math.tan(x) END tan;
  15. PROCEDURE arcsin (x : LONGREAL) : LONGREAL;
  16. BEGIN RETURN Math.arcsin(x) END arcsin;
  17. PROCEDURE arccos (x : LONGREAL) : LONGREAL;
  18. BEGIN RETURN Math.arccos(x) END arccos;
  19. PROCEDURE arctan (x : LONGREAL) : LONGREAL;
  20. BEGIN RETURN Math.arctan(x) END arctan;
  21. PROCEDURE power (base, exponent : LONGREAL) : LONGREAL;
  22. BEGIN RETURN Math.power(base, exponent) END power;
  23. PROCEDURE round (x : LONGREAL) : INTEGER;
  24. (* nearest integer, halves away from zero *)
  25. BEGIN
  26. IF x >= 0.0 THEN
  27. RETURN VAL(INTEGER, Math.floor(x + 0.5))
  28. ELSE
  29. RETURN VAL(INTEGER, Math.ceil(x - 0.5))
  30. END
  31. END round;
  32. PROCEDURE IsRMathException () : BOOLEAN;
  33. BEGIN
  34. RETURN FALSE
  35. END IsRMathException;
  36. END LongMath.