@cortex-js/compute-engine 0.55.3 → 0.55.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile.esm.js +525 -31
- package/dist/compile.min.esm.js +440 -70
- package/dist/compile.min.umd.cjs +439 -69
- package/dist/compile.umd.cjs +525 -31
- package/dist/compute-engine.esm.js +567 -43
- package/dist/compute-engine.min.esm.js +433 -63
- package/dist/compute-engine.min.umd.cjs +433 -63
- package/dist/compute-engine.umd.cjs +567 -43
- package/dist/core.esm.js +566 -42
- package/dist/core.min.esm.js +432 -62
- package/dist/core.min.umd.cjs +432 -62
- package/dist/core.umd.cjs +566 -42
- package/dist/interval.esm.js +2 -2
- package/dist/interval.min.esm.js +2 -2
- package/dist/interval.min.umd.cjs +2 -2
- package/dist/interval.umd.cjs +2 -2
- package/dist/latex-syntax.esm.js +43 -13
- package/dist/latex-syntax.min.esm.js +5 -5
- package/dist/latex-syntax.min.umd.cjs +5 -5
- package/dist/latex-syntax.umd.cjs +43 -13
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +2 -2
- package/dist/numerics.esm.js +2 -2
- package/dist/numerics.min.esm.js +2 -2
- package/dist/numerics.min.umd.cjs +2 -2
- package/dist/numerics.umd.cjs +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +1 -1
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/fractal-orbit.d.ts +13 -0
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +47 -1
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +48 -1
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
- package/dist/types/compute-engine/engine-cache.d.ts +1 -1
- package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
- package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +1 -1
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* GPU shader operators shared by GLSL and WGSL.
|
|
@@ -108,6 +108,38 @@ export declare const GPU_BESSELJ_PREAMBLE_GLSL = "\nfloat _gpu_factorial(int n)
|
|
|
108
108
|
* GPU Bessel J function preamble (WGSL syntax).
|
|
109
109
|
*/
|
|
110
110
|
export declare const GPU_BESSELJ_PREAMBLE_WGSL = "\nfn _gpu_factorial(n: i32) -> f32 {\n var f: f32 = 1.0;\n for (var i: i32 = 2; i <= n; i++) { f *= f32(i); }\n return f;\n}\n\nfn _gpu_besselJ_series(n_in: i32, x: f32) -> f32 {\n let halfX = x / 2.0;\n let negQ = -(x * x) / 4.0;\n var term: f32 = 1.0;\n for (var i: i32 = 1; i <= n_in; i++) { term /= f32(i); }\n var s = term;\n for (var k: i32 = 1; k <= 60; k++) {\n term *= negQ / (f32(k) * f32(n_in + k));\n s += term;\n if (abs(term) < abs(s) * 1e-7) { break; }\n }\n return s * pow(halfX, f32(n_in));\n}\n\nfn _gpu_besselJ_asymptotic(n_in: i32, x: f32) -> f32 {\n let mu = 4.0 * f32(n_in) * f32(n_in);\n var P: f32 = 1.0;\n var Q: f32 = 0.0;\n var ak: f32 = 1.0;\n let e8x = 8.0 * x;\n for (var k: i32 = 1; k <= 12; k++) {\n let twokm1 = f32(2 * k - 1);\n ak *= mu - twokm1 * twokm1;\n let denom = _gpu_factorial(k) * pow(e8x, f32(k));\n let contrib = ak / denom;\n if (k == 1 || k == 3 || k == 5 || k == 7 || k == 9 || k == 11) {\n if (((k - 1) / 2) % 2 == 0) { Q += contrib; }\n else { Q -= contrib; }\n } else {\n if ((k / 2) % 2 == 1) { P -= contrib; }\n else { P += contrib; }\n }\n if (abs(contrib) < 1e-7) { break; }\n }\n let chi = x - (f32(n_in) / 2.0 + 0.25) * 3.14159265358979;\n return sqrt(2.0 / (3.14159265358979 * x)) * (P * cos(chi) - Q * sin(chi));\n}\n\nfn _gpu_besselJ(n_in: i32, x_in: f32) -> f32 {\n var n = n_in;\n var x = x_in;\n if (x == 0.0) { return select(0.0, 1.0, n == 0); }\n var sgn: f32 = 1.0;\n if (n < 0) {\n n = -n;\n if (n % 2 != 0) { sgn = -1.0; }\n }\n if (x < 0.0) {\n x = -x;\n if (n % 2 != 0) { sgn *= -1.0; }\n }\n if (x > 25.0 + f32(n * n) / 2.0) { return sgn * _gpu_besselJ_asymptotic(n, x); }\n if (x < 5.0 + f32(n)) { return sgn * _gpu_besselJ_series(n, x); }\n // Miller's backward recurrence\n var M = max(n + 20, i32(ceil(x)) + 30);\n if (M > 200) { return sgn * _gpu_besselJ_series(n, x); }\n var vals: array<f32, 201>;\n var jp1: f32 = 0.0;\n var jk: f32 = 1.0;\n vals[M] = jk;\n for (var k: i32 = M; k >= 1; k--) {\n let jm1 = (2.0 * f32(k) / x) * jk - jp1;\n jp1 = jk;\n jk = jm1;\n vals[k - 1] = jk;\n }\n var norm = vals[0];\n for (var k2: i32 = 2; k2 <= M; k2 += 2) { norm += 2.0 * vals[k2]; }\n return sgn * vals[n] / norm;\n}\n";
|
|
111
|
+
/**
|
|
112
|
+
* Double-single (DS) emulated double-precision arithmetic preamble (GLSL).
|
|
113
|
+
*
|
|
114
|
+
* A "double-single" number is stored as vec2(hi, lo) where value = hi + lo,
|
|
115
|
+
* giving ~48 bits of mantissa from two 32-bit floats.
|
|
116
|
+
* Algorithms: Dekker (1971) / Knuth (1997).
|
|
117
|
+
*/
|
|
118
|
+
export declare const GPU_DS_ARITHMETIC_PREAMBLE_GLSL = "\n// Split a float into high and low parts for exact multiplication\nvec2 ds_split(float a) {\n const float SPLIT = 4097.0; // 2^12 + 1\n float t = SPLIT * a;\n float hi = t - (t - a);\n float lo = a - hi;\n return vec2(hi, lo);\n}\n\n// Create a double-single from a single float\nvec2 ds_from(float a) {\n return vec2(a, 0.0);\n}\n\n// Error-free addition (Knuth TwoSum)\nvec2 ds_add(vec2 a, vec2 b) {\n float s = a.x + b.x;\n float v = s - a.x;\n float e = (a.x - (s - v)) + (b.x - v);\n float lo = (a.y + b.y) + e;\n float hi = s + lo;\n lo = lo - (hi - s);\n return vec2(hi, lo);\n}\n\n// Double-single subtraction\nvec2 ds_sub(vec2 a, vec2 b) {\n return ds_add(a, vec2(-b.x, -b.y));\n}\n\n// Error-free multiplication (Dekker TwoProduct)\nvec2 ds_mul(vec2 a, vec2 b) {\n float p = a.x * b.x;\n vec2 sa = ds_split(a.x);\n vec2 sb = ds_split(b.x);\n float err = ((sa.x * sb.x - p) + sa.x * sb.y + sa.y * sb.x) + sa.y * sb.y;\n err += a.x * b.y + a.y * b.x;\n float hi = p + err;\n float lo = err - (hi - p);\n return vec2(hi, lo);\n}\n\n// Optimized self-multiply\nvec2 ds_sqr(vec2 a) {\n float p = a.x * a.x;\n vec2 sa = ds_split(a.x);\n float err = ((sa.x * sa.x - p) + 2.0 * sa.x * sa.y) + sa.y * sa.y;\n err += 2.0 * a.x * a.y;\n float hi = p + err;\n float lo = err - (hi - p);\n return vec2(hi, lo);\n}\n\n// Compare magnitude: returns -1, 0, or 1\nfloat ds_cmp(vec2 a, vec2 b) {\n float d = a.x - b.x;\n if (d != 0.0) return sign(d);\n return sign(a.y - b.y);\n}\n";
|
|
119
|
+
/**
|
|
120
|
+
* Double-single (DS) emulated double-precision arithmetic preamble (WGSL).
|
|
121
|
+
*
|
|
122
|
+
* A "double-single" number is stored as vec2f(hi, lo) where value = hi + lo,
|
|
123
|
+
* giving ~48 bits of mantissa from two 32-bit floats.
|
|
124
|
+
* Algorithms: Dekker (1971) / Knuth (1997).
|
|
125
|
+
*/
|
|
126
|
+
export declare const GPU_DS_ARITHMETIC_PREAMBLE_WGSL = "\nfn ds_split(a: f32) -> vec2f {\n const SPLIT: f32 = 4097.0;\n let t = SPLIT * a;\n let hi = t - (t - a);\n let lo = a - hi;\n return vec2f(hi, lo);\n}\n\nfn ds_from(a: f32) -> vec2f {\n return vec2f(a, 0.0);\n}\n\nfn ds_add(a: vec2f, b: vec2f) -> vec2f {\n let s = a.x + b.x;\n let v = s - a.x;\n let e = (a.x - (s - v)) + (b.x - v);\n let lo_t = (a.y + b.y) + e;\n let hi = s + lo_t;\n let lo = lo_t - (hi - s);\n return vec2f(hi, lo);\n}\n\nfn ds_sub(a: vec2f, b: vec2f) -> vec2f {\n return ds_add(a, vec2f(-b.x, -b.y));\n}\n\nfn ds_mul(a: vec2f, b: vec2f) -> vec2f {\n let p = a.x * b.x;\n let sa = ds_split(a.x);\n let sb = ds_split(b.x);\n var err = ((sa.x * sb.x - p) + sa.x * sb.y + sa.y * sb.x) + sa.y * sb.y;\n err += a.x * b.y + a.y * b.x;\n let hi = p + err;\n let lo = err - (hi - p);\n return vec2f(hi, lo);\n}\n\nfn ds_sqr(a: vec2f) -> vec2f {\n let p = a.x * a.x;\n let sa = ds_split(a.x);\n var err = ((sa.x * sa.x - p) + 2.0 * sa.x * sa.y) + sa.y * sa.y;\n err += 2.0 * a.x * a.y;\n let hi = p + err;\n let lo = err - (hi - p);\n return vec2f(hi, lo);\n}\n\nfn ds_cmp(a: vec2f, b: vec2f) -> f32 {\n let d = a.x - b.x;\n if (d != 0.0) { return sign(d); }\n return sign(a.y - b.y);\n}\n";
|
|
127
|
+
/**
|
|
128
|
+
* Double-precision fractal preamble (GLSL syntax).
|
|
129
|
+
*
|
|
130
|
+
* Emulated double-precision (double-single) Mandelbrot and Julia iterations.
|
|
131
|
+
* Complex numbers are packed as vec4(re_hi, im_hi, re_lo, im_lo).
|
|
132
|
+
* Requires GPU_DS_ARITHMETIC_PREAMBLE_GLSL to be included first.
|
|
133
|
+
*/
|
|
134
|
+
export declare const GPU_FRACTAL_DP_PREAMBLE_GLSL = "\nfloat _fractal_mandelbrot_dp(vec4 c, int maxIter) {\n // c = (re_hi, im_hi, re_lo, im_lo)\n vec2 cr = vec2(c.x, c.z); // real part as ds\n vec2 ci = vec2(c.y, c.w); // imag part as ds\n vec2 zr = vec2(0.0, 0.0);\n vec2 zi = vec2(0.0, 0.0);\n for (int i = 0; i < maxIter; i++) {\n vec2 zr2 = ds_sqr(zr);\n vec2 zi2 = ds_sqr(zi);\n // |z|^2 > 4.0 ?\n vec2 mag2 = ds_add(zr2, zi2);\n if (mag2.x > 4.0)\n return clamp((float(i) - log2(log2(mag2.x)) + 4.0) / float(maxIter), 0.0, 1.0);\n // z = z^2 + c\n vec2 new_zi = ds_add(ds_mul(ds_add(zr, zr), zi), ci); // 2*zr*zi + ci\n zr = ds_add(ds_sub(zr2, zi2), cr); // zr^2 - zi^2 + cr\n zi = new_zi;\n }\n return 1.0;\n}\n\nfloat _fractal_julia_dp(vec4 z_in, vec4 c, int maxIter) {\n vec2 zr = vec2(z_in.x, z_in.z);\n vec2 zi = vec2(z_in.y, z_in.w);\n vec2 cr = vec2(c.x, c.z);\n vec2 ci = vec2(c.y, c.w);\n for (int i = 0; i < maxIter; i++) {\n vec2 zr2 = ds_sqr(zr);\n vec2 zi2 = ds_sqr(zi);\n vec2 mag2 = ds_add(zr2, zi2);\n if (mag2.x > 4.0)\n return clamp((float(i) - log2(log2(mag2.x)) + 4.0) / float(maxIter), 0.0, 1.0);\n vec2 new_zi = ds_add(ds_mul(ds_add(zr, zr), zi), ci);\n zr = ds_add(ds_sub(zr2, zi2), cr);\n zi = new_zi;\n }\n return 1.0;\n}\n";
|
|
135
|
+
/**
|
|
136
|
+
* Double-precision fractal preamble (WGSL syntax).
|
|
137
|
+
*
|
|
138
|
+
* Emulated double-precision (double-single) Mandelbrot and Julia iterations.
|
|
139
|
+
* Complex numbers are packed as vec4f(re_hi, im_hi, re_lo, im_lo).
|
|
140
|
+
* Requires GPU_DS_ARITHMETIC_PREAMBLE_WGSL to be included first.
|
|
141
|
+
*/
|
|
142
|
+
export declare const GPU_FRACTAL_DP_PREAMBLE_WGSL = "\nfn _fractal_mandelbrot_dp(c: vec4f, maxIter: i32) -> f32 {\n let cr = vec2f(c.x, c.z);\n let ci = vec2f(c.y, c.w);\n var zr = vec2f(0.0, 0.0);\n var zi = vec2f(0.0, 0.0);\n for (var i: i32 = 0; i < maxIter; i++) {\n let zr2 = ds_sqr(zr);\n let zi2 = ds_sqr(zi);\n let mag2 = ds_add(zr2, zi2);\n if (mag2.x > 4.0) {\n return clamp((f32(i) - log2(log2(mag2.x)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n let new_zi = ds_add(ds_mul(ds_add(zr, zr), zi), ci);\n zr = ds_add(ds_sub(zr2, zi2), cr);\n zi = new_zi;\n }\n return 1.0;\n}\n\nfn _fractal_julia_dp(z_in: vec4f, c: vec4f, maxIter: i32) -> f32 {\n var zr = vec2f(z_in.x, z_in.z);\n var zi = vec2f(z_in.y, z_in.w);\n let cr = vec2f(c.x, c.z);\n let ci = vec2f(c.y, c.w);\n for (var i: i32 = 0; i < maxIter; i++) {\n let zr2 = ds_sqr(zr);\n let zi2 = ds_sqr(zi);\n let mag2 = ds_add(zr2, zi2);\n if (mag2.x > 4.0) {\n return clamp((f32(i) - log2(log2(mag2.x)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n let new_zi = ds_add(ds_mul(ds_add(zr, zr), zi), ci);\n zr = ds_add(ds_sub(zr2, zi2), cr);\n zi = new_zi;\n }\n return 1.0;\n}\n";
|
|
111
143
|
/**
|
|
112
144
|
* Fractal preamble (GLSL syntax).
|
|
113
145
|
*
|
|
@@ -120,6 +152,20 @@ export declare const GPU_FRACTAL_PREAMBLE_GLSL = "\nfloat _fractal_mandelbrot(ve
|
|
|
120
152
|
* Fractal preamble (WGSL syntax).
|
|
121
153
|
*/
|
|
122
154
|
export declare const GPU_FRACTAL_PREAMBLE_WGSL = "\nfn _fractal_mandelbrot(c: vec2f, maxIter: i32) -> f32 {\n var z = vec2f(0.0, 0.0);\n for (var i: i32 = 0; i < maxIter; i++) {\n z = vec2f(z.x*z.x - z.y*z.y + c.x, 2.0*z.x*z.y + c.y);\n if (dot(z, z) > 4.0) {\n return clamp((f32(i) - log2(log2(dot(z, z))) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n}\n\nfn _fractal_julia(z_in: vec2f, c: vec2f, maxIter: i32) -> f32 {\n var z = z_in;\n for (var i: i32 = 0; i < maxIter; i++) {\n z = vec2f(z.x*z.x - z.y*z.y + c.x, 2.0*z.x*z.y + c.y);\n if (dot(z, z) > 4.0) {\n return clamp((f32(i) - log2(log2(dot(z, z))) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n}\n";
|
|
155
|
+
/**
|
|
156
|
+
* Perturbation-theory fractal preamble (GLSL syntax).
|
|
157
|
+
*
|
|
158
|
+
* Provides `_fractal_mandelbrot_pt` and `_fractal_julia_pt` which iterate
|
|
159
|
+
* a perturbation delta relative to a precomputed reference orbit stored in
|
|
160
|
+
* a RG32F texture. Includes glitch detection with single-float fallback.
|
|
161
|
+
*/
|
|
162
|
+
export declare const GPU_FRACTAL_PT_PREAMBLE_GLSL = "\nuniform sampler2D _refOrbit;\nuniform int _refOrbitLen;\nuniform int _refOrbitTexWidth;\n\nvec2 _pt_fetch_orbit(int i) {\n int y = i / _refOrbitTexWidth;\n int x = i - y * _refOrbitTexWidth;\n return texelFetch(_refOrbit, ivec2(x, y), 0).rg;\n}\n\nfloat _fractal_mandelbrot_pt(vec2 delta_c, int maxIter) {\n float dr = 0.0;\n float di = 0.0;\n int orbitLen = min(maxIter, _refOrbitLen);\n for (int i = 0; i < orbitLen; i++) {\n vec2 Zn = _pt_fetch_orbit(i);\n // delta_{n+1} = 2*Z_n*delta_n + delta_n^2 + delta_c\n float new_dr = 2.0 * (Zn.x * dr - Zn.y * di) + dr * dr - di * di + delta_c.x;\n float new_di = 2.0 * (Zn.x * di + Zn.y * dr) + 2.0 * dr * di + delta_c.y;\n dr = new_dr;\n di = new_di;\n // Full z = Z_{n+1} + delta for escape check\n vec2 Zn1 = (i + 1 < orbitLen) ? _pt_fetch_orbit(i + 1) : vec2(0.0);\n float zr = Zn1.x + dr;\n float zi = Zn1.y + di;\n float mag2 = zr * zr + zi * zi;\n if (mag2 > 4.0)\n return clamp((float(i) - log2(log2(mag2)) + 4.0) / float(maxIter), 0.0, 1.0);\n // Glitch detection: |delta|^2 > |Z|^2\n float dmag2 = dr * dr + di * di;\n float Zmag2 = Zn.x * Zn.x + Zn.y * Zn.y;\n if (dmag2 > Zmag2 && Zmag2 > 0.0) {\n // Rebase to absolute coordinates and continue with single-float\n float abs_zr = Zn1.x + dr;\n float abs_zi = Zn1.y + di;\n // Reconstruct absolute c from reference + delta\n // (Use ds_from for the concept, but single-float suffices for fallback)\n float cx = abs_zr - dr + delta_c.x;\n float cy = abs_zi - di + delta_c.y;\n for (int j = i + 1; j < maxIter; j++) {\n float new_zr = abs_zr * abs_zr - abs_zi * abs_zi + cx;\n abs_zi = 2.0 * abs_zr * abs_zi + cy;\n abs_zr = new_zr;\n mag2 = abs_zr * abs_zr + abs_zi * abs_zi;\n if (mag2 > 4.0)\n return clamp((float(j) - log2(log2(mag2)) + 4.0) / float(maxIter), 0.0, 1.0);\n }\n return 1.0;\n }\n }\n return 1.0;\n}\n\nfloat _fractal_julia_pt(vec2 z_delta, vec2 delta_c, int maxIter) {\n float dr = z_delta.x;\n float di = z_delta.y;\n int orbitLen = min(maxIter, _refOrbitLen);\n for (int i = 0; i < orbitLen; i++) {\n vec2 Zn = _pt_fetch_orbit(i);\n float new_dr = 2.0 * (Zn.x * dr - Zn.y * di) + dr * dr - di * di + delta_c.x;\n float new_di = 2.0 * (Zn.x * di + Zn.y * dr) + 2.0 * dr * di + delta_c.y;\n dr = new_dr;\n di = new_di;\n vec2 Zn1 = (i + 1 < orbitLen) ? _pt_fetch_orbit(i + 1) : vec2(0.0);\n float zr = Zn1.x + dr;\n float zi = Zn1.y + di;\n float mag2 = zr * zr + zi * zi;\n if (mag2 > 4.0)\n return clamp((float(i) - log2(log2(mag2)) + 4.0) / float(maxIter), 0.0, 1.0);\n float dmag2 = dr * dr + di * di;\n float Zmag2 = Zn.x * Zn.x + Zn.y * Zn.y;\n if (dmag2 > Zmag2 && Zmag2 > 0.0) {\n float abs_zr = Zn1.x + dr;\n float abs_zi = Zn1.y + di;\n float cx = delta_c.x;\n float cy = delta_c.y;\n for (int j = i + 1; j < maxIter; j++) {\n float new_zr = abs_zr * abs_zr - abs_zi * abs_zi + cx;\n abs_zi = 2.0 * abs_zr * abs_zi + cy;\n abs_zr = new_zr;\n mag2 = abs_zr * abs_zr + abs_zi * abs_zi;\n if (mag2 > 4.0)\n return clamp((float(j) - log2(log2(mag2)) + 4.0) / float(maxIter), 0.0, 1.0);\n }\n return 1.0;\n }\n }\n return 1.0;\n}\n";
|
|
163
|
+
/**
|
|
164
|
+
* Perturbation-theory fractal preamble (WGSL syntax).
|
|
165
|
+
*
|
|
166
|
+
* Same logic as the GLSL version, adapted for WGSL syntax.
|
|
167
|
+
*/
|
|
168
|
+
export declare const GPU_FRACTAL_PT_PREAMBLE_WGSL = "\n@group(0) @binding(1) var _refOrbit: texture_2d<f32>;\nvar<uniform> _refOrbitLen: i32;\nvar<uniform> _refOrbitTexWidth: i32;\n\nfn _pt_fetch_orbit(i: i32) -> vec2f {\n let y = i / _refOrbitTexWidth;\n let x = i - y * _refOrbitTexWidth;\n return textureLoad(_refOrbit, vec2i(x, y), 0).rg;\n}\n\nfn _fractal_mandelbrot_pt(delta_c: vec2f, maxIter: i32) -> f32 {\n var dr: f32 = 0.0;\n var di: f32 = 0.0;\n let orbitLen = min(maxIter, _refOrbitLen);\n for (var i: i32 = 0; i < orbitLen; i++) {\n let Zn = _pt_fetch_orbit(i);\n let new_dr = 2.0 * (Zn.x * dr - Zn.y * di) + dr * dr - di * di + delta_c.x;\n let new_di = 2.0 * (Zn.x * di + Zn.y * dr) + 2.0 * dr * di + delta_c.y;\n dr = new_dr;\n di = new_di;\n var Zn1 = vec2f(0.0);\n if (i + 1 < orbitLen) { Zn1 = _pt_fetch_orbit(i + 1); }\n let zr = Zn1.x + dr;\n let zi = Zn1.y + di;\n var mag2 = zr * zr + zi * zi;\n if (mag2 > 4.0) {\n return clamp((f32(i) - log2(log2(mag2)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n let dmag2 = dr * dr + di * di;\n let Zmag2 = Zn.x * Zn.x + Zn.y * Zn.y;\n if (dmag2 > Zmag2 && Zmag2 > 0.0) {\n var f_zr = Zn1.x + dr;\n var f_zi = Zn1.y + di;\n let cx = delta_c.x;\n let cy = delta_c.y;\n for (var j: i32 = i + 1; j < maxIter; j++) {\n let t_zr = f_zr * f_zr - f_zi * f_zi + cx;\n f_zi = 2.0 * f_zr * f_zi + cy;\n f_zr = t_zr;\n mag2 = f_zr * f_zr + f_zi * f_zi;\n if (mag2 > 4.0) {\n return clamp((f32(j) - log2(log2(mag2)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n }\n }\n return 1.0;\n}\n\nfn _fractal_julia_pt(z_delta: vec2f, delta_c: vec2f, maxIter: i32) -> f32 {\n var dr = z_delta.x;\n var di = z_delta.y;\n let orbitLen = min(maxIter, _refOrbitLen);\n for (var i: i32 = 0; i < orbitLen; i++) {\n let Zn = _pt_fetch_orbit(i);\n let new_dr = 2.0 * (Zn.x * dr - Zn.y * di) + dr * dr - di * di + delta_c.x;\n let new_di = 2.0 * (Zn.x * di + Zn.y * dr) + 2.0 * dr * di + delta_c.y;\n dr = new_dr;\n di = new_di;\n var Zn1 = vec2f(0.0);\n if (i + 1 < orbitLen) { Zn1 = _pt_fetch_orbit(i + 1); }\n let zr = Zn1.x + dr;\n let zi = Zn1.y + di;\n var mag2 = zr * zr + zi * zi;\n if (mag2 > 4.0) {\n return clamp((f32(i) - log2(log2(mag2)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n let dmag2 = dr * dr + di * di;\n let Zmag2 = Zn.x * Zn.x + Zn.y * Zn.y;\n if (dmag2 > Zmag2 && Zmag2 > 0.0) {\n var f_zr = Zn1.x + dr;\n var f_zi = Zn1.y + di;\n let cx = delta_c.x;\n let cy = delta_c.y;\n for (var j: i32 = i + 1; j < maxIter; j++) {\n let t_zr = f_zr * f_zr - f_zi * f_zi + cx;\n f_zi = 2.0 * f_zr * f_zi + cy;\n f_zr = t_zr;\n mag2 = f_zr * f_zr + f_zi * f_zi;\n if (mag2 > 4.0) {\n return clamp((f32(j) - log2(log2(mag2)) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n }\n }\n return 1.0;\n}\n";
|
|
123
169
|
/**
|
|
124
170
|
* GPU color space conversion preamble (GLSL syntax).
|
|
125
171
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import { chop, factorial, factorial2, gcd, lcm, limit } from '../numerics/numeric';
|
|
3
3
|
import { gamma, gammaln, erf, erfc, erfInv, beta, digamma, trigamma, polygamma, zeta, lambertW, besselJ, besselY, besselI, besselK, airyAi, airyBi, fresnelS, fresnelC, sinc } from '../numerics/special-functions';
|
|
4
4
|
import { choose } from '../boxed-expression/expand';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
/**
|
|
3
3
|
* Source code in the target language
|
|
4
4
|
*/
|
|
@@ -53,6 +53,8 @@ export interface CompileTarget<Expr = unknown> {
|
|
|
53
53
|
block?: (statements: string[]) => string;
|
|
54
54
|
/** Target language identifier (for debugging/logging) */
|
|
55
55
|
language?: string;
|
|
56
|
+
/** Compilation hints (viewport, etc.) passed through from options. */
|
|
57
|
+
hints?: CompilationOptions['hints'];
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Base interface for language-specific compilation targets
|
|
@@ -147,6 +149,22 @@ export interface CompilationOptions<Expr = unknown> {
|
|
|
147
149
|
* results (e.g., plotting).
|
|
148
150
|
*/
|
|
149
151
|
realOnly?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Compilation hints for precision-adaptive strategies.
|
|
154
|
+
*
|
|
155
|
+
* The compiler may use these hints to select different code generation
|
|
156
|
+
* strategies (e.g., emulated double precision for deep-zoom fractals).
|
|
157
|
+
* Non-fractal functions ignore hints.
|
|
158
|
+
*/
|
|
159
|
+
hints?: {
|
|
160
|
+
/** Current viewport for precision-adaptive compilation. */
|
|
161
|
+
viewport?: {
|
|
162
|
+
/** Center of the viewport as [re, im]. */
|
|
163
|
+
center: [number, number];
|
|
164
|
+
/** Viewport radius (half-width in complex plane units). */
|
|
165
|
+
radius: number;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
150
168
|
}
|
|
151
169
|
/**
|
|
152
170
|
* Built-in targets that produce an executable `run` function.
|
|
@@ -247,6 +265,35 @@ export type CompilationResult<T extends string = string, R = number | ComplexRes
|
|
|
247
265
|
calling?: 'expression' | 'lambda';
|
|
248
266
|
/** Executable function (present for JS-executable targets only). */
|
|
249
267
|
run?: CompiledRunner<R>;
|
|
268
|
+
/**
|
|
269
|
+
* Cheap staleness check for precision-adaptive compilation.
|
|
270
|
+
*
|
|
271
|
+
* The plot engine checks these thresholds on each viewport change
|
|
272
|
+
* (a few number comparisons). When any condition is met, the expression
|
|
273
|
+
* should be recompiled with updated hints.
|
|
274
|
+
*/
|
|
275
|
+
staleWhen?: {
|
|
276
|
+
/** Recompile when viewport radius drops below this value. */
|
|
277
|
+
radiusBelow?: number;
|
|
278
|
+
/** Recompile when viewport radius rises above this value. */
|
|
279
|
+
radiusAbove?: number;
|
|
280
|
+
/** Recompile when center moves more than this distance. */
|
|
281
|
+
centerDistance?: number;
|
|
282
|
+
};
|
|
283
|
+
/** Scalar uniform values the shader needs. */
|
|
284
|
+
uniforms?: Record<string, number>;
|
|
285
|
+
/**
|
|
286
|
+
* Texture data the shader needs (e.g., reference orbit).
|
|
287
|
+
*
|
|
288
|
+
* Separated from `uniforms` because the GPU upload path is fundamentally
|
|
289
|
+
* different (createTexture + sampler vs uniform1f).
|
|
290
|
+
*/
|
|
291
|
+
textures?: Record<string, {
|
|
292
|
+
data: Float32Array;
|
|
293
|
+
width: number;
|
|
294
|
+
height: number;
|
|
295
|
+
format: 'r32f' | 'rg32f' | 'rgba32f';
|
|
296
|
+
}>;
|
|
250
297
|
} & (T extends ExecutableTarget ? {
|
|
251
298
|
calling: 'expression' | 'lambda';
|
|
252
299
|
run: CompiledRunner<R>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import type { MathJsonSymbol } from '../math-json/types';
|
|
3
3
|
export declare function ask(ce: IComputeEngine, pattern: Expression): BoxedSubstitution[];
|
|
4
4
|
export declare function verify(ce: IComputeEngine, query: Expression): boolean | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import { BoxedType } from '../common/type/boxed-type';
|
|
3
3
|
import type { MathJsonSymbol } from '../math-json/types';
|
|
4
4
|
import type { ValueDefinition, OperatorDefinition, AssignValue, Expression, BoxedDefinition, SymbolDefinition, IComputeEngine, Scope } from './global-types';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare function resolveBootstrapLibraries(libraries?: readonly (string | LibraryDefinition)[]): LibraryDefinition[];
|
|
3
3
|
export declare function loadLibraryDefinitions(engine: ComputeEngine, libraries: readonly LibraryDefinition[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare function pushScope(ce: IComputeEngine, scope?: Scope, name?: string): void;
|
|
3
3
|
export declare function popScope(ce: IComputeEngine): void;
|
|
4
4
|
export declare function pushEvalContext(ce: IComputeEngine, scope: Scope, name?: string): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare function declareSequence(ce: IComputeEngine, name: string, def: SequenceDefinition): IComputeEngine;
|
|
3
3
|
export declare function getSequenceStatus(ce: IComputeEngine, name: string): SequenceStatus;
|
|
4
4
|
export declare function getSequence(ce: IComputeEngine, name: string): SequenceInfo | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export type * from './types-serialization';
|
|
3
3
|
export type { ValueDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, OperatorDefinition, BaseDefinition, SimplifyOptions, SymbolDefinition, SymbolDefinitions, LibraryDefinition, AngularUnit, Sign, BaseCollectionHandlers, IndexedCollectionHandlers, CollectionHandlers, TaggedValueDefinition, TaggedOperatorDefinition, BoxedDefinition, BoxedBaseDefinition, BoxedValueDefinition, OperatorDefinitionFlags, BoxedOperatorDefinition, } from './types-definitions';
|
|
4
4
|
export type * from './types-evaluation';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_CALCULUS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_COMPLEX: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import type { MathJsonExpression } from '../../../math-json';
|
|
3
3
|
export declare const DEFINITIONS_LOGIC: LatexDictionary;
|
|
4
4
|
export declare function parseQuantifier(kind: 'NotForAll' | 'NotExists' | 'ForAll' | 'Exists' | 'ExistsUnique'): (parser: Parser, terminator: Readonly<Terminator>) => MathJsonExpression | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_OTHERS: LatexDictionary;
|
package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_SETS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_STATISTICS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import { LatexDictionaryEntry } from '../types';
|
|
3
3
|
export type { CommonEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPrefixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary, } from './indexed-types';
|
|
4
4
|
import type { IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary } from './indexed-types';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import { ParseLatexOptions, LatexToken, Terminator, Parser, SymbolTable } from './types';
|
|
3
3
|
import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedPrefixEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry } from './dictionary/definitions';
|
|
4
4
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
import { DelimiterScale } from './types';
|
|
3
3
|
export declare function getApplyFunctionStyle(_expr: MathJsonExpression, _level: number): DelimiterScale;
|
|
4
4
|
export declare function getGroupStyle(_expr: MathJsonExpression, _level: number): DelimiterScale;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const CALCULUS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.55.
|
|
1
|
+
/* 0.55.4 */
|
|
2
2
|
export declare const COLORS_LIBRARY: SymbolDefinitions;
|