math.mod 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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 log(x : REAL) : REAL;
  9. EXTERNAL;
  10. PROCEDURE ln(x : REAL) : REAL;
  11. BEGIN
  12. RETURN log(x)
  13. END ln;
  14. PROCEDURE sin(x : REAL) : REAL;
  15. EXTERNAL;
  16. PROCEDURE cos(x : REAL) : REAL;
  17. EXTERNAL;
  18. PROCEDURE tan(x : REAL) : REAL;
  19. EXTERNAL;
  20. PROCEDURE asin(x : REAL) : REAL;
  21. EXTERNAL;
  22. PROCEDURE acos(x : REAL) : REAL;
  23. EXTERNAL;
  24. PROCEDURE atan(x : REAL) : REAL;
  25. EXTERNAL;
  26. PROCEDURE arctan(x : REAL) : REAL;
  27. BEGIN
  28. RETURN atan(x)
  29. END arctan;
  30. PROCEDURE pow(x, y : REAL) : REAL;
  31. EXTERNAL;
  32. PROCEDURE fabs(x : REAL) : REAL;
  33. EXTERNAL;
  34. PROCEDURE log10(x : REAL) : REAL;
  35. EXTERNAL;
  36. PROCEDURE atan2(y, x : REAL) : REAL;
  37. EXTERNAL;
  38. PROCEDURE sinh(x : REAL) : REAL;
  39. EXTERNAL;
  40. PROCEDURE cosh(x : REAL) : REAL;
  41. EXTERNAL;
  42. PROCEDURE tanh(x : REAL) : REAL;
  43. EXTERNAL;
  44. PROCEDURE hypot(x, y : REAL) : REAL;
  45. EXTERNAL;
  46. PROCEDURE floor(x : REAL) : REAL;
  47. EXTERNAL;
  48. PROCEDURE ceil(x : REAL) : REAL;
  49. EXTERNAL;
  50. PROCEDURE trunc(x : REAL) : REAL;
  51. EXTERNAL;
  52. PROCEDURE round(x : REAL) : REAL;
  53. EXTERNAL;
  54. PROCEDURE fmod(x, y : REAL) : REAL;
  55. EXTERNAL;
  56. PROCEDURE arcsin(x : REAL) : REAL;
  57. BEGIN
  58. RETURN asin(x)
  59. END arcsin;
  60. PROCEDURE arccos(x : REAL) : REAL;
  61. BEGIN
  62. RETURN acos(x)
  63. END arccos;
  64. PROCEDURE power(x, y : REAL) : REAL;
  65. BEGIN
  66. RETURN pow(x, y)
  67. END power;
  68. PROCEDURE abs(x : REAL) : REAL;
  69. BEGIN
  70. RETURN fabs(x)
  71. END abs;
  72. END Math.