spear-kernels 1.2.0 → 1.3.0
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/index.cjs +436 -56
- package/index.js +436 -56
- package/package.json +25 -27
- package/stats.js +0 -74
package/index.cjs
CHANGED
|
@@ -147,11 +147,11 @@ const kernels = {
|
|
|
147
147
|
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgwBA2VudgRhdGFuAAEDAgEABwkBBXNwZWFyAAEKOgE4AETOGyeFeY/cP0RsI57sZkbuPyAARBBYObTIdgHApaJEpTLFHARdAECkEACiREPFOH8TCuA/oAs=",
|
|
148
148
|
},
|
|
149
149
|
fast: {
|
|
150
|
-
js: "((x) => ((0.
|
|
151
|
-
eval: ((x) => ((0.
|
|
152
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.
|
|
153
|
-
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.
|
|
154
|
-
wasmBase64: "
|
|
150
|
+
js: "((x) => ((0.543518 * Math.min(1e4, Math.max(-1e4, (x) / ((Math.max(1.559472, (0.337459 + Math.abs(x)))) < 1e-4 && (Math.max(1.559472, (0.337459 + Math.abs(x)))) > -1e-4 ? ((Math.max(1.559472, (0.337459 + Math.abs(x)))) >= 0 ? 1e-4 : -1e-4) : (Math.max(1.559472, (0.337459 + Math.abs(x)))))))) + 0.5))",
|
|
151
|
+
eval: ((x) => ((0.543518 * Math.min(1e4, Math.max(-1e4, (x) / ((Math.max(1.559472, (0.337459 + Math.abs(x)))) < 1e-4 && (Math.max(1.559472, (0.337459 + Math.abs(x)))) > -1e-4 ? ((Math.max(1.559472, (0.337459 + Math.abs(x)))) >= 0 ? 1e-4 : -1e-4) : (Math.max(1.559472, (0.337459 + Math.abs(x)))))))) + 0.5)),
|
|
152
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.543518f * fminf(fmaxf((x / copysignf(fmaxf(fabsf(fmaxf(1.559472f, (0.337459f + fabsf(x)))), 1.0e-4f), fmaxf(1.559472f, (0.337459f + fabsf(x))))), -1.0e4f), 1.0e4f)) + 0.5f);\n}",
|
|
153
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.543518 * (x / (abs(torch.maximum(1.559472, (0.337459 + torch.abs(x)))) < 1e-4 ? 1e-4 : torch.maximum(1.559472, (0.337459 + torch.abs(x)))))) + 0.5)",
|
|
154
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACmkBZwBEyjFZ3H9k4T8gAESCcXDpmPP4P0RRai+i7ZjVPyAAmaClmUQtQxzr4jYaP6VEgnFw6Zjz+D9EUWovou2Y1T8gAJmgpaajRAAAAAAAiMPApUQAAAAAAIjDQKSiRAAAAAAAAOA/oAs=",
|
|
155
155
|
},
|
|
156
156
|
meta: {
|
|
157
157
|
metric: 0.000016407954856661242,
|
|
@@ -159,7 +159,7 @@ const kernels = {
|
|
|
159
159
|
formulaCost: 25,
|
|
160
160
|
exactCost: 34,
|
|
161
161
|
speedupVsExact: 1.36,
|
|
162
|
-
vsIterative: {"label":"Monte-Carlo
|
|
162
|
+
vsIterative: {"label":"Monte-Carlo · 1000 tirages","speedup":1840},
|
|
163
163
|
},
|
|
164
164
|
},
|
|
165
165
|
"damped_pendulum": {
|
|
@@ -184,7 +184,7 @@ const kernels = {
|
|
|
184
184
|
formulaCost: 46,
|
|
185
185
|
exactCost: null,
|
|
186
186
|
speedupVsExact: null,
|
|
187
|
-
vsIterative: {"label":"Euler-Cromer
|
|
187
|
+
vsIterative: {"label":"Euler-Cromer · 60 pas","speedup":32.608695652173914},
|
|
188
188
|
},
|
|
189
189
|
},
|
|
190
190
|
"rl_distillation": {
|
|
@@ -408,25 +408,18 @@ const kernels = {
|
|
|
408
408
|
"hill": {
|
|
409
409
|
id: "hill",
|
|
410
410
|
precise: {
|
|
411
|
-
js: "((c) => ((-
|
|
412
|
-
eval: ((c) => ((-
|
|
413
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((
|
|
414
|
-
py: "import torch\n\ndef spear_fn(c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((
|
|
415
|
-
wasmBase64: "
|
|
416
|
-
},
|
|
417
|
-
fast: {
|
|
418
|
-
js: "((c) => Math.atan((c) * (c)))",
|
|
419
|
-
eval: ((c) => Math.atan((c) * (c))),
|
|
420
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return atanf(powf(c, 2.0f));\n}",
|
|
421
|
-
py: "import torch\n\ndef spear_fn(c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.atan((c * c))",
|
|
422
|
-
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgwBA2VudgRhdGFuAAEDAgEABwkBBXNwZWFyAAEKCwEJACAAIACiEAAL",
|
|
411
|
+
js: "((c) => Math.min(1e4, Math.max(-1e4, ((c) * (c) * (c)) / (((1 + (c) * (c) * (c))) < 1e-4 && ((1 + (c) * (c) * (c))) > -1e-4 ? (((1 + (c) * (c) * (c))) >= 0 ? 1e-4 : -1e-4) : ((1 + (c) * (c) * (c)))))))",
|
|
412
|
+
eval: ((c) => Math.min(1e4, Math.max(-1e4, ((c) * (c) * (c)) / (((1 + (c) * (c) * (c))) < 1e-4 && ((1 + (c) * (c) * (c))) > -1e-4 ? (((1 + (c) * (c) * (c))) >= 0 ? 1e-4 : -1e-4) : ((1 + (c) * (c) * (c))))))),
|
|
413
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf((powf(c, 3.0f) / copysignf(fmaxf(fabsf((1f + powf(c, 3.0f))), 1.0e-4f), (1f + powf(c, 3.0f)))), -1.0e4f), 1.0e4f);\n}",
|
|
414
|
+
py: "import torch\n\ndef spear_fn(c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((c ** 3) / (abs((1 + (c ** 3))) < 1e-4 ? 1e-4 : (1 + (c ** 3))))",
|
|
415
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAAClEBTwAgACAAIACiokQAAAAAAADwPyAAIAAgAKKioJlELUMc6+I2Gj+lRAAAAAAAAPA/IAAgACAAoqKgpqNEAAAAAACIw8ClRAAAAAAAiMNApAs=",
|
|
423
416
|
},
|
|
424
417
|
meta: {
|
|
425
|
-
metric: 0
|
|
426
|
-
level:
|
|
427
|
-
formulaCost:
|
|
418
|
+
metric: 0,
|
|
419
|
+
level: 5,
|
|
420
|
+
formulaCost: 9,
|
|
428
421
|
exactCost: 9,
|
|
429
|
-
speedupVsExact:
|
|
422
|
+
speedupVsExact: 1,
|
|
430
423
|
vsIterative: null,
|
|
431
424
|
},
|
|
432
425
|
},
|
|
@@ -452,7 +445,7 @@ const kernels = {
|
|
|
452
445
|
formulaCost: 13,
|
|
453
446
|
exactCost: 17,
|
|
454
447
|
speedupVsExact: 1.3076923076923077,
|
|
455
|
-
vsIterative: {"label":"RK4
|
|
448
|
+
vsIterative: {"label":"RK4 géodésique · 200 pas","speedup":184.6153846153846},
|
|
456
449
|
},
|
|
457
450
|
},
|
|
458
451
|
"lennard_jones": {
|
|
@@ -495,7 +488,7 @@ const kernels = {
|
|
|
495
488
|
formulaCost: 27,
|
|
496
489
|
exactCost: 44,
|
|
497
490
|
speedupVsExact: 1.6296296296296295,
|
|
498
|
-
vsIterative: {"label":"RKF45
|
|
491
|
+
vsIterative: {"label":"RKF45 · 300 pas","speedup":200},
|
|
499
492
|
},
|
|
500
493
|
},
|
|
501
494
|
"logistic_growth": {
|
|
@@ -588,7 +581,7 @@ const kernels = {
|
|
|
588
581
|
formulaCost: 18,
|
|
589
582
|
exactCost: 21,
|
|
590
583
|
speedupVsExact: 1.1666666666666667,
|
|
591
|
-
vsIterative: {"label":"RK4
|
|
584
|
+
vsIterative: {"label":"RK4 géodésique · 200 pas","speedup":133.33333333333334},
|
|
592
585
|
},
|
|
593
586
|
},
|
|
594
587
|
"pendulum_hybrid": {
|
|
@@ -619,11 +612,11 @@ const kernels = {
|
|
|
619
612
|
wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwCFgIDZW52A2NvcwABA2VudgRhdGFuAAEDAgEABwkBBXNwZWFyAAIKxgoBwwoARAt6bwwBAPA/IABERl1r71NV1T+iRAAAAAAAAABAIAEgACAAokRGXWvvU1XVP6KhmkRVVVVVVVXVP6KZn6JEGC1EVPsh+T9EAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAACEAgACABokRVVVVVVVXVP6IgACAAIACiokRoL6G9hPayP6IgAqChokQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKZRC1DHOviNho/pUQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKmo0QAAAAAAIjDwKVEAAAAAACIw0CkRAAAAAAAAAjAIAEgACAAokRVVVVVVVXVP6KhmUQtQxzr4jYaP6UgASAAIACiRFVVVVVVVdU/oqGmo0QAAAAAAIjDwKVEAAAAAACIw0CkmZ+ipaREAAAAAAAA8D9EAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAACEAgACABokRVVVVVVVXVP6IgACAAIACiokRoL6G9hPayP6IgAqChokQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKZRC1DHOviNho/pUQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKmo0QAAAAAAIjDwKVEAAAAAACIw0CkRAAAAAAAAAjAIAEgACAAokRVVVVVVVXVP6KhmUQtQxzr4jYaP6UgASAAIACiRFVVVVVVVdU/oqGmo0QAAAAAAIjDwKVEAAAAAACIw0CkmZ+ipaREAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAACEAgACABokRVVVVVVVXVP6IgACAAIACiokRoL6G9hPayP6IgAqChokQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKZRC1DHOviNho/pUQAAAAAAAAAQCABIAAgAKJEVVVVVVVV1T+ioaKmo0QAAAAAAIjDwKVEAAAAAACIw0CkRAAAAAAAAAjAIAEgACAAokRVVVVVVVXVP6KhmUQtQxzr4jYaP6UgASAAIACiRFVVVVVVVdU/oqGmo0QAAAAAAIjDwKVEAAAAAACIw0CkmZ+ipaSioZmZn5lELUMc6+I2Gj+lRAAAAAAAAPA/RAAAAAAAAPA/RAAAAAAAAPC/RAAAAAAAAAhAIAAgAaJEVVVVVVVV1T+iIAAgACAAoqJEaC+hvYT2sj+iIAKgoaJEAAAAAAAAAEAgASAAIACiRFVVVVVVVdU/oqGimUQtQxzr4jYaP6VEAAAAAAAAAEAgASAAIACiRFVVVVVVVdU/oqGipqNEAAAAAACIw8ClRAAAAAAAiMNApEQAAAAAAAAIwCABIAAgAKJEVVVVVVVV1T+ioZlELUMc6+I2Gj+lIAEgACAAokRVVVVVVVXVP6KhpqNEAAAAAACIw8ClRAAAAAAAiMNApJmfoqWkRAAAAAAAAPA/RAAAAAAAAPC/RAAAAAAAAAhAIAAgAaJEVVVVVVVV1T+iIAAgACAAoqJEaC+hvYT2sj+iIAKgoaJEAAAAAAAAAEAgASAAIACiRFVVVVVVVdU/oqGimUQtQxzr4jYaP6VEAAAAAAAAAEAgASAAIACiRFVVVVVVVdU/oqGipqNEAAAAAACIw8ClRAAAAAAAiMNApEQAAAAAAAAIwCABIAAgAKJEVVVVVVVV1T+ioZlELUMc6+I2Gj+lIAEgACAAokRVVVVVVVXVP6KhpqNEAAAAAACIw8ClRAAAAAAAiMNApJmfoqWkoqGZmZ+mo0QAAAAAAIjDwKVEAAAAAACIw0CkEAGhRFVVVVVVVdU/ohAAoqCiRIPAyuFt5L++oAs=",
|
|
620
613
|
},
|
|
621
614
|
fast: {
|
|
622
|
-
js: "((t, u, w) => ((
|
|
623
|
-
eval: ((t, u, w) => ((
|
|
624
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((
|
|
625
|
-
py: "import torch\n\ndef spear_fn(t, u, w):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((
|
|
626
|
-
wasmBase64: "
|
|
615
|
+
js: "((t, u, w) => ((-0.07380655703135926 * (Math.min(((-7.599615 * t) - (-u)), Math.abs(t)) - (t + (w - (2.202856 * u))))) + 0.9412449424916474))",
|
|
616
|
+
eval: ((t, u, w) => ((-0.07380655703135926 * (Math.min(((-7.599615 * t) - (-u)), Math.abs(t)) - (t + (w - (2.202856 * u))))) + 0.9412449424916474)),
|
|
617
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.073807f * (fminf(((-7.599615f * t) - (-u)), fabsf(t)) - (t + (w - (2.202856f * u))))) + 0.941245f);\n}",
|
|
618
|
+
py: "import torch\n\ndef spear_fn(t, u, w):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.073807 * (torch.minimum(((-7.599615 * t) - (-u)), torch.abs(t)) - (t + (w - (2.202856 * u))))) + 0.941245)",
|
|
619
|
+
wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKPwE9AESNF66M/OSyv0Sgw3x5AWYewCAAoiABmqEgAJmkIAAgAkQHYW73cp8BQCABoqGgoaJEZt2wtq0e7j+gCw==",
|
|
627
620
|
},
|
|
628
621
|
meta: {
|
|
629
622
|
metric: 3.325277645075658e-11,
|
|
@@ -631,7 +624,7 @@ const kernels = {
|
|
|
631
624
|
formulaCost: 120,
|
|
632
625
|
exactCost: null,
|
|
633
626
|
speedupVsExact: null,
|
|
634
|
-
vsIterative: {"label":"Jacobi
|
|
627
|
+
vsIterative: {"label":"Jacobi · 4 balayages","speedup":1.6666666666666667},
|
|
635
628
|
},
|
|
636
629
|
},
|
|
637
630
|
"ik_reach": {
|
|
@@ -643,13 +636,20 @@ const kernels = {
|
|
|
643
636
|
py: "import torch\n\ndef spear_fn(d, l2, l3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (1.570796 - torch.atan(((((d * d) - ((l2 * l2) + (l3 * l3))) / (abs((2 * (l2 * l3))) < 1e-4 ? 1e-4 : (2 * (l2 * l3)))) / (abs(torch.sqrt(torch.abs(torch.abs((1 - ((((d * d) - ((l2 * l2) + (l3 * l3))) / (abs((2 * (l2 * l3))) < 1e-4 ? 1e-4 : (2 * (l2 * l3)))) * (((d * d) - ((l2 * l2) + (l3 * l3))) / (abs((2 * (l2 * l3))) < 1e-4 ? 1e-4 : (2 * (l2 * l3)))))))))) < 1e-4 ? 1e-4 : torch.sqrt(torch.abs(torch.abs((1 - ((((d * d) - ((l2 * l2) + (l3 * l3))) / (abs((2 * (l2 * l3))) < 1e-4 ? 1e-4 : (2 * (l2 * l3)))) * (((d * d) - ((l2 * l2) + (l3 * l3))) / (abs((2 * (l2 * l3))) < 1e-4 ? 1e-4 : (2 * (l2 * l3)))))))))))))",
|
|
644
637
|
wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwCDAEDZW52BGF0YW4AAQMCAQAHCQEFc3BlYXIAAQreAwHbAwBEGC1EVPsh+T8gACAAoiABIAGiIAIgAqKgoUQAAAAAAAAAQCABIAKioplELUMc6+I2Gj+lRAAAAAAAAABAIAEgAqKipqNEAAAAAACIw8ClRAAAAAAAiMNApEQAAAAAAADwPyAAIACiIAEgAaIgAiACoqChRAAAAAAAAABAIAEgAqKimUQtQxzr4jYaP6VEAAAAAAAAAEAgASACoqKmo0QAAAAAAIjDwKVEAAAAAACIw0CkIAAgAKIgASABoiACIAKioKFEAAAAAAAAAEAgASACoqKZRC1DHOviNho/pUQAAAAAAAAAQCABIAKioqajRAAAAAAAiMPApUQAAAAAAIjDQKSioZmZn5lELUMc6+I2Gj+lRAAAAAAAAPA/IAAgAKIgASABoiACIAKioKFEAAAAAAAAAEAgASACoqKZRC1DHOviNho/pUQAAAAAAAAAQCABIAKioqajRAAAAAAAiMPApUQAAAAAAIjDQKQgACAAoiABIAGiIAIgAqKgoUQAAAAAAAAAQCABIAKioplELUMc6+I2Gj+lRAAAAAAAAABAIAEgAqKipqNEAAAAAACIw8ClRAAAAAAAiMNApKKhmZmfpqNEAAAAAACIw8ClRAAAAAAAiMNApBAAoQs=",
|
|
645
638
|
},
|
|
639
|
+
fast: {
|
|
640
|
+
js: "((l3, d, l2) => ((-0.1606079676705464 * ((Math.min(1e4, Math.max(-1e4, (4.080818) / ((l3) < 1e-4 && (l3) > -1e-4 ? ((l3) >= 0 ? 1e-4 : -1e-4) : (l3)))) * (Math.max(d, l3) - l2)) - (Math.min(1e4, Math.max(-1e4, (5.542562) / ((l2) < 1e-4 && (l2) > -1e-4 ? ((l2) >= 0 ? 1e-4 : -1e-4) : (l2)))) * (l3 - d)))) + 2.18792552115997))",
|
|
641
|
+
eval: ((l3, d, l2) => ((-0.1606079676705464 * ((Math.min(1e4, Math.max(-1e4, (4.080818) / ((l3) < 1e-4 && (l3) > -1e-4 ? ((l3) >= 0 ? 1e-4 : -1e-4) : (l3)))) * (Math.max(d, l3) - l2)) - (Math.min(1e4, Math.max(-1e4, (5.542562) / ((l2) < 1e-4 && (l2) > -1e-4 ? ((l2) >= 0 ? 1e-4 : -1e-4) : (l2)))) * (l3 - d)))) + 2.18792552115997)),
|
|
642
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.160608f * ((fminf(fmaxf((4.080818f / copysignf(fmaxf(fabsf(l3), 1.0e-4f), l3)), -1.0e4f), 1.0e4f) * (fmaxf(d, l3) - l2)) - (fminf(fmaxf((5.542562f / copysignf(fmaxf(fabsf(l2), 1.0e-4f), l2)), -1.0e4f), 1.0e4f) * (l3 - d)))) + 2.187926f);\n}",
|
|
643
|
+
py: "import torch\n\ndef spear_fn(l3, d, l2):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.160608 * (((4.080818 / (abs(l3) < 1e-4 ? 1e-4 : l3)) * (torch.maximum(d, l3) - l2)) - ((5.542562 / (abs(l2) < 1e-4 ? 1e-4 : l2)) * (l3 - d)))) + 2.187926)",
|
|
644
|
+
wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKhQEBggEARGueT0jNjsS/RGe2K/TBUhBAIACZRC1DHOviNho/pSAApqNEAAAAAACIw8ClRAAAAAAAiMNApCABIAClIAKhokScNXhflSsWQCACmUQtQxzr4jYaP6UgAqajRAAAAAAAiMPApUQAAAAAAIjDQKQgACABoaKhokQEunsY34ABQKAL",
|
|
645
|
+
},
|
|
646
646
|
meta: {
|
|
647
647
|
metric: 4.0626336618882106e-32,
|
|
648
648
|
level: 2,
|
|
649
649
|
formulaCost: 52,
|
|
650
650
|
exactCost: null,
|
|
651
651
|
speedupVsExact: null,
|
|
652
|
-
vsIterative: {"label":"Newton-DLS
|
|
652
|
+
vsIterative: {"label":"Newton-DLS · 8 itérations","speedup":6.153846153846154},
|
|
653
653
|
},
|
|
654
654
|
},
|
|
655
655
|
"idm_following": {
|
|
@@ -680,11 +680,11 @@ const kernels = {
|
|
|
680
680
|
wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACn8BfQBEP5EnSddM4D8gAES8dJMYBFbqP6IgAUQQWDm0yHbeP6KhIAJEmpmZmZmZ8T+iIANEzosTX+0o07+ioKAgAEQ9CtejcD3qP6IgAUQUrkfhehTeP6KhIAJEoYDtYMR+8T+iIANE3BFOC1700b+ioKCgokQAgG/7jCPVPqAL",
|
|
681
681
|
},
|
|
682
682
|
fast: {
|
|
683
|
-
js: "((x0, x1, x2, x3) => (((
|
|
684
|
-
eval: ((x0, x1, x2, x3) => (((
|
|
685
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (((
|
|
686
|
-
py: "import torch\n\ndef spear_fn(x0, x1, x2, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (((
|
|
687
|
-
wasmBase64: "
|
|
683
|
+
js: "((x0, x1, x2, x3) => (((x0 * 0.82) - (x1 * 0.470006)) + ((x2 * 1.1) + (x3 * -0.290238))))",
|
|
684
|
+
eval: ((x0, x1, x2, x3) => (((x0 * 0.82) - (x1 * 0.470006)) + ((x2 * 1.1) + (x3 * -0.290238)))),
|
|
685
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (((x0 * 0.82f) - (x1 * 0.470006f)) + ((x2 * 1.1f) + (x3 * -0.290238f)));\n}",
|
|
686
|
+
py: "import torch\n\ndef spear_fn(x0, x1, x2, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (((x0 * 0.82) - (x1 * 0.470006)) + ((x2 * 1.1) + (x3 * -0.290238)))",
|
|
687
|
+
wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACjcBNQAgAEQ9CtejcD3qP6IgAUQlH7sLlBTeP6KhIAJEmpmZmZmZ8T+iIANE2JyDZ0KT0r+ioKAL",
|
|
688
688
|
},
|
|
689
689
|
meta: {
|
|
690
690
|
metric: 1.6074532951505583e-7,
|
|
@@ -710,7 +710,7 @@ const kernels = {
|
|
|
710
710
|
formulaCost: 44,
|
|
711
711
|
exactCost: 43,
|
|
712
712
|
speedupVsExact: 0.9772727272727273,
|
|
713
|
-
vsIterative: {"label":"CORDIC
|
|
713
|
+
vsIterative: {"label":"CORDIC · 16 micro-rotations","speedup":1.4545454545454546},
|
|
714
714
|
},
|
|
715
715
|
},
|
|
716
716
|
"gauss_shader": {
|
|
@@ -884,25 +884,18 @@ const kernels = {
|
|
|
884
884
|
"erf_prob": {
|
|
885
885
|
id: "erf_prob",
|
|
886
886
|
precise: {
|
|
887
|
-
js: "((x) => (
|
|
888
|
-
eval: ((x) => (
|
|
889
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (
|
|
890
|
-
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (
|
|
891
|
-
wasmBase64: "
|
|
892
|
-
},
|
|
893
|
-
fast: {
|
|
894
|
-
js: "((x) => (x + Math.min(1e4, Math.max(-1e4, (Math.atan(x)) / ((0) < 1e-4 && (0) > -1e-4 ? ((0) >= 0 ? 1e-4 : -1e-4) : (0))))))",
|
|
895
|
-
eval: ((x) => (x + Math.min(1e4, Math.max(-1e4, (Math.atan(x)) / ((0) < 1e-4 && (0) > -1e-4 ? ((0) >= 0 ? 1e-4 : -1e-4) : (0)))))),
|
|
896
|
-
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (x + fminf(fmaxf((atanf(x) / copysignf(fmaxf(fabsf(0f), 1.0e-4f), 0f)), -1.0e4f), 1.0e4f));\n}",
|
|
897
|
-
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (x + (torch.atan(x) / (abs(0) < 1e-4 ? 1e-4 : 0)))",
|
|
898
|
-
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgwBA2VudgRhdGFuAAEDAgEABwkBBXNwZWFyAAEKPgE8ACAAIAAQAEQAAAAAAAAAAJlELUMc6+I2Gj+lRAAAAAAAAAAApqNEAAAAAACIw8ClRAAAAAAAiMNApKAL",
|
|
887
|
+
js: "((x) => (1.106774 * Math.min(1e4, Math.max(-1e4, ((x + (0.034298 * (x) * (x) * (x)))) / (((0.995 + (0.378089 * (x) * (x)))) < 1e-4 && ((0.995 + (0.378089 * (x) * (x)))) > -1e-4 ? (((0.995 + (0.378089 * (x) * (x)))) >= 0 ? 1e-4 : -1e-4) : ((0.995 + (0.378089 * (x) * (x)))))))))",
|
|
888
|
+
eval: ((x) => (1.106774 * Math.min(1e4, Math.max(-1e4, ((x + (0.034298 * (x) * (x) * (x)))) / (((0.995 + (0.378089 * (x) * (x)))) < 1e-4 && ((0.995 + (0.378089 * (x) * (x)))) > -1e-4 ? (((0.995 + (0.378089 * (x) * (x)))) >= 0 ? 1e-4 : -1e-4) : ((0.995 + (0.378089 * (x) * (x))))))))),
|
|
889
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (1.106774f * fminf(fmaxf(((x + (0.034298f * powf(x, 3.0f))) / copysignf(fmaxf(fabsf((0.995f + (0.378089f * powf(x, 2.0f)))), 1.0e-4f), (0.995f + (0.378089f * powf(x, 2.0f))))), -1.0e4f), 1.0e4f));\n}",
|
|
890
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (1.106774 * ((x + (0.034298 * (x ** 3))) / (abs((0.995 + (0.378089 * (x * x)))) < 1e-4 ? 1e-4 : (0.995 + (0.378089 * (x * x))))))",
|
|
891
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACnYBdABEeQJhp1i18T8gAEQp7KLogY+hPyAAIAAgAKKioqBE16NwPQrX7z9Ezox+NJwy2D8gACAAoqKgmUQtQxzr4jYaP6VE16NwPQrX7z9Ezox+NJwy2D8gACAAoqKgpqNEAAAAAACIw8ClRAAAAAAAiMNApKIL",
|
|
899
892
|
},
|
|
900
893
|
meta: {
|
|
901
|
-
metric: 0.
|
|
902
|
-
level:
|
|
903
|
-
formulaCost:
|
|
894
|
+
metric: 0.00004650870031371604,
|
|
895
|
+
level: 3,
|
|
896
|
+
formulaCost: 12,
|
|
904
897
|
exactCost: 26,
|
|
905
|
-
speedupVsExact:
|
|
898
|
+
speedupVsExact: 2.1666666666666665,
|
|
906
899
|
vsIterative: null,
|
|
907
900
|
},
|
|
908
901
|
},
|
|
@@ -1215,6 +1208,13 @@ const kernels = {
|
|
|
1215
1208
|
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-2.920975 * torch.sqrt(torch.abs((torch.exp(torch.clamp(torch.exp(torch.clamp(x, -50.0, 50.0)), -50.0, 50.0)) * torch.log(torch.clamp(x, min=1e-30)))))) + 5.533519)",
|
|
1216
1209
|
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhUCA2VudgNleHAAAQNlbnYDbG9nAAEDAgEABwkBBXNwZWFyAAIKVwFVAEQbDztSKF4HwCAARAAAAAAAAEnApUQAAAAAAABJQKQQAEQAAAAAAABJwKVEAAAAAAAASUCkEAAgAESgwuv+S0i0OaUQAaKZn6JE4c+x6lIiFkCgCw==",
|
|
1217
1210
|
},
|
|
1211
|
+
fast: {
|
|
1212
|
+
js: "((x) => ((2.1266220342385473 * (((x) * (x) + Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x))))) + (((x) * (x) * (x)) * ((x) * (x) * (x))) * (((x) * (x) * (x)) * ((x) * (x) * (x))) * (((x) * (x) * (x)) * ((x) * (x) * (x))))) + 0.2244487406420216))",
|
|
1213
|
+
eval: ((x) => ((2.1266220342385473 * (((x) * (x) + Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x))))) + (((x) * (x) * (x)) * ((x) * (x) * (x))) * (((x) * (x) * (x)) * ((x) * (x) * (x))) * (((x) * (x) * (x)) * ((x) * (x) * (x))))) + 0.2244487406420216)),
|
|
1214
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((2.126622f * ((powf(x, 2.0f) + logf(fmaxf(1.0e-30f, sqrtf(fabsf(x))))) + powf(powf(powf(x, 3.0f), 2.0f), 3.0f))) + 0.224449f);\n}",
|
|
1215
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((2.126622 * (((x * x) + torch.log(torch.clamp(torch.sqrt(torch.abs(x)), min=1e-30))) + (((x ** 3) * (x ** 3)) ** 3))) + 0.224449)",
|
|
1216
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQpkAWIARHgPwGlSAwFAIAAgAKIgAJmfRKDC6/5LSLQ5pRAAoCAAIAAgAKKiIAAgACAAoqKiIAAgACAAoqIgACAAIACioqIgACAAIACioiAAIAAgAKKioqKioKJEjcpXgLy6zD+gCw==",
|
|
1217
|
+
},
|
|
1218
1218
|
meta: {
|
|
1219
1219
|
metric: 0.016974946048628873,
|
|
1220
1220
|
level: 0,
|
|
@@ -1285,8 +1285,388 @@ const kernels = {
|
|
|
1285
1285
|
vsIterative: null,
|
|
1286
1286
|
},
|
|
1287
1287
|
},
|
|
1288
|
+
"michaelis_menten": {
|
|
1289
|
+
id: "michaelis_menten",
|
|
1290
|
+
precise: {
|
|
1291
|
+
js: "((s) => ((5.180819843767829 * (Math.min(1e4, Math.max(-1e4, ((s + -75.797025)) / (((s - -3.997718)) < 1e-4 && ((s - -3.997718)) > -1e-4 ? (((s - -3.997718)) >= 0 ? 1e-4 : -1e-4) : ((s - -3.997718))))) - Math.min(1e4, Math.max(-1e4, (-2.586911) / ((Math.max(s, (s - -3.930559))) < 1e-4 && (Math.max(s, (s - -3.930559))) > -1e-4 ? ((Math.max(s, (s - -3.930559))) >= 0 ? 1e-4 : -1e-4) : (Math.max(s, (s - -3.930559)))))))) + 94.81919572289306))",
|
|
1292
|
+
eval: ((s) => ((5.180819843767829 * (Math.min(1e4, Math.max(-1e4, ((s + -75.797025)) / (((s - -3.997718)) < 1e-4 && ((s - -3.997718)) > -1e-4 ? (((s - -3.997718)) >= 0 ? 1e-4 : -1e-4) : ((s - -3.997718))))) - Math.min(1e4, Math.max(-1e4, (-2.586911) / ((Math.max(s, (s - -3.930559))) < 1e-4 && (Math.max(s, (s - -3.930559))) > -1e-4 ? ((Math.max(s, (s - -3.930559))) >= 0 ? 1e-4 : -1e-4) : (Math.max(s, (s - -3.930559)))))))) + 94.81919572289306)),
|
|
1293
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((5.18082f * (fminf(fmaxf(((s + -75.797025f) / copysignf(fmaxf(fabsf((s - -3.997718f)), 1.0e-4f), (s - -3.997718f))), -1.0e4f), 1.0e4f) - fminf(fmaxf((-2.586911f / copysignf(fmaxf(fabsf(fmaxf(s, (s - -3.930559f))), 1.0e-4f), fmaxf(s, (s - -3.930559f)))), -1.0e4f), 1.0e4f))) + 94.819196f);\n}",
|
|
1294
|
+
py: "import torch\n\ndef spear_fn(s):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((5.18082 * (((s + -75.797025) / (abs((s - -3.997718)) < 1e-4 ? 1e-4 : (s - -3.997718))) - (-2.586911 / (abs(torch.maximum(s, (s - -3.930559))) < 1e-4 ? 1e-4 : torch.maximum(s, (s - -3.930559)))))) + 94.819196)",
|
|
1295
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACqcBAaQBAER4zU3WKLkUQCAARAtGJXUC81LAoCAARFILJZNT+w/AoZlELUMc6+I2Gj+lIABEUgslk1P7D8ChpqNEAAAAAACIw8ClRAAAAAAAiMNApEQfTfVk/rEEwCAAIABE2/y/6shxD8ChpZlELUMc6+I2Gj+lIAAgAETb/L/qyHEPwKGlpqNEAAAAAACIw8ClRAAAAAAAiMNApKGiRFK25bNttFdAoAs=",
|
|
1296
|
+
},
|
|
1297
|
+
fast: {
|
|
1298
|
+
js: "((s) => (Math.min(1e4, Math.max(-1e4, (-79.794743) / (((s - -3.997718)) < 1e-4 && ((s - -3.997718)) > -1e-4 ? (((s - -3.997718)) >= 0 ? 1e-4 : -1e-4) : ((s - -3.997718))))) - Math.min(1e4, Math.max(-1e4, (-2.586911) / ((Math.max(-79.794743, (s - -3.930559))) < 1e-4 && (Math.max(-79.794743, (s - -3.930559))) > -1e-4 ? ((Math.max(-79.794743, (s - -3.930559))) >= 0 ? 1e-4 : -1e-4) : (Math.max(-79.794743, (s - -3.930559))))))))",
|
|
1299
|
+
eval: ((s) => (Math.min(1e4, Math.max(-1e4, (-79.794743) / (((s - -3.997718)) < 1e-4 && ((s - -3.997718)) > -1e-4 ? (((s - -3.997718)) >= 0 ? 1e-4 : -1e-4) : ((s - -3.997718))))) - Math.min(1e4, Math.max(-1e4, (-2.586911) / ((Math.max(-79.794743, (s - -3.930559))) < 1e-4 && (Math.max(-79.794743, (s - -3.930559))) > -1e-4 ? ((Math.max(-79.794743, (s - -3.930559))) >= 0 ? 1e-4 : -1e-4) : (Math.max(-79.794743, (s - -3.930559)))))))),
|
|
1300
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (fminf(fmaxf((-79.794743f / copysignf(fmaxf(fabsf((s - -3.997718f)), 1.0e-4f), (s - -3.997718f))), -1.0e4f), 1.0e4f) - fminf(fmaxf((-2.586911f / copysignf(fmaxf(fabsf(fmaxf(-79.794743f, (s - -3.930559f))), 1.0e-4f), fmaxf(-79.794743f, (s - -3.930559f)))), -1.0e4f), 1.0e4f));\n}",
|
|
1301
|
+
py: "import torch\n\ndef spear_fn(s):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-79.794743 / (abs((s - -3.997718)) < 1e-4 ? 1e-4 : (s - -3.997718))) - (-2.586911 / (abs(torch.maximum(-79.794743, (s - -3.930559))) < 1e-4 ? 1e-4 : torch.maximum(-79.794743, (s - -3.930559)))))",
|
|
1302
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACp4BAZsBAERlbr4R3fJTwCAARFILJZNT+w/AoZlELUMc6+I2Gj+lIABEUgslk1P7D8ChpqNEAAAAAACIw8ClRAAAAAAAiMNApEQfTfVk/rEEwERlbr4R3fJTwCAARNv8v+rIcQ/AoaWZRC1DHOviNho/pURlbr4R3fJTwCAARNv8v+rIcQ/AoaWmo0QAAAAAAIjDwKVEAAAAAACIw0CkoQs=",
|
|
1303
|
+
},
|
|
1304
|
+
meta: {
|
|
1305
|
+
metric: 6.947760597116317e-10,
|
|
1306
|
+
level: 2,
|
|
1307
|
+
formulaCost: 15,
|
|
1308
|
+
exactCost: 7,
|
|
1309
|
+
speedupVsExact: 0.4666666666666667,
|
|
1310
|
+
vsIterative: null,
|
|
1311
|
+
},
|
|
1312
|
+
},
|
|
1313
|
+
"temperature_softmax": {
|
|
1314
|
+
id: "temperature_softmax",
|
|
1315
|
+
precise: {
|
|
1316
|
+
js: "((da, t) => Math.min(1e4, Math.max(-1e4, (1) / (((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) < 1e-4 && ((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) > -1e-4 ? (((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) >= 0 ? 1e-4 : -1e-4) : ((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t))))))))))))))",
|
|
1317
|
+
eval: ((da, t) => Math.min(1e4, Math.max(-1e4, (1) / (((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) < 1e-4 && ((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) > -1e-4 ? (((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))) >= 0 ? 1e-4 : -1e-4) : ((1 + Math.exp(Math.max(-50, Math.min(50, (-Math.min(1e4, Math.max(-1e4, (da) / ((t) < 1e-4 && (t) > -1e-4 ? ((t) >= 0 ? 1e-4 : -1e-4) : (t)))))))))))))),
|
|
1318
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf((1f / copysignf(fmaxf(fabsf((1f + expf(fmaxf(-50.0f, fminf(50.0f, (-fminf(fmaxf((da / copysignf(fmaxf(fabsf(t), 1.0e-4f), t)), -1.0e4f), 1.0e4f))))))), 1.0e-4f), (1f + expf(fmaxf(-50.0f, fminf(50.0f, (-fminf(fmaxf((da / copysignf(fmaxf(fabsf(t), 1.0e-4f), t)), -1.0e4f), 1.0e4f)))))))), -1.0e4f), 1.0e4f);\n}",
|
|
1319
|
+
py: "import torch\n\ndef spear_fn(da, t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (1 / (abs((1 + torch.exp(torch.clamp((-(da / (abs(t) < 1e-4 ? 1e-4 : t))), -50.0, 50.0)))) < 1e-4 ? 1e-4 : (1 + torch.exp(torch.clamp((-(da / (abs(t) < 1e-4 ? 1e-4 : t))), -50.0, 50.0)))))",
|
|
1320
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAILAQNlbnYDZXhwAAEDAgEABwkBBXNwZWFyAAEKvwEBvAEARAAAAAAAAPA/RAAAAAAAAPA/IAAgAZlELUMc6+I2Gj+lIAGmo0QAAAAAAIjDwKVEAAAAAACIw0CkmkQAAAAAAABJwKVEAAAAAAAASUCkEACgmUQtQxzr4jYaP6VEAAAAAAAA8D8gACABmUQtQxzr4jYaP6UgAaajRAAAAAAAiMPApUQAAAAAAIjDQKSaRAAAAAAAAEnApUQAAAAAAABJQKQQAKCmo0QAAAAAAIjDwKVEAAAAAACIw0CkCw==",
|
|
1321
|
+
},
|
|
1322
|
+
meta: {
|
|
1323
|
+
metric: 7.439476402624881e-47,
|
|
1324
|
+
level: 2,
|
|
1325
|
+
formulaCost: 30,
|
|
1326
|
+
exactCost: 26,
|
|
1327
|
+
speedupVsExact: 0.8666666666666667,
|
|
1328
|
+
vsIterative: null,
|
|
1329
|
+
},
|
|
1330
|
+
},
|
|
1331
|
+
"doppler_effect": {
|
|
1332
|
+
id: "doppler_effect",
|
|
1333
|
+
precise: {
|
|
1334
|
+
js: "((vs, vo) => ((-700.007578094087 * Math.min(1e4, Math.max(-1e4, ((vs + vo)) / (((0.049677 - (340.052626 - vs))) < 1e-4 && ((0.049677 - (340.052626 - vs))) > -1e-4 ? (((0.049677 - (340.052626 - vs))) >= 0 ? 1e-4 : -1e-4) : ((0.049677 - (340.052626 - vs))))))) + 699.9998851514688))",
|
|
1335
|
+
eval: ((vs, vo) => ((-700.007578094087 * Math.min(1e4, Math.max(-1e4, ((vs + vo)) / (((0.049677 - (340.052626 - vs))) < 1e-4 && ((0.049677 - (340.052626 - vs))) > -1e-4 ? (((0.049677 - (340.052626 - vs))) >= 0 ? 1e-4 : -1e-4) : ((0.049677 - (340.052626 - vs))))))) + 699.9998851514688)),
|
|
1336
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-700.007578f * fminf(fmaxf(((vs + vo) / copysignf(fmaxf(fabsf((0.049677f - (340.052626f - vs))), 1.0e-4f), (0.049677f - (340.052626f - vs)))), -1.0e4f), 1.0e4f)) + 699.999885f);\n}",
|
|
1337
|
+
py: "import torch\n\ndef spear_fn(vs, vo):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-700.007578 * ((vs + vo) / (abs((0.049677 - (340.052626 - vs))) < 1e-4 ? 1e-4 : (0.049677 - (340.052626 - vs))))) + 699.999885)",
|
|
1338
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApqAWgARCiSGoUP4IXAIAAgAaBEhA66hENvqT9EtU5cjtdAdUAgAKGhmUQtQxzr4jYaP6VEhA66hENvqT9EtU5cjtdAdUAgAKGhpqNEAAAAAACIw8ClRAAAAAAAiMNApKJEhErJw//fhUCgCw==",
|
|
1339
|
+
},
|
|
1340
|
+
fast: {
|
|
1341
|
+
js: "((vs, vo) => (317.901286 + (vs + vo)))",
|
|
1342
|
+
eval: ((vs, vo) => (317.901286 + (vs + vo))),
|
|
1343
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (317.901286f + (vs + vo));\n}",
|
|
1344
|
+
py: "import torch\n\ndef spear_fn(vs, vo):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (317.901286 + (vs + vo))",
|
|
1345
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAAoTAREARHxl3qpr3nNAIAAgAaCgCw==",
|
|
1346
|
+
},
|
|
1347
|
+
meta: {
|
|
1348
|
+
metric: 9.281797631143672e-10,
|
|
1349
|
+
level: 2,
|
|
1350
|
+
formulaCost: 9,
|
|
1351
|
+
exactCost: 5,
|
|
1352
|
+
speedupVsExact: 0.5555555555555556,
|
|
1353
|
+
vsIterative: null,
|
|
1354
|
+
},
|
|
1355
|
+
},
|
|
1356
|
+
"stefan_boltzmann": {
|
|
1357
|
+
id: "stefan_boltzmann",
|
|
1358
|
+
precise: {
|
|
1359
|
+
js: "((t) => (0.42 * (Math.max(0, t) * (t) * (t) * (t))))",
|
|
1360
|
+
eval: ((t) => (0.42 * (Math.max(0, t) * (t) * (t) * (t)))),
|
|
1361
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (0.42f * (fmaxf(0.0f, t) * powf(t, 3.0f)));\n}",
|
|
1362
|
+
py: "import torch\n\ndef spear_fn(t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (0.42 * (torch.relu(t) * (t ** 3)))",
|
|
1363
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACiMBIQBE4XoUrkfh2j8gAEQAAAAAAAAAAKUgACAAIACioqKiCw==",
|
|
1364
|
+
},
|
|
1365
|
+
fast: {
|
|
1366
|
+
js: "((t) => (t) * (t) * (t))",
|
|
1367
|
+
eval: ((t) => (t) * (t) * (t)),
|
|
1368
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return powf(t, 3.0f);\n}",
|
|
1369
|
+
py: "import torch\n\ndef spear_fn(t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (t ** 3)",
|
|
1370
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACgwBCgAgACAAIACiogs=",
|
|
1371
|
+
},
|
|
1372
|
+
meta: {
|
|
1373
|
+
metric: 2.1322035895929197e-26,
|
|
1374
|
+
level: 2,
|
|
1375
|
+
formulaCost: 5,
|
|
1376
|
+
exactCost: 3,
|
|
1377
|
+
speedupVsExact: 0.6,
|
|
1378
|
+
vsIterative: null,
|
|
1379
|
+
},
|
|
1380
|
+
},
|
|
1381
|
+
"mm1_queue_wait": {
|
|
1382
|
+
id: "mm1_queue_wait",
|
|
1383
|
+
precise: {
|
|
1384
|
+
js: "((l, m) => (-Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (l) / ((m) < 1e-4 && (m) > -1e-4 ? ((m) >= 0 ? 1e-4 : -1e-4) : (m))))) / (((l - m)) < 1e-4 && ((l - m)) > -1e-4 ? (((l - m)) >= 0 ? 1e-4 : -1e-4) : ((l - m)))))))",
|
|
1385
|
+
eval: ((l, m) => (-Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (l) / ((m) < 1e-4 && (m) > -1e-4 ? ((m) >= 0 ? 1e-4 : -1e-4) : (m))))) / (((l - m)) < 1e-4 && ((l - m)) > -1e-4 ? (((l - m)) >= 0 ? 1e-4 : -1e-4) : ((l - m))))))),
|
|
1386
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (-fminf(fmaxf((fminf(fmaxf((l / copysignf(fmaxf(fabsf(m), 1.0e-4f), m)), -1.0e4f), 1.0e4f) / copysignf(fmaxf(fabsf((l - m)), 1.0e-4f), (l - m))), -1.0e4f), 1.0e4f));\n}",
|
|
1387
|
+
py: "import torch\n\ndef spear_fn(l, m):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (-((l / (abs(m) < 1e-4 ? 1e-4 : m)) / (abs((l - m)) < 1e-4 ? 1e-4 : (l - m))))",
|
|
1388
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApXAVUAIAAgAZlELUMc6+I2Gj+lIAGmo0QAAAAAAIjDwKVEAAAAAACIw0CkIAAgAaGZRC1DHOviNho/pSAAIAGhpqNEAAAAAACIw8ClRAAAAAAAiMNApJoL",
|
|
1389
|
+
},
|
|
1390
|
+
fast: {
|
|
1391
|
+
js: "((l, m) => Math.min(1e4, Math.max(-1e4, (-1.22881) / (((l - m)) < 1e-4 && ((l - m)) > -1e-4 ? (((l - m)) >= 0 ? 1e-4 : -1e-4) : ((l - m))))))",
|
|
1392
|
+
eval: ((l, m) => Math.min(1e4, Math.max(-1e4, (-1.22881) / (((l - m)) < 1e-4 && ((l - m)) > -1e-4 ? (((l - m)) >= 0 ? 1e-4 : -1e-4) : ((l - m)))))),
|
|
1393
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf((-1.22881f / copysignf(fmaxf(fabsf((l - m)), 1.0e-4f), (l - m))), -1.0e4f), 1.0e4f);\n}",
|
|
1394
|
+
py: "import torch\n\ndef spear_fn(l, m):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (-1.22881 / (abs((l - m)) < 1e-4 ? 1e-4 : (l - m)))",
|
|
1395
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAAo4ATYARNP2r6w0qfO/IAAgAaGZRC1DHOviNho/pSAAIAGhpqNEAAAAAACIw8ClRAAAAAAAiMNApAs=",
|
|
1396
|
+
},
|
|
1397
|
+
meta: {
|
|
1398
|
+
metric: 6.062690637388583e-33,
|
|
1399
|
+
level: 2,
|
|
1400
|
+
formulaCost: 10,
|
|
1401
|
+
exactCost: 6,
|
|
1402
|
+
speedupVsExact: 0.6,
|
|
1403
|
+
vsIterative: null,
|
|
1404
|
+
},
|
|
1405
|
+
},
|
|
1406
|
+
"grover_amplitude": {
|
|
1407
|
+
id: "grover_amplitude",
|
|
1408
|
+
precise: {
|
|
1409
|
+
js: "((k) => ((0.4208666946976904 * Math.min(1e4, Math.max(-1e4, ((-k)) / ((((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) < 1e-4 && (((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) > -1e-4 ? ((((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) >= 0 ? 1e-4 : -1e-4) : (((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))))))) + 0.03704337736862953))",
|
|
1410
|
+
eval: ((k) => ((0.4208666946976904 * Math.min(1e4, Math.max(-1e4, ((-k)) / ((((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) < 1e-4 && (((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) > -1e-4 ? ((((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))) >= 0 ? 1e-4 : -1e-4) : (((-k) + Math.min(0.966947, Math.log(Math.max(1e-30, k))))))))) + 0.03704337736862953)),
|
|
1411
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.420867f * fminf(fmaxf(((-k) / copysignf(fmaxf(fabsf(((-k) + fminf(0.966947f, logf(fmaxf(1.0e-30f, k))))), 1.0e-4f), ((-k) + fminf(0.966947f, logf(fmaxf(1.0e-30f, k)))))), -1.0e4f), 1.0e4f)) + 0.037043f);\n}",
|
|
1412
|
+
py: "import torch\n\ndef spear_fn(k):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.420867 * ((-k) / (abs(((-k) + torch.minimum(0.966947, torch.log(torch.clamp(k, min=1e-30))))) < 1e-4 ? 1e-4 : ((-k) + torch.minimum(0.966947, torch.log(torch.clamp(k, min=1e-30))))))) + 0.037043)",
|
|
1413
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQp0AXIARMvwbNx679o/IACaIACaRNbjvtU68e4/IABEoMLr/ktItDmlEACkoJlELUMc6+I2Gj+lIACaRNbjvtU68e4/IABEoMLr/ktItDmlEACkoKajRAAAAAAAiMPApUQAAAAAAIjDQKSiRBTOqXxZ96I/oAs=",
|
|
1414
|
+
},
|
|
1415
|
+
meta: {
|
|
1416
|
+
metric: 0.10656101522361813,
|
|
1417
|
+
level: 0,
|
|
1418
|
+
formulaCost: 30,
|
|
1419
|
+
exactCost: 48,
|
|
1420
|
+
speedupVsExact: 1.6,
|
|
1421
|
+
vsIterative: null,
|
|
1422
|
+
},
|
|
1423
|
+
},
|
|
1424
|
+
"concurrence_pure": {
|
|
1425
|
+
id: "concurrence_pure",
|
|
1426
|
+
precise: {
|
|
1427
|
+
js: "((a, d, b, c) => (2 * Math.abs(((a * d) - (b * c)))))",
|
|
1428
|
+
eval: ((a, d, b, c) => (2 * Math.abs(((a * d) - (b * c))))),
|
|
1429
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (2f * fabsf(((a * d) - (b * c))));\n}",
|
|
1430
|
+
py: "import torch\n\ndef spear_fn(a, d, b, c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (2 * torch.abs(((a * d) - (b * c))))",
|
|
1431
|
+
wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAAChoBGABEAAAAAAAAAEAgACABoiACIAOioZmiCw==",
|
|
1432
|
+
},
|
|
1433
|
+
meta: {
|
|
1434
|
+
metric: 0,
|
|
1435
|
+
level: 5,
|
|
1436
|
+
formulaCost: 5,
|
|
1437
|
+
exactCost: 7,
|
|
1438
|
+
speedupVsExact: 1.4,
|
|
1439
|
+
vsIterative: null,
|
|
1440
|
+
},
|
|
1441
|
+
},
|
|
1442
|
+
"chsh_correlation": {
|
|
1443
|
+
id: "chsh_correlation",
|
|
1444
|
+
precise: {
|
|
1445
|
+
js: "((a, b, ap, bp) => Math.abs((((-Math.cos((a - b))) + (-Math.cos((ap - b)))) - ((-Math.cos((a - bp))) - (-Math.cos((ap - bp)))))))",
|
|
1446
|
+
eval: ((a, b, ap, bp) => Math.abs((((-Math.cos((a - b))) + (-Math.cos((ap - b)))) - ((-Math.cos((a - bp))) - (-Math.cos((ap - bp))))))),
|
|
1447
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fabsf((((-cosf((a - b))) + (-cosf((ap - b)))) - ((-cosf((a - bp))) - (-cosf((ap - bp))))));\n}",
|
|
1448
|
+
py: "import torch\n\ndef spear_fn(a, b, ap, bp):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.abs((((-torch.cos((a - b))) + (-torch.cos((ap - b)))) - ((-torch.cos((a - bp))) - (-torch.cos((ap - bp))))))",
|
|
1449
|
+
wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQooASYAIAAgAaEQAJogAiABoRAAmqAgACADoRAAmiACIAOhEACaoaGZCw==",
|
|
1450
|
+
},
|
|
1451
|
+
meta: {
|
|
1452
|
+
metric: 2.1055469858256505e-32,
|
|
1453
|
+
level: 2,
|
|
1454
|
+
formulaCost: 92,
|
|
1455
|
+
exactCost: 84,
|
|
1456
|
+
speedupVsExact: 0.9130434782608695,
|
|
1457
|
+
vsIterative: null,
|
|
1458
|
+
},
|
|
1459
|
+
},
|
|
1460
|
+
"legendre_p2": {
|
|
1461
|
+
id: "legendre_p2",
|
|
1462
|
+
precise: {
|
|
1463
|
+
js: "((x) => ((1.5 * (x) * (x)) + -0.5))",
|
|
1464
|
+
eval: ((x) => ((1.5 * (x) * (x)) + -0.5)),
|
|
1465
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.5f * powf(x, 2.0f)) + -0.5f);\n}",
|
|
1466
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.5 * (x * x)) + -0.5)",
|
|
1467
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACh0BGwBEAAAAAAAA+D8gACAAoqJEAAAAAAAA4L+gCw==",
|
|
1468
|
+
},
|
|
1469
|
+
fast: {
|
|
1470
|
+
js: "((x) => (-0.774693 * (x) * (x)))",
|
|
1471
|
+
eval: ((x) => (-0.774693 * (x) * (x))),
|
|
1472
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (-0.774693f * powf(x, 2.0f));\n}",
|
|
1473
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (-0.774693 * (x * x))",
|
|
1474
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAAChMBEQBEhxVu+UjK6L8gACAAoqIL",
|
|
1475
|
+
},
|
|
1476
|
+
meta: {
|
|
1477
|
+
metric: 3.250969746125654e-33,
|
|
1478
|
+
level: 5,
|
|
1479
|
+
formulaCost: 3,
|
|
1480
|
+
exactCost: 5,
|
|
1481
|
+
speedupVsExact: 1.6666666666666667,
|
|
1482
|
+
vsIterative: null,
|
|
1483
|
+
},
|
|
1484
|
+
},
|
|
1485
|
+
"laguerre_l2": {
|
|
1486
|
+
id: "laguerre_l2",
|
|
1487
|
+
precise: {
|
|
1488
|
+
js: "((x) => ((0.25005568930581107 * ((-0.01236 + ((x + -1.996089)) * ((x + -1.996089))) + ((x + -2.005496)) * ((x + -2.005496)))) + -0.996477875101051))",
|
|
1489
|
+
eval: ((x) => ((0.25005568930581107 * ((-0.01236 + ((x + -1.996089)) * ((x + -1.996089))) + ((x + -2.005496)) * ((x + -2.005496)))) + -0.996477875101051)),
|
|
1490
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.250056f * ((-0.01236f + powf((x + -1.996089f), 2.0f)) + powf((x + -2.005496f), 2.0f))) + -0.996478f);\n}",
|
|
1491
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.250056 * ((-0.01236 + ((x + -1.996089) * (x + -1.996089))) + ((x + -2.005496) * (x + -2.005496)))) + -0.996478)",
|
|
1492
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAAClUBUwBEDdLvk+kA0D9Eqn06HjNQib8gAERKfO4E++//v6AgAERKfO4E++//v6CioCAARA4SonxBCwDAoCAARA4SonxBCwDAoKKgokQK5JeRJePvv6AL",
|
|
1493
|
+
},
|
|
1494
|
+
fast: {
|
|
1495
|
+
js: "((x) => (((x + -1.996089)) * ((x + -1.996089)) + -0.262804))",
|
|
1496
|
+
eval: ((x) => (((x + -1.996089)) * ((x + -1.996089)) + -0.262804)),
|
|
1497
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (powf((x + -1.996089f), 2.0f) + -0.262804f);\n}",
|
|
1498
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (((x + -1.996089) * (x + -1.996089)) + -0.262804)",
|
|
1499
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACicBJQAgAERKfO4E++//v6AgAERKfO4E++//v6CiRM+CUN7H0dC/oAs=",
|
|
1500
|
+
},
|
|
1501
|
+
meta: {
|
|
1502
|
+
metric: 8.257087129644967e-7,
|
|
1503
|
+
level: 5,
|
|
1504
|
+
formulaCost: 8,
|
|
1505
|
+
exactCost: 5,
|
|
1506
|
+
speedupVsExact: 0.625,
|
|
1507
|
+
vsIterative: null,
|
|
1508
|
+
},
|
|
1509
|
+
},
|
|
1510
|
+
"asin_hard": {
|
|
1511
|
+
id: "asin_hard",
|
|
1512
|
+
precise: {
|
|
1513
|
+
js: "((x) => Math.asin(Math.max(-1, Math.min(1, x))))",
|
|
1514
|
+
eval: ((x) => Math.asin(Math.max(-1, Math.min(1, x)))),
|
|
1515
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return asinf(fmaxf(-1.0f, fminf(1.0f, x)));\n}",
|
|
1516
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.asin(torch.clamp(x, -1.0, 1.0))",
|
|
1517
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgwBA2VudgRhc2luAAEDAgEABwkBBXNwZWFyAAEKHAEaACAARAAAAAAAAPC/pUQAAAAAAADwP6QQAAs=",
|
|
1518
|
+
},
|
|
1519
|
+
fast: {
|
|
1520
|
+
js: "((x) => (0.529961 * ((1.930182 * x) + ((0.645691 * (x) * (x)) * (x) * (x) * (x)))))",
|
|
1521
|
+
eval: ((x) => (0.529961 * ((1.930182 * x) + ((0.645691 * (x) * (x)) * (x) * (x) * (x))))),
|
|
1522
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (0.529961f * ((1.930182f * x) + ((0.645691f * powf(x, 2.0f)) * powf(x, 3.0f))));\n}",
|
|
1523
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (0.529961 * ((1.930182 * x) + ((0.645691 * (x * x)) * (x ** 3))))",
|
|
1524
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACjMBMQBEf/lkxXD14D9E9z5VhQbi/j8gAKJEBkoKLICp5D8gACAAoqIgACAAIACioqKgogs=",
|
|
1525
|
+
},
|
|
1526
|
+
meta: {
|
|
1527
|
+
metric: 0,
|
|
1528
|
+
level: 5,
|
|
1529
|
+
formulaCost: 20,
|
|
1530
|
+
exactCost: 28,
|
|
1531
|
+
speedupVsExact: 1.4,
|
|
1532
|
+
vsIterative: null,
|
|
1533
|
+
},
|
|
1534
|
+
},
|
|
1535
|
+
"qfi_dephasing": {
|
|
1536
|
+
id: "qfi_dephasing",
|
|
1537
|
+
precise: {
|
|
1538
|
+
js: "((n, t, g) => ((0.002631 * Math.min(1e4, Math.max(-1e4, (Math.sin(Math.log(Math.max(1e-30, n)))) / (((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) < 1e-4 && ((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) > -1e-4 ? (((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) >= 0 ? 1e-4 : -1e-4) : ((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)))))) + 0.159052))",
|
|
1539
|
+
eval: ((n, t, g) => ((0.002631 * Math.min(1e4, Math.max(-1e4, (Math.sin(Math.log(Math.max(1e-30, n)))) / (((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) < 1e-4 && ((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) > -1e-4 ? (((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)) >= 0 ? 1e-4 : -1e-4) : ((Math.min(1e4, Math.max(-1e4, (0.35138) / ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (t) / ((g) < 1e-4 && (g) > -1e-4 ? ((g) >= 0 ? 1e-4 : -1e-4) : (g)))))))) * g)))))) + 0.159052)),
|
|
1540
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.002631f * fminf(fmaxf((sinf(logf(fmaxf(1.0e-30f, n))) / copysignf(fmaxf(fabsf((fminf(fmaxf((0.35138f / copysignf(fmaxf(fabsf(fminf(fmaxf((t / copysignf(fmaxf(fabsf(g), 1.0e-4f), g)), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((t / copysignf(fmaxf(fabsf(g), 1.0e-4f), g)), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f) * g)), 1.0e-4f), (fminf(fmaxf((0.35138f / copysignf(fmaxf(fabsf(fminf(fmaxf((t / copysignf(fmaxf(fabsf(g), 1.0e-4f), g)), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((t / copysignf(fmaxf(fabsf(g), 1.0e-4f), g)), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f) * g))), -1.0e4f), 1.0e4f)) + 0.159052f);\n}",
|
|
1541
|
+
py: "import torch\n\ndef spear_fn(n, t, g):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.002631 * (torch.sin(torch.log(torch.clamp(n, min=1e-30))) / (abs(((0.35138 / (abs((t / (abs(g) < 1e-4 ? 1e-4 : g))) < 1e-4 ? 1e-4 : (t / (abs(g) < 1e-4 ? 1e-4 : g)))) * g)) < 1e-4 ? 1e-4 : ((0.35138 / (abs((t / (abs(g) < 1e-4 ? 1e-4 : g))) < 1e-4 ? 1e-4 : (t / (abs(g) < 1e-4 ? 1e-4 : g)))) * g)))) + 0.159052)",
|
|
1542
|
+
wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwCFQIDZW52A3NpbgABA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAgrAAgG9AgBEjbeVXpuNZT8gAESgwuv+S0i0OaUQARAARJT7HYoCfdY/IAEgAplELUMc6+I2Gj+lIAKmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6UgASACmUQtQxzr4jYaP6UgAqajRAAAAAAAiMPApUQAAAAAAIjDQKSmo0QAAAAAAIjDwKVEAAAAAACIw0CkIAKimUQtQxzr4jYaP6VElPsdigJ91j8gASACmUQtQxzr4jYaP6UgAqajRAAAAAAAiMPApUQAAAAAAIjDQKSZRC1DHOviNho/pSABIAKZRC1DHOviNho/pSACpqNEAAAAAACIw8ClRAAAAAAAiMNApKajRAAAAAAAiMPApUQAAAAAAIjDQKQgAqKmo0QAAAAAAIjDwKVEAAAAAACIw0CkokShgy7h0FvEP6AL",
|
|
1543
|
+
},
|
|
1544
|
+
meta: {
|
|
1545
|
+
metric: 1.4726216379152874,
|
|
1546
|
+
level: 0,
|
|
1547
|
+
formulaCost: 55,
|
|
1548
|
+
exactCost: 22,
|
|
1549
|
+
speedupVsExact: 0.4,
|
|
1550
|
+
vsIterative: {"label":"BFGS optimisation","speedup":14.545454545454545},
|
|
1551
|
+
},
|
|
1552
|
+
},
|
|
1553
|
+
"amp_damp_fid": {
|
|
1554
|
+
id: "amp_damp_fid",
|
|
1555
|
+
precise: {
|
|
1556
|
+
js: "((th, t) => ((-2.161354036444073 * ((Math.cos(Math.sin(th)) - Math.cos(Math.cos(th))) * Math.sin(Math.sin(t)))) + 0.9986778255438645))",
|
|
1557
|
+
eval: ((th, t) => ((-2.161354036444073 * ((Math.cos(Math.sin(th)) - Math.cos(Math.cos(th))) * Math.sin(Math.sin(t)))) + 0.9986778255438645)),
|
|
1558
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-2.161354f * ((cosf(sinf(th)) - cosf(cosf(th))) * sinf(sinf(t)))) + 0.998678f);\n}",
|
|
1559
|
+
py: "import torch\n\ndef spear_fn(th, t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-2.161354 * ((torch.cos(torch.sin(th)) - torch.cos(torch.cos(th))) * torch.sin(torch.sin(t)))) + 0.998678)",
|
|
1560
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAIVAgNlbnYDc2luAAEDZW52A2NvcwABAwIBAAcJAQVzcGVhcgACCiwBKgBEztYs/HNKAcAgABAAEAEgABABEAGhIAEQABAAoqJE+3D+Miv17z+gCw==",
|
|
1561
|
+
},
|
|
1562
|
+
meta: {
|
|
1563
|
+
metric: 0.021192299809747715,
|
|
1564
|
+
level: 2,
|
|
1565
|
+
formulaCost: 124,
|
|
1566
|
+
exactCost: 24,
|
|
1567
|
+
speedupVsExact: 0.1935483870967742,
|
|
1568
|
+
vsIterative: {"label":"Kraus ops 4×4 matmul","speedup":0.3870967741935484},
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1571
|
+
"loschmidt_rate": {
|
|
1572
|
+
id: "loschmidt_rate",
|
|
1573
|
+
precise: {
|
|
1574
|
+
js: "((t) => ((3.2707335278466636 * (Math.min(Math.cos((t * 3.130638)), 3.047207) * Math.min(-0.185459, Math.cos((t * 3.047207))))) + 0.5942965371145621))",
|
|
1575
|
+
eval: ((t) => ((3.2707335278466636 * (Math.min(Math.cos((t * 3.130638)), 3.047207) * Math.min(-0.185459, Math.cos((t * 3.047207))))) + 0.5942965371145621)),
|
|
1576
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((3.270734f * (fminf(cosf((t * 3.130638f)), 3.047207f) * fminf(-0.185459f, cosf((t * 3.047207f))))) + 0.594297f);\n}",
|
|
1577
|
+
py: "import torch\n\ndef spear_fn(t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((3.270734 * (torch.minimum(torch.cos((t * 3.130638)), 3.047207) * torch.minimum(-0.185459, torch.cos((t * 3.047207))))) + 0.594297)",
|
|
1578
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQpJAUcARMtBAFd2KgpAIABENeuM74sLCUCiEABEYCNJEK5gCECkRMfa39kevce/IABEYCNJEK5gCECiEACkoqJEHA/hK3oE4z+gCw==",
|
|
1579
|
+
},
|
|
1580
|
+
fast: {
|
|
1581
|
+
js: "((t) => ((-0.287877 + Math.cos((t * 3.057635)))) * ((-0.287877 + Math.cos((t * 3.057635)))) * ((-0.287877 + Math.cos((t * 3.057635)))))",
|
|
1582
|
+
eval: ((t) => ((-0.287877 + Math.cos((t * 3.057635)))) * ((-0.287877 + Math.cos((t * 3.057635)))) * ((-0.287877 + Math.cos((t * 3.057635))))),
|
|
1583
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return powf((-0.287877f + cosf((t * 3.057635f))), 3.0f);\n}",
|
|
1584
|
+
py: "import torch\n\ndef spear_fn(t):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.287877 + torch.cos((t * 3.057635))) ** 3)",
|
|
1585
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQpOAUwARGFREaeTbNK/IABE9dbAVgl2CECiEACgRGFREaeTbNK/IABE9dbAVgl2CECiEACgRGFREaeTbNK/IABE9dbAVgl2CECiEACgoqIL",
|
|
1586
|
+
},
|
|
1587
|
+
meta: {
|
|
1588
|
+
metric: 0.052925894381018135,
|
|
1589
|
+
level: 2,
|
|
1590
|
+
formulaCost: 47,
|
|
1591
|
+
exactCost: 18,
|
|
1592
|
+
speedupVsExact: 0.3829787234042553,
|
|
1593
|
+
vsIterative: {"label":"Diag complète 128 modes","speedup":13.617021276595745},
|
|
1594
|
+
},
|
|
1595
|
+
},
|
|
1596
|
+
"bessel_i0e": {
|
|
1597
|
+
id: "bessel_i0e",
|
|
1598
|
+
precise: {
|
|
1599
|
+
js: "((x) => ((-0.956621415374655 * Math.min(1e4, Math.max(-1e4, (x) / (((0.802245 + Math.abs(x))) < 1e-4 && ((0.802245 + Math.abs(x))) > -1e-4 ? (((0.802245 + Math.abs(x))) >= 0 ? 1e-4 : -1e-4) : ((0.802245 + Math.abs(x))))))) + 1.0055104538128088))",
|
|
1600
|
+
eval: ((x) => ((-0.956621415374655 * Math.min(1e4, Math.max(-1e4, (x) / (((0.802245 + Math.abs(x))) < 1e-4 && ((0.802245 + Math.abs(x))) > -1e-4 ? (((0.802245 + Math.abs(x))) >= 0 ? 1e-4 : -1e-4) : ((0.802245 + Math.abs(x))))))) + 1.0055104538128088)),
|
|
1601
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.956621f * fminf(fmaxf((x / copysignf(fmaxf(fabsf((0.802245f + fabsf(x))), 1.0e-4f), (0.802245f + fabsf(x)))), -1.0e4f), 1.0e4f)) + 1.00551f);\n}",
|
|
1602
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.956621 * (x / (abs((0.802245 + torch.abs(x))) < 1e-4 ? 1e-4 : (0.802245 + torch.abs(x))))) + 1.00551)",
|
|
1603
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAAClUBUwBE+f61g6Sc7r8gAEQHJcy0/avpPyAAmaCZRC1DHOviNho/pUQHJcy0/avpPyAAmaCmo0QAAAAAAIjDwKVEAAAAAACIw0CkokQYmC4hkhbwP6AL",
|
|
1604
|
+
},
|
|
1605
|
+
meta: {
|
|
1606
|
+
metric: 0.00003056208763233721,
|
|
1607
|
+
level: 2,
|
|
1608
|
+
formulaCost: 8,
|
|
1609
|
+
exactCost: 24,
|
|
1610
|
+
speedupVsExact: 3,
|
|
1611
|
+
vsIterative: null,
|
|
1612
|
+
},
|
|
1613
|
+
},
|
|
1614
|
+
"elliptic_k": {
|
|
1615
|
+
id: "elliptic_k",
|
|
1616
|
+
precise: {
|
|
1617
|
+
js: "((m) => ((0.22939144913554116 * ((Math.exp(Math.max(-50, Math.min(50, m))) * (Math.asin(Math.max(-1, Math.min(1, m)))) * (Math.asin(Math.max(-1, Math.min(1, m)))) * (Math.asin(Math.max(-1, Math.min(1, m))))) + m)) + 1.6428050203299513))",
|
|
1618
|
+
eval: ((m) => ((0.22939144913554116 * ((Math.exp(Math.max(-50, Math.min(50, m))) * (Math.asin(Math.max(-1, Math.min(1, m)))) * (Math.asin(Math.max(-1, Math.min(1, m)))) * (Math.asin(Math.max(-1, Math.min(1, m))))) + m)) + 1.6428050203299513)),
|
|
1619
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.229391f * ((expf(fmaxf(-50.0f, fminf(50.0f, m))) * powf(asinf(fmaxf(-1.0f, fminf(1.0f, m))), 3.0f)) + m)) + 1.642805f);\n}",
|
|
1620
|
+
py: "import torch\n\ndef spear_fn(m):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.229391 * ((torch.exp(torch.clamp(m, -50.0, 50.0)) * (torch.asin(torch.clamp(m, -1.0, 1.0)) ** 3)) + m)) + 1.642805)",
|
|
1621
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhYCA2VudgNleHAAAQNlbnYEYXNpbgABAwIBAAcJAQVzcGVhcgACCn4BfABECnUC8rJczT8gAEQAAAAAAABJwKVEAAAAAAAASUCkEAAgAEQAAAAAAADwv6VEAAAAAAAA8D+kEAEgAEQAAAAAAADwv6VEAAAAAAAA8D+kEAEgAEQAAAAAAADwv6VEAAAAAAAA8D+kEAGioqIgAKCiRB1ZwOrtSPo/oAs=",
|
|
1622
|
+
},
|
|
1623
|
+
meta: {
|
|
1624
|
+
metric: 0.004333603318947968,
|
|
1625
|
+
level: 2,
|
|
1626
|
+
formulaCost: 46,
|
|
1627
|
+
exactCost: 16,
|
|
1628
|
+
speedupVsExact: 0.34782608695652173,
|
|
1629
|
+
vsIterative: null,
|
|
1630
|
+
},
|
|
1631
|
+
},
|
|
1632
|
+
"kepler_solver": {
|
|
1633
|
+
id: "kepler_solver",
|
|
1634
|
+
precise: {
|
|
1635
|
+
js: "((e, M) => ((1.8991880781575727 * (Math.max(0, Math.log(Math.max(1e-30, (e + M)))) - 4.88761)) + 9.923214341619618))",
|
|
1636
|
+
eval: ((e, M) => ((1.8991880781575727 * (Math.max(0, Math.log(Math.max(1e-30, (e + M)))) - 4.88761)) + 9.923214341619618)),
|
|
1637
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.899188f * (fmaxf(0.0f, logf(fmaxf(1.0e-30f, (e + M)))) - 4.88761f)) + 9.923214f);\n}",
|
|
1638
|
+
py: "import torch\n\ndef spear_fn(e, M):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.899188 * (torch.relu(torch.log(torch.clamp((e + M), min=1e-30))) - 4.88761)) + 9.923214)",
|
|
1639
|
+
wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAILAQNlbnYDbG9nAAEDAgEABwkBBXNwZWFyAAEKPQE7AETlPMoJE2P+PyAAIAGgRKDC6/5LSLQ5pRAARAAAAAAAAAAApUQFacai6YwTQKGiRKvo2Iyv2CNAoAs=",
|
|
1640
|
+
},
|
|
1641
|
+
meta: {
|
|
1642
|
+
metric: 0.025907227034892635,
|
|
1643
|
+
level: 1,
|
|
1644
|
+
formulaCost: 25,
|
|
1645
|
+
exactCost: 32,
|
|
1646
|
+
speedupVsExact: 1.28,
|
|
1647
|
+
vsIterative: null,
|
|
1648
|
+
},
|
|
1649
|
+
},
|
|
1650
|
+
"fast_exp_alu": {
|
|
1651
|
+
id: "fast_exp_alu",
|
|
1652
|
+
precise: {
|
|
1653
|
+
js: "((x) => Math.exp(Math.max(-50, Math.min(50, x))))",
|
|
1654
|
+
eval: ((x) => Math.exp(Math.max(-50, Math.min(50, x)))),
|
|
1655
|
+
c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return expf(fmaxf(-50.0f, fminf(50.0f, x)));\n}",
|
|
1656
|
+
py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.exp(torch.clamp(x, -50.0, 50.0))",
|
|
1657
|
+
wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNleHAAAQMCAQAHCQEFc3BlYXIAAQocARoAIABEAAAAAAAAScClRAAAAAAAAElApBAACw==",
|
|
1658
|
+
},
|
|
1659
|
+
meta: {
|
|
1660
|
+
metric: 0,
|
|
1661
|
+
level: 5,
|
|
1662
|
+
formulaCost: 20,
|
|
1663
|
+
exactCost: 34,
|
|
1664
|
+
speedupVsExact: 1.7,
|
|
1665
|
+
vsIterative: null,
|
|
1666
|
+
},
|
|
1667
|
+
},
|
|
1288
1668
|
};
|
|
1289
1669
|
|
|
1290
|
-
const kernelIds = ["silu","gelu","sigmoid","kv_cache","free_fall","kepler","gaussian_cdf","damped_pendulum","rl_distillation","lambert_w","rc_circuit","gaussian_kernel","diffusion_beta","bilinear_interp","european_call","temporal_grad","lorentz","hill","kerr","lennard_jones","damped_oscillation","logistic_growth","softplus","kdv_soliton","kerr_spin","pendulum_hybrid","eigen3_sym","ik_reach","idm_following","gemv4","rope_rot","gauss_shader","ema_smooth","smoothstep","srgb_gamma","tanh_sat","atan_unit","srgb_decode","erf_prob","huber_loss","cosh_curve","bessel_j0","bessel_j1","blackbody_r","aces_fit","logsumexp2","probit_quantile","pmt_finance","blackbody_g","blackbody_b","bessel_j2","logit_ml","kelly_criterion","rsi_momentum","implied_vol"];
|
|
1670
|
+
const kernelIds = ["silu","gelu","sigmoid","kv_cache","free_fall","kepler","gaussian_cdf","damped_pendulum","rl_distillation","lambert_w","rc_circuit","gaussian_kernel","diffusion_beta","bilinear_interp","european_call","temporal_grad","lorentz","hill","kerr","lennard_jones","damped_oscillation","logistic_growth","softplus","kdv_soliton","kerr_spin","pendulum_hybrid","eigen3_sym","ik_reach","idm_following","gemv4","rope_rot","gauss_shader","ema_smooth","smoothstep","srgb_gamma","tanh_sat","atan_unit","srgb_decode","erf_prob","huber_loss","cosh_curve","bessel_j0","bessel_j1","blackbody_r","aces_fit","logsumexp2","probit_quantile","pmt_finance","blackbody_g","blackbody_b","bessel_j2","logit_ml","kelly_criterion","rsi_momentum","implied_vol","michaelis_menten","temperature_softmax","doppler_effect","stefan_boltzmann","mm1_queue_wait","grover_amplitude","concurrence_pure","chsh_correlation","legendre_p2","laguerre_l2","asin_hard","qfi_dephasing","amp_damp_fid","loschmidt_rate","bessel_i0e","elliptic_k","kepler_solver","fast_exp_alu"];
|
|
1291
1671
|
|
|
1292
1672
|
module.exports = { kernels, kernelIds, default: kernels };
|