powiaina_num.js 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -247,7 +247,7 @@
247
247
  if (PowiainaNum.debug >= PowiainaNum.NORMAL) console.log(this + "^-1");
248
248
  if (this.isNaN() || this.eq(PowiainaNum.ZERO)) return PowiainaNum.NaN.clone();
249
249
  if (this.abs().gt("2e323")) return PowiainaNum.ZERO.clone();
250
- return new PowiainaNum(1 / this);
250
+ return PowiainaNum.div(1, this);
251
251
  };
252
252
  Q.reciprocate = Q.rec = function (x) {
253
253
  return new PowiainaNum(x).rec();
@@ -2002,4 +2002,4 @@
2002
2002
  return PowiainaNum;
2003
2003
  //#endregion
2004
2004
 
2005
- })(this);
2005
+ })(this);
package/PowiainaNum.js CHANGED
@@ -123,25 +123,29 @@
123
123
  if (x.sign == -1) return x.neg().add(other.neg()).neg();
124
124
  if (other.sign == -1) return x.sub(other.neg());
125
125
 
126
- if (x.eq(PowiainaNum.ZERO)) return other; // 0+x
127
- if (other.eq(PowiainaNum.ZERO)) return x;
126
+ if (x.eq(PowiainaNum.ZERO)) return other; // 0+x=x
127
+ if (other.eq(PowiainaNum.ZERO)) return x; // x+0=x
128
128
  if (x.isNaN() || other.isNaN() || x.isInfinite() && other.isInfinite() && x.eq(other.neg())) return PowiainaNum.NaN.clone();
129
129
  if (x.isInfinite()) return x;
130
130
  if (other.isInfinite()) return other;
131
131
 
132
132
  var p = x.min(other); // who is smallest
133
133
  var q = x.max(other); // who is biggest
134
- var op0 = q.operatorE(0);
134
+ var op0 = q.operatorE(0);
135
135
  var op1 = q.operatorE(1);
136
136
 
137
137
  var t;
138
138
 
139
139
  if (q.gt(PowiainaNum.E_MAX_SAFE_INTEGER) || q.div(p).gt(PowiainaNum.MAX_SAFE_INTEGER)) {
140
- t = q;
140
+ t = q; // q>e9e15, plus calculating is 'meaningless', q/p>9e15, q+p = q because floating loss,
141
141
  } else if (!op1) {
142
+ // thereis not 10^ signs, add directly
142
143
  t = new PowiainaNum(x.toNumber() + other.toNumber());
143
144
  } else if (op1 == 1) {
144
- var a = p.operator(1) ? p.operator(0) : Math.log10(p.operator(0));
145
+ var a = p.operator(1) ? p.operator(0) : Math.log10(p.operator(0)); // a is a variable: if has 10^ operator, use x from 10^x, else use log10(x)
146
+ // a is p's log10
147
+
148
+ // It calculates the final results of log10
145
149
  t = new PowiainaNum(a + Math.log10(Math.pow(10, op0 - a) + 1));
146
150
  t = PowiainaNum.pow(10, t);
147
151
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powiaina_num.js",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.",
5
5
  "main": "PowiainaNum.js",
6
6
  "module": "PowiainaNum.esm.js",
package/t.d.ts ADDED
@@ -0,0 +1,240 @@
1
+ declare module 'powiaina_num.js' {
2
+ export type PowiainaNumSource = PowiainaNum | number | string
3
+ export default class PowiainaNum {
4
+ constructor(value?: PowiainaNumSource)
5
+
6
+ static readonly ZERO: PowiainaNum
7
+ static readonly ONE: PowiainaNum
8
+ static readonly NaN: PowiainaNum
9
+ static readonly E: PowiainaNum
10
+ static readonly LN2: PowiainaNum
11
+ static readonly LN10: PowiainaNum
12
+ static readonly LOG2E: PowiainaNum
13
+ static readonly LOG10E: PowiainaNum
14
+ static readonly PI: PowiainaNum
15
+ static readonly SQRT1_2: PowiainaNum
16
+ static readonly SQRT2: PowiainaNum
17
+ static readonly MAX_SAFE_INTEGER: PowiainaNum
18
+ static readonly MIN_SAFE_INTEGER: PowiainaNum
19
+ static readonly NEGATIVE_INFINITY: PowiainaNum
20
+ static readonly POSITIVE_INFINITY: PowiainaNum
21
+ static readonly E_MAX_SAFE_INTEGER: PowiainaNum
22
+ static readonly EE_MAX_SAFE_INTEGER: PowiainaNum
23
+ static readonly TETRATED_MAX_SAFE_INTEGER: PowiainaNum
24
+ static readonly PENTATED_MAX_SAFE_INTEGER: PowiainaNum
25
+ static readonly GRAHAMS_NUMBER: PowiainaNum
26
+ static readonly THROOTRIADEKOL: PowiainaNum
27
+
28
+ abs(): PowiainaNum
29
+ static abs(x: PowiainaNumSource): PowiainaNum
30
+ plus(other: PowiainaNumSource): PowiainaNum
31
+ static plus(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
32
+ add(other: PowiainaNumSource): PowiainaNum
33
+ static add(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
34
+ minus(other: PowiainaNumSource): PowiainaNum
35
+ static minus(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
36
+ sub(other: PowiainaNumSource): PowiainaNum
37
+ static sub(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
38
+ times(other: PowiainaNumSource): PowiainaNum
39
+ static times(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
40
+ mul(other: PowiainaNumSource): PowiainaNum
41
+ static mul(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
42
+ divide(other: PowiainaNumSource): PowiainaNum
43
+ static divide(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
44
+ div(other: PowiainaNumSource): PowiainaNum
45
+ static div(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
46
+ reciprocate(): PowiainaNum
47
+ static reciprocate(x: PowiainaNumSource): PowiainaNum
48
+ rec(): PowiainaNum
49
+ static rec(x: PowiainaNumSource): PowiainaNum
50
+
51
+ toPower(other: PowiainaNumSource): PowiainaNum
52
+ static toPower(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
53
+ pow(other: PowiainaNumSource): PowiainaNum
54
+ static pow(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
55
+
56
+ exponential(): PowiainaNum
57
+ static exponential(x: PowiainaNumSource): PowiainaNum
58
+ exp(): PowiainaNum
59
+ static exp(x: PowiainaNumSource): PowiainaNum
60
+
61
+ squareRoot(): PowiainaNum
62
+ static squareRoot(x: PowiainaNumSource): PowiainaNum
63
+ sqrt(): PowiainaNum
64
+ static sqrt(x: PowiainaNumSource): PowiainaNum
65
+ cubeRoot(): PowiainaNum
66
+ static cubeRoot(x: PowiainaNumSource): PowiainaNum
67
+ cbrt(): PowiainaNum
68
+ static cbrt(x: PowiainaNumSource): PowiainaNum
69
+ root(other: PowiainaNumSource): PowiainaNum
70
+ static root(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
71
+
72
+ generalLogarithm(): PowiainaNum
73
+ static generalLogarithm(x: PowiainaNumSource): PowiainaNum
74
+ log10(): PowiainaNum
75
+ static log10(x: PowiainaNumSource): PowiainaNum
76
+
77
+ logarithm(other: PowiainaNumSource): PowiainaNum
78
+ static logarithm(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
79
+ logBase(other: PowiainaNumSource): PowiainaNum
80
+ static logBase(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
81
+
82
+ naturalLogarithm(): PowiainaNum
83
+ static naturalLogarithm(x: PowiainaNumSource): PowiainaNum
84
+ log(): PowiainaNum
85
+ static log(x: PowiainaNumSource): PowiainaNum
86
+ ln(): PowiainaNum
87
+ static ln(x: PowiainaNumSource): PowiainaNum
88
+
89
+ iteratedexp(other: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum
90
+ static iteratedexp(
91
+ x: PowiainaNumSource,
92
+ other: PowiainaNumSource,
93
+ payload?: PowiainaNumSource,
94
+ ): PowiainaNum
95
+
96
+ iteratedlog(base: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
97
+ static iteratedlog(
98
+ x: PowiainaNumSource,
99
+ y: PowiainaNumSource,
100
+ z: PowiainaNumSource,
101
+ ): PowiainaNum
102
+
103
+ iteratedslog(other: PowiainaNumSource): PowiainaNum
104
+
105
+ tetrate(other: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum
106
+ static tetrate(
107
+ x: PowiainaNumSource,
108
+ y: PowiainaNumSource,
109
+ payload?: PowiainaNumSource,
110
+ ): PowiainaNum
111
+
112
+ ssqrt(): PowiainaNum
113
+ ssrt(): PowiainaNum
114
+ static ssqrt(x: PowiainaNumSource): PowiainaNum
115
+ static ssrt(x: PowiainaNumSource): PowiainaNum
116
+
117
+ slog(base: PowiainaNumSource): PowiainaNum
118
+ static slog(): PowiainaNum
119
+
120
+ pentate(other: PowiainaNumSource): PowiainaNum
121
+ static pentate(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
122
+ pent(other: PowiainaNumSource): PowiainaNum
123
+ static pent(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
124
+
125
+ arrow(other: PowiainaNumSource): (other: PowiainaNumSource) => PowiainaNum
126
+ static arrow(x: PowiainaNumSource, z: PowiainaNumSource, y: PowiainaNumSource): PowiainaNum
127
+
128
+ add1J(): PowiainaNum
129
+
130
+ chain(other: PowiainaNumSource, arrows: PowiainaNumSource): PowiainaNum
131
+ static chain(
132
+ x: PowiainaNumSource,
133
+ y: PowiainaNumSource,
134
+ z: PowiainaNumSource,
135
+ ): PowiainaNumSource
136
+
137
+ static hyper(z: PowiainaNumSource): (x: PowiainaNumSource, y: PowiainaNumSource) => PowiainaNum
138
+
139
+ expansion(other: PowiainaNumSource): PowiainaNum
140
+ static expansion(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
141
+ eps(other: PowiainaNumSource): PowiainaNum
142
+ static eps(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
143
+
144
+ multiExpansion(other: PowiainaNumSource): PowiainaNum
145
+ static multiExpansion(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
146
+ mulEps(other: PowiainaNumSource): PowiainaNum
147
+ static mulEps(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
148
+
149
+ powerExpansion(other: PowiainaNumSource): PowiainaNum
150
+ static powerExpansion(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
151
+ powEps(other: PowiainaNumSource): PowiainaNum
152
+ static powEps(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
153
+
154
+ static expansionArrow(other: PowiainaNumSource, array: PowiainaNumSource): PowiainaNum
155
+ static epsArrow(other: PowiainaNumSource, array: PowiainaNumSource): PowiainaNum
156
+
157
+ explosion(other: PowiainaNumSource): PowiainaNum
158
+ static explosion(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
159
+ els(other: PowiainaNumSource): PowiainaNum
160
+ static els(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
161
+
162
+ compareTo(other: PowiainaNumSource): -1 | 0 | 1
163
+ cmp(other: PowiainaNumSource): -1 | 0 | 1
164
+ static compareTo(x: PowiainaNumSource, y: PowiainaNumSource): -1 | 0 | 1
165
+ static cmp(x: PowiainaNumSource, y: PowiainaNumSource): -1 | 0 | 1
166
+
167
+ static explosionArrow(other: PowiainaNumSource, array: PowiainaNumSource): PowiainaNum
168
+ static elsArrow(other: PowiainaNumSource, array: PowiainaNumSource): PowiainaNum
169
+
170
+ isInteger(): boolean
171
+ isint(): boolean
172
+ static isInteger(x: PowiainaNumSource): boolean
173
+ static isint(x: PowiainaNumSource): boolean
174
+
175
+ floor(): PowiainaNum
176
+ static floor(x: PowiainaNumSource): PowiainaNum
177
+ ceiling(): PowiainaNum
178
+ static ceiling(x: PowiainaNumSource): PowiainaNum
179
+ ceil(): PowiainaNum
180
+ static ceil(x: PowiainaNumSource): PowiainaNum
181
+ round(): PowiainaNum
182
+ static round(x: PowiainaNumSource): PowiainaNum
183
+
184
+ greaterThan(other: PowiainaNumSource): boolean
185
+ static greaterThan(x: PowiainaNumSource, y: PowiainaNumSource): boolean
186
+ gt(other: PowiainaNumSource): boolean
187
+ static gt(x: PowiainaNumSource, y: PowiainaNumSource): boolean
188
+
189
+ greaterThanOrEqualTo(other: PowiainaNumSource): boolean
190
+ static greaterThanOrEqualTo(x: PowiainaNumSource, y: PowiainaNumSource): boolean
191
+ gte(other: PowiainaNumSource): boolean
192
+ static gte(x: PowiainaNumSource, y: PowiainaNumSource): boolean
193
+
194
+ lessThan(other: PowiainaNumSource): boolean
195
+ static lessThan(x: PowiainaNumSource, y: PowiainaNumSource): boolean
196
+ lt(other: PowiainaNumSource): boolean
197
+ static lt(x: PowiainaNumSource, y: PowiainaNumSource): boolean
198
+
199
+ lessThanOrEqualTo(other: PowiainaNumSource): boolean
200
+ static lessThanOrEqualTo(x: PowiainaNumSource, y: PowiainaNumSource): boolean
201
+ lte(other: PowiainaNumSource): boolean
202
+ static lte(x: PowiainaNumSource, y: PowiainaNumSource): boolean
203
+
204
+ equalsTo(other: PowiainaNumSource): boolean
205
+ static equalsTo(x: PowiainaNumSource, y: PowiainaNumSource): boolean
206
+ eq(other: PowiainaNumSource): boolean
207
+ static eq(x: PowiainaNumSource, y: PowiainaNumSource): boolean
208
+ notEqualsTo(other: PowiainaNumSource): boolean
209
+ static notEqualsTo(x: PowiainaNumSource, y: PowiainaNumSource): boolean
210
+ neq(other: PowiainaNumSource): boolean
211
+ static neq(x: PowiainaNumSource, y: PowiainaNumSource): boolean
212
+
213
+ minimum(other: PowiainaNumSource): PowiainaNum
214
+ min(other: PowiainaNumSource): PowiainaNum
215
+ static minimum(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
216
+ static min(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
217
+
218
+ maximum(other: PowiainaNumSource): PowiainaNum
219
+ max(other: PowiainaNumSource): PowiainaNum
220
+ static maximum(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
221
+ static max(x: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum
222
+
223
+ toNumber(): number
224
+
225
+ toString(type: undefined | 1): string
226
+ operator(i: number, j: number, k: number): number
227
+ operator(i: number, j: number, k: number, val: number): void
228
+ overflow(
229
+ start: PowiainaNumSource,
230
+ power: PowiainaNumSource,
231
+ meta: PowiainaNumSource,
232
+ ): PowiainaNum
233
+ clone(): PowiainaNum
234
+
235
+ isNaN(): boolean
236
+ array: [number, ...([number | string, number, number, number]|[never, number, string, number])[]]
237
+ layer: number
238
+ sign: 1 | 0 | -1
239
+ }
240
+ }