zeropoint-node 1.0.7 → 1.0.8
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/CHANGELOG.md +50 -0
- package/CITATION.cff +1 -1
- package/README.md +1 -1
- package/package.json +4 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +0 -179
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +0 -96
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +0 -783
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +0 -409
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +0 -159
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +0 -116
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +0 -597
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +0 -491
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +0 -519
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +0 -65
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +0 -45
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +0 -1081
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +0 -55
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +0 -743
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +0 -56
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +0 -888
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +0 -926
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +0 -336
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +0 -523
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +0 -594
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +0 -88
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +0 -650
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +0 -76
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +0 -879
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +0 -754
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +0 -89
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +0 -69
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +0 -32
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +0 -68
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +0 -304
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +0 -23
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +0 -281
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +0 -106
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +0 -386
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +0 -109
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +0 -389
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +0 -97
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +0 -443
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +0 -475
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +0 -646
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +0 -130
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +0 -693
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +0 -12
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +0 -31
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +0 -703
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +0 -728
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +0 -9
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +0 -116
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +0 -10
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +0 -123
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +0 -871
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +0 -666
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +0 -50
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +0 -59
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +0 -99
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +0 -820
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +0 -187
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +0 -58
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +0 -61
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +0 -625
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +0 -314
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +0 -39
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +0 -326
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +0 -868
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +0 -167
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +0 -97
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +0 -112
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +0 -110
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +0 -92
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +0 -156
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +0 -269
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +0 -25
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +0 -263
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +0 -87
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +0 -1141
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +0 -77
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +0 -91
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +0 -59
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +0 -30
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +0 -29
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +0 -506
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +0 -546
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +0 -452
- package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +0 -209
- package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +0 -19
- package/src/0/3/6/9/1/2/4/8/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/a432.experience.ts +0 -22
- package/src/0/3/6/9/a432.experience.ts +0 -22
- package/src/0/3/6/a432.experience.ts +0 -22
- package/src/0/3/a432.experience.ts +0 -22
- package/src/0/3/relation.ts +0 -148
- package/src/index.ts +0 -146
- package/src/zero-entropy-demo.ts +0 -319
|
@@ -1,625 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A432 Sacred Geometry Integer Mathematics
|
|
3
|
-
* All calculations use exact integer arithmetic
|
|
4
|
-
* No floating point - pure mathematical relationships
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { cos, sin } from './a432.algebra.ts'
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// PLATONIC SOLIDS - EXACT INTEGER PROPERTIES
|
|
10
|
-
// ============================================================================
|
|
11
|
-
|
|
12
|
-
export const PLATONIC_SOLIDS = {
|
|
13
|
-
TETRAHEDRON: {
|
|
14
|
-
vertices: 4,
|
|
15
|
-
edges: 6,
|
|
16
|
-
faces: 4,
|
|
17
|
-
faceType: 3, // triangular faces
|
|
18
|
-
vertexDegree: 3, // edges per vertex
|
|
19
|
-
dualOf: 'TETRAHEDRON', // self-dual
|
|
20
|
-
schläfli: [3, 3], // {3,3}
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
CUBE: {
|
|
24
|
-
vertices: 8,
|
|
25
|
-
edges: 12,
|
|
26
|
-
faces: 6,
|
|
27
|
-
faceType: 4, // square faces
|
|
28
|
-
vertexDegree: 3,
|
|
29
|
-
dualOf: 'OCTAHEDRON',
|
|
30
|
-
schläfli: [4, 3], // {4,3}
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
OCTAHEDRON: {
|
|
34
|
-
vertices: 6,
|
|
35
|
-
edges: 12,
|
|
36
|
-
faces: 8,
|
|
37
|
-
faceType: 3, // triangular faces
|
|
38
|
-
vertexDegree: 4,
|
|
39
|
-
dualOf: 'CUBE',
|
|
40
|
-
schläfli: [3, 4], // {3,4}
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
DODECAHEDRON: {
|
|
44
|
-
vertices: 20,
|
|
45
|
-
edges: 30,
|
|
46
|
-
faces: 12,
|
|
47
|
-
faceType: 5, // pentagonal faces
|
|
48
|
-
vertexDegree: 3,
|
|
49
|
-
dualOf: 'ICOSAHEDRON',
|
|
50
|
-
schläfli: [5, 3], // {5,3}
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
ICOSAHEDRON: {
|
|
54
|
-
vertices: 12,
|
|
55
|
-
edges: 30,
|
|
56
|
-
faces: 20,
|
|
57
|
-
faceType: 3, // triangular faces
|
|
58
|
-
vertexDegree: 5,
|
|
59
|
-
dualOf: 'DODECAHEDRON',
|
|
60
|
-
schläfli: [3, 5], // {3,5}
|
|
61
|
-
},
|
|
62
|
-
} as const;
|
|
63
|
-
|
|
64
|
-
// ============================================================================
|
|
65
|
-
// ARCHIMEDEAN SOLIDS - SEMI-REGULAR POLYHEDRA
|
|
66
|
-
// ============================================================================
|
|
67
|
-
|
|
68
|
-
export const ARCHIMEDEAN_SOLIDS = {
|
|
69
|
-
TRUNCATED_TETRAHEDRON: {
|
|
70
|
-
vertices: 12,
|
|
71
|
-
edges: 18,
|
|
72
|
-
faces: 8,
|
|
73
|
-
faceTypes: [3, 6], // triangles and hexagons
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
CUBOCTAHEDRON: {
|
|
77
|
-
vertices: 12,
|
|
78
|
-
edges: 24,
|
|
79
|
-
faces: 14,
|
|
80
|
-
faceTypes: [3, 4], // triangles and squares
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
TRUNCATED_CUBE: {
|
|
84
|
-
vertices: 24,
|
|
85
|
-
edges: 36,
|
|
86
|
-
faces: 14,
|
|
87
|
-
faceTypes: [3, 8], // triangles and octagons
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
TRUNCATED_OCTAHEDRON: {
|
|
91
|
-
vertices: 24,
|
|
92
|
-
edges: 36,
|
|
93
|
-
faces: 14,
|
|
94
|
-
faceTypes: [4, 6], // squares and hexagons
|
|
95
|
-
},
|
|
96
|
-
|
|
97
|
-
RHOMBICUBOCTAHEDRON: {
|
|
98
|
-
vertices: 24,
|
|
99
|
-
edges: 48,
|
|
100
|
-
faces: 26,
|
|
101
|
-
faceTypes: [3, 4], // triangles and squares
|
|
102
|
-
},
|
|
103
|
-
|
|
104
|
-
ICOSIDODECAHEDRON: {
|
|
105
|
-
vertices: 30,
|
|
106
|
-
edges: 60,
|
|
107
|
-
faces: 32,
|
|
108
|
-
faceTypes: [3, 5], // triangles and pentagons
|
|
109
|
-
},
|
|
110
|
-
} as const;
|
|
111
|
-
|
|
112
|
-
// ============================================================================
|
|
113
|
-
// GOLDEN RATIO AND FIBONACCI - INTEGER REPRESENTATIONS
|
|
114
|
-
// ============================================================================
|
|
115
|
-
|
|
116
|
-
export const GOLDEN_CONSTANTS = {
|
|
117
|
-
// Fibonacci ratios approaching phi
|
|
118
|
-
PHI_APPROXIMATIONS: [
|
|
119
|
-
[1, 1], // 1.000000
|
|
120
|
-
[2, 1], // 2.000000
|
|
121
|
-
[3, 2], // 1.500000
|
|
122
|
-
[5, 3], // 1.666667
|
|
123
|
-
[8, 5], // 1.600000
|
|
124
|
-
[13, 8], // 1.625000
|
|
125
|
-
[21, 13], // 1.615385
|
|
126
|
-
[34, 21], // 1.619048
|
|
127
|
-
[55, 34], // 1.617647
|
|
128
|
-
[89, 55], // 1.618182
|
|
129
|
-
[144, 89], // 1.617978
|
|
130
|
-
[233, 144],// 1.618056
|
|
131
|
-
],
|
|
132
|
-
|
|
133
|
-
// Lucas number ratios
|
|
134
|
-
LUCAS_RATIOS: [
|
|
135
|
-
[3, 2], // 1.500000
|
|
136
|
-
[4, 3], // 1.333333
|
|
137
|
-
[7, 4], // 1.750000
|
|
138
|
-
[11, 7], // 1.571429
|
|
139
|
-
[18, 11], // 1.636364
|
|
140
|
-
[29, 18], // 1.611111
|
|
141
|
-
[47, 29], // 1.620690
|
|
142
|
-
[76, 47], // 1.617021
|
|
143
|
-
[123, 76], // 1.618421
|
|
144
|
-
],
|
|
145
|
-
|
|
146
|
-
// Pentagon and pentagram ratios
|
|
147
|
-
PENTAGON_DIAGONAL: [1618, 1000], // diagonal/side ratio
|
|
148
|
-
PENTAGRAM_RATIO: [1618, 1000], // star point ratios
|
|
149
|
-
} as const;
|
|
150
|
-
|
|
151
|
-
// ============================================================================
|
|
152
|
-
// SACRED GEOMETRY CALCULATOR CLASS
|
|
153
|
-
// ============================================================================
|
|
154
|
-
|
|
155
|
-
export class SacredGeometryIntegers {
|
|
156
|
-
/**
|
|
157
|
-
* Verify Euler's formula: V - E + F = 2
|
|
158
|
-
*/
|
|
159
|
-
static verifyEuler(vertices: number, edges: number, faces: number): boolean {
|
|
160
|
-
return vertices - edges + faces === 2;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Calculate surface area of regular polyhedron
|
|
165
|
-
* Using integer math (multiply by 10000 for precision)
|
|
166
|
-
*/
|
|
167
|
-
static platonicSurfaceArea(solid: keyof typeof PLATONIC_SOLIDS, edgeLength: number): number {
|
|
168
|
-
const s = edgeLength;
|
|
169
|
-
|
|
170
|
-
switch (solid) {
|
|
171
|
-
case 'TETRAHEDRON':
|
|
172
|
-
// A = √3 * s²
|
|
173
|
-
// √3 ≈ 17321/10000
|
|
174
|
-
return (17321 * s * s) / 10000;
|
|
175
|
-
|
|
176
|
-
case 'CUBE':
|
|
177
|
-
// A = 6s²
|
|
178
|
-
return 6 * s * s;
|
|
179
|
-
|
|
180
|
-
case 'OCTAHEDRON':
|
|
181
|
-
// A = 2√3 * s²
|
|
182
|
-
return (2 * 17321 * s * s) / 10000;
|
|
183
|
-
|
|
184
|
-
case 'DODECAHEDRON':
|
|
185
|
-
// A = 3√(25 + 10√5) * s²
|
|
186
|
-
// Approximation: 20.6457 ≈ 206457/10000
|
|
187
|
-
return (3 * 206457 * s * s) / 10000;
|
|
188
|
-
|
|
189
|
-
case 'ICOSAHEDRON':
|
|
190
|
-
// A = 5√3 * s²
|
|
191
|
-
return (5 * 17321 * s * s) / 10000;
|
|
192
|
-
|
|
193
|
-
default:
|
|
194
|
-
return 0;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Calculate volume of regular polyhedron
|
|
200
|
-
* Using integer math (multiply by 10000 for precision)
|
|
201
|
-
*/
|
|
202
|
-
static platonicVolume(solid: keyof typeof PLATONIC_SOLIDS, edgeLength: number): number {
|
|
203
|
-
const s = edgeLength;
|
|
204
|
-
|
|
205
|
-
switch (solid) {
|
|
206
|
-
case 'TETRAHEDRON':
|
|
207
|
-
// V = s³/(6√2)
|
|
208
|
-
// 1/(6√2) ≈ 1178/10000
|
|
209
|
-
return (s * s * s * 1178) / 10000;
|
|
210
|
-
|
|
211
|
-
case 'CUBE':
|
|
212
|
-
// V = s³
|
|
213
|
-
return s * s * s;
|
|
214
|
-
|
|
215
|
-
case 'OCTAHEDRON':
|
|
216
|
-
// V = (√2/3) * s³
|
|
217
|
-
// √2/3 ≈ 4714/10000
|
|
218
|
-
return (s * s * s * 4714) / 10000;
|
|
219
|
-
|
|
220
|
-
case 'DODECAHEDRON':
|
|
221
|
-
// V = ((15 + 7√5)/4) * s³
|
|
222
|
-
// Approximation: 7.6631 ≈ 76631/10000
|
|
223
|
-
return (s * s * s * 76631) / 10000;
|
|
224
|
-
|
|
225
|
-
case 'ICOSAHEDRON':
|
|
226
|
-
// V = (5(3 + √5)/12) * s³
|
|
227
|
-
// Approximation: 2.1817 ≈ 21817/10000
|
|
228
|
-
return (s * s * s * 21817) / 10000;
|
|
229
|
-
|
|
230
|
-
default:
|
|
231
|
-
return 0;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Generate Fibonacci sequence
|
|
237
|
-
*/
|
|
238
|
-
static fibonacci(n: number): number[] {
|
|
239
|
-
if (n <= 0) return [];
|
|
240
|
-
if (n === 1) return [1];
|
|
241
|
-
|
|
242
|
-
const seq = [1, 1];
|
|
243
|
-
for (let i = 2; i < n; i++) {
|
|
244
|
-
seq.push(seq[i - 1] + seq[i - 2]);
|
|
245
|
-
}
|
|
246
|
-
return seq;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Generate Lucas sequence
|
|
251
|
-
*/
|
|
252
|
-
static lucas(n: number): number[] {
|
|
253
|
-
if (n <= 0) return [];
|
|
254
|
-
if (n === 1) return [2];
|
|
255
|
-
if (n === 2) return [2, 1];
|
|
256
|
-
|
|
257
|
-
const seq = [2, 1];
|
|
258
|
-
for (let i = 2; i < n; i++) {
|
|
259
|
-
seq.push(seq[i - 1] + seq[i - 2]);
|
|
260
|
-
}
|
|
261
|
-
return seq;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Calculate golden ratio approximation using Fibonacci
|
|
266
|
-
*/
|
|
267
|
-
static goldenRatioApprox(n: number): [number, number] {
|
|
268
|
-
const fib = this.fibonacci(n + 1);
|
|
269
|
-
if (fib.length < 2) return [1, 1];
|
|
270
|
-
return [fib[fib.length - 1], fib[fib.length - 2]];
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Generate Pascal's triangle row
|
|
275
|
-
*/
|
|
276
|
-
static pascalRow(n: number): number[] {
|
|
277
|
-
const row = [1];
|
|
278
|
-
for (let k = 1; k <= n; k++) {
|
|
279
|
-
row.push((row[k - 1] * (n - k + 1)) / k);
|
|
280
|
-
}
|
|
281
|
-
return row;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Calculate binomial coefficient C(n, k)
|
|
286
|
-
*/
|
|
287
|
-
static binomial(n: number, k: number): number {
|
|
288
|
-
if (k > n) return 0;
|
|
289
|
-
if (k === 0 || k === n) return 1;
|
|
290
|
-
|
|
291
|
-
let result = 1;
|
|
292
|
-
for (let i = 0; i < k; i++) {
|
|
293
|
-
result = (result * (n - i)) / (i + 1);
|
|
294
|
-
}
|
|
295
|
-
return result;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Generate magic square of order 3
|
|
300
|
-
*/
|
|
301
|
-
static magicSquare3(): number[][] {
|
|
302
|
-
return [
|
|
303
|
-
[2, 7, 6],
|
|
304
|
-
[9, 5, 1],
|
|
305
|
-
[4, 3, 8],
|
|
306
|
-
];
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* Generate magic square of order 4
|
|
311
|
-
*/
|
|
312
|
-
static magicSquare4(): number[][] {
|
|
313
|
-
return [
|
|
314
|
-
[16, 2, 3, 13],
|
|
315
|
-
[5, 11, 10, 8],
|
|
316
|
-
[9, 7, 6, 12],
|
|
317
|
-
[4, 14, 15, 1],
|
|
318
|
-
];
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Check if a square is magic
|
|
323
|
-
*/
|
|
324
|
-
static isMagicSquare(square: number[][]): boolean {
|
|
325
|
-
const n = square.length;
|
|
326
|
-
if (n === 0) return false;
|
|
327
|
-
|
|
328
|
-
// Calculate expected sum
|
|
329
|
-
const expectedSum = (n * (n * n + 1)) / 2;
|
|
330
|
-
|
|
331
|
-
// Check rows
|
|
332
|
-
for (const row of square) {
|
|
333
|
-
const sum = row.reduce((a, b) => a + b, 0);
|
|
334
|
-
if (sum !== expectedSum) return false;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
// Check columns
|
|
338
|
-
for (let col = 0; col < n; col++) {
|
|
339
|
-
let sum = 0;
|
|
340
|
-
for (let row = 0; row < n; row++) {
|
|
341
|
-
sum += square[row][col];
|
|
342
|
-
}
|
|
343
|
-
if (sum !== expectedSum) return false;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
// Check diagonals
|
|
347
|
-
let diag1 = 0, diag2 = 0;
|
|
348
|
-
for (let i = 0; i < n; i++) {
|
|
349
|
-
diag1 += square[i][i];
|
|
350
|
-
diag2 += square[i][n - 1 - i];
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
return diag1 === expectedSum && diag2 === expectedSum;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Generate Pythagorean triples
|
|
358
|
-
*/
|
|
359
|
-
static pythagoreanTriple(m: number, n: number): [number, number, number] {
|
|
360
|
-
if (m <= n) return [0, 0, 0];
|
|
361
|
-
|
|
362
|
-
const a = m * m - n * n;
|
|
363
|
-
const b = 2 * m * n;
|
|
364
|
-
const c = m * m + n * n;
|
|
365
|
-
|
|
366
|
-
return [a, b, c];
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* Generate primitive Pythagorean triples up to limit
|
|
371
|
-
*/
|
|
372
|
-
static primitivePythagoreanTriples(limit: number): Array<[number, number, number]> {
|
|
373
|
-
const triples: Array<[number, number, number]> = [];
|
|
374
|
-
|
|
375
|
-
for (let m = 2; m * m < limit; m++) {
|
|
376
|
-
for (let n = 1; n < m; n++) {
|
|
377
|
-
// Check if m and n are coprime and not both odd
|
|
378
|
-
if (this.gcd(m, n) === 1 && (m % 2 !== n % 2)) {
|
|
379
|
-
const [a, b, c] = this.pythagoreanTriple(m, n);
|
|
380
|
-
if (c <= limit) {
|
|
381
|
-
triples.push([a, b, c]);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
return triples;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Greatest common divisor
|
|
392
|
-
*/
|
|
393
|
-
static gcd(a: number, b: number): number {
|
|
394
|
-
while (b !== 0) {
|
|
395
|
-
const temp = b;
|
|
396
|
-
b = a % b;
|
|
397
|
-
a = temp;
|
|
398
|
-
}
|
|
399
|
-
return a;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
/**
|
|
403
|
-
* Calculate triangular number
|
|
404
|
-
*/
|
|
405
|
-
static triangular(n: number): number {
|
|
406
|
-
return (n * (n + 1)) / 2;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* Calculate tetrahedral number
|
|
411
|
-
*/
|
|
412
|
-
static tetrahedral(n: number): number {
|
|
413
|
-
return (n * (n + 1) * (n + 2)) / 6;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
/**
|
|
417
|
-
* Calculate pentagonal number
|
|
418
|
-
*/
|
|
419
|
-
static pentagonal(n: number): number {
|
|
420
|
-
return (n * (3 * n - 1)) / 2;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
/**
|
|
424
|
-
* Calculate hexagonal number
|
|
425
|
-
*/
|
|
426
|
-
static hexagonal(n: number): number {
|
|
427
|
-
return n * (2 * n - 1);
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
/**
|
|
431
|
-
* Calculate octahedral number
|
|
432
|
-
*/
|
|
433
|
-
static octahedral(n: number): number {
|
|
434
|
-
return (n * (2 * n * n + 1)) / 3;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
/**
|
|
438
|
-
* Generate spiral pattern (Ulam spiral positions)
|
|
439
|
-
*/
|
|
440
|
-
static spiralPosition(n: number): [number, number] {
|
|
441
|
-
if (n === 1) return [0, 0];
|
|
442
|
-
|
|
443
|
-
// Find which ring n is in
|
|
444
|
-
let ring = 0;
|
|
445
|
-
let ringStart = 1;
|
|
446
|
-
while (ringStart + 8 * ring <= n) {
|
|
447
|
-
ringStart += 8 * ring;
|
|
448
|
-
ring++;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
// Position within the ring
|
|
452
|
-
const posInRing = n - ringStart;
|
|
453
|
-
const sideLength = 2 * ring;
|
|
454
|
-
|
|
455
|
-
// Determine which side and position
|
|
456
|
-
if (posInRing < sideLength) {
|
|
457
|
-
// Right side
|
|
458
|
-
return [ring, -ring + posInRing];
|
|
459
|
-
} else if (posInRing < 2 * sideLength) {
|
|
460
|
-
// Top side
|
|
461
|
-
return [ring - (posInRing - sideLength), ring];
|
|
462
|
-
} else if (posInRing < 3 * sideLength) {
|
|
463
|
-
// Left side
|
|
464
|
-
return [-ring, ring - (posInRing - 2 * sideLength)];
|
|
465
|
-
} else {
|
|
466
|
-
// Bottom side
|
|
467
|
-
return [-ring + (posInRing - 3 * sideLength), -ring];
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* Calculate Vesica Piscis area (intersection of two circles)
|
|
473
|
-
* Using integer approximation
|
|
474
|
-
*/
|
|
475
|
-
static vesicaPiscisArea(radius: number): number {
|
|
476
|
-
// Area = (2π/3 - √3/2) * r²
|
|
477
|
-
// Approximation: 1.2284 ≈ 12284/10000
|
|
478
|
-
return (radius * radius * 12284) / 10000;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/**
|
|
482
|
-
* Calculate Flower of Life pattern points
|
|
483
|
-
*/
|
|
484
|
-
static flowerOfLifePoints(centerX: number, centerY: number, radius: number): Array<[number, number]> {
|
|
485
|
-
const points: Array<[number, number]> = [[centerX, centerY]];
|
|
486
|
-
|
|
487
|
-
// Six surrounding circles
|
|
488
|
-
for (let i = 0; i < 6; i++) {
|
|
489
|
-
const angle = i * 60; // degrees
|
|
490
|
-
|
|
491
|
-
// Use integer approximation for sin/cos
|
|
492
|
-
// sin(60°) ≈ 866/1000, cos(60°) ≈ 500/1000
|
|
493
|
-
let x, y;
|
|
494
|
-
switch (angle) {
|
|
495
|
-
case 0:
|
|
496
|
-
x = centerX + radius;
|
|
497
|
-
y = centerY;
|
|
498
|
-
break;
|
|
499
|
-
case 60:
|
|
500
|
-
x = centerX + (radius * 500) / 1000;
|
|
501
|
-
y = centerY + (radius * 866) / 1000;
|
|
502
|
-
break;
|
|
503
|
-
case 120:
|
|
504
|
-
x = centerX - (radius * 500) / 1000;
|
|
505
|
-
y = centerY + (radius * 866) / 1000;
|
|
506
|
-
break;
|
|
507
|
-
case 180:
|
|
508
|
-
x = centerX - radius;
|
|
509
|
-
y = centerY;
|
|
510
|
-
break;
|
|
511
|
-
case 240:
|
|
512
|
-
x = centerX - (radius * 500) / 1000;
|
|
513
|
-
y = centerY - (radius * 866) / 1000;
|
|
514
|
-
break;
|
|
515
|
-
case 300:
|
|
516
|
-
x = centerX + (radius * 500) / 1000;
|
|
517
|
-
y = centerY - (radius * 866) / 1000;
|
|
518
|
-
break;
|
|
519
|
-
default:
|
|
520
|
-
x = centerX;
|
|
521
|
-
y = centerY;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
points.push([x, y]);
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
return points;
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
// ============================================================================
|
|
532
|
-
// MATRIX OPERATIONS FOR SACRED GEOMETRY
|
|
533
|
-
// ============================================================================
|
|
534
|
-
|
|
535
|
-
export class SacredMatrix {
|
|
536
|
-
/**
|
|
537
|
-
* Create identity matrix
|
|
538
|
-
*/
|
|
539
|
-
static identity(n: number): number[][] {
|
|
540
|
-
const matrix: number[][] = [];
|
|
541
|
-
for (let i = 0; i < n; i++) {
|
|
542
|
-
const row: number[] = [];
|
|
543
|
-
for (let j = 0; j < n; j++) {
|
|
544
|
-
row.push(i === j ? 1 : 0);
|
|
545
|
-
}
|
|
546
|
-
matrix.push(row);
|
|
547
|
-
}
|
|
548
|
-
return matrix;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
/**
|
|
552
|
-
* Matrix multiplication
|
|
553
|
-
*/
|
|
554
|
-
static multiply(a: number[][], b: number[][]): number[][] {
|
|
555
|
-
const rowsA = a.length;
|
|
556
|
-
const colsA = a[0].length;
|
|
557
|
-
const colsB = b[0].length;
|
|
558
|
-
|
|
559
|
-
const result: number[][] = [];
|
|
560
|
-
for (let i = 0; i < rowsA; i++) {
|
|
561
|
-
const row: number[] = [];
|
|
562
|
-
for (let j = 0; j < colsB; j++) {
|
|
563
|
-
let sum = 0;
|
|
564
|
-
for (let k = 0; k < colsA; k++) {
|
|
565
|
-
sum += a[i][k] * b[k][j];
|
|
566
|
-
}
|
|
567
|
-
row.push(sum);
|
|
568
|
-
}
|
|
569
|
-
result.push(row);
|
|
570
|
-
}
|
|
571
|
-
return result;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
/**
|
|
575
|
-
* Calculate determinant (up to 3x3)
|
|
576
|
-
*/
|
|
577
|
-
static determinant(matrix: number[][]): number {
|
|
578
|
-
const n = matrix.length;
|
|
579
|
-
|
|
580
|
-
if (n === 1) {
|
|
581
|
-
return matrix[0][0];
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
if (n === 2) {
|
|
585
|
-
return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
if (n === 3) {
|
|
589
|
-
const [[a, b, c], [d, e, f], [g, h, i]] = matrix;
|
|
590
|
-
return a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g);
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
return 0; // Not implemented for n > 3
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
/**
|
|
597
|
-
* Transpose matrix
|
|
598
|
-
*/
|
|
599
|
-
static transpose(matrix: number[][]): number[][] {
|
|
600
|
-
const rows = matrix.length;
|
|
601
|
-
const cols = matrix[0].length;
|
|
602
|
-
|
|
603
|
-
const result: number[][] = [];
|
|
604
|
-
for (let j = 0; j < cols; j++) {
|
|
605
|
-
const row: number[] = [];
|
|
606
|
-
for (let i = 0; i < rows; i++) {
|
|
607
|
-
row.push(matrix[i][j]);
|
|
608
|
-
}
|
|
609
|
-
result.push(row);
|
|
610
|
-
}
|
|
611
|
-
return result;
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
// ============================================================================
|
|
616
|
-
// EXPORT ALL
|
|
617
|
-
// ============================================================================
|
|
618
|
-
|
|
619
|
-
export default {
|
|
620
|
-
PLATONIC_SOLIDS,
|
|
621
|
-
ARCHIMEDEAN_SOLIDS,
|
|
622
|
-
GOLDEN_CONSTANTS,
|
|
623
|
-
SacredGeometryIntegers,
|
|
624
|
-
SacredMatrix,
|
|
625
|
-
};
|