metanum 2.0.0 → 2.0.2
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 +187 -172
- package/format-metanum.js +354 -141
- package/metanum.js +629 -247
- package/package.json +1 -1
- package/test-interface.html +1 -0
- package/test_mixed.js +1000 -31
package/README.md
CHANGED
|
@@ -172,8 +172,7 @@ new MetaNum(100).linear_sroot(3); // ³ss̅r̅t̅(100)
|
|
|
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
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
|
|
175
|
+
// General hyperoperation inverses: if a{b}c = d then d.hyper_log(a)(b) = c and d.hyper_root(c)(b) = a
|
|
177
176
|
MetaNum(14).hyper_log(2)(0); // 2*7 = 14 → 7
|
|
178
177
|
MetaNum(100000).hyper_log(10)(1); // 10^5 → 5
|
|
179
178
|
MetaNum(65536).hyper_log(2)(2); // 2↑↑4 → 4 (slog)
|
|
@@ -281,36 +280,16 @@ x.expoiter(3); // expo(3) = hwa1
|
|
|
281
280
|
// Level ω^(ω*2): ω^(ω*2) = ω^(ω+base)
|
|
282
281
|
x.trioterate(3); // tria(3) = hwm2
|
|
283
282
|
|
|
284
|
-
// Level ω^(ω^2): diagonalize ω^(ω*y)
|
|
283
|
+
// Level ω^(ω^2): diagonalize ω^(ω*y)
|
|
285
284
|
x.trixxate(3); // trix(3) = hwp2
|
|
286
285
|
|
|
287
|
-
// Level ω^(ω^ω): diagonalize ω^(ω^y) (layer
|
|
286
|
+
// Level ω^(ω^ω): diagonalize ω^(ω^y) (layer 2)
|
|
288
287
|
x.aperixxate(3); // apix(3) = hwpw
|
|
289
288
|
|
|
290
|
-
// Level ε₀ = ω↑↑ω: diagonalize ω↑↑y (layer
|
|
289
|
+
// Level ε₀ = ω↑↑ω: diagonalize ω↑↑y (layer 3+)
|
|
291
290
|
x.epsilonate(3); // epsl(3) = hepsl
|
|
292
291
|
```
|
|
293
292
|
|
|
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
|
-
|
|
314
293
|
## Inverse Operations
|
|
315
294
|
|
|
316
295
|
Each expansion operation has a corresponding inverse for decrementing ordinal structure:
|
|
@@ -352,11 +331,22 @@ x.i_apix(z) // iwpw = inverse of aperixxate
|
|
|
352
331
|
x.i_epsl(z) // iepsl = inverse of epsilonate
|
|
353
332
|
```
|
|
354
333
|
|
|
334
|
+
### The operations follow n{λ}b = n{λ[b]}n exactly
|
|
335
|
+
|
|
336
|
+
Every operation above is evaluated with the unified limit rule `n{λ}b = n{λ[b]}n` — the final operand is the **base** n, never b. Whenever the reduced level λ[y] still fits a Cantor-normal-form coefficient row the whole fundamental-sequence cascade is evaluated:
|
|
337
|
+
|
|
338
|
+
```javascript
|
|
339
|
+
MetaNum(3).iterate(5); // 3{ω^ω}5 = 3{ω^5}3 = 3{ω^4*3}3 = …
|
|
340
|
+
// … = 3{ω^4*2+ω^3*2+ω^2*2+ω*2+2}3 → layer=0, top row [1,2,2,2,2,2]
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Levels ≥ ω^ω have no finite coefficient row, so the result is stored as the compact **layer marker** of λ[y] (see the representation rule above: layer L ⇒ `10{ω^ω^…(L ω^'s)…^(ω^'s polynomial)}10`):
|
|
344
|
+
|
|
345
|
+
so the encoded ordinals grow with the operation (`iter < itmu < cube < expo < tria < trix < apix < epsl`) and with y, and `epsilonate(MSI)` is exactly the library's ε-tower cap.
|
|
346
|
+
|
|
355
347
|
### Fractional hyperoperation levels
|
|
356
348
|
|
|
357
|
-
Levels interpolate geometrically (
|
|
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)`:
|
|
349
|
+
Levels interpolate geometrically; `x{n+f}y = x{n+1}(θf)` with `θf` continuous between `x{n}y` (f=0) and `x{n+1}y` (f=1). For the canonical diagonal this is exactly `10{n+f}10 = 10{n+1}(2·5^f)`:
|
|
360
350
|
|
|
361
351
|
```javascript
|
|
362
352
|
MetaNum(10).arrow(3.5)(10); // 10{3.5}10 = 10{4}(2·5^0.5)
|
|
@@ -365,9 +355,7 @@ MetaNum(10).arrow(3.2)(10); // monotone between 10{3}10 and 10{4}10
|
|
|
365
355
|
|
|
366
356
|
### Non-integer arguments at ordinal levels
|
|
367
357
|
|
|
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 the issue's composition identity holds verbatim:
|
|
358
|
+
The same continuity applies to the ω-and-above operations. Successor levels follow `x{α}(m+f) = x{α-1}` applied m times to `x^f`; the ω level matches `aperiote` exactly, so composition identity holds verbatim:
|
|
371
359
|
|
|
372
360
|
```javascript
|
|
373
361
|
MetaNum(10).expande(2.1); // 10{ω+1}2.1 = 10{ω}10{ω}(10^0.1)
|
|
@@ -375,17 +363,39 @@ MetaNum(10).expande(2); // 10{ω}10 (continuous at the integers)
|
|
|
375
363
|
MetaNum(10).multiexpande(2.1); // (10{ω+1})²(10^0.1)
|
|
376
364
|
```
|
|
377
365
|
|
|
378
|
-
Limit levels take the fundamental sequence at
|
|
379
|
-
|
|
380
|
-
|
|
366
|
+
**Limit levels** take the fundamental sequence at the full (fractional) `y`. The sequence can then carry fractional coefficients, which resolve against the base x because on the diagonal ω reads as x:
|
|
367
|
+
|
|
368
|
+
- ω^(k)·(c+f) = ω^(k)·c + ω^(k-1)·(x·f), applied top-down (ω^0.1 = x^0.1), so only the constant term can still be fractional;
|
|
369
|
+
- a leftover fractional constant γ+f is one level of interpolation: x{γ+f}x = x{γ+1}(2·(x/2)^f) — continuous at f=0 because x{γ+1}2 = x{γ}x.
|
|
370
|
+
|
|
371
|
+
**Successor levels** keep `x{α}(m+f) = x{α-1}` applied m times to `x^f`, so the value grows with f inside the interval and converges to the next integer as f → 1:
|
|
372
|
+
|
|
373
|
+
```javascript
|
|
374
|
+
MetaNum(10).h21(2.0001); // Ba2.218Ab9 f → 0: cascade bottoming at ω
|
|
375
|
+
MetaNum(10).h21(2.5); // Ba1.772Ad9 the cascade deepens with f
|
|
376
|
+
MetaNum(10).h21(2.99); // Ba2.447Aj9 → converges to h21(10,3) = Ba1.000Ak9
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
For the ω+1 / ω+2 / ω+3 levels the applications after the first still have an operand inside MSI, so those are evaluated directly by the rule (that is the `10{ω}10{ω}(10^0.1)` composition above) — which is also the exact identity. An iteration count beyond direct evaluation diagonalizes through the engine's huge-argument convention (y plus one α-level marker row). Then we have:
|
|
380
|
+
|
|
381
|
+
10{ω\*2}2.1=10{ω+2.1}10=10{ω+3}2\*5^0.1 (because 10{ω+2}10=10{ω+3}2)
|
|
382
|
+
|
|
383
|
+
3{ω\*2}2.1=3{ω+2.1}3=3{ω+3}2\*1.5^0.1
|
|
384
|
+
|
|
385
|
+
10{ω^2}2.1=10{ω\*2.1}10=10{ω\*2+10\*0.1}10=10{ω\*2+1}10
|
|
386
|
+
|
|
387
|
+
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
|
|
388
|
+
|
|
389
|
+
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
|
|
390
|
+
|
|
391
|
+
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
|
|
381
392
|
|
|
382
393
|
## BEAF Operations
|
|
383
394
|
|
|
384
395
|
Bowers' Exploding Array Function (BEAF) is supported via ordinal arithmetic for 3+ arguments:
|
|
385
396
|
|
|
386
397
|
```javascript
|
|
387
|
-
// BEAF(a,b,c,d,e,f,...) = a{...+ω^3*(f-1)+ω^2*(e-1)+ω*(d-1)+c}b
|
|
388
|
-
// (the constant term keeps its value; ω-and-above coefficients decrement by 1)
|
|
398
|
+
// BEAF(a,b,c,d,e,f,...) = a{...+ω^3*(f-1)+ω^2*(e-1)+ω*(d-1)+c}b (the constant term keeps its value; ω-and-above coefficients decrement by 1)
|
|
389
399
|
|
|
390
400
|
// 3-entry: {a,b,c} = a↑^c b (standard up-arrow notation)
|
|
391
401
|
MetaNum.BEAF(3, 3, 2); // 3↑↑3 = 7625597484987
|
|
@@ -400,20 +410,6 @@ MetaNum.BEAF(10, 2, 1, 1, 2); // 10{ω^2}2
|
|
|
400
410
|
MetaNum.BEAF(3, 3, 3, 3, 2); // 3{ω^2+ω*2+3}3
|
|
401
411
|
MetaNum.BEAF(4, 5, 6, 7, 8, 9); // 4{ω^3*8+ω^2*7+ω*6+6}5
|
|
402
412
|
|
|
403
|
-
// Ordinal expansion order and truncation (maxRows = 100 by default):
|
|
404
|
-
// the expansion evaluates from the largest ordinal down and keeps the largest
|
|
405
|
-
// maxRows-1 ordinal rows. Without truncation the expansion is exact, e.g.
|
|
406
|
-
// BEAF(3,3,5,5,5) = 3{ω^2*4+ω*4+5}3 enumerates all 50 sub-ordinals.
|
|
407
|
-
// When the expansion exceeds the row budget the base defaults to [10] and the
|
|
408
|
-
// first kept row's count is incremented by 1 as a truncation marker, e.g.
|
|
409
|
-
// BEAF(5,5,1,1,1,2) = 5{ω^3+1}5 → [[10],[4,2,0,1],...,[3,0,0,0,1]].
|
|
410
|
-
|
|
411
|
-
// nested BEAF: {a,{b,c,d,e},f,g,h}
|
|
412
|
-
// An argument exceeding MSI supremum-collapses (use fundamental sequences rules):
|
|
413
|
-
// ω*i+HUGE ≈ ω*(i+1), ω^i*HUGE ≈ ω^(i+1), etc.
|
|
414
|
-
// (lower coefficients are swallowed), and the result anchors at that argument's value.
|
|
415
|
-
MetaNum.BEAF(4, MetaNum.BEAF(4, 2, 3, 5), 3, 5); // 4{ω*4+3}4{ω*4+3}2
|
|
416
|
-
|
|
417
413
|
// Parse BEAF string notation
|
|
418
414
|
MetaNum.fromBeaf("{3,3,3}"); // 3↑↑↑3
|
|
419
415
|
MetaNum.fromBeaf("{3,3,3,3}"); // 3{ω*2+3}3
|
|
@@ -424,66 +420,112 @@ new MetaNum(7625597484987).toBeaf(); // "{7625597484987}"
|
|
|
424
420
|
MetaNum.BEAF(3,3,3).toBeaf(); // "{3638334640023.7783}"
|
|
425
421
|
```
|
|
426
422
|
|
|
423
|
+
### nested BEAF
|
|
424
|
+
|
|
425
|
+
nested BEAF: {a,{b,c,d,e},f,g,h}
|
|
426
|
+
|
|
427
|
+
An argument exceeding MSI supremum-collapses (use fundamental sequences rules):
|
|
428
|
+
|
|
429
|
+
ω*i+HUGE ≈ ω*(i+1), ω^i*HUGE ≈ ω^(i+1), etc.
|
|
430
|
+
|
|
431
|
+
lower coefficients are swallowed, and the result anchors at that argument's value.
|
|
432
|
+
|
|
433
|
+
```javascript
|
|
434
|
+
MetaNum.BEAF(4, MetaNum.BEAF(4, 2, 3, 5), 3, 5); // 4{ω*4+3}4{ω*4+3}2
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
|
|
427
438
|
## Hardy Hierarchy
|
|
428
439
|
|
|
429
|
-
`MetaNum.hardy(n)` evaluates the Hardy hierarchy `H_α(10)` where the ordinal α
|
|
430
|
-
is built from the decimal digits of n (base 10, `hardy(1234) = H_{ω³+ω²·2+ω·3+4}(10)`):
|
|
440
|
+
`MetaNum.hardy(n)` evaluates the Hardy hierarchy `H_α(10)` where the ordinal α is built from the decimal digits of n (base 10, `hardy(1234) = H_{ω³+ω²·2+ω·3+4}(10)`):
|
|
431
441
|
|
|
432
442
|
```javascript
|
|
433
443
|
MetaNum.hardy(10); // H_ω(10) = 20
|
|
444
|
+
MetaNum.hardy(10.5); // H_ω(10+0.5) = 21
|
|
434
445
|
MetaNum.hardy(11); // H_{ω+1}(10) = 22
|
|
435
446
|
MetaNum.hardy(100); // H_{ω²}(10) = 10240
|
|
436
|
-
MetaNum.hardy(
|
|
437
|
-
|
|
447
|
+
MetaNum.hardy(100.5); // H_{ω²}(10+0.5) ≈ 11085
|
|
448
|
+
MetaNum.hardy(1234); // H_{ω³+ω²·2+ω·3+4}(10), exact for small levels and engine-collapsed (F_j = H^{ω^j}) for deep segments
|
|
438
449
|
```
|
|
439
450
|
|
|
440
|
-
Recursion rules:
|
|
441
|
-
|
|
451
|
+
Recursion rules:
|
|
452
|
+
-`H_0(n) = n`, `H_{α+1}(n) = H_α(n+1)` (only +1, never iterated),
|
|
453
|
+
-For fractional 0<f<1 we have `H_{α+f}(n) = H_α(n+f)`,
|
|
454
|
+
-`H_λ(n) = H_{λ[n]}(n)` with the CNF fundamental sequences.
|
|
442
455
|
|
|
443
456
|
### Hardy beyond ω^ω
|
|
444
457
|
|
|
445
|
-
For n ≥ 1e10 the leading exponent k ≥ 10
|
|
446
|
-
ordinal, so `hardy(1e11) = H_{ω^(ω+1)}(10)` sits at the `10{ω+1}10` scale
|
|
447
|
-
(via `H_{ω^β}(n) = F_β(n)`), not the flat `10{11}10` scale. The value is
|
|
448
|
-
evaluated per the definition (from below), so it is strictly BELOW the
|
|
449
|
-
matching engine hyper-op:
|
|
458
|
+
For n ≥ 1e10 the leading exponent k ≥ 10 itself converted to a base-10 ordinal, so `hardy(1e11) = H_{ω^(ω+1)}(10)` sits at the `10{ω+1}10` scale (via `H_{ω^β}(n) = F_β(n)`), The value is evaluated per the definition (from below),so it is strictly below the matching engine hyper-op:
|
|
450
459
|
|
|
451
460
|
```javascript
|
|
452
|
-
MetaNum.hardy(1e10); // = H_{ω^ω}(10) = H_{ω^10}(10), array exactly
|
|
453
|
-
// [3086.036065328153, 9,9,9,9,9,9,9,9] — below 10{10}10
|
|
461
|
+
MetaNum.hardy(1e10); // = H_{ω^ω}(10) = H_{ω^10}(10), array exactly [3086.036065328153, 9,9,9,9,9,9,9,9] — below 10{10}10
|
|
454
462
|
MetaNum.hardy(1e11); // = H_{ω^(ω+1)}(10) — below 10{ω+1}10 (expande(10,10))
|
|
463
|
+
MetaNum.hardy("1e10+11"); // H_{ω^ω+ω+1}(10) = H_{ω^ω}(22) → the truncated exact tower [3086.036…, 21×19] — the single row [非整数, 21, 21, …, 21], format "X23"
|
|
464
|
+
MetaNum.hardy("1e10+22"); // H_{ω^ω+ω*2+2}(10) → [3086.036…, 47×19], format "X49"
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
Once the definitional from-below tower `[c0, (n1−1)×(n1−2)]` (n1 = hardy(rest)) no longer fits `maxCols`, hardy keeps the TRUNCATED cascade `[3086.036…, (n1−1)×(maxCols−1)]` — the tower level n1−1 over the definitional base — instead of the engine value.
|
|
468
|
+
|
|
469
|
+
Fractional inputs collapse into ONE plain row (the fractional hyper-operation result) and hardy stays continuous across the integers:
|
|
470
|
+
|
|
471
|
+
```javascript
|
|
472
|
+
MetaNum.hardy(1e10) < MetaNum.hardy("1e10+0.5") < MetaNum.hardy(1e10+1); // single rows throughout
|
|
473
|
+
MetaNum.hardy("1e10+0.5"); // [4581.009607833985, 10,10,10,10,10,10,10,10,10]
|
|
474
|
+
MetaNum.hardy("1e10+1.5"); // [10030.57513899962, 11×10]
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
Strings of the form `"AeB+C"` (`"1e10+0.5"`, `"1e16+1e13"`, …) parse to the exact decimal sum, so the digit path never reads 0.
|
|
478
|
+
|
|
479
|
+
More generally, with n = dk·10^kExp + rest: α = ω^ord(kExp)·dk + ord(rest) is built recursively (n1 = H_ord(rest)(10)), and the leading term ω^β·dk (β = ord(kExp)) is **dk applications of H_{ω^β}, one after the other on the running value** — an application is one row `[1, β]`:
|
|
480
|
+
|
|
481
|
+
```javascript
|
|
482
|
+
MetaNum.hardy(1.1e11); // H_{ω^(ω+1)+ω^ω}(10) = H_{ω^(ω+1)}(H_{ω^ω}(10)) (one row per application)
|
|
483
|
+
MetaNum.hardy(2e11); // H_{ω^(ω+1)·2}(10) = H_{ω^(ω+1)}(H_{ω^(ω+1)}(10))
|
|
484
|
+
MetaNum.hardy(3e11); // → … [8,0,1], [2,1,1] (one more row per application)
|
|
485
|
+
MetaNum.hardy(1e16 + 1e13); // H_{ω^(ω+6)}(H_{ω^(ω+3)}(10)) → … [1,6,1]
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
So hardy is monotone across this range: `hardy(9999999999) < hardy(1e10) < hardy(10000000001)`, and `hardy(1e11) < hardy(1.1e11) < hardy(2e11)`.
|
|
489
|
+
|
|
490
|
+
### Hardy of power towers: one layer per 10^ level
|
|
491
|
+
|
|
492
|
+
For a clean tower the ordinal is ω^ord(W) — exactly one ω above hardy(W) — so **every extra 10^ level in the input raises hardy's layer by ONE, and the array rows stay those of the innermost readable expansion**:
|
|
493
|
+
|
|
494
|
+
```javascript
|
|
495
|
+
MetaNum.hardy("1e308"); // layer 0 — the digit-path cascade, last rows [8,6,0,3], [8,7,0,3]
|
|
496
|
+
MetaNum.hardy("e1e308"); // layer 1 — the SAME array rows
|
|
497
|
+
MetaNum.hardy("ee1e308"); // layer 2 — the SAME array rows, and so on
|
|
498
|
+
MetaNum.hardy("e1e10"); // = layerUp(hardy(1e10)) = [[3086.036…, 9×8]] at layer 1
|
|
499
|
+
MetaNum.hardy("eee10"); // layer 2, hardy(10^^100) → layer 98, hardy(10^^MSI) → layer MSI-2
|
|
455
500
|
```
|
|
456
501
|
|
|
457
|
-
|
|
458
|
-
built recursively (n1 = H_ord(rest)(10), base = H_{ω^n1}(n1) when n1 is a
|
|
459
|
-
small finite), and the rows of 10{ω+c}(9+dk) are mirrored onto that base for
|
|
460
|
-
kExp ≥ 11. hardy is monotone across this range:
|
|
461
|
-
`hardy(9999999999) < hardy(1e10) < hardy(10000000001)`.
|
|
502
|
+
The layer therefore equals `floor(tower height) − 2`; towers whose bracket is a finite ω-polynomial keep the definitional base rows instead of being folded down by the standard de-layer rule.
|
|
462
503
|
|
|
463
|
-
|
|
504
|
+
More generally, with n = dk·10^kExp + rest: α = ω^ord(kExp)·dk + ord(rest) is built recursively (n1 = H_ord(rest)(10)), and the leading term ω^β·dk (β = ord(kExp)) is **dk applications of H_{ω^β}, one after the other on the running value** — an application is one row `[1, β]`:
|
|
505
|
+
|
|
506
|
+
```javascript
|
|
507
|
+
MetaNum.hardy(1.1e11); // H_{ω^(ω+1)+ω^ω}(10) = H_{ω^(ω+1)}(H_{ω^ω}(10)) → [3086.036065328153, 9×8], [1,1,1] (H_{ω^ω} once, then H_{ω^(ω+1)} once)
|
|
508
|
+
MetaNum.hardy(2e11); // H_{ω^(ω+1)·2}(10) = H_{ω^(ω+1)}(H_{ω^(ω+1)}(10)) → [3086.036065328153, 9×8], [8,0,1] [1,1,1]
|
|
509
|
+
MetaNum.hardy(3e11); // → … [8,0,1], [2,1,1] (one more row per application)
|
|
510
|
+
MetaNum.hardy(1e16 + 1e13); // H_{ω^(ω+6)}(H_{ω^(ω+3)}(10)) → … [8,2,1], [1,6,1]
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
So hardy is monotone across this range: `hardy(9999999999) < hardy(1e10) < hardy(10000000001)`, and `hardy(1e11) < hardy(1.1e11) < hardy(2e11)`.
|
|
464
514
|
|
|
465
515
|
### hardy input extensions
|
|
466
516
|
|
|
517
|
+
And we have hardy(1e20) = H_{ω^(ω*2)}(10), hardy(1e100)=H_{ω^(ω^2)}(10), hardy("e1e10")=H_{ω^(ω^ω)}(10), hardy("1F10")=H_{ω^^10}(10), and so on.
|
|
518
|
+
|
|
519
|
+
`MetaNum.infinity` (alias of `MetaNum.POSITIVE_INFINITY`) is the value returned once the input passes the ε₀ ceiling: any MetaNum beyond `10^^MSI` — e.g. `G600` (= 10{3}600), `3{9}3`, or a power tower taller than `10^^MSI` — has no Hardy level inside the library, so `hardy` yields Infinity.
|
|
520
|
+
|
|
467
521
|
```javascript
|
|
468
|
-
MetaNum.hardy(1e21);
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
MetaNum.hardy(MetaNum(10).tetr(100));
|
|
472
|
-
// power towers shadow to ω^ω^…^ω (k ω's):
|
|
473
|
-
// hardy(10^^k) = 10.epsilonate(k)
|
|
474
|
-
MetaNum.hardy(MetaNum(10).tetr(Number.MAX_SAFE_INTEGER));
|
|
475
|
-
// hardy(10^^MSI) = the MetaNum limit exactly:
|
|
476
|
-
// 10{ω^ω^…^ω(MSI ω's)}10 (the ε-tower cap)
|
|
522
|
+
MetaNum.hardy(1e21); // hardy(1e20) < hardy(1e21) < hardy(1e22), >1e20 scientific strings expand to exact digits — the reading stays monotone
|
|
523
|
+
MetaNum.hardy(MetaNum(10).tetr(100)); // power towers shadow to ω^ω^…^ω (k ω's): hardy(10^^k) = H_ω^ω^…^ω (k ω's)(10) — the ordinal is read off the value itself (10^W → ω^ord(W))
|
|
524
|
+
MetaNum.hardy(MetaNum(10).tetr(Number.MAX_SAFE_INTEGER)); // hardy(10^^MSI) = the MetaNum limit: layer MSI-3 (the ε-tower cap)
|
|
477
525
|
MetaNum.hardy(MetaNum("G600")) // MetaNum-object > 10^^MSI should return Infinity
|
|
478
526
|
MetaNum.hardy(MetaNum.arrow(3, 9, 3)) // = Infinity (3{9}3 is far above 10^^MSI)
|
|
479
527
|
```
|
|
480
528
|
|
|
481
|
-
`MetaNum.infinity` (alias of `MetaNum.POSITIVE_INFINITY`) is the value returned
|
|
482
|
-
once the input passes the ε₀ ceiling: any MetaNum beyond `10^^MSI` — e.g. `G600`
|
|
483
|
-
(= 10{3}600), `3{9}3`, or a power tower taller than `10^^MSI` — has no Hardy
|
|
484
|
-
level inside the library, so `hardy` yields Infinity. Below the ceiling the
|
|
485
|
-
tower height still reads exactly: `hardy(10^^(MSI-1)) = 10.epsilonate(MSI-1)`.
|
|
486
|
-
|
|
487
529
|
## Layer & Serialization
|
|
488
530
|
|
|
489
531
|
```javascript
|
|
@@ -502,9 +544,7 @@ new MetaNum(100).toPrecision(3); // "100"
|
|
|
502
544
|
new MetaNum(100).toHyperE(); // "100"
|
|
503
545
|
new MetaNum(100).toStringWithDecimalPlaces(4); // "100.0000"
|
|
504
546
|
new MetaNum(100).toJSON(); // {sign:1, array:[[100]], layer:0}
|
|
505
|
-
new MetaNum(100).format(); // letter notation (format-metanum.js),
|
|
506
|
-
// e.g. MetaNum.hardy(4166).format() → "2.397G5"
|
|
507
|
-
// optional args: format(precision, small)
|
|
547
|
+
new MetaNum(100).format(); // letter notation (format-metanum.js), e.g. MetaNum.hardy(4166).format() → "2.397G5", optional args: format(precision, small)
|
|
508
548
|
```
|
|
509
549
|
|
|
510
550
|
## Utility Functions
|
|
@@ -525,7 +565,7 @@ MetaNum.sumArithmeticSeries(5, 1, 2); // 1+3+5+7+9 = 25
|
|
|
525
565
|
MetaNum.affordArithmeticSeries(100, 1, 2, 0);
|
|
526
566
|
|
|
527
567
|
// Configuration
|
|
528
|
-
MetaNum.config({ maxRows: 50, maxCols: 50,
|
|
568
|
+
MetaNum.config({ maxRows: 50, maxCols: 50, serializeMode: 1, debug: 1 });
|
|
529
569
|
```
|
|
530
570
|
|
|
531
571
|
# Mathematical Background
|
|
@@ -555,6 +595,28 @@ where α\[b] denotes the b-th element of the fundamental sequence assign to the
|
|
|
555
595
|
- (ω^(α_1)+ω^(α_2)+...+ω^(α_k))\[n]=ω^(α_1)+ω^(α_2)+...+ω^(α_k)\[n], where α_1>=α_2>=...>=α_k
|
|
556
596
|
- ε₀\[0]=1 and ε₀\[n+1]=ω^ε₀\[n]
|
|
557
597
|
|
|
598
|
+
### The application count of each ordinal row
|
|
599
|
+
|
|
600
|
+
Expanding rules 2-3 all the way down shows that **only the top row depends on the argument b**
|
|
601
|
+
— every row below it is produced by decomposing with the base n as the operand:
|
|
602
|
+
- successor α: n{α}b = n{α-1}^(b-2) (n{α-1}n), so the α-1 row carries **b-2** applications and every lower row (which comes from n{α-1}n, n{α-2}n, … whose operand is n) carries **n-2**;
|
|
603
|
+
- limit α: rule 3 first rewrites n{α}b = n{α\[b]}n, so the operand is n at every level and **all** rows carry **n-2**.
|
|
604
|
+
- when expanded ordinal rows >= maxRows, it is truncated, and array[0] is default [10] and the first ordinal row count add 1.(to get precise value)
|
|
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
|
+
MetaNum(10).h12(20); // 10{ω+2}20 → [8,0,1] [18,1,1]
|
|
610
|
+
MetaNum(3).h13(20); // 3{ω+3}20 → [1,0,1] [1,1,1] [18,2,1] (x-2 = 1)
|
|
611
|
+
MetaNum(10).h21(20); // 10{ω*2+1}20 = 10{ω*2}^18 (10{ω*2}10)
|
|
612
|
+
// 10{ω*2}10 = 10{ω+10}10 → the ω..ω+9 cascade, every count x-2 = 8
|
|
613
|
+
// array → [[…,8,…], [8,0,1] … [8,9,1], [18,0,2]]
|
|
614
|
+
MetaNum(10).h22(20); // … + [8,0,2] + [18,1,2] (ω*2 row = 8, ω*2+1 row = 18)
|
|
615
|
+
MetaNum(3).h21(20); // 3{ω*2+1}20 → [1,0,1] [1,1,1] [1,2,1] [18,0,2] (x-2 = 1)
|
|
616
|
+
MetaNum(10).h100(20); //10{ω^2}20=10{ω*20}10=10{ω*19+9}^8 10{ω*19+8}^8 ... 10{ω*18+1}^9 10
|
|
617
|
+
// array → [[10], [9,1,18], [8,2,18] … [8,8,19], [8,9,19]] (maxrows=20)
|
|
618
|
+
```
|
|
619
|
+
|
|
558
620
|
## Examples
|
|
559
621
|
|
|
560
622
|
642663{0}178187=642663×178187=114514191981
|
|
@@ -673,9 +735,7 @@ In the previous section we've defined a finite sequence of functions, so we can
|
|
|
673
735
|
|
|
674
736
|
let 10{1}α = Eα, 10{2}α = Fα, 10{3}α = Gα, ..., 10{22}α = Zα.
|
|
675
737
|
|
|
676
|
-
we had: Aaα = 10{α}10.
|
|
677
|
-
|
|
678
|
-
So Aa has ω hyper-operation level, comparable to f\_ω\_(n) in FGH.
|
|
738
|
+
we had: Aaα = 10{α}10, so Aa has ω hyper-operation level.
|
|
679
739
|
|
|
680
740
|
Then, we'll give a definition for non-integer 10{α}10 and amend the definition of Aa:
|
|
681
741
|
|
|
@@ -683,7 +743,9 @@ Then, we'll give a definition for non-integer 10{α}10 and amend the definition
|
|
|
683
743
|
|
|
684
744
|
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.
|
|
685
745
|
|
|
686
|
-
|
|
746
|
+
Then we can define Binary-Letter-Canonical form of Aa: αAaβ = 10{β+1}α = 10{β}10{β}10...{β}10^frac(α) with int(α)10's
|
|
747
|
+
|
|
748
|
+
For example, 1Aa10=10, 2Aa10 = 10{10}10, 2.5Aa10 = 10{10}2.5 = 10{10}10{10}3.162, 3Aa10 = 10{10}10{10}10, Aa10.5 = 10{11}2\*5^0.5 = 10{11}4.472 = 4.472Aa10, 10Aa10 = 10{10}^9 10 = 10{11}10 = 2Aa11
|
|
687
749
|
|
|
688
750
|
### Ab,Ac,Ad,...,Az and their Universal Binary-Letter-Canonical Forms
|
|
689
751
|
|
|
@@ -693,27 +755,25 @@ Abα = AaAa...AaAa(10^frac(α)) with int(α) Aa's = 10{ω+1}α
|
|
|
693
755
|
|
|
694
756
|
Acα = AbAb...AbAb(10^frac(α)) with int(α) Ab's = 10{ω+2}α
|
|
695
757
|
|
|
696
|
-
then we have Ad,Ae,...,Az, each with the same definition as Ab and Ac.
|
|
697
|
-
|
|
698
|
-
And that's it. So A(the β+1-th lowercase letter)α is 10{ω+β}α, comparable to f\_ω+β\_(n) in the FGH.
|
|
758
|
+
then we have Ad,Ae,...,Az, each with the same definition as Ab and Ac, and that's it. So A(the β+1-th lowercase letter)α is 10{ω+β}α.
|
|
699
759
|
|
|
700
760
|
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.
|
|
701
761
|
|
|
702
|
-
Moreover, since Aa10=Ab2, we can extend our definition of the
|
|
762
|
+
Moreover, since 10{10}10=Aa10=Ab2(2Aa10=1Ab2), we can extend our definition of the Binary-Letter-Canonical form up to Az:
|
|
703
763
|
|
|
704
|
-
(1) Set a threshold number θ (such as
|
|
764
|
+
(1) Set a threshold number θ (such as 1000, that's 1E3)
|
|
705
765
|
|
|
706
|
-
(2) if the number <θ then we write down the scientific notation of this number.
|
|
766
|
+
(2) if the number <θ then we write down the scientific notation (...E...) of this number.
|
|
707
767
|
|
|
708
|
-
(3) Otherwise, we write Γα
|
|
768
|
+
(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.
|
|
709
769
|
|
|
710
770
|
Examples:
|
|
711
771
|
|
|
712
|
-
10{20}10 =
|
|
772
|
+
10{20}10 = 1X10 = 1Y2 = 2Aa20, so we write it as 1.000X10.
|
|
713
773
|
|
|
714
|
-
10{30}10 =
|
|
774
|
+
10{30}10 = 2Aa30, so we write it as 2.000Aa30.
|
|
715
775
|
|
|
716
|
-
10{ω+1}10 =
|
|
776
|
+
10{ω+1}10 = 1Ab10 = 1Ac2, so we write it as 1.000Ab10.
|
|
717
777
|
|
|
718
778
|
### Defining from Ba to Bz
|
|
719
779
|
|
|
@@ -725,9 +785,9 @@ And define Baα in a way similar to Aaα:
|
|
|
725
785
|
|
|
726
786
|
Baα = 10{ω+α}10 = 10{ω+int(α)+1}2\*5^frac(α)
|
|
727
787
|
|
|
728
|
-
This gives rise to writing numbers in Ba Canonical form and extend the
|
|
788
|
+
This gives rise to writing numbers in Ba Canonical form and extend the universal Binary-Letter-Canonical form of Ba: αBaβ = 10{ω+β+1}α = 10{ω+β}10{ω+β}10...{ω+β}10^frac(α) with int(α)10's. Because of 10{ω+β}10 = 10{ω+β+1}2, α in αBaβ has a range of [2,10).
|
|
729
789
|
|
|
730
|
-
Then we can define Bb,Bc,
|
|
790
|
+
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+β}α.
|
|
731
791
|
|
|
732
792
|
### A Supporting Extended Arrow Operation and Aaa
|
|
733
793
|
|
|
@@ -753,11 +813,13 @@ And with this new supporting notation we can now to define:
|
|
|
753
813
|
|
|
754
814
|
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
|
|
755
815
|
|
|
756
|
-
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.
|
|
816
|
+
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. Aaa1=Aa10, Aaa2=Ba10, ..., Aaa26=Za10 take the foundamental sequences.
|
|
817
|
+
|
|
818
|
+
This also enables us to write the unversal Binary-Letter-Canonical form of any number up to Aaa: αAaaβ = 10{ω^2}(log5(α/2)+β). Since 10{ω^2}1=10{ω}10, 10{ω^2}2=10{ω\*2}10, α in αAaaβ has a range of [2,10).
|
|
757
819
|
|
|
758
820
|
## Symbol and letter notation
|
|
759
821
|
|
|
760
|
-
###
|
|
822
|
+
### Notations with more than three letters, and !Aa
|
|
761
823
|
|
|
762
824
|
Extended arrow operations can be easily extended, like so:
|
|
763
825
|
|
|
@@ -781,9 +843,9 @@ Now, all that is left to do is to define !Aa, which has ω^ω level.
|
|
|
781
843
|
|
|
782
844
|
- !Aaα = 10{ω^int(α)\*frac(α)}10
|
|
783
845
|
|
|
784
|
-
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:
|
|
846
|
+
Then we have !Aa1 = Aa10, !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:
|
|
785
847
|
|
|
786
|
-
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, !
|
|
848
|
+
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, !2.0000Aa4 = 10{ω^4}10 and 2.0000Aa4 = 10{4}10
|
|
787
849
|
|
|
788
850
|
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.
|
|
789
851
|
|
|
@@ -821,22 +883,24 @@ Then we can define (the β-th symbol or symbol combination)Aaα = 10{ω^ω^...^(
|
|
|
821
883
|
|
|
822
884
|
Implementation of dlsdl's letter notation for large number library, currently metanum.js
|
|
823
885
|
|
|
886
|
+
the letter notations follow **diagonal letters**: names ending in `a` (`Aa` = ω, `Ba` = ω·2, `Aaa` = ω², …) carry the mantissa `α = 2·5^f ∈ [2,10)`: `10{ω*3}100=10{ω*2+100}10` → `2.000Ca100`, `10{ω^2}100=10{ω*100}10` → `2.000Aaa100`. And mantissa `α∈[1,10)` for the other letters: `10{ω*3+1}100=10{ω*3}^99 10` → `1.000Cb100`
|
|
887
|
+
|
|
824
888
|
## format options
|
|
825
889
|
|
|
826
890
|
```javascript
|
|
827
891
|
smallNotationUseE // 1. for small value notations, true then use αE-β,false then use number⁻¹
|
|
828
892
|
smallNotationThreshold // 2. =n then value < 10^-n uses small notation
|
|
829
893
|
decimalPlaces // 3. for normal notations, =0 is 1,=1 is 1.0,=2 is 1.00 etc.
|
|
830
|
-
decimalThreshold // 4. =n then value >= 10^n
|
|
894
|
+
decimalThreshold // 4. =n then value >= 10^n only show integer part
|
|
831
895
|
useCommas // 5. whether to show commas in normal numbers (true/false)
|
|
832
896
|
sciThreshold // 6. =n then value >= 10^n use scientific notation, same for β in αEβ
|
|
833
897
|
sciSignificantDigits // 7. =n then α has n decimal places in αEβ
|
|
834
898
|
sciDecimalThreshold // 8. =n then β >= 10^n in αEβ only show integer part of α
|
|
835
899
|
singleLetterDigits // 9. α's decimal places in αFβ,αGβ...αZβ
|
|
836
|
-
repeatLetterThreshold // 10. =n then n repeated single letters use next letter notation
|
|
837
|
-
multiLetterDigits // 11. α's decimal places in αAaβ,αAbβ...α
|
|
838
|
-
multiLetterRepeatThreshold// 12. =n then n repeated multi letter combinations use next letter notation
|
|
839
|
-
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...)
|
|
900
|
+
repeatLetterThreshold // 10. =n then n repeated single letters use next letter notation
|
|
901
|
+
multiLetterDigits // 11. α's decimal places in αAaβ,αAbβ...αAaaβ and above
|
|
902
|
+
multiLetterRepeatThreshold// 12. =n then n repeated multi letter combinations use next letter notation
|
|
903
|
+
multiLetterLimit // 13. =n then length of multi letter combinations does not exceed n, exceed then switch to next notation (length of Aa~Zz is 2, Aaa~Zzz is 3, Aaaa~Zzzz is 4...)
|
|
840
904
|
epsilonSignificantDigits // 14. α's decimal places in αεβ
|
|
841
905
|
```
|
|
842
906
|
|
|
@@ -897,70 +961,18 @@ Implementation of dlsdl's letter notation for large number library, currently me
|
|
|
897
961
|
- 10{ω^ω^……^ω}10 ~ 10{ω^ω^…(10^sciThreshold ω^'s)…^ω}10: αεβformat
|
|
898
962
|
- 10{ω^ω^…(10^sciThreshold ω^'s)…^ω}10 ~ limit of metanum.js: εαEβformat
|
|
899
963
|
|
|
900
|
-
### format-metanum rules
|
|
964
|
+
### format-metanum rules
|
|
901
965
|
|
|
902
|
-
- **Γ-canonical α/β (bisect law)**: the true α and β of a value v at letter Γ
|
|
903
|
-
|
|
904
|
-
(
|
|
905
|
-
`format(arrow(3,4.1,3))` → `G1.161G897` (not `G1.000G898`),
|
|
906
|
-
`format(arrow(3,4.3,3))` → `1.285H8` (not `1.000H8`),
|
|
966
|
+
- **Γ-canonical α/β (bisect law)**: the true α and β of a value v at letter Γ are recovered by bisecting 10{L}x = v on the engine's own smooth arrow curve (Γ = E,F,G,... single letters, L = level). α = 10^frac(x), β = floor(x), n operations of level L applied to a Γ^{L+1}-structured value collapse to ONE Γ^{L+1} with arg + n (e.g. F⁴(G(1.3796)) = G(5.3796)):
|
|
967
|
+
`format(arrow(3,4.1,3))` → `G1.161G897`,
|
|
968
|
+
`format(arrow(3,4.3,3))` → `1.285H8`,
|
|
907
969
|
`format(hardy(4166))` → `2.397G5`.
|
|
908
|
-
-
|
|
909
|
-
|
|
910
|
-
which is why single-letter chains like `G1.161G897` appear.
|
|
911
|
-
- **α appears at most once**, attached to the innermost value:
|
|
912
|
-
`format(GE12)` → `G1.000E12`; hardy(1120) → `F4.398E13`. Once the innermost β reaches
|
|
913
|
-
10^sciThreshold the letter goes bare and β carries its own sci form.
|
|
914
|
-
- **At most 2 finite letter types** may appear in a display's hyper-op chain
|
|
915
|
-
(VαEβ → VαFβ → … → VαVβ, never another like VFαEβ)
|
|
916
|
-
(AaαEβ → AaαFβ → … → AaαZβ → AaαAaβ, never another like AaFαEβ)
|
|
917
|
-
A cascade that would spell more than two letter types spells only its top two levels
|
|
918
|
-
and compresses the rest into the second letter's binary form.
|
|
919
|
-
"bottom Γ repeation": 3{9}3 → `L2.376K2`, 3{10}3 → `M2.376L2`,
|
|
920
|
-
4{9}4 → `LLK3.550K3`, 5{9}5 → `LLLKK4.669K4`; repeatLetterThreshold+1 top
|
|
921
|
-
repeats carry to the next letter instead (6{9}6 → `5.760M5`), and levels
|
|
922
|
-
22→21, 23→22 stay two-letter (`Y2.376X2`, `Z2.376Y2`), level ≥ 23 cascades
|
|
923
|
-
display as the αΓβ polarize diagonal. Diagonal letter combinations
|
|
924
|
-
(multi-letter tokens whose last lowercase letter is `a`: Aa, Ba, Ca, Aaa,
|
|
925
|
-
Aaaa, …) use the **pure dlsdl α=2·5^f ∈ [2,10) convention**; the other
|
|
926
|
-
letters (Ab, Bb, …) keep the ordinary α∈[1,10) convention. The polarize
|
|
927
|
-
triple t = log₁₀(bottom)+repeation maps as: t∈[2,10) smooth → α=t,
|
|
928
|
-
β=arrows; discrete integer arguments (10{L}b with 2≤b≤100) all sit at the
|
|
929
|
-
α=2 anchor of the next β; a structured argument climbs the geometric
|
|
930
|
-
smooth-log steps f→1+log10(f) to its diagonal mantissa. Examples:
|
|
931
|
-
3{24}3 → `2.376Aa23`, 3{100}3 → `2.376Aa99`,
|
|
932
|
-
10{100}10 … 10{100}100 → `2.000Aa100`, 10{23}10 → `2.000Aa23`,
|
|
933
|
-
10{100}(10{93}10) → `2.002Aa100`, 10{10000}10 → `2.000Aa10,000`;
|
|
934
|
-
nested ordinals prefix the ω-row letter:
|
|
935
|
-
3{3{100}3}3 → `Aa2.376Aa99`, 3{10{10000}10}3 → `Aa2.000Aa10,000`.
|
|
936
|
-
Symbol de-layering follows the same convention: !Aa3 = 10{ω³}10 →
|
|
937
|
-
`2.000Aaaa10` (layer 0), @Aa3 = 10{ω^{ω³}}10 → `!2.000Aaaa10`.
|
|
938
|
-
- **multiLetterLimit symbol carry**: a multi-letter combination of k letters
|
|
939
|
-
sits at level ω^(k-1). Once it would be longer than multiLetterLimit the
|
|
940
|
-
notation switches to the next one instead of growing another letter: the
|
|
941
|
-
symbol form !αAaβ, whose β is exactly that ω-exponent and whose α digits are
|
|
942
|
-
the CNF coefficients per the !-form definition
|
|
943
|
-
(!1.2345Aa4 = 10{ω^4+ω^3*2+ω^2*3+ω*4+5}10). With limit 4 the successor of
|
|
944
|
-
Zzzz is `!…Aa4` — never Aaaaa — and a 10-letter level displays as a short
|
|
945
|
-
`!2.222Aa9`: `format(iter(3,5))` → `!2.222Aa4`,
|
|
946
|
-
`format(iter(3,10))` → `!2.222Aa9`.
|
|
947
|
-
**Every symbol-prefixed format carries too** — the symbols stack
|
|
948
|
-
(no-symbol → ! → @ → # …), so a layer-1 value whose diagonal letter would
|
|
949
|
-
exceed the limit reads as one more symbol with the Aa argument taking the
|
|
950
|
-
exponent: `format(apix(3,10))` → `@2.000Aa10`
|
|
951
|
-
(= 10{ω^(ω^10)}10), `format(apix(3,5))` → `@2.000Aa5`; past the symbol
|
|
952
|
-
table the ε form takes over (`format(epsilonate(3,15))` → `1.000Ak10ε14`).
|
|
953
|
-
Diagonal combinations in symbol forms keep the pure dlsdl α = 2·5^f ∈ [2,10)
|
|
954
|
-
mantissa (integer exponents anchor 2.000).
|
|
955
|
-
- **Cascade compression**: a 20-row ordinal cascade that would spell 20 letter
|
|
956
|
-
types keeps its top two levels and folds the rest into the second letter's
|
|
957
|
-
repeat count: `format(h10000(3,10))` → `1.000Iccc19`.
|
|
958
|
-
Formats are identical at maxRows=maxCols=10/20/50/100.
|
|
970
|
+
- **α appears at most once**, attached to the innermost value: `format(GE12)` → `G1.000E12`; hardy(1120) → `F4.398E13`. Once the innermost β reaches 10^sciThreshold the letter goes bare and β carries its own sci form.
|
|
971
|
+
- **At most 2 finite letter types** may appear in a display's hyper-op chain (VαEβ → VEαEβ → VαFβ → … → VαVβ, never another like VFαEβ), (AaαEβ → AaαFβ → … → AaαZβ → AaαAaβ, never another like AaFαEβ). A cascade that would spell more than two letter types spells only its top two levels and compresses the rest into the second letter's binary form. "bottom Γ repeation": 3{9}3 → `L2.376K2`, 3{10}3 → `M2.376L2`, 4{9}4 → `LLK3.550K3`, 5{9}5 → `LLLKK4.669K4`; repeatLetterThreshold+1 top repeats carry to the next letter instead (6{9}6 → `5.760M5`), and levels 22→21, 23→22 stay two-letter (`Y2.376X2`, `Z2.376Y2`), level ≥ 23 cascades display as the αΓβ polarize diagonal.
|
|
959
972
|
|
|
960
973
|
### Precision budget (maxRows / maxCols)
|
|
961
974
|
|
|
962
|
-
Every hyperoperation is stored EXACTLY while it fits the array budget and
|
|
963
|
-
approximately once it does not:
|
|
975
|
+
Every hyperoperation is stored EXACTLY while it fits the array budget and approximately once it does not:
|
|
964
976
|
|
|
965
977
|
- exact capacity = maxRows+maxCols−2 finite hyperoperation levels:
|
|
966
978
|
`arrow(x,L,z)` holds `r0 = [a0, a1, …, a(maxCols-1)]` (levels 0…maxCols−1)
|
|
@@ -985,6 +997,9 @@ approximately once it does not:
|
|
|
985
997
|
|
|
986
998
|
# Changelog
|
|
987
999
|
|
|
1000
|
+
|
|
1001
|
+
- 2026-9-30 v2.0.2: Fix a lot of bugs e.g. hardy(non integer > 1000) throwing, hardy beyond the 1.8e308 range fails, format of "ω^n\*large numbers" fails, some FORMAT_OPTIONS not take effect.
|
|
1002
|
+
- 2026-9-25 v2.0.1: Fix arrow(x,y,y) not being monotone in y and array except array[0][0] may be non-integer
|
|
988
1003
|
- 2026-9-15 v2.0: Add hyper-root & hyper-log, hardy function, fractional hyperoperation inputs, fix BEAF operation level and format
|
|
989
1004
|
- 2026-8-18 v1.4 Support hyper operation >MSI and fix format-metanum bugs
|
|
990
1005
|
- 2026-7-31 v1.3 Add format-metanum.js, fix basic operations, hyper operations and BEAF bugs
|