math.mod 946 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. IMPLEMENTATION MODULE Math;
  2. (* Direct libm bindings (names are valid Modula-2 identifiers and
  3. match the C symbols). `fabs` is exposed as `abs`. *)
  4. PROCEDURE sqrt(x : REAL) : REAL;
  5. EXTERNAL;
  6. PROCEDURE exp(x : REAL) : REAL;
  7. EXTERNAL;
  8. PROCEDURE ln(x : REAL) : REAL;
  9. EXTERNAL;
  10. PROCEDURE sin(x : REAL) : REAL;
  11. EXTERNAL;
  12. PROCEDURE cos(x : REAL) : REAL;
  13. EXTERNAL;
  14. PROCEDURE tan(x : REAL) : REAL;
  15. EXTERNAL;
  16. PROCEDURE asin(x : REAL) : REAL;
  17. EXTERNAL;
  18. PROCEDURE acos(x : REAL) : REAL;
  19. EXTERNAL;
  20. PROCEDURE arctan(x : REAL) : REAL;
  21. EXTERNAL;
  22. PROCEDURE pow(x, y : REAL) : REAL;
  23. EXTERNAL;
  24. PROCEDURE fabs(x : REAL) : REAL;
  25. EXTERNAL;
  26. PROCEDURE arcsin(x : REAL) : REAL;
  27. BEGIN
  28. RETURN asin(x)
  29. END arcsin;
  30. PROCEDURE arccos(x : REAL) : REAL;
  31. BEGIN
  32. RETURN acos(x)
  33. END arccos;
  34. PROCEDURE power(x, y : REAL) : REAL;
  35. BEGIN
  36. RETURN pow(x, y)
  37. END power;
  38. PROCEDURE abs(x : REAL) : REAL;
  39. BEGIN
  40. RETURN fabs(x)
  41. END abs;
  42. END Math.