trigonometry.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { acosh, asinh, atanh, cosh, sign, sinh, tanh } from '../../utils/number.js';
  2. var n1 = 'number';
  3. var n2 = 'number, number';
  4. export function acosNumber(x) {
  5. return Math.acos(x);
  6. }
  7. acosNumber.signature = n1;
  8. export function acoshNumber(x) {
  9. return acosh(x);
  10. }
  11. acoshNumber.signature = n1;
  12. export function acotNumber(x) {
  13. return Math.atan(1 / x);
  14. }
  15. acotNumber.signature = n1;
  16. export function acothNumber(x) {
  17. return isFinite(x) ? (Math.log((x + 1) / x) + Math.log(x / (x - 1))) / 2 : 0;
  18. }
  19. acothNumber.signature = n1;
  20. export function acscNumber(x) {
  21. return Math.asin(1 / x);
  22. }
  23. acscNumber.signature = n1;
  24. export function acschNumber(x) {
  25. var xInv = 1 / x;
  26. return Math.log(xInv + Math.sqrt(xInv * xInv + 1));
  27. }
  28. acschNumber.signature = n1;
  29. export function asecNumber(x) {
  30. return Math.acos(1 / x);
  31. }
  32. asecNumber.signature = n1;
  33. export function asechNumber(x) {
  34. var xInv = 1 / x;
  35. var ret = Math.sqrt(xInv * xInv - 1);
  36. return Math.log(ret + xInv);
  37. }
  38. asechNumber.signature = n1;
  39. export function asinNumber(x) {
  40. return Math.asin(x);
  41. }
  42. asinNumber.signature = n1;
  43. export function asinhNumber(x) {
  44. return asinh(x);
  45. }
  46. asinhNumber.signature = n1;
  47. export function atanNumber(x) {
  48. return Math.atan(x);
  49. }
  50. atanNumber.signature = n1;
  51. export function atan2Number(y, x) {
  52. return Math.atan2(y, x);
  53. }
  54. atan2Number.signature = n2;
  55. export function atanhNumber(x) {
  56. return atanh(x);
  57. }
  58. atanhNumber.signature = n1;
  59. export function cosNumber(x) {
  60. return Math.cos(x);
  61. }
  62. cosNumber.signature = n1;
  63. export function coshNumber(x) {
  64. return cosh(x);
  65. }
  66. coshNumber.signature = n1;
  67. export function cotNumber(x) {
  68. return 1 / Math.tan(x);
  69. }
  70. cotNumber.signature = n1;
  71. export function cothNumber(x) {
  72. var e = Math.exp(2 * x);
  73. return (e + 1) / (e - 1);
  74. }
  75. cothNumber.signature = n1;
  76. export function cscNumber(x) {
  77. return 1 / Math.sin(x);
  78. }
  79. cscNumber.signature = n1;
  80. export function cschNumber(x) {
  81. // consider values close to zero (+/-)
  82. if (x === 0) {
  83. return Number.POSITIVE_INFINITY;
  84. } else {
  85. return Math.abs(2 / (Math.exp(x) - Math.exp(-x))) * sign(x);
  86. }
  87. }
  88. cschNumber.signature = n1;
  89. export function secNumber(x) {
  90. return 1 / Math.cos(x);
  91. }
  92. secNumber.signature = n1;
  93. export function sechNumber(x) {
  94. return 2 / (Math.exp(x) + Math.exp(-x));
  95. }
  96. sechNumber.signature = n1;
  97. export function sinNumber(x) {
  98. return Math.sin(x);
  99. }
  100. sinNumber.signature = n1;
  101. export function sinhNumber(x) {
  102. return sinh(x);
  103. }
  104. sinhNumber.signature = n1;
  105. export function tanNumber(x) {
  106. return Math.tan(x);
  107. }
  108. tanNumber.signature = n1;
  109. export function tanhNumber(x) {
  110. return tanh(x);
  111. }
  112. tanhNumber.signature = n1;