home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / oberon / system / moremath.mod (.txt) < prev    next >
Oberon Text  |  1977-12-31  |  4KB  |  70 lines

  1. Syntax10.Scn.Fnt
  2. ParcElems
  3. Alloc
  4. Syntax24b.Scn.Fnt
  5. Syntax10b.Scn.Fnt
  6. Syntax10i.Scn.Fnt
  7. FoldElems
  8. (* AMIGA *)
  9. MODULE MoreMath;    (* MoreMathL by Christoph Steindl (CS), 11.11.94, AMIGA Ralf Degner (RD) 15.7.95 *)
  10. IMPORT SYSTEM, Math;
  11. CONST
  12.     piOver2 = Math.pi / 2;
  13. PROCEDURE -ulr 04EH, 05EH, 04EH, 075H;     (* ULNK A6; RTS    *)
  14. PROCEDURE -ftan
  15.     0F2H, 02EH, 044H, 00FH, 0000H, 008H;    (* FTAN.S (8, A6), FP0    *)
  16. PROCEDURE -fcot
  17.     (* 1/tan(x)     *)
  18.     0F2H, 000H, 05CH, 032H,    (* FMOVECR.X $ 00000032, FP0     *)
  19.     0F2H, 02EH, 044H, 08FH, 0000H, 008H,    (* FTAN.S (8, A6), FP1     *)
  20.     0F2H, 000H, 004H, 020H;    (* FDIV.X FP1, FP0     *)
  21. PROCEDURE -fasin
  22.     0F2H, 02EH, 044H, 00CH, 0000H, 008H;    (* FASIN.S (8, A6), FP0    *)
  23. PROCEDURE -facos
  24.     0F2H, 02EH, 044H, 01CH, 0000H, 008H;    (* FACOS.S (8, A6), FP0    *)
  25. PROCEDURE -ftanh
  26.     0F2H, 02EH, 044H, 009H, 0000H, 008H,    (* FTANH.S (8, A6), FP0    *)
  27.     04EH, 05EH, 04EH, 075H;    (* ULNK A6; RTS    *)
  28. PROCEDURE -fsinh
  29.     0F2H, 02EH, 044H, 002H, 0000H, 008H;    (* FSINH.S (8, A6), FP0    *)
  30. PROCEDURE -fcosh
  31.     0F2H, 02EH, 044H, 019H, 0000H, 008H;    (* FCOSH.S (8, A6), FP0    *)
  32. PROCEDURE -fatanh
  33.     0F2H, 02EH, 044H, 00DH, 0000H, 008H;    (* FATANH.S (8, A6), FP0    *)
  34. PROCEDURE -facoth
  35.     (* atanh(1/x)     *)
  36.     0F2H, 000H, 05CH, 032H,    (* FMOVECR.X $ 00000032, FP0    *)
  37.     0F2H, 02EH, 044H, 020H, 0000H, 008H,    (* FDIV.S (8, A6), FP0    *)
  38.     0F2H, 000H, 000H, 00DH;    (* FATANH.X FP0, FP0    *)
  39. PROCEDURE tan* (x: REAL): REAL;
  40. BEGIN ftan; ulr END tan;
  41. PROCEDURE cot* (x: REAL): REAL;
  42. BEGIN fcot; ulr END cot;
  43. PROCEDURE arcsin* (x: REAL): REAL;
  44. BEGIN fasin; ulr END arcsin;
  45. PROCEDURE arccot* (x: REAL): REAL;
  46. BEGIN RETURN piOver2 - Math.arctan(x) END arccot;
  47. PROCEDURE arccos* (x: REAL): REAL;
  48. BEGIN facos; ulr END arccos;
  49. PROCEDURE tanh* (x: REAL): REAL;
  50. BEGIN ftanh; ulr END tanh;
  51. PROCEDURE sinh* (x: REAL): REAL;
  52. BEGIN fsinh; ulr END sinh;
  53. PROCEDURE cosh* (x: REAL): REAL;
  54. BEGIN fcosh; ulr END cosh;
  55. PROCEDURE coth* (x: REAL): REAL;
  56.   VAR e1, e2: REAL;
  57. BEGIN
  58.   e1 := Math.exp(x); e2 := 1 / e1;
  59.   RETURN (e1 + e2) / (e1 - e2)
  60. END coth;
  61. PROCEDURE arctanh* (x: REAL): REAL;
  62. BEGIN fatanh; ulr END arctanh;
  63. PROCEDURE arcsinh* (x: REAL): REAL;
  64. BEGIN RETURN arctanh(x / Math.sqrt(1 + x * x)) END arcsinh;
  65. PROCEDURE arcosh* (x: REAL): REAL;
  66. BEGIN RETURN arctanh(Math.sqrt(x * x - 1) / x) END arcosh;
  67. PROCEDURE arcoth* (x: REAL): REAL;
  68. BEGIN facoth; ulr END arcoth;
  69. END MoreMath.Mod
  70.