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