spear-kernels 1.0.0 → 1.1.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.
Files changed (3) hide show
  1. package/index.cjs +258 -58
  2. package/index.js +258 -58
  3. package/package.json +1 -4
package/index.cjs CHANGED
@@ -655,43 +655,43 @@ const kernels = {
655
655
  "idm_following": {
656
656
  id: "idm_following",
657
657
  precise: {
658
- js: "((s, v, dv) => ((0.15220827150497812 * Math.min(10.364448, (((s - v) - v) - Math.min((3.685645 * dv), (4 * v))))) + 0.07557019699678813))",
659
- eval: ((s, v, dv) => ((0.15220827150497812 * Math.min(10.364448, (((s - v) - v) - Math.min((3.685645 * dv), (4 * v))))) + 0.07557019699678813)),
660
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.152208f * fminf(10.364448f, (((s - v) - v) - fminf((3.685645f * dv), (4f * v))))) + 0.07557f);\n}",
661
- py: "import torch\n\ndef spear_fn(s, v, dv):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.152208 * torch.minimum(10.364448, (((s - v) - v) - torch.minimum((3.685645 * dv), (4 * v))))) + 0.07557)",
662
- wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKRAFCAER2tCWGj3vDP0RqL6LtmLokQCAAIAGhIAGhRM5THXIzfA1AIAKiRAAAAAAAABBAIAGipKGkokSgSqeEkVizP6AL",
658
+ js: "((v, dv, s) => ((1.817293 * Math.min(0.9724, Math.max(-5.078809, ((1 - (((v) * (v)) * ((v) * (v)) * 0.000001)) - (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))) * (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))))))) + 0.215108))",
659
+ eval: ((v, dv, s) => ((1.817293 * Math.min(0.9724, Math.max(-5.078809, ((1 - (((v) * (v)) * ((v) * (v)) * 0.000001)) - (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))) * (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))))))) + 0.215108)),
660
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.817293f * fminf(0.9724f, fmaxf(-5.078809f, ((1f - (powf(powf(v, 2.0f), 2.0f) * 0.000001f)) - powf(fminf(fmaxf(((2.643464f + fmaxf(-0.582903f, ((v * 1.536227f) + ((v * dv) * 0.212766f)))) / copysignf(fmaxf(fabsf(s), 1.0e-4f), s)), -1.0e4f), 1.0e4f), 2.0f))))) + 0.215108f);\n}",
661
+ py: "import torch\n\ndef spear_fn(v, dv, s):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.817293 * torch.minimum(0.9724, torch.maximum(-5.078809, ((1 - (((v * v) * (v * v)) * 0.000001)) - (((2.643464 + torch.maximum(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766)))) / (abs(s) < 1e-4 ? 1e-4 : s)) * ((2.643464 + torch.maximum(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766)))) / (abs(s) < 1e-4 ? 1e-4 : s))))))) + 0.215108)",
662
+ wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAK+AEB9QEAROP+I9OhE/0/RD0s1JrmHe8/RJiFdk6zUBTARAAAAAAAAPA/IAAgAKIgACAAoqJEje21oPfGsD6ioUQMOiF00CUFQERwsDcxJKfivyAARA+3Q8NilPg/oiAAIAGiRLix2ZHqO8s/oqCloCACmUQtQxzr4jYaP6UgAqajRAAAAAAAiMPApUQAAAAAAIjDQKREDDohdNAlBUBEcLA3MSSn4r8gAEQPt0PDYpT4P6IgACABokS4sdmR6jvLP6KgpaAgAplELUMc6+I2Gj+lIAKmo0QAAAAAAIjDwKVEAAAAAACIw0CkoqGlpKJE5dGNsKiIyz+gCw==",
663
663
  },
664
664
  meta: {
665
- metric: 2.011784733861053,
666
- level: 0,
667
- formulaCost: 9,
665
+ metric: 0.004462086832640868,
666
+ level: 2,
667
+ formulaCost: 20,
668
668
  exactCost: 30,
669
- speedupVsExact: 3.3333333333333335,
669
+ speedupVsExact: 1.5,
670
670
  vsIterative: null,
671
671
  },
672
672
  },
673
673
  "gemv4": {
674
674
  id: "gemv4",
675
675
  precise: {
676
- js: "((x2, x1, x0, x3) => ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054))",
677
- eval: ((x2, x1, x0, x3) => ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054)),
678
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.625986f * (((0.77697f * (x2 - x1)) + (0.524073f * (x0 + x3))) + ((x2 - x3) + (0.819647f * x0)))) + -0.000054f);\n}",
679
- py: "import torch\n\ndef spear_fn(x2, x1, x0, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054)",
680
- wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACkoBSABElx+4yhMI5D9EzSN/MPDc6D8gACABoaJEdO52vTTF4D8gAiADoKKgIAAgA6FE4nZoWIw66j8gAqKgoKJE3gAz38FPDL+gCw==",
676
+ js: "((x0, x1, x2, x3) => ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005039899341391374))",
677
+ eval: ((x0, x1, x2, x3) => ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005039899341391374)),
678
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.50938f * ((((x0 * 0.823f) - (x1 * 0.476f)) + ((x2 * 1.1f) + (x3 * -0.299373f))) + (((x0 * 0.82f) - (x1 * 0.47f)) + ((x2 * 1.093449f) + (x3 * -0.28054f))))) + 0.000005f);\n}",
679
+ py: "import torch\n\ndef spear_fn(x0, x1, x2, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005)",
680
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACn8BfQBEP5EnSddM4D8gAES8dJMYBFbqP6IgAUQQWDm0yHbeP6KhIAJEmpmZmZmZ8T+iIANEzosTX+0o07+ioKAgAEQ9CtejcD3qP6IgAUQUrkfhehTeP6KhIAJEoYDtYMR+8T+iIANE3BFOC1700b+ioKCgokQAgG/7jCPVPqAL",
681
681
  },
682
682
  fast: {
683
- js: "((x1, x2, x0) => ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432)))))",
684
- eval: ((x1, x2, x0) => ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432))))),
685
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((x1 - x2) - (2.144299f * (x0 + (x2 - 1.587432f))));\n}",
686
- py: "import torch\n\ndef spear_fn(x1, x2, x0):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432))))",
687
- wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKIwEhACAAIAGhRJjD7juGJwFAIAIgAURh+8kYH2b5P6GgoqEL",
683
+ js: "((x0, x1, x2, x3) => ((((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029))",
684
+ eval: ((x0, x1, x2, x3) => ((((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029)),
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.47f)) + ((x2 * 1.1f) + (x3 * -0.299373f))) + -0.000029f);\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.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029)",
687
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACkEBPwAgAEQ9CtejcD3qP6IgAUQUrkfhehTeP6KhIAJEmpmZmZmZ8T+iIANEzosTX+0o07+ioKBEkL5J06Bo/r6gCw==",
688
688
  },
689
689
  meta: {
690
- metric: 0.000019926280807657284,
690
+ metric: 1.6074532951505583e-7,
691
691
  level: 2,
692
- formulaCost: 11,
692
+ formulaCost: 17,
693
693
  exactCost: 7,
694
- speedupVsExact: 0.6363636363636364,
694
+ speedupVsExact: 0.4117647058823529,
695
695
  vsIterative: null,
696
696
  },
697
697
  },
@@ -959,54 +959,50 @@ const kernels = {
959
959
  "bessel_j0": {
960
960
  id: "bessel_j0",
961
961
  precise: {
962
- js: "((x) => ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * Math.exp(Math.max(-50, Math.min(50, x))))) * (x * Math.exp(Math.max(-50, Math.min(50, Math.sin(x))))))) + 0.843755))",
963
- eval: ((x) => ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * Math.exp(Math.max(-50, Math.min(50, x))))) * (x * Math.exp(Math.max(-50, Math.min(50, Math.sin(x))))))) + 0.843755)),
964
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.007656f * (((6.416449f * x) - ((x - 4.271024f) * expf(fmaxf(-50.0f, fminf(50.0f, x))))) * (x * expf(fmaxf(-50.0f, fminf(50.0f, sinf(x))))))) + 0.843755f);\n}",
965
- py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * torch.exp(torch.clamp(x, -50.0, 50.0)))) * (x * torch.exp(torch.clamp(torch.sin(x), -50.0, 50.0))))) + 0.843755)",
966
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhUCA2VudgNleHAAAQNlbnYDc2luAAEDAgEABwkBBXNwZWFyAAIKaAFmAESEDOTZ5Vt/v0TAzk2bcaoZQCAAoiAARHO5wVCHFRFAoSAARAAAAAAAAEnApUQAAAAAAABJQKQQAKKhIAAgABABRAAAAAAAAEnApUQAAAAAAABJQKQQAKKiokRyxFp8CgDrP6AL",
962
+ js: "((x) => ((-0.6162005993906633 * Math.min(1e4, Math.max(-1e4, (((3.154708 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.050039, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))) + 1.48653822658716))",
963
+ eval: ((x) => ((-0.6162005993906633 * Math.min(1e4, Math.max(-1e4, (((3.154708 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.050039, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))) + 1.48653822658716)),
964
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.616201f * fminf(fmaxf((((3.154708f + fminf(3.154708f, x)) + (fminf(3.396868f, x) * fminf(2.050039f, x))) / copysignf(fmaxf(fabsf(fmaxf(4.359564f, x)), 1.0e-4f), fmaxf(4.359564f, x))), -1.0e4f), 1.0e4f)) + 1.486538f);\n}",
965
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.616201 * (((3.154708 + torch.minimum(3.154708, x)) + (torch.minimum(3.396868, x) * torch.minimum(2.050039, x))) / (abs(torch.maximum(4.359564, x)) < 1e-4 ? 1e-4 : torch.maximum(4.359564, x)))) + 1.486538)",
966
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACoEBAX8ARGcSxVHqt+O/RMFvQ4zXPAlARMFvQ4zXPAlAIACkoESloUYhySwLQCAApEREMuTYemYAQCAApKKgRJlGk4sxcBFAIAClmUQtQxzr4jYaP6VEmUaTizFwEUAgAKWmo0QAAAAAAIjDwKVEAAAAAACIw0CkokSMIbdO3Mj3P6AL",
967
967
  },
968
- meta: {
969
- metric: 0.01597597548203077,
970
- level: 0,
971
- formulaCost: 68,
972
- exactCost: 40,
973
- speedupVsExact: 0.5882352941176471,
974
- vsIterative: null,
975
- },
976
- },
977
- "logit_ml": {
978
- id: "logit_ml",
979
- precise: {
980
- 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))",
981
- 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)),
982
- 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}",
983
- 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)",
984
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQpkAWIARHgPwGlSAwFAIAAgAKIgAJmfRKDC6/5LSLQ5pRAAoCAAIAAgAKKiIAAgACAAoqKiIAAgACAAoqIgACAAIACioqIgACAAIACioiAAIAAgAKKioqKioKJEjcpXgLy6zD+gCw==",
968
+ fast: {
969
+ js: "((x) => Math.min(1e4, Math.max(-1e4, (((2.899151 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.061274, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x))))))",
970
+ eval: ((x) => Math.min(1e4, Math.max(-1e4, (((2.899151 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.061274, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))),
971
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf((((2.899151f + fminf(3.154708f, x)) + (fminf(3.396868f, x) * fminf(2.061274f, x))) / copysignf(fmaxf(fabsf(fmaxf(4.359564f, x)), 1.0e-4f), fmaxf(4.359564f, x))), -1.0e4f), 1.0e4f);\n}",
972
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (((2.899151 + torch.minimum(3.154708, x)) + (torch.minimum(3.396868, x) * torch.minimum(2.061274, x))) / (abs(torch.maximum(4.359564, x)) < 1e-4 ? 1e-4 : torch.maximum(4.359564, x)))",
973
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACm0BawBEWFNZFHYxB0BEwW9DjNc8CUAgAKSgRKWhRiHJLAtAIACkRMbCEDl9fQBAIACkoqBEmUaTizFwEUAgAKWZRC1DHOviNho/pUSZRpOLMXARQCAApaajRAAAAAAAiMPApUQAAAAAAIjDQKQL",
985
974
  },
986
975
  meta: {
987
- metric: 0.0008206231598785846,
976
+ metric: 0.00026389864276618125,
988
977
  level: 2,
989
- formulaCost: 32,
990
- exactCost: 27,
991
- speedupVsExact: 0.84375,
978
+ formulaCost: 13,
979
+ exactCost: 40,
980
+ speedupVsExact: 3.076923076923077,
992
981
  vsIterative: null,
993
982
  },
994
983
  },
995
984
  "bessel_j1": {
996
985
  id: "bessel_j1",
997
986
  precise: {
998
- js: "((x) => ((0.000042 * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482)))) + -11.325875))",
999
- eval: ((x) => ((0.000042 * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482)))) + -11.325875)),
1000
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.000042f * powf((((x * -0.304133f) * powf(x, 2.0f)) + (expf(fmaxf(-50.0f, fminf(50.0f, x))) + 62.51482f)), 3.0f)) + -11.325875f);\n}",
1001
- py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.000042 * ((((x * -0.304133) * (x * x)) + (torch.exp(torch.clamp(x, -50.0, 50.0)) + 62.51482)) ** 3)) + -11.325875)",
1002
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNleHAAAQMCAQAHCQEFc3BlYXIAAQq6AQG3AQBEycfuAiUFBj8gAER8mShC6nbTv6IgACAAoqIgAEQAAAAAAABJwKVEAAAAAAAASUCkEABE0qkrn+VBT0CgoCAARHyZKELqdtO/oiAAIACioiAARAAAAAAAAEnApUQAAAAAAABJQKQQAETSqSuf5UFPQKCgIABEfJkoQup207+iIAAgAKKiIABEAAAAAAAAScClRAAAAAAAAElApBAARNKpK5/lQU9AoKCioqJEAiuHFtmmJsCgCw==",
987
+ js: "((x) => ((0.467801 * Math.min(Math.min((x + -0.251268), Math.sin((x * 0.889558))), Math.sin(((x * 0.90724) + -0.170621)))) + 0.123708))",
988
+ eval: ((x) => ((0.467801 * Math.min(Math.min((x + -0.251268), Math.sin((x * 0.889558))), Math.sin(((x * 0.90724) + -0.170621)))) + 0.123708)),
989
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.467801f * fminf(fminf((x + -0.251268f), sinf((x * 0.889558f))), sinf(((x * 0.90724f) + -0.170621f)))) + 0.123708f);\n}",
990
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.467801 * torch.minimum(torch.minimum((x + -0.251268), torch.sin((x * 0.889558))), torch.sin(((x * 0.90724) + -0.170621)))) + 0.123708)",
991
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNzaW4AAQMCAQAHCQEFc3BlYXIAAQpMAUoARGZPAptz8N0/IABERwGiYMYU0L+gIABEN6W8VkJ37D+iEACkIABE8u8zLhwI7T+iRGtiga/o1sW/oBAApKJE1elA1lOrvz+gCw==",
992
+ },
993
+ fast: {
994
+ js: "((x) => Math.min(Math.min(2.051452, (x + -0.339138)), Math.min(0.889558, Math.sin((x * 0.889558)))))",
995
+ eval: ((x) => Math.min(Math.min(2.051452, (x + -0.339138)), Math.min(0.889558, Math.sin((x * 0.889558))))),
996
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fminf(2.051452f, (x + -0.339138f)), fminf(0.889558f, sinf((x * 0.889558f))));\n}",
997
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.minimum(torch.minimum(2.051452, (x + -0.339138)), torch.minimum(0.889558, torch.sin((x * 0.889558))))",
998
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNzaW4AAQMCAQAHCQEFc3BlYXIAAQozATEARKWCiqpfaQBAIABEnSy13m+01b+gpEQ3pbxWQnfsPyAARDelvFZCd+w/ohAApKQL",
1003
999
  },
1004
1000
  meta: {
1005
- metric: 0.5607140575550605,
1006
- level: 0,
1007
- formulaCost: 29,
1001
+ metric: 0.000005197986685271395,
1002
+ level: 4,
1003
+ formulaCost: 48,
1008
1004
  exactCost: 40,
1009
- speedupVsExact: 1.3793103448275863,
1005
+ speedupVsExact: 0.8333333333333334,
1010
1006
  vsIterative: null,
1011
1007
  },
1012
1008
  },
@@ -1085,8 +1081,212 @@ const kernels = {
1085
1081
  vsIterative: null,
1086
1082
  },
1087
1083
  },
1084
+ "probit_quantile": {
1085
+ id: "probit_quantile",
1086
+ precise: {
1087
+ js: "((x) => ((-4.274877162925097 * (Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))) + (0.076417 * (x) * (x)))) + 3.9839485700095683))",
1088
+ eval: ((x) => ((-4.274877162925097 * (Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))) + (0.076417 * (x) * (x)))) + 3.9839485700095683)),
1089
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-4.274877f * (sqrtf(fabsf(sqrtf(fabsf(logf(fmaxf(1.0e-30f, x)))))) + (0.076417f * powf(x, 2.0f)))) + 3.983949f);\n}",
1090
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-4.274877 * (torch.sqrt(torch.abs(torch.sqrt(torch.abs(torch.log(torch.clamp(x, min=1e-30)))))) + (0.076417 * (x * x)))) + 3.983949)",
1091
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQo6ATgAROO4JGZ5GRHAIABEoMLr/ktItDmlEACZn5mfRDPC24MQkLM/IAAgAKKioKJEtBiJbSDfD0CgCw==",
1092
+ },
1093
+ fast: {
1094
+ js: "((x) => Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))))",
1095
+ eval: ((x) => Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x))))))),
1096
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return sqrtf(fabsf(sqrtf(fabsf(logf(fmaxf(1.0e-30f, x))))));\n}",
1097
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.sqrt(torch.abs(torch.sqrt(torch.abs(torch.log(torch.clamp(x, min=1e-30))))))",
1098
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQoWARQAIABEoMLr/ktItDmlEACZn5mfCw==",
1099
+ },
1100
+ meta: {
1101
+ metric: 0.00001901761235141796,
1102
+ level: 3,
1103
+ formulaCost: 29,
1104
+ exactCost: 28,
1105
+ speedupVsExact: 0.9655172413793104,
1106
+ vsIterative: null,
1107
+ },
1108
+ },
1109
+ "pmt_finance": {
1110
+ id: "pmt_finance",
1111
+ precise: {
1112
+ js: "((n, r) => ((-0.6469010959077766 * Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (n) / (((r + (n * 0.269972))) < 1e-4 && ((r + (n * 0.269972))) > -1e-4 ? (((r + (n * 0.269972))) >= 0 ? 1e-4 : -1e-4) : ((r + (n * 0.269972))))))) / ((((r * 0.810197) - Math.atan(n))) < 1e-4 && (((r * 0.810197) - Math.atan(n))) > -1e-4 ? ((((r * 0.810197) - Math.atan(n))) >= 0 ? 1e-4 : -1e-4) : (((r * 0.810197) - Math.atan(n))))))) + -1.5260749723747622))",
1113
+ eval: ((n, r) => ((-0.6469010959077766 * Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (n) / (((r + (n * 0.269972))) < 1e-4 && ((r + (n * 0.269972))) > -1e-4 ? (((r + (n * 0.269972))) >= 0 ? 1e-4 : -1e-4) : ((r + (n * 0.269972))))))) / ((((r * 0.810197) - Math.atan(n))) < 1e-4 && (((r * 0.810197) - Math.atan(n))) > -1e-4 ? ((((r * 0.810197) - Math.atan(n))) >= 0 ? 1e-4 : -1e-4) : (((r * 0.810197) - Math.atan(n))))))) + -1.5260749723747622)),
1114
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.646901f * fminf(fmaxf((fminf(fmaxf((n / copysignf(fmaxf(fabsf((r + (n * 0.269972f))), 1.0e-4f), (r + (n * 0.269972f)))), -1.0e4f), 1.0e4f) / copysignf(fmaxf(fabsf(((r * 0.810197f) - atanf(n))), 1.0e-4f), ((r * 0.810197f) - atanf(n)))), -1.0e4f), 1.0e4f)) + -1.526075f);\n}",
1115
+ py: "import torch\n\ndef spear_fn(n, r):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.646901 * ((n / (abs((r + (n * 0.269972))) < 1e-4 ? 1e-4 : (r + (n * 0.269972)))) / (abs(((r * 0.810197) - torch.atan(n))) < 1e-4 ? 1e-4 : ((r * 0.810197) - torch.atan(n))))) + -1.526075)",
1116
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAIMAQNlbnYEYXRhbgABAwIBAAcJAQVzcGVhcgABCp0BAZoBAERodFXtabPkvyAAIAEgAEROfLWjOEfRP6KgmUQtQxzr4jYaP6UgASAARE58taM4R9E/oqCmo0QAAAAAAIjDwKVEAAAAAACIw0CkIAFEaydKQiLt6T+iIAAQAKGZRC1DHOviNho/pSABRGsnSkIi7ek/oiAAEAChpqNEAAAAAACIw8ClRAAAAAAAiMNApKJE038Zl81q+L+gCw==",
1117
+ },
1118
+ fast: {
1119
+ js: "((r, n) => ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))))",
1120
+ eval: ((r, n) => ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402))))),
1121
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return powf((r - atanf((n - 2.963402f))), 3.0f);\n}",
1122
+ py: "import torch\n\ndef spear_fn(r, n):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((r - torch.atan((n - 2.963402))) ** 3)",
1123
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAIMAQNlbnYEYXRhbgABAwIBAAcJAQVzcGVhcgABCjkBNwAgACABRDs1lxsMtQdAoRAAoSAAIAFEOzWXGwy1B0ChEAChIAAgAUQ7NZcbDLUHQKEQAKGiogs=",
1124
+ },
1125
+ meta: {
1126
+ metric: 4.3680216924352057e-7,
1127
+ level: 2,
1128
+ formulaCost: 34,
1129
+ exactCost: 47,
1130
+ speedupVsExact: 1.3823529411764706,
1131
+ vsIterative: null,
1132
+ },
1133
+ },
1134
+ "blackbody_g": {
1135
+ id: "blackbody_g",
1136
+ precise: {
1137
+ js: "((x) => ((3896.479658 * Math.min(1e4, Math.max(-1e4, ((Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x)))) - 2.971801)) / ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))))))) + 1.501624))",
1138
+ eval: ((x) => ((3896.479658 * Math.min(1e4, Math.max(-1e4, ((Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x)))) - 2.971801)) / ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))))))) + 1.501624)),
1139
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((3896.479658f * fminf(fmaxf(((logf(fmaxf(1.0e-30f, sqrtf(fabsf(x)))) - 2.971801f) / copysignf(fmaxf(fabsf(fminf(fmaxf(((-1.66618f * x) / copysignf(fmaxf(fabsf(atanf(atanf(x))), 1.0e-4f), atanf(atanf(x)))), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf(((-1.66618f * x) / copysignf(fmaxf(fabsf(atanf(atanf(x))), 1.0e-4f), atanf(atanf(x)))), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f)) + 1.501624f);\n}",
1140
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((3896.479658 * ((torch.log(torch.clamp(torch.sqrt(torch.abs(x)), min=1e-30)) - 2.971801) / (abs(((-1.66618 * x) / (abs(torch.atan(torch.atan(x))) < 1e-4 ? 1e-4 : torch.atan(torch.atan(x))))) < 1e-4 ? 1e-4 : ((-1.66618 * x) / (abs(torch.atan(torch.atan(x))) < 1e-4 ? 1e-4 : torch.atan(torch.atan(x))))))) + 1.501624)",
1141
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhYCA2VudgRhdGFuAAEDZW52A2xvZwABAwIBAAcJAQVzcGVhcgACCsYBAcMBAESIvruV9XCuQCAAmZ9EoMLr/ktItDmlEAFEwsJJmj/GB0ChRA39E1ysqPq/IACiIAAQABAAmUQtQxzr4jYaP6UgABAAEACmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6VEDf0TXKyo+r8gAKIgABAAEACZRC1DHOviNho/pSAAEAAQAKajRAAAAAAAiMPApUQAAAAAAIjDQKSmo0QAAAAAAIjDwKVEAAAAAACIw0CkokQiOC7jpgb4P6AL",
1142
+ },
1143
+ fast: {
1144
+ js: "((x) => Math.min(1e4, Math.max(-1e4, ((-1.637862 + (-0.43866 * Math.sqrt(Math.abs(x))))) / ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x))))))))))",
1145
+ eval: ((x) => Math.min(1e4, Math.max(-1e4, ((-1.637862 + (-0.43866 * Math.sqrt(Math.abs(x))))) / ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))))))),
1146
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf(((-1.637862f + (-0.43866f * sqrtf(fabsf(x)))) / copysignf(fmaxf(fabsf(fminf(fmaxf((x / copysignf(fmaxf(fabsf(fminf(-0.661473f, x)), 1.0e-4f), fminf(-0.661473f, x))), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((x / copysignf(fmaxf(fabsf(fminf(-0.661473f, x)), 1.0e-4f), fminf(-0.661473f, x))), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f);\n}",
1147
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-1.637862 + (-0.43866 * torch.sqrt(torch.abs(x)))) / (abs((x / (abs(torch.minimum(-0.661473, x)) < 1e-4 ? 1e-4 : torch.minimum(-0.661473, x)))) < 1e-4 ? 1e-4 : (x / (abs(torch.minimum(-0.661473, x)) < 1e-4 ? 1e-4 : torch.minimum(-0.661473, x)))))",
1148
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACrQBAbEBAERHx9XIrjT6v0QXDoRkARPcvyAAmZ+ioCAARPj7xWzJKuW/IACkmUQtQxzr4jYaP6VE+PvFbMkq5b8gAKSmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6UgAET4+8VsySrlvyAApJlELUMc6+I2Gj+lRPj7xWzJKuW/IACkpqNEAAAAAACIw8ClRAAAAAAAiMNApKajRAAAAAAAiMPApUQAAAAAAIjDQKQL",
1149
+ },
1150
+ meta: {
1151
+ metric: 0.00012987872179127979,
1152
+ level: 2,
1153
+ formulaCost: 74,
1154
+ exactCost: 25,
1155
+ speedupVsExact: 0.33783783783783783,
1156
+ vsIterative: null,
1157
+ },
1158
+ },
1159
+ "blackbody_b": {
1160
+ id: "blackbody_b",
1161
+ precise: {
1162
+ js: "((x) => ((-0.745669 * Math.max((0.637798 - Math.atan(x)), (Math.cos(Math.log(Math.max(1e-30, x))) * 1.108946))) + 0.304632))",
1163
+ eval: ((x) => ((-0.745669 * Math.max((0.637798 - Math.atan(x)), (Math.cos(Math.log(Math.max(1e-30, x))) * 1.108946))) + 0.304632)),
1164
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.745669f * fmaxf((0.637798f - atanf(x)), (cosf(logf(fmaxf(1.0e-30f, x))) * 1.108946f))) + 0.304632f);\n}",
1165
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.745669 * torch.maximum((0.637798 - torch.atan(x)), (torch.cos(torch.log(torch.clamp(x, min=1e-30))) * 1.108946))) + 0.304632)",
1166
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AiADA2VudgNjb3MAAQNlbnYEYXRhbgABA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAwpBAT8AREWDFDyF3Oe/RN+I7lnXaOQ/IAAQAaEgAESgwuv+S0i0OaUQAhAARPJ6MCk+vvE/oqWiRCQqVDcXf9M/oAs=",
1167
+ },
1168
+ fast: {
1169
+ js: "((x) => ((0.747172 * Math.log(Math.max(1e-30, Math.min(1e4, Math.max(-1e4, (-0.479425) / ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))))))))) + -5.331985))",
1170
+ eval: ((x) => ((0.747172 * Math.log(Math.max(1e-30, Math.min(1e4, Math.max(-1e4, (-0.479425) / ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))))))))) + -5.331985)),
1171
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.747172f * logf(fmaxf(1.0e-30f, fminf(fmaxf((-0.479425f / copysignf(fmaxf(fabsf(fminf(fmaxf((-0.652482f / copysignf(fmaxf(fabsf(x), 1.0e-4f), x)), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((-0.652482f / copysignf(fmaxf(fabsf(x), 1.0e-4f), x)), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f)))) + -5.331985f);\n}",
1172
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.747172 * torch.log(torch.clamp((-0.479425 / (abs((-0.652482 / (abs(x) < 1e-4 ? 1e-4 : x))) < 1e-4 ? 1e-4 : (-0.652482 / (abs(x) < 1e-4 ? 1e-4 : x)))), min=1e-30))) + -5.331985)",
1173
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQqrAQGoAQBEyJQPQdXo5z9EkKD4Meau3r9ESFFn7iHh5L8gAJlELUMc6+I2Gj+lIACmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6VESFFn7iHh5L8gAJlELUMc6+I2Gj+lIACmo0QAAAAAAIjDwKVEAAAAAACIw0CkpqNEAAAAAACIw8ClRAAAAAAAiMNApESgwuv+S0i0OaUQAKJE3Qw34PNTFcCgCw==",
1174
+ },
1175
+ meta: {
1176
+ metric: 0.00022595735189612456,
1177
+ level: 2,
1178
+ formulaCost: 65,
1179
+ exactCost: 25,
1180
+ speedupVsExact: 0.38461538461538464,
1181
+ vsIterative: null,
1182
+ },
1183
+ },
1184
+ "bessel_j2": {
1185
+ id: "bessel_j2",
1186
+ precise: {
1187
+ js: "((x) => ((-0.355956 * Math.cos(Math.max((0.722591 * (x + 1.095797)), Math.max(1.232444, x)))) + 0.1349))",
1188
+ eval: ((x) => ((-0.355956 * Math.cos(Math.max((0.722591 * (x + 1.095797)), Math.max(1.232444, x)))) + 0.1349)),
1189
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.355956f * cosf(fmaxf((0.722591f * (x + 1.095797f)), fmaxf(1.232444f, x)))) + 0.1349f);\n}",
1190
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.355956 * torch.cos(torch.maximum((0.722591 * (x + 1.095797)), torch.maximum(1.232444, x)))) + 0.1349)",
1191
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQo9ATsARJEotKz7x9a/RDRJLCl3H+c/IABE6+Bgb2KI8T+gokQ8bCIzF7jzPyAApaUQAKJEv30dOGdEwT+gCw==",
1192
+ },
1193
+ fast: {
1194
+ js: "((x) => Math.cos(Math.max((0.794393 * (x + 0.979408)), Math.max(1.234601, x))))",
1195
+ eval: ((x) => Math.cos(Math.max((0.794393 * (x + 0.979408)), Math.max(1.234601, x)))),
1196
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return cosf(fmaxf((0.794393f * (x + 0.979408f)), fmaxf(1.234601f, x)));\n}",
1197
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.cos(torch.maximum((0.794393 * (x + 0.979408)), torch.maximum(1.234601, x)))",
1198
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQopAScARIV7Zd6qa+k/IABExRouck9X7z+gokQKvmn67MDzPyAApaUQAAs=",
1199
+ },
1200
+ meta: {
1201
+ metric: 0.00010589472510666084,
1202
+ level: 2,
1203
+ formulaCost: 26,
1204
+ exactCost: 40,
1205
+ speedupVsExact: 1.5384615384615385,
1206
+ vsIterative: null,
1207
+ },
1208
+ },
1209
+ "logit_ml": {
1210
+ id: "logit_ml",
1211
+ precise: {
1212
+ js: "((x) => ((-2.9209753441117647 * Math.sqrt(Math.abs((Math.exp(Math.max(-50, Math.min(50, Math.exp(Math.max(-50, Math.min(50, x)))))) * Math.log(Math.max(1e-30, x)))))) + 5.533519427397523))",
1213
+ eval: ((x) => ((-2.9209753441117647 * Math.sqrt(Math.abs((Math.exp(Math.max(-50, Math.min(50, Math.exp(Math.max(-50, Math.min(50, x)))))) * Math.log(Math.max(1e-30, x)))))) + 5.533519427397523)),
1214
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-2.920975f * sqrtf(fabsf((expf(fmaxf(-50.0f, fminf(50.0f, expf(fmaxf(-50.0f, fminf(50.0f, x)))))) * logf(fmaxf(1.0e-30f, x)))))) + 5.533519f);\n}",
1215
+ 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
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhUCA2VudgNleHAAAQNlbnYDbG9nAAEDAgEABwkBBXNwZWFyAAIKVwFVAEQbDztSKF4HwCAARAAAAAAAAEnApUQAAAAAAABJQKQQAEQAAAAAAABJwKVEAAAAAAAASUCkEAAgAESgwuv+S0i0OaUQAaKZn6JE4c+x6lIiFkCgCw==",
1217
+ },
1218
+ meta: {
1219
+ metric: 0.016974946048628873,
1220
+ level: 0,
1221
+ formulaCost: 65,
1222
+ exactCost: 27,
1223
+ speedupVsExact: 0.4153846153846154,
1224
+ vsIterative: null,
1225
+ },
1226
+ },
1227
+ "kelly_criterion": {
1228
+ id: "kelly_criterion",
1229
+ precise: {
1230
+ js: "((p, b) => ((1.000326 * Math.max(0.0003, (p - Math.min(1e4, Math.max(-1e4, ((1.000014 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))) + -0.000194))",
1231
+ eval: ((p, b) => ((1.000326 * Math.max(0.0003, (p - Math.min(1e4, Math.max(-1e4, ((1.000014 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))) + -0.000194)),
1232
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.000326f * fmaxf(0.0003f, (p - fminf(fmaxf(((1.000014f - p) / copysignf(fmaxf(fabsf(b), 1.0e-4f), b)), -1.0e4f), 1.0e4f)))) + -0.000194f);\n}",
1233
+ py: "import torch\n\ndef spear_fn(p, b):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.000326 * torch.maximum(0.0003, (p - ((1.000014 - p) / (abs(b) < 1e-4 ? 1e-4 : b))))) + -0.000194)",
1234
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApWAVQARHtq9dVVAfA/RGEyVTAqqTM/IABEn6wYrg4A8D8gAKEgAZlELUMc6+I2Gj+lIAGmo0QAAAAAAIjDwKVEAAAAAACIw0CkoaWiRAq8k0+PbSm/oAs=",
1235
+ },
1236
+ fast: {
1237
+ js: "((p, b) => Math.max(0.001, ((p * 1.05) - Math.min(1e4, Math.max(-1e4, ((1.018793 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b)))))))",
1238
+ eval: ((p, b) => Math.max(0.001, ((p * 1.05) - Math.min(1e4, Math.max(-1e4, ((1.018793 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))),
1239
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fmaxf(0.001f, ((p * 1.05f) - fminf(fmaxf(((1.018793f - p) / copysignf(fmaxf(fabsf(b), 1.0e-4f), b)), -1.0e4f), 1.0e4f)));\n}",
1240
+ py: "import torch\n\ndef spear_fn(p, b):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.maximum(0.001, ((p * 1.05) - ((1.018793 - p) / (abs(b) < 1e-4 ? 1e-4 : b))))",
1241
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApMAUoARPyp8dJNYlA/IABEzczMzMzM8D+iRLZMhuP5TPA/IAChIAGZRC1DHOviNho/pSABpqNEAAAAAACIw8ClRAAAAAAAiMNApKGlCw==",
1242
+ },
1243
+ meta: {
1244
+ metric: 9.839944734124527e-9,
1245
+ level: 2,
1246
+ formulaCost: 9,
1247
+ exactCost: 6,
1248
+ speedupVsExact: 0.6666666666666666,
1249
+ vsIterative: null,
1250
+ },
1251
+ },
1252
+ "rsi_momentum": {
1253
+ id: "rsi_momentum",
1254
+ precise: {
1255
+ js: "((g, l) => (100 * Math.min(1e4, Math.max(-1e4, (g) / (((g + l)) < 1e-4 && ((g + l)) > -1e-4 ? (((g + l)) >= 0 ? 1e-4 : -1e-4) : ((g + l)))))))",
1256
+ eval: ((g, l) => (100 * Math.min(1e4, Math.max(-1e4, (g) / (((g + l)) < 1e-4 && ((g + l)) > -1e-4 ? (((g + l)) >= 0 ? 1e-4 : -1e-4) : ((g + l))))))),
1257
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (100f * fminf(fmaxf((g / copysignf(fmaxf(fabsf((g + l)), 1.0e-4f), (g + l))), -1.0e4f), 1.0e4f));\n}",
1258
+ py: "import torch\n\ndef spear_fn(g, l):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (100 * (g / (abs((g + l)) < 1e-4 ? 1e-4 : (g + l))))",
1259
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAAo7ATkARAAAAAAAAFlAIAAgACABoJlELUMc6+I2Gj+lIAAgAaCmo0QAAAAAAIjDwKVEAAAAAACIw0Ckogs=",
1260
+ },
1261
+ meta: {
1262
+ metric: 1.836172557108052e-29,
1263
+ level: 2,
1264
+ formulaCost: 6,
1265
+ exactCost: 4,
1266
+ speedupVsExact: 0.6666666666666666,
1267
+ vsIterative: null,
1268
+ },
1269
+ },
1270
+ "implied_vol": {
1271
+ id: "implied_vol",
1272
+ precise: {
1273
+ js: "((k, t, s, c) => ((0.00926116583719156 * ((k * t) + ((s * 7.58799) - (k * Math.sqrt(Math.abs(c)))))) + -3.0131695155378804))",
1274
+ eval: ((k, t, s, c) => ((0.00926116583719156 * ((k * t) + ((s * 7.58799) - (k * Math.sqrt(Math.abs(c)))))) + -3.0131695155378804)),
1275
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.009261f * ((k * t) + ((s * 7.58799f) - (k * sqrtf(fabsf(c)))))) + -3.01317f);\n}",
1276
+ py: "import torch\n\ndef spear_fn(k, t, s, c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.009261 * ((k * t) + ((s * 7.58799) - (k * torch.sqrt(torch.abs(c)))))) + -3.01317)",
1277
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACjIBMABEIwgmo4T3gj8gACABoiACRAqA8QwaWh5AoiAAIAOZn6KhoKJEnFB0nvgaCMCgCw==",
1278
+ },
1279
+ meta: {
1280
+ metric: 0.9827107320402105,
1281
+ level: 0,
1282
+ formulaCost: null,
1283
+ exactCost: null,
1284
+ speedupVsExact: null,
1285
+ vsIterative: null,
1286
+ },
1287
+ },
1088
1288
  };
1089
1289
 
1090
- 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","logit_ml","bessel_j1","blackbody_r","aces_fit","logsumexp2"];
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"];
1091
1291
 
1092
1292
  module.exports = { kernels, kernelIds, default: kernels };
package/index.js CHANGED
@@ -655,43 +655,43 @@ export const kernels = {
655
655
  "idm_following": {
656
656
  id: "idm_following",
657
657
  precise: {
658
- js: "((s, v, dv) => ((0.15220827150497812 * Math.min(10.364448, (((s - v) - v) - Math.min((3.685645 * dv), (4 * v))))) + 0.07557019699678813))",
659
- eval: ((s, v, dv) => ((0.15220827150497812 * Math.min(10.364448, (((s - v) - v) - Math.min((3.685645 * dv), (4 * v))))) + 0.07557019699678813)),
660
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.152208f * fminf(10.364448f, (((s - v) - v) - fminf((3.685645f * dv), (4f * v))))) + 0.07557f);\n}",
661
- py: "import torch\n\ndef spear_fn(s, v, dv):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.152208 * torch.minimum(10.364448, (((s - v) - v) - torch.minimum((3.685645 * dv), (4 * v))))) + 0.07557)",
662
- wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKRAFCAER2tCWGj3vDP0RqL6LtmLokQCAAIAGhIAGhRM5THXIzfA1AIAKiRAAAAAAAABBAIAGipKGkokSgSqeEkVizP6AL",
658
+ js: "((v, dv, s) => ((1.817293 * Math.min(0.9724, Math.max(-5.078809, ((1 - (((v) * (v)) * ((v) * (v)) * 0.000001)) - (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))) * (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))))))) + 0.215108))",
659
+ eval: ((v, dv, s) => ((1.817293 * Math.min(0.9724, Math.max(-5.078809, ((1 - (((v) * (v)) * ((v) * (v)) * 0.000001)) - (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))) * (Math.min(1e4, Math.max(-1e4, ((2.643464 + Math.max(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766))))) / ((s) < 1e-4 && (s) > -1e-4 ? ((s) >= 0 ? 1e-4 : -1e-4) : (s))))))))) + 0.215108)),
660
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.817293f * fminf(0.9724f, fmaxf(-5.078809f, ((1f - (powf(powf(v, 2.0f), 2.0f) * 0.000001f)) - powf(fminf(fmaxf(((2.643464f + fmaxf(-0.582903f, ((v * 1.536227f) + ((v * dv) * 0.212766f)))) / copysignf(fmaxf(fabsf(s), 1.0e-4f), s)), -1.0e4f), 1.0e4f), 2.0f))))) + 0.215108f);\n}",
661
+ py: "import torch\n\ndef spear_fn(v, dv, s):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.817293 * torch.minimum(0.9724, torch.maximum(-5.078809, ((1 - (((v * v) * (v * v)) * 0.000001)) - (((2.643464 + torch.maximum(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766)))) / (abs(s) < 1e-4 ? 1e-4 : s)) * ((2.643464 + torch.maximum(-0.582903, ((v * 1.536227) + ((v * dv) * 0.212766)))) / (abs(s) < 1e-4 ? 1e-4 : s))))))) + 0.215108)",
662
+ wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAK+AEB9QEAROP+I9OhE/0/RD0s1JrmHe8/RJiFdk6zUBTARAAAAAAAAPA/IAAgAKIgACAAoqJEje21oPfGsD6ioUQMOiF00CUFQERwsDcxJKfivyAARA+3Q8NilPg/oiAAIAGiRLix2ZHqO8s/oqCloCACmUQtQxzr4jYaP6UgAqajRAAAAAAAiMPApUQAAAAAAIjDQKREDDohdNAlBUBEcLA3MSSn4r8gAEQPt0PDYpT4P6IgACABokS4sdmR6jvLP6KgpaAgAplELUMc6+I2Gj+lIAKmo0QAAAAAAIjDwKVEAAAAAACIw0CkoqGlpKJE5dGNsKiIyz+gCw==",
663
663
  },
664
664
  meta: {
665
- metric: 2.011784733861053,
666
- level: 0,
667
- formulaCost: 9,
665
+ metric: 0.004462086832640868,
666
+ level: 2,
667
+ formulaCost: 20,
668
668
  exactCost: 30,
669
- speedupVsExact: 3.3333333333333335,
669
+ speedupVsExact: 1.5,
670
670
  vsIterative: null,
671
671
  },
672
672
  },
673
673
  "gemv4": {
674
674
  id: "gemv4",
675
675
  precise: {
676
- js: "((x2, x1, x0, x3) => ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054))",
677
- eval: ((x2, x1, x0, x3) => ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054)),
678
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.625986f * (((0.77697f * (x2 - x1)) + (0.524073f * (x0 + x3))) + ((x2 - x3) + (0.819647f * x0)))) + -0.000054f);\n}",
679
- py: "import torch\n\ndef spear_fn(x2, x1, x0, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.625986 * (((0.77697 * (x2 - x1)) + (0.524073 * (x0 + x3))) + ((x2 - x3) + (0.819647 * x0)))) + -0.000054)",
680
- wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACkoBSABElx+4yhMI5D9EzSN/MPDc6D8gACABoaJEdO52vTTF4D8gAiADoKKgIAAgA6FE4nZoWIw66j8gAqKgoKJE3gAz38FPDL+gCw==",
676
+ js: "((x0, x1, x2, x3) => ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005039899341391374))",
677
+ eval: ((x0, x1, x2, x3) => ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005039899341391374)),
678
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.50938f * ((((x0 * 0.823f) - (x1 * 0.476f)) + ((x2 * 1.1f) + (x3 * -0.299373f))) + (((x0 * 0.82f) - (x1 * 0.47f)) + ((x2 * 1.093449f) + (x3 * -0.28054f))))) + 0.000005f);\n}",
679
+ py: "import torch\n\ndef spear_fn(x0, x1, x2, x3):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.50938 * ((((x0 * 0.823) - (x1 * 0.476)) + ((x2 * 1.1) + (x3 * -0.299373))) + (((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.093449) + (x3 * -0.28054))))) + 0.000005)",
680
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACn8BfQBEP5EnSddM4D8gAES8dJMYBFbqP6IgAUQQWDm0yHbeP6KhIAJEmpmZmZmZ8T+iIANEzosTX+0o07+ioKAgAEQ9CtejcD3qP6IgAUQUrkfhehTeP6KhIAJEoYDtYMR+8T+iIANE3BFOC1700b+ioKCgokQAgG/7jCPVPqAL",
681
681
  },
682
682
  fast: {
683
- js: "((x1, x2, x0) => ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432)))))",
684
- eval: ((x1, x2, x0) => ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432))))),
685
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((x1 - x2) - (2.144299f * (x0 + (x2 - 1.587432f))));\n}",
686
- py: "import torch\n\ndef spear_fn(x1, x2, x0):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((x1 - x2) - (2.144299 * (x0 + (x2 - 1.587432))))",
687
- wasmBase64: "AGFzbQEAAAABDQJgA3x8fAF8YAF8AXwDAgEABwkBBXNwZWFyAAAKIwEhACAAIAGhRJjD7juGJwFAIAIgAURh+8kYH2b5P6GgoqEL",
683
+ js: "((x0, x1, x2, x3) => ((((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029))",
684
+ eval: ((x0, x1, x2, x3) => ((((x0 * 0.82) - (x1 * 0.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029)),
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.47f)) + ((x2 * 1.1f) + (x3 * -0.299373f))) + -0.000029f);\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.47)) + ((x2 * 1.1) + (x3 * -0.299373))) + -0.000029)",
687
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACkEBPwAgAEQ9CtejcD3qP6IgAUQUrkfhehTeP6KhIAJEmpmZmZmZ8T+iIANEzosTX+0o07+ioKBEkL5J06Bo/r6gCw==",
688
688
  },
689
689
  meta: {
690
- metric: 0.000019926280807657284,
690
+ metric: 1.6074532951505583e-7,
691
691
  level: 2,
692
- formulaCost: 11,
692
+ formulaCost: 17,
693
693
  exactCost: 7,
694
- speedupVsExact: 0.6363636363636364,
694
+ speedupVsExact: 0.4117647058823529,
695
695
  vsIterative: null,
696
696
  },
697
697
  },
@@ -959,54 +959,50 @@ export const kernels = {
959
959
  "bessel_j0": {
960
960
  id: "bessel_j0",
961
961
  precise: {
962
- js: "((x) => ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * Math.exp(Math.max(-50, Math.min(50, x))))) * (x * Math.exp(Math.max(-50, Math.min(50, Math.sin(x))))))) + 0.843755))",
963
- eval: ((x) => ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * Math.exp(Math.max(-50, Math.min(50, x))))) * (x * Math.exp(Math.max(-50, Math.min(50, Math.sin(x))))))) + 0.843755)),
964
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.007656f * (((6.416449f * x) - ((x - 4.271024f) * expf(fmaxf(-50.0f, fminf(50.0f, x))))) * (x * expf(fmaxf(-50.0f, fminf(50.0f, sinf(x))))))) + 0.843755f);\n}",
965
- py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.007656 * (((6.416449 * x) - ((x - 4.271024) * torch.exp(torch.clamp(x, -50.0, 50.0)))) * (x * torch.exp(torch.clamp(torch.sin(x), -50.0, 50.0))))) + 0.843755)",
966
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhUCA2VudgNleHAAAQNlbnYDc2luAAEDAgEABwkBBXNwZWFyAAIKaAFmAESEDOTZ5Vt/v0TAzk2bcaoZQCAAoiAARHO5wVCHFRFAoSAARAAAAAAAAEnApUQAAAAAAABJQKQQAKKhIAAgABABRAAAAAAAAEnApUQAAAAAAABJQKQQAKKiokRyxFp8CgDrP6AL",
962
+ js: "((x) => ((-0.6162005993906633 * Math.min(1e4, Math.max(-1e4, (((3.154708 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.050039, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))) + 1.48653822658716))",
963
+ eval: ((x) => ((-0.6162005993906633 * Math.min(1e4, Math.max(-1e4, (((3.154708 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.050039, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))) + 1.48653822658716)),
964
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.616201f * fminf(fmaxf((((3.154708f + fminf(3.154708f, x)) + (fminf(3.396868f, x) * fminf(2.050039f, x))) / copysignf(fmaxf(fabsf(fmaxf(4.359564f, x)), 1.0e-4f), fmaxf(4.359564f, x))), -1.0e4f), 1.0e4f)) + 1.486538f);\n}",
965
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.616201 * (((3.154708 + torch.minimum(3.154708, x)) + (torch.minimum(3.396868, x) * torch.minimum(2.050039, x))) / (abs(torch.maximum(4.359564, x)) < 1e-4 ? 1e-4 : torch.maximum(4.359564, x)))) + 1.486538)",
966
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACoEBAX8ARGcSxVHqt+O/RMFvQ4zXPAlARMFvQ4zXPAlAIACkoESloUYhySwLQCAApEREMuTYemYAQCAApKKgRJlGk4sxcBFAIAClmUQtQxzr4jYaP6VEmUaTizFwEUAgAKWmo0QAAAAAAIjDwKVEAAAAAACIw0CkokSMIbdO3Mj3P6AL",
967
967
  },
968
- meta: {
969
- metric: 0.01597597548203077,
970
- level: 0,
971
- formulaCost: 68,
972
- exactCost: 40,
973
- speedupVsExact: 0.5882352941176471,
974
- vsIterative: null,
975
- },
976
- },
977
- "logit_ml": {
978
- id: "logit_ml",
979
- precise: {
980
- 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))",
981
- 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)),
982
- 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}",
983
- 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)",
984
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQpkAWIARHgPwGlSAwFAIAAgAKIgAJmfRKDC6/5LSLQ5pRAAoCAAIAAgAKKiIAAgACAAoqKiIAAgACAAoqIgACAAIACioqIgACAAIACioiAAIAAgAKKioqKioKJEjcpXgLy6zD+gCw==",
968
+ fast: {
969
+ js: "((x) => Math.min(1e4, Math.max(-1e4, (((2.899151 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.061274, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x))))))",
970
+ eval: ((x) => Math.min(1e4, Math.max(-1e4, (((2.899151 + Math.min(3.154708, x)) + (Math.min(3.396868, x) * Math.min(2.061274, x)))) / ((Math.max(4.359564, x)) < 1e-4 && (Math.max(4.359564, x)) > -1e-4 ? ((Math.max(4.359564, x)) >= 0 ? 1e-4 : -1e-4) : (Math.max(4.359564, x)))))),
971
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf((((2.899151f + fminf(3.154708f, x)) + (fminf(3.396868f, x) * fminf(2.061274f, x))) / copysignf(fmaxf(fabsf(fmaxf(4.359564f, x)), 1.0e-4f), fmaxf(4.359564f, x))), -1.0e4f), 1.0e4f);\n}",
972
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (((2.899151 + torch.minimum(3.154708, x)) + (torch.minimum(3.396868, x) * torch.minimum(2.061274, x))) / (abs(torch.maximum(4.359564, x)) < 1e-4 ? 1e-4 : torch.maximum(4.359564, x)))",
973
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACm0BawBEWFNZFHYxB0BEwW9DjNc8CUAgAKSgRKWhRiHJLAtAIACkRMbCEDl9fQBAIACkoqBEmUaTizFwEUAgAKWZRC1DHOviNho/pUSZRpOLMXARQCAApaajRAAAAAAAiMPApUQAAAAAAIjDQKQL",
985
974
  },
986
975
  meta: {
987
- metric: 0.0008206231598785846,
976
+ metric: 0.00026389864276618125,
988
977
  level: 2,
989
- formulaCost: 32,
990
- exactCost: 27,
991
- speedupVsExact: 0.84375,
978
+ formulaCost: 13,
979
+ exactCost: 40,
980
+ speedupVsExact: 3.076923076923077,
992
981
  vsIterative: null,
993
982
  },
994
983
  },
995
984
  "bessel_j1": {
996
985
  id: "bessel_j1",
997
986
  precise: {
998
- js: "((x) => ((0.000042 * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482)))) + -11.325875))",
999
- eval: ((x) => ((0.000042 * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482))) * ((((x * -0.304133) * (x) * (x)) + (Math.exp(Math.max(-50, Math.min(50, x))) + 62.51482)))) + -11.325875)),
1000
- c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.000042f * powf((((x * -0.304133f) * powf(x, 2.0f)) + (expf(fmaxf(-50.0f, fminf(50.0f, x))) + 62.51482f)), 3.0f)) + -11.325875f);\n}",
1001
- py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.000042 * ((((x * -0.304133) * (x * x)) + (torch.exp(torch.clamp(x, -50.0, 50.0)) + 62.51482)) ** 3)) + -11.325875)",
1002
- wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNleHAAAQMCAQAHCQEFc3BlYXIAAQq6AQG3AQBEycfuAiUFBj8gAER8mShC6nbTv6IgACAAoqIgAEQAAAAAAABJwKVEAAAAAAAASUCkEABE0qkrn+VBT0CgoCAARHyZKELqdtO/oiAAIACioiAARAAAAAAAAEnApUQAAAAAAABJQKQQAETSqSuf5UFPQKCgIABEfJkoQup207+iIAAgAKKiIABEAAAAAAAAScClRAAAAAAAAElApBAARNKpK5/lQU9AoKCioqJEAiuHFtmmJsCgCw==",
987
+ js: "((x) => ((0.467801 * Math.min(Math.min((x + -0.251268), Math.sin((x * 0.889558))), Math.sin(((x * 0.90724) + -0.170621)))) + 0.123708))",
988
+ eval: ((x) => ((0.467801 * Math.min(Math.min((x + -0.251268), Math.sin((x * 0.889558))), Math.sin(((x * 0.90724) + -0.170621)))) + 0.123708)),
989
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.467801f * fminf(fminf((x + -0.251268f), sinf((x * 0.889558f))), sinf(((x * 0.90724f) + -0.170621f)))) + 0.123708f);\n}",
990
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.467801 * torch.minimum(torch.minimum((x + -0.251268), torch.sin((x * 0.889558))), torch.sin(((x * 0.90724) + -0.170621)))) + 0.123708)",
991
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNzaW4AAQMCAQAHCQEFc3BlYXIAAQpMAUoARGZPAptz8N0/IABERwGiYMYU0L+gIABEN6W8VkJ37D+iEACkIABE8u8zLhwI7T+iRGtiga/o1sW/oBAApKJE1elA1lOrvz+gCw==",
992
+ },
993
+ fast: {
994
+ js: "((x) => Math.min(Math.min(2.051452, (x + -0.339138)), Math.min(0.889558, Math.sin((x * 0.889558)))))",
995
+ eval: ((x) => Math.min(Math.min(2.051452, (x + -0.339138)), Math.min(0.889558, Math.sin((x * 0.889558))))),
996
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fminf(2.051452f, (x + -0.339138f)), fminf(0.889558f, sinf((x * 0.889558f))));\n}",
997
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.minimum(torch.minimum(2.051452, (x + -0.339138)), torch.minimum(0.889558, torch.sin((x * 0.889558))))",
998
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNzaW4AAQMCAQAHCQEFc3BlYXIAAQozATEARKWCiqpfaQBAIABEnSy13m+01b+gpEQ3pbxWQnfsPyAARDelvFZCd+w/ohAApKQL",
1003
999
  },
1004
1000
  meta: {
1005
- metric: 0.5607140575550605,
1006
- level: 0,
1007
- formulaCost: 29,
1001
+ metric: 0.000005197986685271395,
1002
+ level: 4,
1003
+ formulaCost: 48,
1008
1004
  exactCost: 40,
1009
- speedupVsExact: 1.3793103448275863,
1005
+ speedupVsExact: 0.8333333333333334,
1010
1006
  vsIterative: null,
1011
1007
  },
1012
1008
  },
@@ -1085,8 +1081,212 @@ export const kernels = {
1085
1081
  vsIterative: null,
1086
1082
  },
1087
1083
  },
1084
+ "probit_quantile": {
1085
+ id: "probit_quantile",
1086
+ precise: {
1087
+ js: "((x) => ((-4.274877162925097 * (Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))) + (0.076417 * (x) * (x)))) + 3.9839485700095683))",
1088
+ eval: ((x) => ((-4.274877162925097 * (Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))) + (0.076417 * (x) * (x)))) + 3.9839485700095683)),
1089
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-4.274877f * (sqrtf(fabsf(sqrtf(fabsf(logf(fmaxf(1.0e-30f, x)))))) + (0.076417f * powf(x, 2.0f)))) + 3.983949f);\n}",
1090
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-4.274877 * (torch.sqrt(torch.abs(torch.sqrt(torch.abs(torch.log(torch.clamp(x, min=1e-30)))))) + (0.076417 * (x * x)))) + 3.983949)",
1091
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQo6ATgAROO4JGZ5GRHAIABEoMLr/ktItDmlEACZn5mfRDPC24MQkLM/IAAgAKKioKJEtBiJbSDfD0CgCw==",
1092
+ },
1093
+ fast: {
1094
+ js: "((x) => Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x)))))))",
1095
+ eval: ((x) => Math.sqrt(Math.abs(Math.sqrt(Math.abs(Math.log(Math.max(1e-30, x))))))),
1096
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return sqrtf(fabsf(sqrtf(fabsf(logf(fmaxf(1.0e-30f, x))))));\n}",
1097
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.sqrt(torch.abs(torch.sqrt(torch.abs(torch.log(torch.clamp(x, min=1e-30))))))",
1098
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQoWARQAIABEoMLr/ktItDmlEACZn5mfCw==",
1099
+ },
1100
+ meta: {
1101
+ metric: 0.00001901761235141796,
1102
+ level: 3,
1103
+ formulaCost: 29,
1104
+ exactCost: 28,
1105
+ speedupVsExact: 0.9655172413793104,
1106
+ vsIterative: null,
1107
+ },
1108
+ },
1109
+ "pmt_finance": {
1110
+ id: "pmt_finance",
1111
+ precise: {
1112
+ js: "((n, r) => ((-0.6469010959077766 * Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (n) / (((r + (n * 0.269972))) < 1e-4 && ((r + (n * 0.269972))) > -1e-4 ? (((r + (n * 0.269972))) >= 0 ? 1e-4 : -1e-4) : ((r + (n * 0.269972))))))) / ((((r * 0.810197) - Math.atan(n))) < 1e-4 && (((r * 0.810197) - Math.atan(n))) > -1e-4 ? ((((r * 0.810197) - Math.atan(n))) >= 0 ? 1e-4 : -1e-4) : (((r * 0.810197) - Math.atan(n))))))) + -1.5260749723747622))",
1113
+ eval: ((n, r) => ((-0.6469010959077766 * Math.min(1e4, Math.max(-1e4, (Math.min(1e4, Math.max(-1e4, (n) / (((r + (n * 0.269972))) < 1e-4 && ((r + (n * 0.269972))) > -1e-4 ? (((r + (n * 0.269972))) >= 0 ? 1e-4 : -1e-4) : ((r + (n * 0.269972))))))) / ((((r * 0.810197) - Math.atan(n))) < 1e-4 && (((r * 0.810197) - Math.atan(n))) > -1e-4 ? ((((r * 0.810197) - Math.atan(n))) >= 0 ? 1e-4 : -1e-4) : (((r * 0.810197) - Math.atan(n))))))) + -1.5260749723747622)),
1114
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.646901f * fminf(fmaxf((fminf(fmaxf((n / copysignf(fmaxf(fabsf((r + (n * 0.269972f))), 1.0e-4f), (r + (n * 0.269972f)))), -1.0e4f), 1.0e4f) / copysignf(fmaxf(fabsf(((r * 0.810197f) - atanf(n))), 1.0e-4f), ((r * 0.810197f) - atanf(n)))), -1.0e4f), 1.0e4f)) + -1.526075f);\n}",
1115
+ py: "import torch\n\ndef spear_fn(n, r):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.646901 * ((n / (abs((r + (n * 0.269972))) < 1e-4 ? 1e-4 : (r + (n * 0.269972)))) / (abs(((r * 0.810197) - torch.atan(n))) < 1e-4 ? 1e-4 : ((r * 0.810197) - torch.atan(n))))) + -1.526075)",
1116
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAIMAQNlbnYEYXRhbgABAwIBAAcJAQVzcGVhcgABCp0BAZoBAERodFXtabPkvyAAIAEgAEROfLWjOEfRP6KgmUQtQxzr4jYaP6UgASAARE58taM4R9E/oqCmo0QAAAAAAIjDwKVEAAAAAACIw0CkIAFEaydKQiLt6T+iIAAQAKGZRC1DHOviNho/pSABRGsnSkIi7ek/oiAAEAChpqNEAAAAAACIw8ClRAAAAAAAiMNApKJE038Zl81q+L+gCw==",
1117
+ },
1118
+ fast: {
1119
+ js: "((r, n) => ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))))",
1120
+ eval: ((r, n) => ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402)))) * ((r - Math.atan((n - 2.963402))))),
1121
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return powf((r - atanf((n - 2.963402f))), 3.0f);\n}",
1122
+ py: "import torch\n\ndef spear_fn(r, n):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((r - torch.atan((n - 2.963402))) ** 3)",
1123
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAIMAQNlbnYEYXRhbgABAwIBAAcJAQVzcGVhcgABCjkBNwAgACABRDs1lxsMtQdAoRAAoSAAIAFEOzWXGwy1B0ChEAChIAAgAUQ7NZcbDLUHQKEQAKGiogs=",
1124
+ },
1125
+ meta: {
1126
+ metric: 4.3680216924352057e-7,
1127
+ level: 2,
1128
+ formulaCost: 34,
1129
+ exactCost: 47,
1130
+ speedupVsExact: 1.3823529411764706,
1131
+ vsIterative: null,
1132
+ },
1133
+ },
1134
+ "blackbody_g": {
1135
+ id: "blackbody_g",
1136
+ precise: {
1137
+ js: "((x) => ((3896.479658 * Math.min(1e4, Math.max(-1e4, ((Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x)))) - 2.971801)) / ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))))))) + 1.501624))",
1138
+ eval: ((x) => ((3896.479658 * Math.min(1e4, Math.max(-1e4, ((Math.log(Math.max(1e-30, Math.sqrt(Math.abs(x)))) - 2.971801)) / ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, ((-1.66618 * x)) / ((Math.atan(Math.atan(x))) < 1e-4 && (Math.atan(Math.atan(x))) > -1e-4 ? ((Math.atan(Math.atan(x))) >= 0 ? 1e-4 : -1e-4) : (Math.atan(Math.atan(x))))))))))) + 1.501624)),
1139
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((3896.479658f * fminf(fmaxf(((logf(fmaxf(1.0e-30f, sqrtf(fabsf(x)))) - 2.971801f) / copysignf(fmaxf(fabsf(fminf(fmaxf(((-1.66618f * x) / copysignf(fmaxf(fabsf(atanf(atanf(x))), 1.0e-4f), atanf(atanf(x)))), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf(((-1.66618f * x) / copysignf(fmaxf(fabsf(atanf(atanf(x))), 1.0e-4f), atanf(atanf(x)))), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f)) + 1.501624f);\n}",
1140
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((3896.479658 * ((torch.log(torch.clamp(torch.sqrt(torch.abs(x)), min=1e-30)) - 2.971801) / (abs(((-1.66618 * x) / (abs(torch.atan(torch.atan(x))) < 1e-4 ? 1e-4 : torch.atan(torch.atan(x))))) < 1e-4 ? 1e-4 : ((-1.66618 * x) / (abs(torch.atan(torch.atan(x))) < 1e-4 ? 1e-4 : torch.atan(torch.atan(x))))))) + 1.501624)",
1141
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhYCA2VudgRhdGFuAAEDZW52A2xvZwABAwIBAAcJAQVzcGVhcgACCsYBAcMBAESIvruV9XCuQCAAmZ9EoMLr/ktItDmlEAFEwsJJmj/GB0ChRA39E1ysqPq/IACiIAAQABAAmUQtQxzr4jYaP6UgABAAEACmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6VEDf0TXKyo+r8gAKIgABAAEACZRC1DHOviNho/pSAAEAAQAKajRAAAAAAAiMPApUQAAAAAAIjDQKSmo0QAAAAAAIjDwKVEAAAAAACIw0CkokQiOC7jpgb4P6AL",
1142
+ },
1143
+ fast: {
1144
+ js: "((x) => Math.min(1e4, Math.max(-1e4, ((-1.637862 + (-0.43866 * Math.sqrt(Math.abs(x))))) / ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x))))))))))",
1145
+ eval: ((x) => Math.min(1e4, Math.max(-1e4, ((-1.637862 + (-0.43866 * Math.sqrt(Math.abs(x))))) / ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (x) / ((Math.min(-0.661473, x)) < 1e-4 && (Math.min(-0.661473, x)) > -1e-4 ? ((Math.min(-0.661473, x)) >= 0 ? 1e-4 : -1e-4) : (Math.min(-0.661473, x)))))))))),
1146
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fminf(fmaxf(((-1.637862f + (-0.43866f * sqrtf(fabsf(x)))) / copysignf(fmaxf(fabsf(fminf(fmaxf((x / copysignf(fmaxf(fabsf(fminf(-0.661473f, x)), 1.0e-4f), fminf(-0.661473f, x))), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((x / copysignf(fmaxf(fabsf(fminf(-0.661473f, x)), 1.0e-4f), fminf(-0.661473f, x))), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f);\n}",
1147
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-1.637862 + (-0.43866 * torch.sqrt(torch.abs(x)))) / (abs((x / (abs(torch.minimum(-0.661473, x)) < 1e-4 ? 1e-4 : torch.minimum(-0.661473, x)))) < 1e-4 ? 1e-4 : (x / (abs(torch.minimum(-0.661473, x)) < 1e-4 ? 1e-4 : torch.minimum(-0.661473, x)))))",
1148
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AwIBAAcJAQVzcGVhcgAACrQBAbEBAERHx9XIrjT6v0QXDoRkARPcvyAAmZ+ioCAARPj7xWzJKuW/IACkmUQtQxzr4jYaP6VE+PvFbMkq5b8gAKSmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6UgAET4+8VsySrlvyAApJlELUMc6+I2Gj+lRPj7xWzJKuW/IACkpqNEAAAAAACIw8ClRAAAAAAAiMNApKajRAAAAAAAiMPApUQAAAAAAIjDQKQL",
1149
+ },
1150
+ meta: {
1151
+ metric: 0.00012987872179127979,
1152
+ level: 2,
1153
+ formulaCost: 74,
1154
+ exactCost: 25,
1155
+ speedupVsExact: 0.33783783783783783,
1156
+ vsIterative: null,
1157
+ },
1158
+ },
1159
+ "blackbody_b": {
1160
+ id: "blackbody_b",
1161
+ precise: {
1162
+ js: "((x) => ((-0.745669 * Math.max((0.637798 - Math.atan(x)), (Math.cos(Math.log(Math.max(1e-30, x))) * 1.108946))) + 0.304632))",
1163
+ eval: ((x) => ((-0.745669 * Math.max((0.637798 - Math.atan(x)), (Math.cos(Math.log(Math.max(1e-30, x))) * 1.108946))) + 0.304632)),
1164
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.745669f * fmaxf((0.637798f - atanf(x)), (cosf(logf(fmaxf(1.0e-30f, x))) * 1.108946f))) + 0.304632f);\n}",
1165
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.745669 * torch.maximum((0.637798 - torch.atan(x)), (torch.cos(torch.log(torch.clamp(x, min=1e-30))) * 1.108946))) + 0.304632)",
1166
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AiADA2VudgNjb3MAAQNlbnYEYXRhbgABA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAwpBAT8AREWDFDyF3Oe/RN+I7lnXaOQ/IAAQAaEgAESgwuv+S0i0OaUQAhAARPJ6MCk+vvE/oqWiRCQqVDcXf9M/oAs=",
1167
+ },
1168
+ fast: {
1169
+ js: "((x) => ((0.747172 * Math.log(Math.max(1e-30, Math.min(1e4, Math.max(-1e4, (-0.479425) / ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))))))))) + -5.331985))",
1170
+ eval: ((x) => ((0.747172 * Math.log(Math.max(1e-30, Math.min(1e4, Math.max(-1e4, (-0.479425) / ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) < 1e-4 && (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) > -1e-4 ? ((Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))) >= 0 ? 1e-4 : -1e-4) : (Math.min(1e4, Math.max(-1e4, (-0.652482) / ((x) < 1e-4 && (x) > -1e-4 ? ((x) >= 0 ? 1e-4 : -1e-4) : (x))))))))))) + -5.331985)),
1171
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.747172f * logf(fmaxf(1.0e-30f, fminf(fmaxf((-0.479425f / copysignf(fmaxf(fabsf(fminf(fmaxf((-0.652482f / copysignf(fmaxf(fabsf(x), 1.0e-4f), x)), -1.0e4f), 1.0e4f)), 1.0e-4f), fminf(fmaxf((-0.652482f / copysignf(fmaxf(fabsf(x), 1.0e-4f), x)), -1.0e4f), 1.0e4f))), -1.0e4f), 1.0e4f)))) + -5.331985f);\n}",
1172
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.747172 * torch.log(torch.clamp((-0.479425 / (abs((-0.652482 / (abs(x) < 1e-4 ? 1e-4 : x))) < 1e-4 ? 1e-4 : (-0.652482 / (abs(x) < 1e-4 ? 1e-4 : x)))), min=1e-30))) + -5.331985)",
1173
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNsb2cAAQMCAQAHCQEFc3BlYXIAAQqrAQGoAQBEyJQPQdXo5z9EkKD4Meau3r9ESFFn7iHh5L8gAJlELUMc6+I2Gj+lIACmo0QAAAAAAIjDwKVEAAAAAACIw0CkmUQtQxzr4jYaP6VESFFn7iHh5L8gAJlELUMc6+I2Gj+lIACmo0QAAAAAAIjDwKVEAAAAAACIw0CkpqNEAAAAAACIw8ClRAAAAAAAiMNApESgwuv+S0i0OaUQAKJE3Qw34PNTFcCgCw==",
1174
+ },
1175
+ meta: {
1176
+ metric: 0.00022595735189612456,
1177
+ level: 2,
1178
+ formulaCost: 65,
1179
+ exactCost: 25,
1180
+ speedupVsExact: 0.38461538461538464,
1181
+ vsIterative: null,
1182
+ },
1183
+ },
1184
+ "bessel_j2": {
1185
+ id: "bessel_j2",
1186
+ precise: {
1187
+ js: "((x) => ((-0.355956 * Math.cos(Math.max((0.722591 * (x + 1.095797)), Math.max(1.232444, x)))) + 0.1349))",
1188
+ eval: ((x) => ((-0.355956 * Math.cos(Math.max((0.722591 * (x + 1.095797)), Math.max(1.232444, x)))) + 0.1349)),
1189
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-0.355956f * cosf(fmaxf((0.722591f * (x + 1.095797f)), fmaxf(1.232444f, x)))) + 0.1349f);\n}",
1190
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((-0.355956 * torch.cos(torch.maximum((0.722591 * (x + 1.095797)), torch.maximum(1.232444, x)))) + 0.1349)",
1191
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQo9ATsARJEotKz7x9a/RDRJLCl3H+c/IABE6+Bgb2KI8T+gokQ8bCIzF7jzPyAApaUQAKJEv30dOGdEwT+gCw==",
1192
+ },
1193
+ fast: {
1194
+ js: "((x) => Math.cos(Math.max((0.794393 * (x + 0.979408)), Math.max(1.234601, x))))",
1195
+ eval: ((x) => Math.cos(Math.max((0.794393 * (x + 0.979408)), Math.max(1.234601, x)))),
1196
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return cosf(fmaxf((0.794393f * (x + 0.979408f)), fmaxf(1.234601f, x)));\n}",
1197
+ py: "import torch\n\ndef spear_fn(x):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.cos(torch.maximum((0.794393 * (x + 0.979408)), torch.maximum(1.234601, x)))",
1198
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AgsBA2VudgNjb3MAAQMCAQAHCQEFc3BlYXIAAQopAScARIV7Zd6qa+k/IABExRouck9X7z+gokQKvmn67MDzPyAApaUQAAs=",
1199
+ },
1200
+ meta: {
1201
+ metric: 0.00010589472510666084,
1202
+ level: 2,
1203
+ formulaCost: 26,
1204
+ exactCost: 40,
1205
+ speedupVsExact: 1.5384615384615385,
1206
+ vsIterative: null,
1207
+ },
1208
+ },
1209
+ "logit_ml": {
1210
+ id: "logit_ml",
1211
+ precise: {
1212
+ js: "((x) => ((-2.9209753441117647 * Math.sqrt(Math.abs((Math.exp(Math.max(-50, Math.min(50, Math.exp(Math.max(-50, Math.min(50, x)))))) * Math.log(Math.max(1e-30, x)))))) + 5.533519427397523))",
1213
+ eval: ((x) => ((-2.9209753441117647 * Math.sqrt(Math.abs((Math.exp(Math.max(-50, Math.min(50, Math.exp(Math.max(-50, Math.min(50, x)))))) * Math.log(Math.max(1e-30, x)))))) + 5.533519427397523)),
1214
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((-2.920975f * sqrtf(fabsf((expf(fmaxf(-50.0f, fminf(50.0f, expf(fmaxf(-50.0f, fminf(50.0f, x)))))) * logf(fmaxf(1.0e-30f, x)))))) + 5.533519f);\n}",
1215
+ 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
+ wasmBase64: "AGFzbQEAAAABCwJgAXwBfGABfAF8AhUCA2VudgNleHAAAQNlbnYDbG9nAAEDAgEABwkBBXNwZWFyAAIKVwFVAEQbDztSKF4HwCAARAAAAAAAAEnApUQAAAAAAABJQKQQAEQAAAAAAABJwKVEAAAAAAAASUCkEAAgAESgwuv+S0i0OaUQAaKZn6JE4c+x6lIiFkCgCw==",
1217
+ },
1218
+ meta: {
1219
+ metric: 0.016974946048628873,
1220
+ level: 0,
1221
+ formulaCost: 65,
1222
+ exactCost: 27,
1223
+ speedupVsExact: 0.4153846153846154,
1224
+ vsIterative: null,
1225
+ },
1226
+ },
1227
+ "kelly_criterion": {
1228
+ id: "kelly_criterion",
1229
+ precise: {
1230
+ js: "((p, b) => ((1.000326 * Math.max(0.0003, (p - Math.min(1e4, Math.max(-1e4, ((1.000014 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))) + -0.000194))",
1231
+ eval: ((p, b) => ((1.000326 * Math.max(0.0003, (p - Math.min(1e4, Math.max(-1e4, ((1.000014 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))) + -0.000194)),
1232
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((1.000326f * fmaxf(0.0003f, (p - fminf(fmaxf(((1.000014f - p) / copysignf(fmaxf(fabsf(b), 1.0e-4f), b)), -1.0e4f), 1.0e4f)))) + -0.000194f);\n}",
1233
+ py: "import torch\n\ndef spear_fn(p, b):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((1.000326 * torch.maximum(0.0003, (p - ((1.000014 - p) / (abs(b) < 1e-4 ? 1e-4 : b))))) + -0.000194)",
1234
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApWAVQARHtq9dVVAfA/RGEyVTAqqTM/IABEn6wYrg4A8D8gAKEgAZlELUMc6+I2Gj+lIAGmo0QAAAAAAIjDwKVEAAAAAACIw0CkoaWiRAq8k0+PbSm/oAs=",
1235
+ },
1236
+ fast: {
1237
+ js: "((p, b) => Math.max(0.001, ((p * 1.05) - Math.min(1e4, Math.max(-1e4, ((1.018793 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b)))))))",
1238
+ eval: ((p, b) => Math.max(0.001, ((p * 1.05) - Math.min(1e4, Math.max(-1e4, ((1.018793 - p)) / ((b) < 1e-4 && (b) > -1e-4 ? ((b) >= 0 ? 1e-4 : -1e-4) : (b))))))),
1239
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return fmaxf(0.001f, ((p * 1.05f) - fminf(fmaxf(((1.018793f - p) / copysignf(fmaxf(fabsf(b), 1.0e-4f), b)), -1.0e4f), 1.0e4f)));\n}",
1240
+ py: "import torch\n\ndef spear_fn(p, b):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return torch.maximum(0.001, ((p * 1.05) - ((1.018793 - p) / (abs(b) < 1e-4 ? 1e-4 : b))))",
1241
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAApMAUoARPyp8dJNYlA/IABEzczMzMzM8D+iRLZMhuP5TPA/IAChIAGZRC1DHOviNho/pSABpqNEAAAAAACIw8ClRAAAAAAAiMNApKGlCw==",
1242
+ },
1243
+ meta: {
1244
+ metric: 9.839944734124527e-9,
1245
+ level: 2,
1246
+ formulaCost: 9,
1247
+ exactCost: 6,
1248
+ speedupVsExact: 0.6666666666666666,
1249
+ vsIterative: null,
1250
+ },
1251
+ },
1252
+ "rsi_momentum": {
1253
+ id: "rsi_momentum",
1254
+ precise: {
1255
+ js: "((g, l) => (100 * Math.min(1e4, Math.max(-1e4, (g) / (((g + l)) < 1e-4 && ((g + l)) > -1e-4 ? (((g + l)) >= 0 ? 1e-4 : -1e-4) : ((g + l)))))))",
1256
+ eval: ((g, l) => (100 * Math.min(1e4, Math.max(-1e4, (g) / (((g + l)) < 1e-4 && ((g + l)) > -1e-4 ? (((g + l)) >= 0 ? 1e-4 : -1e-4) : ((g + l))))))),
1257
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return (100f * fminf(fmaxf((g / copysignf(fmaxf(fabsf((g + l)), 1.0e-4f), (g + l))), -1.0e4f), 1.0e4f));\n}",
1258
+ py: "import torch\n\ndef spear_fn(g, l):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return (100 * (g / (abs((g + l)) < 1e-4 ? 1e-4 : (g + l))))",
1259
+ wasmBase64: "AGFzbQEAAAABDAJgAnx8AXxgAXwBfAMCAQAHCQEFc3BlYXIAAAo7ATkARAAAAAAAAFlAIAAgACABoJlELUMc6+I2Gj+lIAAgAaCmo0QAAAAAAIjDwKVEAAAAAACIw0Ckogs=",
1260
+ },
1261
+ meta: {
1262
+ metric: 1.836172557108052e-29,
1263
+ level: 2,
1264
+ formulaCost: 6,
1265
+ exactCost: 4,
1266
+ speedupVsExact: 0.6666666666666666,
1267
+ vsIterative: null,
1268
+ },
1269
+ },
1270
+ "implied_vol": {
1271
+ id: "implied_vol",
1272
+ precise: {
1273
+ js: "((k, t, s, c) => ((0.00926116583719156 * ((k * t) + ((s * 7.58799) - (k * Math.sqrt(Math.abs(c)))))) + -3.0131695155378804))",
1274
+ eval: ((k, t, s, c) => ((0.00926116583719156 * ((k * t) + ((s * 7.58799) - (k * Math.sqrt(Math.abs(c)))))) + -3.0131695155378804)),
1275
+ c: "// Evolved by SPEAR — algebraic only, FP16 safe\n__device__ inline float spear_fn(const float x) {\n return ((0.009261f * ((k * t) + ((s * 7.58799f) - (k * sqrtf(fabsf(c)))))) + -3.01317f);\n}",
1276
+ py: "import torch\n\ndef spear_fn(k, t, s, c):\n # Evolved by SPEAR — zero transcendental ops (exp/erf/tanh free)\n return ((0.009261 * ((k * t) + ((s * 7.58799) - (k * torch.sqrt(torch.abs(c)))))) + -3.01317)",
1277
+ wasmBase64: "AGFzbQEAAAABDgJgBHx8fHwBfGABfAF8AwIBAAcJAQVzcGVhcgAACjIBMABEIwgmo4T3gj8gACABoiACRAqA8QwaWh5AoiAAIAOZn6KhoKJEnFB0nvgaCMCgCw==",
1278
+ },
1279
+ meta: {
1280
+ metric: 0.9827107320402105,
1281
+ level: 0,
1282
+ formulaCost: null,
1283
+ exactCost: null,
1284
+ speedupVsExact: null,
1285
+ vsIterative: null,
1286
+ },
1287
+ },
1088
1288
  };
1089
1289
 
1090
- export 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","logit_ml","bessel_j1","blackbody_r","aces_fit","logsumexp2"];
1290
+ export 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"];
1091
1291
 
1092
1292
  export default kernels;
package/package.json CHANGED
@@ -1,11 +1,8 @@
1
1
  {
2
2
  "name": "spear-kernels",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Closed-form kernels discovered by the SPEAR symbolic regression engine, shipped as JS, CUDA C, PyTorch and WebAssembly.",
5
5
  "license": "MIT",
6
- "author": { "name": "Romain Abdel-Aal", "email": "romainabdelaal@gmail.com" },
7
- "repository": { "type": "git", "url": "git+https://github.com/bahira/superspear.git" },
8
- "keywords": ["symbolic-regression", "kernels", "wasm", "math", "llm-inference"],
9
6
  "type": "module",
10
7
  "main": "./index.cjs",
11
8
  "module": "./index.js",