eyeling 1.16.3 → 1.16.4

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.
Files changed (45) hide show
  1. package/README.md +0 -1
  2. package/package.json +2 -3
  3. package/arctifacts/README.md +0 -59
  4. package/arctifacts/ackermann.html +0 -678
  5. package/arctifacts/auroracare.html +0 -1297
  6. package/arctifacts/bike-trip.html +0 -752
  7. package/arctifacts/binomial-theorem.html +0 -631
  8. package/arctifacts/bmi.html +0 -511
  9. package/arctifacts/building-performance.html +0 -750
  10. package/arctifacts/clinical-care.html +0 -726
  11. package/arctifacts/collatz.html +0 -403
  12. package/arctifacts/complex.html +0 -321
  13. package/arctifacts/control-system.html +0 -482
  14. package/arctifacts/delfour.html +0 -849
  15. package/arctifacts/earthquake-epicenter.html +0 -982
  16. package/arctifacts/eco-route.html +0 -662
  17. package/arctifacts/euclid-infinitude.html +0 -564
  18. package/arctifacts/euler-identity.html +0 -667
  19. package/arctifacts/exoplanet-transit.html +0 -1000
  20. package/arctifacts/faltings-theorem.html +0 -1046
  21. package/arctifacts/fibonacci.html +0 -299
  22. package/arctifacts/fundamental-theorem-arithmetic.html +0 -398
  23. package/arctifacts/godel-numbering.html +0 -743
  24. package/arctifacts/gps-bike.html +0 -759
  25. package/arctifacts/gps-clinical-bench.html +0 -792
  26. package/arctifacts/graph-french.html +0 -449
  27. package/arctifacts/grass-molecular.html +0 -592
  28. package/arctifacts/group-theory.html +0 -740
  29. package/arctifacts/health-info.html +0 -833
  30. package/arctifacts/kaprekar-constant.html +0 -576
  31. package/arctifacts/lee.html +0 -805
  32. package/arctifacts/linked-lists.html +0 -502
  33. package/arctifacts/lldm.html +0 -612
  34. package/arctifacts/matrix-multiplication.html +0 -502
  35. package/arctifacts/matrix.html +0 -651
  36. package/arctifacts/newton-raphson.html +0 -944
  37. package/arctifacts/peano-factorial.html +0 -456
  38. package/arctifacts/pi.html +0 -363
  39. package/arctifacts/polynomial.html +0 -646
  40. package/arctifacts/prime.html +0 -366
  41. package/arctifacts/pythagorean-theorem.html +0 -468
  42. package/arctifacts/rest-path.html +0 -469
  43. package/arctifacts/roots-of-unity.html +0 -363
  44. package/arctifacts/turing.html +0 -409
  45. package/arctifacts/wind-turbines.html +0 -726
@@ -1,321 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Complex Identities — Explanatory Proofs</title>
7
- <style>
8
- :root {
9
- --fg: #111;
10
- --bg: #fff;
11
- --muted: #666;
12
- --accent: #2b6cb0;
13
- }
14
- @media (prefers-color-scheme: dark) {
15
- :root {
16
- --fg: #eee;
17
- --bg: #0b0b0b;
18
- --muted: #aaa;
19
- --accent: #63b3ed;
20
- }
21
- }
22
- html,
23
- body {
24
- margin: 0;
25
- padding: 0;
26
- color: var(--fg);
27
- background: var(--bg);
28
- font:
29
- 16px/1.6 system-ui,
30
- -apple-system,
31
- Segoe UI,
32
- Roboto,
33
- Helvetica,
34
- Arial,
35
- 'Apple Color Emoji',
36
- 'Segoe UI Emoji';
37
- }
38
- main {
39
- max-width: 940px;
40
- margin: 0 auto;
41
- padding: 2.5rem 1.25rem 4rem;
42
- }
43
- header h1 {
44
- font-size: clamp(1.6rem, 2.5vw + 1rem, 2.4rem);
45
- margin: 0 0 0.25rem;
46
- }
47
- header p {
48
- margin: 0;
49
- color: var(--muted);
50
- }
51
- section {
52
- background: color-mix(in srgb, var(--accent) 4%, transparent);
53
- border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
54
- border-radius: 14px;
55
- padding: 1rem 1.1rem;
56
- margin: 1.1rem 0 1.4rem;
57
- }
58
- section h2 {
59
- margin: 0 0 0.25rem;
60
- font-size: 1.15rem;
61
- }
62
- hr {
63
- border: none;
64
- border-top: 1px dashed color-mix(in srgb, var(--fg) 25%, transparent);
65
- margin: 0.6rem 0 0.8rem;
66
- }
67
- p {
68
- margin: 0.35rem 0;
69
- }
70
- code,
71
- pre {
72
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
73
- }
74
- footer {
75
- margin-top: 2.5rem;
76
- color: var(--muted);
77
- font-size: 0.9rem;
78
- }
79
- .tag {
80
- font-weight: 700;
81
- }
82
- </style>
83
- </head>
84
- <body>
85
- <main>
86
- <header>
87
- <h1>Complex identities — explanatory proofs</h1>
88
- </header>
89
-
90
- <section>
91
- <h2>What this is?</h2>
92
- <p>
93
- A single-page explainer of classic complex-number identities. Each card states the identity, gives a short
94
- reason, and then performs a numeric check right in the browser to confirm the result. No external libraries or
95
- servers are used.
96
- </p>
97
- <p class="muted">Numbers are shown to ~12 decimals.</p>
98
- </section>
99
-
100
- <section id="case1">
101
- <h2>sqrt(-1)</h2>
102
- <hr />
103
- <p><span class="tag">Answer</span>: √(-1) = i</p>
104
- <p>
105
- <span class="tag">Reason</span>: −1 = e<sup>iπ</sup> (principal). √(e<sup>iπ</sup>) = e<sup>iπ/2</sup> = i.
106
- </p>
107
- <p><span class="tag">Check</span>: i² = <span id="check1"></span></p>
108
- </section>
109
-
110
- <section id="case2">
111
- <h2>exp(i·π) + 1</h2>
112
- <hr />
113
- <p><span class="tag">Answer</span>: e<sup>iπ</sup> + 1 = 0</p>
114
- <p><span class="tag">Reason</span>: Euler: e<sup>iθ</sup> = cos θ + i sin θ ⇒ e<sup>iπ</sup> = −1.</p>
115
- <p><span class="tag">Check</span>: e<sup>iπ</sup> + 1 ≈ <span id="check2"></span></p>
116
- </section>
117
-
118
- <section id="case3">
119
- <h2>log(-1)</h2>
120
- <hr />
121
- <p><span class="tag">Answer</span>: log(−1) = iπ (principal)</p>
122
- <p><span class="tag">Reason</span>: log z = ln|z| + i Arg(z); |−1| = 1 ⇒ ln|z| = 0, Arg(−1) = π.</p>
123
- <p><span class="tag">Check</span>: exp(log(−1)) = <span id="check3"></span></p>
124
- </section>
125
-
126
- <section id="case4">
127
- <h2>log(-i)</h2>
128
- <hr />
129
- <p><span class="tag">Answer</span>: log(−i) = −iπ/2 (principal)</p>
130
- <p><span class="tag">Reason</span>: |−i| = 1, Arg(−i) = −π/2 ⇒ log(−i) = 0 + i(−π/2).</p>
131
- <p><span class="tag">Check</span>: exp(log(−i)) = <span id="check4"></span></p>
132
- </section>
133
-
134
- <section id="case5">
135
- <h2>log(i·x) with x = 0.73</h2>
136
- <hr />
137
- <p><span class="tag">Answer</span>: log(i·x) = ln x + iπ/2 (x&gt;0)</p>
138
- <p><span class="tag">Reason</span>: Arg(i x) = π/2 (principal), |i x| = x ⇒ ln|·| = ln x.</p>
139
- <p>
140
- <span class="tag">Check</span>: exp(log(i·x)) ≈ <span id="check5a"></span> &nbsp; and &nbsp; i·x =
141
- <span id="check5b"></span>
142
- </p>
143
- </section>
144
-
145
- <section id="case6">
146
- <h2>cos(i·x) with x = 0.73</h2>
147
- <hr />
148
- <p><span class="tag">Answer</span>: cos(i x) = cosh x</p>
149
- <p>
150
- <span class="tag">Reason</span>: cos z = (e<sup>iz</sup> + e<sup>−iz</sup>)/2; set z = i x ⇒ (e<sup>−x</sup> +
151
- e<sup>x</sup>)/2.
152
- </p>
153
- <p>
154
- <span class="tag">Check</span>: cos(i x) ≈ <span id="check6a"></span> &nbsp; ; &nbsp; cosh(x) =
155
- <span id="check6b"></span>
156
- </p>
157
- </section>
158
-
159
- <section id="case7">
160
- <h2>sin(i·x) with x = 0.73</h2>
161
- <hr />
162
- <p><span class="tag">Answer</span>: sin(i x) = i·sinh x</p>
163
- <p>
164
- <span class="tag">Reason</span>: sin z = (e<sup>iz</sup> − e<sup>−iz</sup>)/(2i); set z = i x ⇒ i(e<sup
165
- >−x</sup
166
- >
167
- − e<sup>x</sup>)/2.
168
- </p>
169
- <p>
170
- <span class="tag">Check</span>: sin(i x) ≈ <span id="check7a"></span> &nbsp; ; &nbsp; i·sinh(x) =
171
- <span id="check7b"></span>
172
- </p>
173
- </section>
174
-
175
- <section id="case8">
176
- <h2>asin(i·x) with x = 0.73</h2>
177
- <hr />
178
- <p><span class="tag">Answer</span>: asin(i x) = i·asinh x</p>
179
- <p>
180
- <span class="tag">Reason</span>: Definition asin z = −i·log( i z + √(1 − z²) ); put z = i x and use √(1 + x²)
181
- − x &gt; 0; also ln(√(1 + x²) − x) = −ln(x + √(1 + x²)).
182
- </p>
183
- <p>
184
- <span class="tag">Check</span>: i·asinh(x) = <span id="check8a"></span> &nbsp; ; &nbsp; −i·ln(√(1 + x²) − x) =
185
- <span id="check8b"></span>
186
- </p>
187
- </section>
188
-
189
- <section id="case9">
190
- <h2>sqrt(i)</h2>
191
- <hr />
192
- <p><span class="tag">Answer</span>: √i = (1 + i)/√2</p>
193
- <p>
194
- <span class="tag">Reason</span>: i = e<sup>iπ/2</sup>; √i = e<sup>iπ/4</sup> = cos(π/4) + i sin(π/4) = (1 +
195
- i)/√2.
196
- </p>
197
- <p><span class="tag">Check</span>: (√i)² ≈ <span id="check9"></span></p>
198
- </section>
199
-
200
- <section id="case10">
201
- <h2>acos(2)</h2>
202
- <hr />
203
- <p><span class="tag">Answer</span>: acos(2) = i·ln(2 + √3)</p>
204
- <p>
205
- <span class="tag">Reason</span>: For |z| &gt; 1, acos z = i ln(z + √(z² − 1)) (principal). For z = 2: √3 and
206
- ln(2 + √3).
207
- </p>
208
- <p>
209
- <span class="tag">Check</span>: cos(acos(2)) = cos(i·ln(2 + √3)) = cosh(ln(2 + √3)) ≈
210
- <span id="check10"></span>
211
- </p>
212
- </section>
213
-
214
- <section id="case11">
215
- <h2>asin(2)</h2>
216
- <hr />
217
- <p><span class="tag">Answer</span>: asin(2) = π/2 − i·ln(2 + √3)</p>
218
- <p><span class="tag">Reason</span>: asin z = π/2 − acos z and acos(2) = i ln(2 + √3).</p>
219
- <p><span class="tag">Check</span>: sin(asin(2)) = cosh(ln(2 + √3)) ≈ <span id="check11"></span></p>
220
- </section>
221
-
222
- <section id="case12">
223
- <h2>i^i</h2>
224
- <hr />
225
- <p><span class="tag">Answer</span>: i^i = e<sup>−π/2</sup></p>
226
- <p>
227
- <span class="tag">Reason</span>: i^i = e^{i log(i)} with principal log(i) = iπ/2 ⇒ exponent = −π/2 (real).
228
- </p>
229
- <p><span class="tag">Check</span>: numeric value ≈ <span id="check12"></span></p>
230
- </section>
231
-
232
- <footer>Numeric tolerance ~1e−12.</footer>
233
- </main>
234
-
235
- <script>
236
- (function () {
237
- const PI = Math.PI;
238
-
239
- // Complex helpers (minimal)
240
- const c = (re, im) => ({ re, im });
241
- const add = (z, w) => c(z.re + w.re, z.im + w.im);
242
- const mul = (z, w) => c(z.re * w.re - z.im * w.im, z.re * w.im + z.im * w.re);
243
- const square = (z) => mul(z, z);
244
- const expComplex = (a, b) => c(Math.exp(a) * Math.cos(b), Math.exp(a) * Math.sin(b));
245
-
246
- const fmtC = (z, d = 12) => {
247
- const r = +z.re.toFixed(d);
248
- const i = +z.im.toFixed(d);
249
- if (Math.abs(i) < Math.pow(10, -d)) {
250
- return r.toFixed(d);
251
- }
252
- if (Math.abs(r) < Math.pow(10, -d)) {
253
- return i.toFixed(d) + 'i';
254
- }
255
- const sign = i >= 0 ? ' + ' : ' - ';
256
- return r.toFixed(d) + sign + Math.abs(i).toFixed(d) + 'i';
257
- };
258
-
259
- const cosh = (x) => 0.5 * (Math.exp(x) + Math.exp(-x));
260
- const sinh = (x) => 0.5 * (Math.exp(x) - Math.exp(-x));
261
-
262
- const setText = (id, text) => {
263
- const el = document.getElementById(id);
264
- if (el) el.textContent = text;
265
- };
266
-
267
- // Case 1
268
- const i = c(0, 1);
269
- setText('check1', fmtC(square(i)));
270
-
271
- // Case 2
272
- const eipi = expComplex(0, PI);
273
- setText('check2', fmtC(add(eipi, c(1, 0))));
274
-
275
- // Case 3
276
- const exp_log_minus1 = expComplex(0, PI);
277
- setText('check3', fmtC(exp_log_minus1));
278
-
279
- // Case 4
280
- const exp_log_minusi = expComplex(0, -PI / 2);
281
- setText('check4', fmtC(exp_log_minusi));
282
-
283
- // Case 5 (x = 0.73)
284
- const x = 0.73;
285
- const exp_log_ix = expComplex(Math.log(x), PI / 2);
286
- setText('check5a', fmtC(exp_log_ix));
287
- setText('check5b', fmtC(c(0, x)));
288
-
289
- // Case 6 cos(i x) = cosh x
290
- const cos_ix = c(0.5 * (Math.exp(-x) + Math.exp(x)), 0);
291
- setText('check6a', fmtC(cos_ix));
292
- setText('check6b', cosh(x).toFixed(12));
293
-
294
- // Case 7 sin(i x) = i*sinh x
295
- const sin_ix = c(0, 0.5 * (Math.exp(-x) - Math.exp(x)));
296
- setText('check7a', fmtC(sin_ix));
297
- setText('check7b', fmtC(c(0, sinh(x))));
298
-
299
- // Case 8 asin(i x) = i asinh x
300
- const asinhx = Math.asinh(x);
301
- const alt = -Math.log(Math.sqrt(1 + x * x) - x);
302
- setText('check8a', fmtC(c(0, asinhx)));
303
- setText('check8b', fmtC(c(0, alt)));
304
-
305
- // Case 9 sqrt(i) = (1+i)/√2
306
- const rooti = c(1 / Math.sqrt(2), 1 / Math.sqrt(2));
307
- setText('check9', fmtC(square(rooti)));
308
-
309
- // Case 10 acos(2)
310
- const y = Math.log(2 + Math.sqrt(3));
311
- setText('check10', cosh(y).toFixed(12));
312
-
313
- // Case 11 asin(2)
314
- setText('check11', cosh(y).toFixed(12));
315
-
316
- // Case 12 i^i
317
- setText('check12', Math.exp(-PI / 2).toFixed(12));
318
- })();
319
- </script>
320
- </body>
321
- </html>