metanum 1.4.0 → 2.0.1
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.
- package/README.md +474 -114
- package/format-metanum.js +934 -115
- package/metanum.js +1462 -497
- package/package.json +32 -23
- package/test_mixed.js +878 -47
- package/.gitattributes +0 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/metanum)
|
|
4
4
|
|
|
5
|
-
- MetaNum
|
|
5
|
+
- MetaNum v2.0 by dlsdl
|
|
6
6
|
|
|
7
7
|
A huge number library holding up to X↑↑X&9e15.
|
|
8
8
|
|
|
@@ -32,15 +32,15 @@ const a = new MetaNum(428571);
|
|
|
32
32
|
const b = MetaNum.fromNumber(-2.71828);
|
|
33
33
|
|
|
34
34
|
// From a string (supports scientific notation, hyper-operations, letter notation, brackets, etc.)
|
|
35
|
-
const c = new MetaNum("1.
|
|
36
|
-
const d = MetaNum.fromString("
|
|
35
|
+
const c = new MetaNum("1.797e308");
|
|
36
|
+
const d = MetaNum.fromString("1F5"); // tetration: 10^^5
|
|
37
37
|
const e = MetaNum.fromString("E100#2"); // Hyper-E: 10^10^100 (googolplex)
|
|
38
38
|
const f = MetaNum.fromString("GF^2 E^3 123"); // letter notation
|
|
39
39
|
const g = MetaNum.fromString("Aa100"); // letter notation
|
|
40
40
|
const h = MetaNum.fromString("[[10], [1, 3]]"); // bracket notation
|
|
41
41
|
|
|
42
42
|
// From an array
|
|
43
|
-
const i = MetaNum.fromArray([2.71828, 1, 2]); // [[
|
|
43
|
+
const i = MetaNum.fromArray([2.71828, 1, 2]); // array=[[2.71828, 1, 2]], =10^^10^^10^2.71828
|
|
44
44
|
const j = MetaNum.fromArray([10], 1, 1); // layer 1
|
|
45
45
|
|
|
46
46
|
// From an object / JSON
|
|
@@ -171,6 +171,14 @@ new MetaNum(100).linear_sroot(3); // ³ss̅r̅t̅(100)
|
|
|
171
171
|
// Layer arithmetic
|
|
172
172
|
new MetaNum(10).layeradd(3); // add 3 layers of exponentiation
|
|
173
173
|
new MetaNum(10).layeradd10(3); // 10^^3 (explicit base 10)
|
|
174
|
+
|
|
175
|
+
// General hyperoperation inverses: if a{b}c = d then
|
|
176
|
+
// d.hyper_log(a)(b) = c and d.hyper_root(c)(b) = a
|
|
177
|
+
MetaNum(14).hyper_log(2)(0); // 2*7 = 14 → 7
|
|
178
|
+
MetaNum(100000).hyper_log(10)(1); // 10^5 → 5
|
|
179
|
+
MetaNum(65536).hyper_log(2)(2); // 2↑↑4 → 4 (slog)
|
|
180
|
+
MetaNum(65536).hyper_root(4)(2); // 2↑↑4 → 2 (base recovery)
|
|
181
|
+
MetaNum(10).arrow(3)(3).hyper_root(3)(3); // 10↑↑↑3 → 10
|
|
174
182
|
```
|
|
175
183
|
|
|
176
184
|
## Hyper-Operations up to ε₀
|
|
@@ -283,6 +291,26 @@ x.aperixxate(3); // apix(3) = hwpw
|
|
|
283
291
|
x.epsilonate(3); // epsl(3) = hepsl
|
|
284
292
|
```
|
|
285
293
|
|
|
294
|
+
### The ω^ω … ε₀ operations follow rule 3 exactly
|
|
295
|
+
|
|
296
|
+
Every operation above is evaluated with the unified limit rule
|
|
297
|
+
`n{λ}b = n{λ[b]}n` — the final operand is the **base** n, never b. Whenever the
|
|
298
|
+
reduced level λ[y] still fits a Cantor-normal-form coefficient row the whole
|
|
299
|
+
fundamental-sequence cascade is evaluated:
|
|
300
|
+
|
|
301
|
+
```javascript
|
|
302
|
+
MetaNum(3).iterate(5); // 3{ω^ω}5 = 3{ω^5}3 = 3{ω^4*3}3 = …
|
|
303
|
+
// … = 3{ω^4*2+ω^3*2+ω^2*2+ω*2+2}3 → top row [1,2,2,2,2,2]
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Levels ≥ ω^ω have no finite coefficient row, so the result is stored as the
|
|
307
|
+
compact **layer marker** of λ[y] (see the representation rule above: layer L ⇒
|
|
308
|
+
`10{ω^ω^…((L-1) ω^'s)…^(bracket)}10`):
|
|
309
|
+
|
|
310
|
+
so the encoded ordinals grow with the operation
|
|
311
|
+
(`iter < itmu < cube < expo < tria < trix < apix < epsl`) and with y, and
|
|
312
|
+
`epsilonate(MSI)` is exactly the library's ε-tower cap.
|
|
313
|
+
|
|
286
314
|
## Inverse Operations
|
|
287
315
|
|
|
288
316
|
Each expansion operation has a corresponding inverse for decrementing ordinal structure:
|
|
@@ -324,35 +352,107 @@ x.i_apix(z) // iwpw = inverse of aperixxate
|
|
|
324
352
|
x.i_epsl(z) // iepsl = inverse of epsilonate
|
|
325
353
|
```
|
|
326
354
|
|
|
355
|
+
### Fractional hyperoperation levels
|
|
356
|
+
|
|
357
|
+
Levels interpolate geometrically (README rule (i)); `x{n+f}y = x{n+1}(θf)`
|
|
358
|
+
with `θf` continuous between `x{n}y` (f=0) and `x{n+1}y` (f=1). For the
|
|
359
|
+
canonical diagonal this is exactly `10{n+f}10 = 10{n+1}(2·5^f)`:
|
|
360
|
+
|
|
361
|
+
```javascript
|
|
362
|
+
MetaNum(10).arrow(3.5)(10); // 10{3.5}10 = 10{4}(2·5^0.5)
|
|
363
|
+
MetaNum(10).arrow(3.2)(10); // monotone between 10{3}10 and 10{4}10
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Non-integer arguments at ordinal levels
|
|
367
|
+
|
|
368
|
+
The same continuity applies to the ω-and-above operations. Successor levels
|
|
369
|
+
follow `x{α}(m+f) = x{α-1}` applied m times to `x^f`; the ω level matches
|
|
370
|
+
`aperiote` exactly, so composition identity holds verbatim:
|
|
371
|
+
|
|
372
|
+
```javascript
|
|
373
|
+
MetaNum(10).expande(2.1); // 10{ω+1}2.1 = 10{ω}10{ω}(10^0.1)
|
|
374
|
+
MetaNum(10).expande(2); // 10{ω}10 (continuous at the integers)
|
|
375
|
+
MetaNum(10).multiexpande(2.1); // (10{ω+1})²(10^0.1)
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
**Limit levels take the fundamental sequence at the full (fractional) `y`**, so
|
|
379
|
+
the fraction is never dropped (`h20(10,2.1)` ≠ `h20(10,2)`). The sequence can
|
|
380
|
+
then carry fractional coefficients, which resolve against the base x because on
|
|
381
|
+
the diagonal ω reads as x:
|
|
382
|
+
|
|
383
|
+
- ω^(k)·(c+f) = ω^(k)·c + ω^(k-1)·(x·f), applied top-down (ω^0.1 = x^0.1), so
|
|
384
|
+
only the constant term can still be fractional;
|
|
385
|
+
- a leftover fractional constant γ+f is one level of interpolation:
|
|
386
|
+
**x{γ+f}x = x{γ+1}(2·(x/2)^f)** — continuous at f=0 because x{γ+1}2 = x{γ}x.
|
|
387
|
+
|
|
388
|
+
**Successor levels** keep `x{α}(m+f) = x{α-1}` applied m times to `x^f`, and they
|
|
389
|
+
are stored in the same **expanded** form as the integer arguments: the α-1 row
|
|
390
|
+
carries the m applications (`ceil(y)-2 = m-1`) and the cascade below it is
|
|
391
|
+
generated at the fundamental-sequence index `x^f`, so the value grows with f
|
|
392
|
+
inside the interval and converges to the next integer as f → 1:
|
|
393
|
+
|
|
394
|
+
```javascript
|
|
395
|
+
MetaNum(10).h21(2.0001); // Ba2.218Ab9 f → 0: cascade bottoming at ω
|
|
396
|
+
MetaNum(10).h21(2.5); // Ba1.772Ad9 the cascade deepens with f
|
|
397
|
+
MetaNum(10).h21(2.99); // Ba2.447Aj9 → converges to h21(10,3) = Ba1.000Ak9
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
For the ω+1 / ω+2 / ω+3 levels the applications after the first still have an
|
|
401
|
+
operand inside MSI, so those are evaluated directly by the rule (that is the
|
|
402
|
+
`10{ω}10{ω}(10^0.1)` composition above) — which is also the exact identity.
|
|
403
|
+
An iteration count beyond direct evaluation diagonalizes through the engine's
|
|
404
|
+
huge-argument convention (y plus one α-level marker row). Then we have:
|
|
405
|
+
|
|
406
|
+
10{ω\*2}2.1=10{ω+2.1}10=10{ω+3}2\*5^0.1 (because 10{ω+2}10=10{ω+3}2)
|
|
407
|
+
|
|
408
|
+
3{ω\*2}2.1=3{ω+2.1}3=3{ω+3}2\*1.5^0.1
|
|
409
|
+
|
|
410
|
+
10{ω^2}2.1=10{ω\*2.1}10=10{ω\*2+10\*0.1}10=10{ω\*2+1}10
|
|
411
|
+
|
|
412
|
+
3{ω^2}2.1=3{ω\*2.1}3=3{ω\*2+3\*0.1}10=3{ω\*2+0.3}3=3{ω\*2+1}2\*1.5^0.3
|
|
413
|
+
|
|
414
|
+
10{ω^ω}2.1=10{ω^2.1}10=10{ω^2\*10^0.1}10=10{ω^2\*1.258925}10=10{ω^2\*1+ω\*2+5.8925}10=10{ω^2\*1+ω\*2+6}2*5^0.8925
|
|
415
|
+
|
|
416
|
+
3{ω^ω}2.1=3{ω^2.1}3=3{ω^2\*3^0.1}3=3{ω^2\*1.116123}3=3{ω^2\*1+1.045107}3=3{ω^2\*1+2}2*1.5^0.045107
|
|
417
|
+
|
|
327
418
|
## BEAF Operations
|
|
328
419
|
|
|
329
420
|
Bowers' Exploding Array Function (BEAF) is supported via ordinal arithmetic for 3+ arguments:
|
|
330
421
|
|
|
331
422
|
```javascript
|
|
332
|
-
// BEAF(a,b,c,d,e,f,...) = a{...+ω^3*(f-1)+ω^2*(e-1)+ω*(d-1)+
|
|
423
|
+
// BEAF(a,b,c,d,e,f,...) = a{...+ω^3*(f-1)+ω^2*(e-1)+ω*(d-1)+c}b
|
|
424
|
+
// (the constant term keeps its value; ω-and-above coefficients decrement by 1)
|
|
333
425
|
|
|
334
426
|
// 3-entry: {a,b,c} = a↑^c b (standard up-arrow notation)
|
|
335
427
|
MetaNum.BEAF(3, 3, 2); // 3↑↑3 = 7625597484987
|
|
336
428
|
MetaNum.BEAF(3, 3, 3); // 3↑↑↑3 = tritri
|
|
337
429
|
|
|
338
|
-
// 4-entry: {a,b,c,d} = a(ω*d+c level operation)b
|
|
430
|
+
// 4-entry: {a,b,c,d} = a(ω*(d-1)+c level operation)b
|
|
339
431
|
MetaNum.BEAF(2, 2, 1, 2); // 2{ω}2
|
|
340
|
-
MetaNum.BEAF(3, 3, 3, 3); // 3{ω*2+
|
|
432
|
+
MetaNum.BEAF(3, 3, 3, 3); // 3{ω*2+3}3
|
|
341
433
|
|
|
342
434
|
// 5+ entry: ordinal arithmetic
|
|
343
435
|
MetaNum.BEAF(10, 2, 1, 1, 2); // 10{ω^2}2
|
|
344
|
-
MetaNum.BEAF(3, 3, 3, 3, 2); // 3{ω^2
|
|
345
|
-
MetaNum.BEAF(4, 5, 6, 7, 8, 9); // 4{ω^3*8+ω^2*7+ω*6+
|
|
436
|
+
MetaNum.BEAF(3, 3, 3, 3, 2); // 3{ω^2+ω*2+3}3
|
|
437
|
+
MetaNum.BEAF(4, 5, 6, 7, 8, 9); // 4{ω^3*8+ω^2*7+ω*6+6}5
|
|
438
|
+
|
|
439
|
+
// Ordinal expansion order and truncation (maxRows = 100 by default):
|
|
440
|
+
// the expansion evaluates from the largest ordinal down and keeps the largest
|
|
441
|
+
// maxRows-1 ordinal rows. Without truncation the expansion is exact, e.g.
|
|
442
|
+
// BEAF(3,3,5,5,5) = 3{ω^2*4+ω*4+5}3 enumerates all 50 sub-ordinals.
|
|
443
|
+
// When the expansion exceeds the row budget the base defaults to [10] and the
|
|
444
|
+
// first kept row's count is incremented by 1 as a truncation marker, e.g.
|
|
445
|
+
// BEAF(5,5,1,1,1,2) = 5{ω^3+1}5 → [[10],[4,2,0,1],...,[3,0,0,0,1]].
|
|
346
446
|
|
|
347
447
|
// nested BEAF: {a,{b,c,d,e},f,g,h}
|
|
348
448
|
// An argument exceeding MSI supremum-collapses (use fundamental sequences rules):
|
|
349
449
|
// ω*i+HUGE ≈ ω*(i+1), ω^i*HUGE ≈ ω^(i+1), etc.
|
|
350
450
|
// (lower coefficients are swallowed), and the result anchors at that argument's value.
|
|
351
|
-
MetaNum.BEAF(4, MetaNum.BEAF(4, 2, 3, 5), 3, 5); // 4{ω*4+
|
|
451
|
+
MetaNum.BEAF(4, MetaNum.BEAF(4, 2, 3, 5), 3, 5); // 4{ω*4+3}4{ω*4+3}2
|
|
352
452
|
|
|
353
453
|
// Parse BEAF string notation
|
|
354
454
|
MetaNum.fromBeaf("{3,3,3}"); // 3↑↑↑3
|
|
355
|
-
MetaNum.fromBeaf("{3,3,3,3}"); // 3{ω*2+
|
|
455
|
+
MetaNum.fromBeaf("{3,3,3,3}"); // 3{ω*2+3}3
|
|
356
456
|
MetaNum.fromBeaf("{10,2,1,1,2}"); // 10{ω^2}2
|
|
357
457
|
|
|
358
458
|
// Convert to BEAF string
|
|
@@ -360,6 +460,66 @@ new MetaNum(7625597484987).toBeaf(); // "{7625597484987}"
|
|
|
360
460
|
MetaNum.BEAF(3,3,3).toBeaf(); // "{3638334640023.7783}"
|
|
361
461
|
```
|
|
362
462
|
|
|
463
|
+
## Hardy Hierarchy
|
|
464
|
+
|
|
465
|
+
`MetaNum.hardy(n)` evaluates the Hardy hierarchy `H_α(10)` where the ordinal α
|
|
466
|
+
is built from the decimal digits of n (base 10, `hardy(1234) = H_{ω³+ω²·2+ω·3+4}(10)`):
|
|
467
|
+
|
|
468
|
+
```javascript
|
|
469
|
+
MetaNum.hardy(10); // H_ω(10) = 20
|
|
470
|
+
MetaNum.hardy(11); // H_{ω+1}(10) = 22
|
|
471
|
+
MetaNum.hardy(100); // H_{ω²}(10) = 10240
|
|
472
|
+
MetaNum.hardy(1234); // H_{ω³+ω²·2+ω·3+4}(10), exact for small levels and
|
|
473
|
+
// engine-collapsed (F_j = H^{ω^j}) for deep segments
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Recursion rules: `H_0(n) = n`, `H_{α+1}(n) = H_α(n+1)` (only +1, never
|
|
477
|
+
iterated), `H_λ(n) = H_{λ[n]}(n)` with the CNF fundamental sequences.
|
|
478
|
+
|
|
479
|
+
### Hardy beyond ω^ω
|
|
480
|
+
|
|
481
|
+
For n ≥ 1e10 the leading exponent k ≥ 10 is itself converted to a base-10
|
|
482
|
+
ordinal, so `hardy(1e11) = H_{ω^(ω+1)}(10)` sits at the `10{ω+1}10` scale
|
|
483
|
+
(via `H_{ω^β}(n) = F_β(n)`), not the flat `10{11}10` scale. The value is
|
|
484
|
+
evaluated per the definition (from below), so it is strictly BELOW the
|
|
485
|
+
matching engine hyper-op:
|
|
486
|
+
|
|
487
|
+
```javascript
|
|
488
|
+
MetaNum.hardy(1e10); // = H_{ω^ω}(10) = H_{ω^10}(10), array exactly
|
|
489
|
+
// [3086.036065328153, 9,9,9,9,9,9,9,9] — below 10{10}10
|
|
490
|
+
MetaNum.hardy(1e11); // = H_{ω^(ω+1)}(10) — below 10{ω+1}10 (expande(10,10))
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
More generally, with n = dk·10^kExp + rest: α = ω^ord(kExp)·dk + ord(rest) is
|
|
494
|
+
built recursively (n1 = H_ord(rest)(10), base = H_{ω^n1}(n1) when n1 is a
|
|
495
|
+
small finite), and the rows of 10{ω+c}(9+dk) are mirrored onto that base for
|
|
496
|
+
kExp ≥ 11. hardy is monotone across this range:
|
|
497
|
+
`hardy(9999999999) < hardy(1e10) < hardy(10000000001)`.
|
|
498
|
+
|
|
499
|
+
hardy(1e20) = H_{ω^(ω*2)}(10), hardy(1e100)=H_{ω^(ω^2)}(10), hardy(e1e10)=H_{ω^(ω^ω)}(10), and so on.
|
|
500
|
+
|
|
501
|
+
### hardy input extensions
|
|
502
|
+
|
|
503
|
+
```javascript
|
|
504
|
+
MetaNum.hardy(1e21); // >1e20 scientific strings expand to exact
|
|
505
|
+
// digits — the reading stays monotone:
|
|
506
|
+
// hardy(1e20) < hardy(1e21) < hardy(1e22)
|
|
507
|
+
MetaNum.hardy(MetaNum(10).tetr(100));
|
|
508
|
+
// power towers shadow to ω^ω^…^ω (k ω's):
|
|
509
|
+
// hardy(10^^k) = 10.epsilonate(k)
|
|
510
|
+
MetaNum.hardy(MetaNum(10).tetr(Number.MAX_SAFE_INTEGER));
|
|
511
|
+
// hardy(10^^MSI) = the MetaNum limit exactly:
|
|
512
|
+
// 10{ω^ω^…^ω(MSI ω's)}10 (the ε-tower cap)
|
|
513
|
+
MetaNum.hardy(MetaNum("G600")) // MetaNum-object > 10^^MSI should return Infinity
|
|
514
|
+
MetaNum.hardy(MetaNum.arrow(3, 9, 3)) // = Infinity (3{9}3 is far above 10^^MSI)
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
`MetaNum.infinity` (alias of `MetaNum.POSITIVE_INFINITY`) is the value returned
|
|
518
|
+
once the input passes the ε₀ ceiling: any MetaNum beyond `10^^MSI` — e.g. `G600`
|
|
519
|
+
(= 10{3}600), `3{9}3`, or a power tower taller than `10^^MSI` — has no Hardy
|
|
520
|
+
level inside the library, so `hardy` yields Infinity. Below the ceiling the
|
|
521
|
+
tower height still reads exactly: `hardy(10^^(MSI-1)) = 10.epsilonate(MSI-1)`.
|
|
522
|
+
|
|
363
523
|
## Layer & Serialization
|
|
364
524
|
|
|
365
525
|
```javascript
|
|
@@ -378,6 +538,9 @@ new MetaNum(100).toPrecision(3); // "100"
|
|
|
378
538
|
new MetaNum(100).toHyperE(); // "100"
|
|
379
539
|
new MetaNum(100).toStringWithDecimalPlaces(4); // "100.0000"
|
|
380
540
|
new MetaNum(100).toJSON(); // {sign:1, array:[[100]], layer:0}
|
|
541
|
+
new MetaNum(100).format(); // letter notation (format-metanum.js),
|
|
542
|
+
// e.g. MetaNum.hardy(4166).format() → "2.397G5"
|
|
543
|
+
// optional args: format(precision, small)
|
|
381
544
|
```
|
|
382
545
|
|
|
383
546
|
## Utility Functions
|
|
@@ -428,6 +591,50 @@ where α\[b] denotes the b-th element of the fundamental sequence assign to the
|
|
|
428
591
|
- (ω^(α_1)+ω^(α_2)+...+ω^(α_k))\[n]=ω^(α_1)+ω^(α_2)+...+ω^(α_k)\[n], where α_1>=α_2>=...>=α_k
|
|
429
592
|
- ε₀\[0]=1 and ε₀\[n+1]=ω^ε₀\[n]
|
|
430
593
|
|
|
594
|
+
### The application count of each ordinal row
|
|
595
|
+
|
|
596
|
+
Expanding rules 2-3 all the way down shows that **only the top row depends on
|
|
597
|
+
the argument b** — every row below it is produced by decomposing with the base
|
|
598
|
+
n as the operand:
|
|
599
|
+
|
|
600
|
+
- successor α: n{α}b = n{α-1}^(b-2) (n{α-1}n), so the α-1 row carries **b-2**
|
|
601
|
+
applications and every lower row (which comes from n{α-1}n, n{α-2}n, …
|
|
602
|
+
whose operand is n) carries **n-2**;
|
|
603
|
+
- limit α: rule 3 first rewrites n{α}b = n{α\[b]}n, so the operand is n at
|
|
604
|
+
every level and **all** rows carry **n-2**.
|
|
605
|
+
|
|
606
|
+
```javascript
|
|
607
|
+
MetaNum(10).h13(20); // 10{ω+3}20 = 10{ω+2}^18 10{ω+1}^8 10{ω}^8 10{ω}10
|
|
608
|
+
// array → [[1e10,8,8,8,8,8,8,8,8], [8,0,1], [8,1,1], [18,2,1]]
|
|
609
|
+
// ω+2 row = 18 = y-2, ω+1 and ω rows = 8 = x-2
|
|
610
|
+
MetaNum(10).h12(20); // 10{ω+2}20 → [8,0,1] [18,1,1]
|
|
611
|
+
MetaNum(3).h13(20); // 3{ω+3}20 → [1,0,1] [1,1,1] [18,2,1] (x-2 = 1)
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
The same n-2 count is what the finite r0 coefficients carry (10{10}10 → all-8s),
|
|
615
|
+
so a row below the top one never moves when b changes.
|
|
616
|
+
|
|
617
|
+
The law is uniform for **every** level from ω+1 to ω^4:
|
|
618
|
+
|
|
619
|
+
| kind | rows | top row count | lower rows |
|
|
620
|
+
|---|---|---|---|
|
|
621
|
+
| successor α = β+1 | rows of n{β}n, then one β-row | **b-2** | **n-2** |
|
|
622
|
+
| limit α | rows of n{α\[b]}n | **n-2** | **n-2** |
|
|
623
|
+
|
|
624
|
+
```javascript
|
|
625
|
+
MetaNum(10).h21(20); // 10{ω*2+1}20 = 10{ω*2}^18 (10{ω*2}10)
|
|
626
|
+
// 10{ω*2}10 = 10{ω+10}10 → the ω..ω+9 cascade, every count x-2 = 8
|
|
627
|
+
// array → [[…,8,…], [8,0,1] … [8,9,1], [18,0,2]]
|
|
628
|
+
MetaNum(10).h22(20); // … + [8,0,2] + [18,1,2] (ω*2 row = 8, ω*2+1 row = 18)
|
|
629
|
+
MetaNum(3).h21(20); // 3{ω*2+1}20 → [1,0,1] [1,1,1] [1,2,1] [18,0,2] (x-2 = 1)
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
A limit operation stays **expanded** for every argument up to MSI: rule 3 turns
|
|
633
|
+
b into a fundamental-sequence index, so 100 < b ≤ MSI still yields the largest
|
|
634
|
+
`maxRows-1` fundamental-sequence rows (with the standard truncation marker)
|
|
635
|
+
instead of collapsing to a one-row marker — `h20(10,1000)` keeps 19 rows whose
|
|
636
|
+
top one is ω+999, and `h20(10,MSI)` keeps rows up to ω+(MSI-1).
|
|
637
|
+
|
|
431
638
|
## Examples
|
|
432
639
|
|
|
433
640
|
642663{0}178187=642663×178187=114514191981
|
|
@@ -438,7 +645,7 @@ where α\[b] denotes the b-th element of the fundamental sequence assign to the
|
|
|
438
645
|
|
|
439
646
|
10{3}3=10{2}10{2}10=10{2} 9(10{1})'s 10=10↑↑(10^10^10^10^10^10^10^10^10000000000)
|
|
440
647
|
|
|
441
|
-
3{ω}5=3{5}
|
|
648
|
+
3{ω}5=3{5}3=3{4}3{5}2=3{4}3{4}3=3{4}3{3}3{3}3=3{4}3{3}3{2}3{2}3=3{4}3{3}3{2}3{1}3{1}3=3↑↑↑↑3↑↑↑3↑↑7625597484987
|
|
442
649
|
|
|
443
650
|
5{ω+1}4=5{ω}5{ω+1}3=5{ω}5{ω}5{ω+1}2=5{ω}5{ω}5{ω}5{ω+1}1=5{ω}5{ω}5{ω}5=5{ω}5{ω}5{5}5=5{ω}5{5{5}5}5=5{5{5{5}5}5}5
|
|
444
651
|
|
|
@@ -446,13 +653,13 @@ where α\[b] denotes the b-th element of the fundamental sequence assign to the
|
|
|
446
653
|
|
|
447
654
|
10{ω×2}10=10{ω+10}10=9(10{ω+9})'s 10=8(10{ω+9})'s 9(10{ω+8})'s 10=8(10{ω+9})'s 8(10{ω+8})'s ... 8(10{ω+1})'s 8(10{ω})'s 8(10{9})'s ... 8(10{1})'s 10000000000
|
|
448
655
|
|
|
449
|
-
10{ω^2}4=10{
|
|
656
|
+
10{ω^2}4=10{(ω^2)[4]}10=10{ω×4}10=10{(ω×4)[10]}10=10{ω×3+10}10=10{ω×3+9}10{ω×3+10}9=...=10{ω×3+9} 8(10{ω×3+8})'s ... 8(10{ω×3+1})'s 8(10{ω×3})'s 8(10{ω×2+9})'s ... 8(10{ω})'s ... 8(10{1})'s 10000000000
|
|
450
657
|
|
|
451
|
-
10{ω^ω}4=10{
|
|
658
|
+
10{ω^ω}4=10{(ω^ω)[4]}10=10{ω^4}10=10{(ω^4)[10]}10=10{ω^3×10}10=... (every limit step ends on the base 10; successor steps iterate) ... 8(10{1})'s 10000000000
|
|
452
659
|
|
|
453
|
-
10{ω^(ω^2)}4=10{ω^(
|
|
660
|
+
10{ω^(ω^2)}4=10{(ω^(ω^2))[4]}10=10{ω^(ω×ω)}10=10{ω^(ω×4)}10=10{ω^(ω×3+10)}10=... (rule 3: each FS step ends on the base 10)
|
|
454
661
|
|
|
455
|
-
10{ε₀}4=10{
|
|
662
|
+
10{ε₀}4=10{ε₀[4]}10=10{ω^(ω^(ω^ω))}10=10{ω^(ω^(ω^10))}10=... (ε₀[n+1]=ω^(ε₀[n]), final operand 10)
|
|
456
663
|
|
|
457
664
|
# dlsdl's Letter Notation
|
|
458
665
|
|
|
@@ -480,7 +687,7 @@ and \[number] can be any positive real number (nonintegers included).
|
|
|
480
687
|
|
|
481
688
|
### The First Levels: A Continuous version of Knuth Arrows
|
|
482
689
|
|
|
483
|
-
|
|
690
|
+
Let α be a positive real number, β be a positive integer, we'll define (use extended arrow operation):
|
|
484
691
|
|
|
485
692
|
Eα = 10^α = 10{1}α
|
|
486
693
|
|
|
@@ -504,7 +711,7 @@ So the above definitions are indeed an extention of Knuth arrows to nonintegers.
|
|
|
504
711
|
|
|
505
712
|
### Letter-Canonical Forms
|
|
506
713
|
|
|
507
|
-
If α is a number greater than 1 and Γ is a one of the letters E,F,G,H
|
|
714
|
+
If α is a number greater than 1 and Γ is a one of the letters E,F,G,H,...,Z then there is a unique number β such that:
|
|
508
715
|
|
|
509
716
|
α = Γβ.
|
|
510
717
|
|
|
@@ -522,7 +729,7 @@ F1.47712 = E(10^0.47712) ≈ E3 = 10^3 = 1000.
|
|
|
522
729
|
|
|
523
730
|
To recreate ordinary scientific notation, we'll define a binary version of the letter functions like this:
|
|
524
731
|
|
|
525
|
-
Let Γ be one of the letters E,F,G,H
|
|
732
|
+
Let Γ be one of the letters E,F,G,H,...,Z, β be a nonnegative integer and α be a real number between 1 and 10. Then:
|
|
526
733
|
|
|
527
734
|
αΓβ = Γ(β+log(α))
|
|
528
735
|
|
|
@@ -536,190 +743,343 @@ So αEβ is nothing more than ordinary scientific notation.
|
|
|
536
743
|
|
|
537
744
|
And αFβ is a power tower of β 10's topped by an α.
|
|
538
745
|
|
|
539
|
-
And again, given any specific letter (E,F,G,H
|
|
746
|
+
And again, given any specific letter (E,F,G,H,...,Z), ANY number greater than 1 has a unique representation as αΓβ (with 1≤α<10). So we can call this the Binary-Γ-Canonical Form of α.
|
|
540
747
|
|
|
541
748
|
## Multi letter notation
|
|
542
749
|
|
|
543
750
|
### Defining Aa - The First Diagonalization
|
|
544
751
|
|
|
545
|
-
In the previous section we've defined
|
|
546
|
-
|
|
547
|
-
let 1|α = Eα, 2|α = Fα, 3|α = Gα, ..., 22|α = Zα.
|
|
548
|
-
|
|
549
|
-
we had: Aaα = α|10 = 10{α}10.
|
|
550
|
-
|
|
551
|
-
So Aa is comparable to f\_ω\_(n) in the FGH.
|
|
752
|
+
In the previous section we've defined a finite sequence of functions, so we can diagonalize over them:
|
|
552
753
|
|
|
553
|
-
|
|
754
|
+
let 10{1}α = Eα, 10{2}α = Fα, 10{3}α = Gα, ..., 10{22}α = Zα.
|
|
554
755
|
|
|
555
|
-
|
|
756
|
+
we had: Aaα = 10{α}10.
|
|
556
757
|
|
|
557
|
-
|
|
758
|
+
So Aa has ω hyper-operation level, comparable to f\_ω\_(n) in FGH.
|
|
558
759
|
|
|
559
|
-
|
|
760
|
+
Then, we'll give a definition for non-integer 10{α}10 and amend the definition of Aa:
|
|
560
761
|
|
|
561
|
-
|
|
762
|
+
- Aaα = 10{α}10 = 10{int(α)+1}2\*5^frac(α)
|
|
562
763
|
|
|
563
|
-
|
|
764
|
+
The seemingly complex expression simply gives us a smooth geometric curve between 2 and 10. This ensures that Aa would be continuous, given the identity 10{β}10 = 10{β+1}2.
|
|
564
765
|
|
|
565
|
-
|
|
766
|
+
For example, Aa10 = 2Aa10 = 10{10}2 = 2Aa10, Aa10.5 = 10{10}2\*5^0.5 = 10{10}4.472 = 4.472Aa10
|
|
566
767
|
|
|
567
|
-
### Ab,Ac,Ad,...,Az and their Universal Canonical Forms
|
|
768
|
+
### Ab,Ac,Ad,...,Az and their Universal Binary-Letter-Canonical Forms
|
|
568
769
|
|
|
569
770
|
The definitions of Ab,Ac,Ad,...,Az are simple enough:
|
|
570
771
|
|
|
571
|
-
Abα = AaAa...AaAa(10^frac(α)) with int(α) Aa's
|
|
772
|
+
Abα = AaAa...AaAa(10^frac(α)) with int(α) Aa's = 10{ω+1}α
|
|
572
773
|
|
|
573
|
-
Acα = AbAb...AbAb(10^frac(α)) with int(α) Ab's
|
|
774
|
+
Acα = AbAb...AbAb(10^frac(α)) with int(α) Ab's = 10{ω+2}α
|
|
574
775
|
|
|
575
776
|
then we have Ad,Ae,...,Az, each with the same definition as Ab and Ac.
|
|
576
777
|
|
|
577
|
-
And that's it. So A(the β+1-th letter) is comparable to f\_ω+β\_(n) in the FGH.
|
|
778
|
+
And that's it. So A(the β+1-th lowercase letter)α is 10{ω+β}α, comparable to f\_ω+β\_(n) in the FGH.
|
|
578
779
|
|
|
579
|
-
Again we have Ab0=Ac0=Ad0=...=Az0=1, Ab1=Ac1=Ad1=...=Az1=10, and Ab,Ac,Ad,...,Az are all continuous. So any number greater than 1 has a unique Ab to Az Canonical Form.
|
|
780
|
+
Again we have Ab0=Ac0=Ad0=...=Az0=1, Ab1=Ac1=Ad1=...=Az1=10, Aa10=Ab2, Ab10=Ac2, ... and Ab,Ac,Ad,...,Az are all continuous. So any number greater than 1 has a unique Ab to Az Canonical Form.
|
|
580
781
|
|
|
581
|
-
Moreover, since Aa10=Ab2
|
|
782
|
+
Moreover, since Aa10=Ab2, we can extend our definition of the "Universal Binary-Letter-Canonical Form" up to Az:
|
|
582
783
|
|
|
583
|
-
(1)
|
|
784
|
+
(1) Set a threshold number θ (such as 100, that's 1E2)
|
|
584
785
|
|
|
585
|
-
(2)
|
|
786
|
+
(2) if the number <θ then we write down the scientific notation of this number.
|
|
586
787
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
We already know how to do recursion (F,G,H,I,...,ζ) and simple diagonalization (Aa) in our continuous system, so we can easily extend our system up to ω×2-level in the FGH. In order to track our progress, we'll use the format (1,β)|α and define:
|
|
788
|
+
(3) Otherwise, we write Γα = 10^frac(α)Γint(α) for letter combinations (E~Z, Ab~Az) or = 2*5^frac(α)Γint(α) for Aa, and 2≤α<θ. If there is more than one possible choice, we choose the letter combination which comes first in order.
|
|
590
789
|
|
|
591
|
-
|
|
790
|
+
Examples:
|
|
592
791
|
|
|
593
|
-
|
|
792
|
+
10{20}10 = X10 = Y2 = Aa20, so we write it as 1X10.
|
|
594
793
|
|
|
595
|
-
|
|
794
|
+
10{30}10 = Aa30, so we write it as 2Aa30.
|
|
596
795
|
|
|
597
|
-
|
|
796
|
+
10{ω+1}10 = Ab10 = Ac2, so we write it as 1Ab10.
|
|
598
797
|
|
|
599
|
-
|
|
798
|
+
### Defining from Ba to Bz
|
|
600
799
|
|
|
601
|
-
(
|
|
800
|
+
We already know how to do recursion (F,G,H,I,...,Z) and simple diagonalization (Aa) in our continuous system, so we can easily extend our system up to ω\*2 level. In order to track our progress, we'll define:
|
|
602
801
|
|
|
603
|
-
|
|
802
|
+
- 10{α}10 = Aaα, 10{ω+β+1}α = 10{ω+β}10{ω+β}...10^frac(α) with int(α) 10{ω+β}'s
|
|
604
803
|
|
|
605
|
-
|
|
804
|
+
And define Baα in a way similar to Aaα:
|
|
606
805
|
|
|
607
|
-
|
|
806
|
+
Baα = 10{ω+α}10 = 10{ω+int(α)+1}2\*5^frac(α)
|
|
608
807
|
|
|
609
|
-
|
|
808
|
+
This gives rise to writing numbers in Ba Canonical form and extend the Universal Binary-Letter-Canonical Form up to Ba10, which have ω\*2 level.
|
|
610
809
|
|
|
611
|
-
(
|
|
810
|
+
Then we can define Bb,Bc, Bd,...,Bz with recursions in a similar way. Bbα = BaBa...BaBa(10^frac(α)) with int(α) Ba's = 10{ω\*2+1}α, and Bcα = BbBb...BbBb(10^frac(α)) with int(α) Bb's = 10{ω\*2+2}α, etc. So B(the β+1-th lowercase letter)α is 10{ω\*2+β}α.
|
|
612
811
|
|
|
613
|
-
|
|
812
|
+
### A Supporting Extended Arrow Operation and Aaa
|
|
614
813
|
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
(iv) For α<2: (β+1,0)|α = (β,3)|α
|
|
814
|
+
We can, of-course, repeat what we did in the previous section as many times as we wish and get the following ω^2-level notation (β,γ ≥ 0 are integers, and α≥0 is real):
|
|
618
815
|
|
|
619
|
-
(
|
|
816
|
+
(i) 10{1}α = 10^α
|
|
620
817
|
|
|
621
|
-
|
|
818
|
+
(ii) 10{ω\*β+γ+1}α = 10{ω\*β+γ}10{ω\*β+γ}...10^frac(α) with int(α) 10{ω\*β+γ}'s
|
|
622
819
|
|
|
623
|
-
|
|
820
|
+
(iii) 10{ω\*β+α}10 = 10{ω\*β+int(α)+1}2\*5^frac(α)
|
|
624
821
|
|
|
625
|
-
|
|
822
|
+
(iv) 10{ω\*(β+1)}α = 10{ω\*β+α}10
|
|
626
823
|
|
|
627
|
-
|
|
824
|
+
Note that {ω\*β+γ} is a valid extended arrow operation. Also, in this new notation we can write Baα = 10{ω+α}10, Bbα = 10{ω\*2+1}α,... Bzα = 10{ω\*2+25}α.
|
|
628
825
|
|
|
629
|
-
|
|
826
|
+
We can extend to more uppercase letters: Caα = 10{ω\*2+α}10, Cbα = 10{ω\*3+1}α, ..., Zaα = 10{ω\*25+α}10, ..., and finally Zzα = 10{ω\*26+25}α.
|
|
630
827
|
|
|
631
|
-
|
|
828
|
+
So we have Qq1.000Qe308 = 10{ω17+16}10{ω17+4}308
|
|
632
829
|
|
|
633
|
-
|
|
830
|
+
And with this new supporting notation we can now to define:
|
|
634
831
|
|
|
635
|
-
|
|
832
|
+
- Aaaα = 10{ω\*int(α)+10\*frac(α)}10
|
|
636
833
|
|
|
637
|
-
|
|
834
|
+
Containing a very neat trick that allows us to do the double-diagonalization with a single number: Aaa1.5 = 10{ω+5}10, Aaa2.5 = 10{ω\*2+5}10
|
|
638
835
|
|
|
639
|
-
|
|
836
|
+
At any rate, it isn't too difficult to see that Aaa behaves "nicely" and allows us to speak of Aaa Canonical Forms of any number. And since Aaa1=Aa10, Aaa2=Ba10, ..., Aaa26=Za10, this also enables us to write the Unversal Binary-Letter-Canonical Form of any number below 10{ω^2}10.
|
|
640
837
|
|
|
641
|
-
|
|
838
|
+
## Symbol and letter notation
|
|
642
839
|
|
|
643
|
-
|
|
840
|
+
### Arrays with more than two variables, and !Aa
|
|
644
841
|
|
|
645
|
-
|
|
842
|
+
Extended arrow operations can be easily extended, like so:
|
|
646
843
|
|
|
647
|
-
(
|
|
844
|
+
(i) 10{1}α = 10^α
|
|
648
845
|
|
|
649
|
-
(
|
|
846
|
+
(ii) 10{...+ω^3\*β+ω^2\*γ+ω\*δ+ν+1}α = 10{...+ω^3\*β+ω^2\*γ+ω\*δ+ν}10{...+ω^3\*β+ω^2\*γ+ω\*δ+ν}...10^frac(α) with int(α) 10{...+ω^3\*β+ω^2\*γ+ω\*δ+ν}'s
|
|
650
847
|
|
|
651
|
-
(
|
|
848
|
+
(iii) 10{...+ω^3\*β+ω^2\*γ+ω\*δ+α}10 = 10{...+ω^3\*β+ω^2\*γ+ω\*δ+int(α+1)}2\*5^frac(α)
|
|
652
849
|
|
|
653
|
-
(
|
|
850
|
+
(iv) 10{(...+ω^3\*β+ω^2\*γ+ω\*δ+μ+1)\*ω^κ}α = 10{(...+ω^4\*β+ω^3\*γ+ω^2\*δ+ω\*μ+α)\*ω^(κ-1)}10
|
|
654
851
|
|
|
655
|
-
|
|
852
|
+
(v) 10{(...+ω^3\*β+ω^2\*γ+ω\*δ+α)\*ω^κ}10 = 10{(...+ω^4\*β+ω^3\*γ+ω^2\*δ+ω\*int(α)+frac(α)\*10)\*ω^κ}10
|
|
656
853
|
|
|
657
|
-
|
|
854
|
+
The first 4 rules are a simple and direct extention of the {ω\*β+γ} notation.
|
|
658
855
|
|
|
659
|
-
|
|
856
|
+
Rule (v) is an interesting one, though. It basically tells us that if we have an ordinal which ends with ω^n\*0 terms, then the digits of the fractional part of α are to be distributed among the terms. For example:
|
|
660
857
|
|
|
661
|
-
|
|
858
|
+
- 10{ω^6\*114+ω^5\*514+ω^4\*1.9198}10 = 10{ω^6\*114+ω^5\*514+ω^4+ω^3\*9+ω^2+ω\*9+8}10.
|
|
662
859
|
|
|
663
|
-
|
|
860
|
+
Now, all that is left to do is to define !Aa, which has ω^ω level.
|
|
664
861
|
|
|
665
|
-
|
|
862
|
+
- !Aaα = 10{ω^int(α)\*frac(α)}10
|
|
666
863
|
|
|
667
|
-
Then we have !Aa2 = Aaa10, !Aa3 = Aaaa10,... Just like the previous letters, any number can be written as !Aaα. Here, it is actually the binary form of
|
|
864
|
+
Then we have !Aa2 = Aaa10, !Aa3 = Aaaa10,... Just like the previous letters, any number can be written as !Aaα. Here, it is actually the binary form of !αAaβ = !Aa(β+logα) which has the most intuitive meaning:
|
|
668
865
|
|
|
669
|
-
In terms of the
|
|
866
|
+
In terms of the extended arrow operation, β tells us ω^β is in the ordinal and the digits of α tell us its coefficient and what residue ordinals are. Actually, !αAaβ has a more ω^ layer compare to αAaβ in ordinal level. For example, !1.2345Aa4 = 10{ω^4+ω^3\*2+ω^2\*3+ω\*4+5}10 and 10{4}10 < 1.2345Aa4 < 10{4}10{4}10
|
|
670
867
|
|
|
671
|
-
And in terms of
|
|
868
|
+
And in terms of ordinals, β gives us the maximum power of ω and the digits of α give us the coefficents of the various powers of ω, these neat relations are also true for β=1 and α≥2.
|
|
672
869
|
|
|
673
870
|
### Higher dimensional arrays and @Aa
|
|
674
871
|
|
|
675
|
-
With the definition of the
|
|
676
|
-
|
|
677
|
-
(i) Other rules are the same from linear array notation
|
|
872
|
+
With the definition of the extended arrow operation and the symbol !, one can easily define new operations up to ω^ω^ω level.
|
|
678
873
|
|
|
679
|
-
(
|
|
874
|
+
By adding ! before a letter notation, it adds a ω^ layer (likes the same ordinal but changes from HH to FGH). Aa represents ω level, so !Aa represents ω^ω level. Then we can define !Ab (ω^(ω+1)), !Ac, !Ad, ..., !Az with the same meaning as !Aa, and !Ba (ω^(ω\*2)), !Bb, !Bc, ..., !Bz, !Aaa, etc. Comparing these with the previous letters, we can see that notations with ! symbol have a more ω^ than those without ! symbol. Fractional number of rows, columns, etc.. are defined in the same way.
|
|
680
875
|
|
|
681
|
-
|
|
876
|
+
Now, all that is left to do is to define @Aa, which has ω^ω^ω level.
|
|
682
877
|
|
|
683
|
-
|
|
878
|
+
- @Aaα = 10{ω^(ω^int(α)\*frac(α))}10
|
|
684
879
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
(v) (...\[1]0,...,0,β,γ...)|α = (...\[1]β,γ...)|α
|
|
880
|
+
### Nested arrays and more symbols
|
|
688
881
|
|
|
689
|
-
|
|
882
|
+
The Definiton of more symbols is similar to the definition of @Aa.
|
|
690
883
|
|
|
691
|
-
|
|
884
|
+
- \#Aaα \~ 10{ω^ω^(ω^int(α)\*frac(α))}10
|
|
692
885
|
|
|
693
|
-
|
|
886
|
+
- \$Aaα \~ 10{ω^ω^ω^(ω^int(α)\*frac(α))}10
|
|
694
887
|
|
|
695
|
-
|
|
888
|
+
Then we can define (the β-th symbol or symbol combination)Aaα = 10{ω^ω^...^(ω^int(α)\*frac(α))(β ω's)}10
|
|
696
889
|
|
|
697
|
-
|
|
890
|
+
### Definition of the final letter: ε
|
|
698
891
|
|
|
699
|
-
|
|
892
|
+
ε represents exponent tower layers of ω.
|
|
700
893
|
|
|
701
|
-
|
|
894
|
+
- αεβ \~ 10{ω^ω^...^(ω^int(α)\*frac(α))(β ω's)}10
|
|
702
895
|
|
|
703
|
-
###
|
|
896
|
+
### Using dlsdl's letter notation, the biggest number we can define in Metanum is about ε9.007E15
|
|
704
897
|
|
|
705
|
-
|
|
898
|
+
# format-metanum
|
|
706
899
|
|
|
707
|
-
|
|
900
|
+
## Description
|
|
708
901
|
|
|
709
|
-
|
|
902
|
+
Implementation of dlsdl's letter notation for large number library, currently metanum.js
|
|
710
903
|
|
|
711
|
-
|
|
904
|
+
## format options
|
|
712
905
|
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
906
|
+
```javascript
|
|
907
|
+
smallNotationUseE // 1. for small value notations, true then use αE-β,false then use number⁻¹
|
|
908
|
+
smallNotationThreshold // 2. =n then value < 10^-n uses small notation
|
|
909
|
+
decimalPlaces // 3. for normal notations, =0 is 1,=1 is 1.0,=2 is 1.00 etc.
|
|
910
|
+
decimalThreshold // 4. =n then value >= 10^n do not show decimal part
|
|
911
|
+
useCommas // 5. whether to show commas in normal numbers (true/false)
|
|
912
|
+
sciThreshold // 6. =n then value >= 10^n use scientific notation, same for β in αEβ
|
|
913
|
+
sciSignificantDigits // 7. =n then α has n decimal places in αEβ
|
|
914
|
+
sciDecimalThreshold // 8. =n then β >= 10^n in αEβ only show integer part of α
|
|
915
|
+
singleLetterDigits // 9. α's decimal places in αFβ,αGβ...αZβ
|
|
916
|
+
repeatLetterThreshold // 10. =n then n repeated single letters use next letter notation, n<2 then use 2
|
|
917
|
+
multiLetterDigits // 11. α's decimal places in αAaβ,αAbβ...αAzβ and above
|
|
918
|
+
multiLetterRepeatThreshold// 12. =n then n repeated multi letter combinations use next letter notation, n<2 then use 2
|
|
919
|
+
multiLetterLimit // 13. =n then length of multi letter combinations does not exceed n, exceed then switch to next notation (length of Aa is 2, Aaa is 3, Aaaa is 4...), n<2 then use 2
|
|
920
|
+
epsilonSignificantDigits // 14. α's decimal places in αεβ
|
|
921
|
+
```
|
|
718
922
|
|
|
719
|
-
|
|
923
|
+
## Cases
|
|
924
|
+
|
|
925
|
+
- 0 ~ 10^-smallNotationThreshold: E- format(αE-β=α×10^-β; E-αEβ=10^-(α×10^β); E-……=10^-……)(smallNotationUseE true) or ……⁻¹(reciprocal)
|
|
926
|
+
- 10^-smallNotationThreshold ~ 10^decimalThreshold: decimal format (decimalPlaces digits)
|
|
927
|
+
- 10^decimalThreshold ~ 10^sciThreshold: comma format(useCommas true) or integer format
|
|
928
|
+
- 10^sciThreshold ~ 10^(10^sciThreshold): exponential as well as αEβ format
|
|
929
|
+
- 10^(10^sciThreshold) ~ 10^^(repeatLetterThreshold+1): n E's αEβformat(EαEβ, EEαEβ, EEEαEβ……)
|
|
930
|
+
- 10^^(repeatLetterThreshold+1) ~ 10^^(10^sciThreshold): αFβ format
|
|
931
|
+
- 10^^(10^sciThreshold) ~ 10^^(10^^(repeatLetterThreshold+1)): FαEβ, FEαEβ, FEEαEβ…… format
|
|
932
|
+
- 10^^(10^^(repeatLetterThreshold+1)) ~ 10^^^(repeatLetterThreshold+1): FαFβ, FFαFβ, FFFαFβ…… format
|
|
933
|
+
- 10^^^(repeatLetterThreshold+1) ~ 10^^^(10^sciThreshold): αGβ format
|
|
934
|
+
- 10^^^(10^sciThreshold) ~ 10^^^(10^^(repeatLetterThreshold+1)): GαEβ, GEαEβ,…… format
|
|
935
|
+
- 10^^^(10^^(repeatLetterThreshold+1)) ~ 10{4}(repeatLetterThreshold+1): GαGβ, GGαGβ,…… format
|
|
936
|
+
- 10{4}(repeatLetterThreshold+1) ~ 10{5}(repeatLetterThreshold+1): αHβ, HαEβ, HEαEβ, HαFβ, HFαFβ, HαGβ, HGαGβ, HαHβ, HHαHβ,…… format
|
|
937
|
+
|
|
938
|
+
…………
|
|
939
|
+
|
|
940
|
+
- 10{22}(repeatLetterThreshold+1) ~ 10{23}(repeatLetterThreshold+1): αZβ format; ZαEβ, ZEαEβ, ……, ZαZβ, ZZαZβ,…… format
|
|
941
|
+
- 10{23}(repeatLetterThreshold+1) ~ 10{10^sciThreshold}10(=10{ω}(10^sciThreshold)): αAaβ format
|
|
942
|
+
- 10{ω}(10^sciThreshold) ~ 10{ω+1}(multiLetterRepeatThreshold+1): AaαEβ, ……, AaαAaβ, AaAaαAaβ…… format
|
|
943
|
+
- 10{ω+1}(multiLetterRepeatThreshold+1) ~ 10{ω+1}(10^sciThreshold): αAbβ format
|
|
944
|
+
- 10{ω+1}(10^sciThreshold) ~ 10{ω+2}(multiLetterRepeatThreshold+1): AbαEβ, ……, AbαAbβ, AbAbαAbβ…… format
|
|
945
|
+
- 10{ω+2}(multiLetterRepeatThreshold+1) ~ 10{ω+2}(10^sciThreshold): αAcβ format
|
|
946
|
+
|
|
947
|
+
…………
|
|
948
|
+
|
|
949
|
+
- 10{ω+25}(multiLetterRepeatThreshold+1) ~ 10{ω+25}(10^sciThreshold): αAzβ format
|
|
950
|
+
- 10{ω+25}(10^sciThreshold) ~ 10{ω+26}(multiLetterRepeatThreshold+1): AzαEβ to AzαAzβ, AzAzαAzβ…… format
|
|
951
|
+
- 10{ω+26}(multiLetterRepeatThreshold+1) ~ 10{ω+10^sciThreshold}10(=10{ω×2}(10^sciThreshold)): αBaβ format
|
|
952
|
+
- 10{ω×2}(10^sciThreshold) ~ 10{ω×2}(multiLetterRepeatThreshold+1): BaαEβ to BaαBaβ, BaBaαBaβ…… format
|
|
953
|
+
|
|
954
|
+
…………
|
|
955
|
+
|
|
956
|
+
- 10{ω×2+26}(multiLetterRepeatThreshold+1) ~ 10{ω×2+10^sciThreshold}10(=10{ω×3}(10^sciThreshold)): αCaβ format
|
|
957
|
+
- 10{ω×3}(10^sciThreshold) ~ 10{ω×3}(multiLetterRepeatThreshold+1): CaαEβ to CaαCaβ, CaCaαCaβ…… format
|
|
958
|
+
|
|
959
|
+
…………
|
|
960
|
+
|
|
961
|
+
- 10{ω×26+25}(multiLetterRepeatThreshold+1) ~ 10{ω×26+25}(10^sciThreshold): αZzβ format
|
|
962
|
+
- 10{ω×26+25}(10^sciThreshold) ~ 10{ω×26+26}(multiLetterRepeatThreshold+1): ZzαEβ to ZzαZzβ, ZzZzαZzβ…… format
|
|
963
|
+
- 10{ω×26+26}(multiLetterRepeatThreshold+1) ~ 10{ω×(10^sciThreshold)}10(=10{ω^2}(10^sciThreshold)): αAaaβ format
|
|
964
|
+
- 10{ω^2}(10^sciThreshold) ~ 10{ω^2}(multiLetterRepeatThreshold+1): AaaαEβ to AaaαAaaβ, AaaAaaαAaaβ…… format
|
|
965
|
+
|
|
966
|
+
…………
|
|
967
|
+
|
|
968
|
+
- 10{……+ω^3×26+ω^2×26+ω×26+26}10 ~ 10{ω^ω}(10^sciThreshold): !αAaβ format
|
|
969
|
+
- 10{ω^ω}(10^sciThreshold) ~ 10{ω^(……ω^3×26+ω^2×26+ω×26+26)}10: !AaαEβ, !αAbβ, !αAaaβ…… format
|
|
970
|
+
- 10{ω^(……+ω^3×26+ω^2×26+ω×26+26)}10 ~ 10{ω^ω^ω}(10^sciThreshold): @αAaβ format
|
|
971
|
+
- 10{ω^ω^ω}(10^sciThreshold) ~ 10{ω^ω^(……ω^3×26+ω^2×26+ω×26+26)}10: @AaαEβ, @αAbβ, @αAaaβ…… format
|
|
972
|
+
- 10{ω^ω^(……+ω^3×26+ω^2×26+ω×26+26)}10 ~ 10{ω^ω^ω^ω}(10^sciThreshold): #αAaβ format
|
|
973
|
+
- 10{ω^ω^ω^ω}(10^sciThreshold) ~ 10{ω^ω^ω^(……ω^3×26+ω^2×26+ω×26+26)}10: #AaαEβ, #αAbβ, #αAaaβ…… format
|
|
974
|
+
|
|
975
|
+
…………
|
|
976
|
+
|
|
977
|
+
- 10{ω^ω^……^ω}10 ~ 10{ω^ω^…(10^sciThreshold ω^'s)…^ω}10: αεβformat
|
|
978
|
+
- 10{ω^ω^…(10^sciThreshold ω^'s)…^ω}10 ~ limit of metanum.js: εαEβformat
|
|
979
|
+
|
|
980
|
+
### format-metanum rules (v2.0)
|
|
981
|
+
|
|
982
|
+
- **Γ-canonical α/β (bisect law)**: the true α and β of a value v at letter Γ
|
|
983
|
+
are recovered by bisecting 10{L}x = v on the engine's own smooth arrow curve
|
|
984
|
+
(Γ = E,F,G,... single letters, L = level). α = 10^frac(x), β = floor(x):
|
|
985
|
+
`format(arrow(3,4.1,3))` → `G1.161G897`,
|
|
986
|
+
`format(arrow(3,4.3,3))` → `1.285H8`,
|
|
987
|
+
`format(hardy(4166))` → `2.397G5`.
|
|
988
|
+
- **+count collapse**: n operations of level L applied to a Γ^{L+1}-structured
|
|
989
|
+
value collapse to ONE Γ^{L+1} with arg + n (F⁴(G(1.3796)) = G(5.3796)),
|
|
990
|
+
which is why single-letter chains like `G1.161G897` appear.
|
|
991
|
+
- **α appears at most once**, attached to the innermost value:
|
|
992
|
+
`format(GE12)` → `G1.000E12`; hardy(1120) → `F4.398E13`. Once the innermost β reaches
|
|
993
|
+
10^sciThreshold the letter goes bare and β carries its own sci form.
|
|
994
|
+
- **At most 2 finite letter types** may appear in a display's hyper-op chain
|
|
995
|
+
(VαEβ → VαFβ → … → VαVβ, never another like VFαEβ)
|
|
996
|
+
(AaαEβ → AaαFβ → … → AaαZβ → AaαAaβ, never another like AaFαEβ)
|
|
997
|
+
A cascade that would spell more than two letter types spells only its top two levels
|
|
998
|
+
and compresses the rest into the second letter's binary form.
|
|
999
|
+
"bottom Γ repeation": 3{9}3 → `L2.376K2`, 3{10}3 → `M2.376L2`,
|
|
1000
|
+
4{9}4 → `LLK3.550K3`, 5{9}5 → `LLLKK4.669K4`; repeatLetterThreshold+1 top
|
|
1001
|
+
repeats carry to the next letter instead (6{9}6 → `5.760M5`), and levels
|
|
1002
|
+
22→21, 23→22 stay two-letter (`Y2.376X2`, `Z2.376Y2`), level ≥ 23 cascades
|
|
1003
|
+
display as the αΓβ polarize diagonal. Diagonal letter combinations
|
|
1004
|
+
(multi-letter tokens whose last lowercase letter is `a`: Aa, Ba, Ca, Aaa,
|
|
1005
|
+
Aaaa, …) use the **pure dlsdl α=2·5^f ∈[2,10) convention**; the other
|
|
1006
|
+
letters (Ab, Bb, …) keep the ordinary α∈[1,10) convention. The polarize
|
|
1007
|
+
triple t = log₁₀(bottom)+repeation maps as: t∈[2,10) smooth → α=t,
|
|
1008
|
+
β=arrows; discrete integer arguments (10{L}b with 2≤b≤100) all sit at the
|
|
1009
|
+
α=2 anchor of the next β; a structured argument climbs the geometric
|
|
1010
|
+
smooth-log steps f→1+log10(f) to its diagonal mantissa. Examples:
|
|
1011
|
+
3{24}3 → `2.376Aa23`, 3{100}3 → `2.376Aa99`,
|
|
1012
|
+
10{100}10 … 10{100}100 → `2.000Aa100`, 10{23}10 → `2.000Aa23`,
|
|
1013
|
+
10{100}(10{93}10) → `2.002Aa100`, 10{10000}10 → `2.000Aa10,000`;
|
|
1014
|
+
nested ordinals prefix the ω-row letter:
|
|
1015
|
+
3{3{100}3}3 → `Aa2.376Aa99`, 3{10{10000}10}3 → `Aa2.000Aa10,000`.
|
|
1016
|
+
Symbol de-layering follows the same convention: !Aa3 = 10{ω³}10 →
|
|
1017
|
+
`2.000Aaaa10` (layer 0), @Aa3 = 10{ω^(ω³)}10 → `!2.000Aaaa10`.
|
|
1018
|
+
- **multiLetterLimit symbol carry**: a multi-letter combination of k letters
|
|
1019
|
+
sits at level ω^(k-1). Once it would be longer than multiLetterLimit the
|
|
1020
|
+
notation switches to the next one instead of growing another letter: the
|
|
1021
|
+
symbol form !αAaβ, whose β is exactly that ω-exponent and whose α digits are
|
|
1022
|
+
the CNF coefficients per the !-form definition
|
|
1023
|
+
(!1.2345Aa4 = 10{ω^4+ω^3*2+ω^2*3+ω*4+5}10). With limit 4 the successor of
|
|
1024
|
+
Zzzz is `!…Aa4` — never Aaaaa — and a 10-letter level displays as a short
|
|
1025
|
+
`!2.222Aa9`: `format(iter(3,5))` → `!2.222Aa4`,
|
|
1026
|
+
`format(iter(3,10))` → `!2.222Aa9`.
|
|
1027
|
+
**Every symbol-prefixed format carries too** — the symbols stack
|
|
1028
|
+
(no-symbol → ! → @ → # …), so a layer-1 value whose diagonal letter would
|
|
1029
|
+
exceed the limit reads as one more symbol with the Aa argument taking the
|
|
1030
|
+
exponent: `format(apix(3,10))` → `@2.000Aa10`
|
|
1031
|
+
(= 10{ω^(ω^10)}10), `format(apix(3,5))` → `@2.000Aa5`; past the symbol
|
|
1032
|
+
table the ε form takes over (`format(epsilonate(3,15))` → `1.000Ak10ε14`).
|
|
1033
|
+
Diagonal combinations in symbol forms keep the pure dlsdl α = 2·5^f ∈ [2,10)
|
|
1034
|
+
mantissa (integer exponents anchor 2.000).
|
|
1035
|
+
- **Cascade compression**: the ordinal rows are a COMPOSITION, so the top row
|
|
1036
|
+
leads the display and the row below it (which collapses from its repeat count)
|
|
1037
|
+
keeps the single α and β — a 20-row cascade keeps its top two levels:
|
|
1038
|
+
`format(h10000(3,10))` → `Iccc1.000Iccb10`.
|
|
1039
|
+
- **Stacking the same function nests the letter** (issue #14): `n{α}(n{α}y)` is
|
|
1040
|
+
one more application of the same level on top of the inner value, so the
|
|
1041
|
+
letter appears twice. `poea(10,poea(10,100))` = Ad(Ad(99)) → `Ad1.000Ad99`
|
|
1042
|
+
(before: the rows were folded into one letter, `1.000Ad114`), and the same
|
|
1043
|
+
holds for ω+1, ω+2, ω*2+1, ω*2+2, ω²+1, ω²+2, ω³+1 —
|
|
1044
|
+
`Ab2.398Ab99`, `Ac1.000Ac99`, `Bb1.000Bb99`, `Bc1.000Bc99`,
|
|
1045
|
+
`Abb1.000Abb99`, `Aac1.000Aac99`, `Aaab1.000Aaab99`; with an operand above
|
|
1046
|
+
MSI, `apea(apea(1e16))` → `BaBa1.000E16`.
|
|
1047
|
+
- **A coefficient above 25 has no letter in the grid** (the letters hold
|
|
1048
|
+
ω·d+v with 0 ≤ v ≤ 25), so a ω*2 fundamental-sequence row (ω+81, ω+99, …)
|
|
1049
|
+
clamps down to the largest letter below it instead of wrapping into a higher,
|
|
1050
|
+
wrong letter: `format(apea(10,100))` → `1.000Ba154` (the ω*2 level), not the
|
|
1051
|
+
wrapped ω*4+3 letter.
|
|
1052
|
+
Formats are identical at maxRows=maxCols=10/20/50/100.
|
|
1053
|
+
|
|
1054
|
+
### Precision budget (maxRows / maxCols)
|
|
1055
|
+
|
|
1056
|
+
Every hyperoperation is stored EXACTLY while it fits the array budget and
|
|
1057
|
+
approximately once it does not:
|
|
1058
|
+
|
|
1059
|
+
- exact capacity = maxRows+maxCols−2 finite hyperoperation levels:
|
|
1060
|
+
`arrow(x,L,z)` holds `r0 = [a0, a1, …, a(maxCols-1)]` (levels 0…maxCols−1)
|
|
1061
|
+
plus the ordinal rows `[a(level+1), level]` for levels
|
|
1062
|
+
maxCols … maxRows+maxCols−2 (maxRows−1 rows), so
|
|
1063
|
+
`arrow(10,39,10)` is exact at maxRows=maxCols=20 (r0 of 20 entries, 19 rows,
|
|
1064
|
+
top level 38) and `arrow(10,40,10)` is the first truncated value.
|
|
1065
|
+
- beyond the budget the expansion follows the truncation rule: keep the
|
|
1066
|
+
LARGEST maxRows−1 ordinal rows in array[1]…array[maxRows−1] sorted ascending,
|
|
1067
|
+
increment array[1][0] by 1 (the dropped lower chain collapses into one extra
|
|
1068
|
+
operation there) and default array[0] to [10]. This applies to arrow, BEAF
|
|
1069
|
+
and the rule-1…4 ordinal cascades alike
|
|
1070
|
+
(`iter(3,5)` → `[[10],[2,2,2,0,2,2],…,[1,2,2,2,2,2]]`).
|
|
1071
|
+
- layer ≥ 1 results are stored in STANDARD form: an ordinal row [count, k]
|
|
1072
|
+
whose level is the finite k merges into r0 (r0[k] += count) and the layer
|
|
1073
|
+
drops as far as it can, since a layer-L bracket β that is a finite
|
|
1074
|
+
ω-polynomial equals the layer-(L−1) value with the single row [1|β]:
|
|
1075
|
+
`cube(10,3)` `[[10],[1,3],[1,0,1]]` → `[[10,0,0,1],[1,0,1]]`;
|
|
1076
|
+
layer2 `[[5],[3,1]]` → `[[5,3]]` → layer1 `[[10],[1,5,3]]` = 10{ω^(ω*3+5)}10;
|
|
1077
|
+
layer3 `[[3]]` → layer2 `[[0,0,0,1]]` → layer1 `[[10],[1,0,0,0,1]]`
|
|
1078
|
+
= 10{ω^ω^3}10.
|
|
720
1079
|
|
|
721
1080
|
# Changelog
|
|
722
1081
|
|
|
1082
|
+
- 2026-9-15 v2.0: Add hyper-root & hyper-log, hardy function, fractional hyperoperation inputs, fix BEAF operation level and format
|
|
723
1083
|
- 2026-8-18 v1.4 Support hyper operation >MSI and fix format-metanum bugs
|
|
724
1084
|
- 2026-7-31 v1.3 Add format-metanum.js, fix basic operations, hyper operations and BEAF bugs
|
|
725
1085
|
- 2026-7-9 v1.2 Add more hyper operations up to ε₀, add BEAF operation and fix bugs
|