@cortex-js/compute-engine 0.60.0 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile.esm.js +1270 -25
- package/dist/compile.min.esm.js +324 -78
- package/dist/compile.min.umd.cjs +324 -78
- package/dist/compile.umd.cjs +1270 -25
- package/dist/compute-engine.esm.js +867 -26
- package/dist/compute-engine.min.esm.js +329 -83
- package/dist/compute-engine.min.umd.cjs +329 -83
- package/dist/compute-engine.umd.cjs +867 -26
- package/dist/core.esm.js +855 -24
- package/dist/core.min.esm.js +330 -84
- package/dist/core.min.umd.cjs +330 -84
- package/dist/core.umd.cjs +855 -24
- package/dist/identities.esm.js +2 -2
- package/dist/identities.min.esm.js +2 -2
- package/dist/identities.min.umd.cjs +2 -2
- package/dist/identities.umd.cjs +2 -2
- package/dist/integration-rules.esm.js +2 -2
- package/dist/integration-rules.min.esm.js +2 -2
- package/dist/integration-rules.min.umd.cjs +2 -2
- package/dist/integration-rules.umd.cjs +2 -2
- 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 +2 -2
- package/dist/latex-syntax.min.esm.js +2 -2
- package/dist/latex-syntax.min.umd.cjs +2 -2
- package/dist/latex-syntax.umd.cjs +2 -2
- 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 +2 -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/constraint-subject.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/exp-to-trig.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/multivariate-gcd.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-poly.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/rule-index.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 +79 -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/glsl-target.d.ts +2 -2
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +7 -1
- package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +49 -0
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +30 -2
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +54 -2
- 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-properties/index.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/loader.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/types.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +10 -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-colors.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/special-functions.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/bernoulli.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/complex-esm-augment.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/oscillatory-quadrature.d.ts +1 -1
- package/dist/types/compute-engine/numerics/polynomial-roots.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/random.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/rubi/compile.d.ts +1 -1
- package/dist/types/compute-engine/rubi/driver.d.ts +1 -1
- package/dist/types/compute-engine/rubi/loader.d.ts +1 -1
- package/dist/types/compute-engine/rubi/match.d.ts +1 -1
- package/dist/types/compute-engine/rubi/normal-form.d.ts +1 -1
- package/dist/types/compute-engine/rubi/rubi-utils.d.ts +1 -1
- package/dist/types/compute-engine/rubi/types.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/limit.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/residue.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 +11 -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/identities.d.ts +1 -1
- package/dist/types/integration-rules.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 +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* 0.61.0 */
|
|
2
|
+
import type { CompiledFunctions, CompiledOperators, CompileTarget, CompilationOptions, CompilationResult } from './types';
|
|
3
|
+
import { GLSLTarget } from './glsl-target';
|
|
4
|
+
/**
|
|
5
|
+
* GLSL preamble: the `_iv_*` interval-arithmetic library. Injected whole when
|
|
6
|
+
* the compiled code references any `_iv_` helper. (A later phase can split this
|
|
7
|
+
* per-marker like the `_gpu_*` blocks to keep shaders lean.)
|
|
8
|
+
*/
|
|
9
|
+
export declare const INTERVAL_GLSL_PREAMBLE = "\nconst float IV_INF = 1e18;\nconst vec2 IV_ENTIRE = vec2(-IV_INF, IV_INF);\nconst vec2 IV_EMPTY = vec2(IV_INF, -IV_INF);\n\nbool _iv_is_empty(vec2 a) { return a.x > a.y; }\n\n// Clamp bounds to the finite sentinel range. Preserves IV_EMPTY (its components\n// already sit at the sentinels) and folds any overflowed intermediate back to\n// the sentinel (min(inf, IV_INF) = IV_INF), so a real `inf` never escapes an op.\nvec2 _iv_clamp(vec2 a) { return clamp(a, -IV_INF, IV_INF); }\n\n// Exact empty propagation: force empty if any operand is empty.\nvec2 _iv_guard1(vec2 r, vec2 a) { return _iv_is_empty(a) ? IV_EMPTY : r; }\nvec2 _iv_guard2(vec2 r, vec2 a, vec2 b) {\n return (_iv_is_empty(a) || _iv_is_empty(b)) ? IV_EMPTY : r;\n}\n\nvec2 _iv_negate(vec2 a) { return _iv_guard1(_iv_clamp(vec2(-a.y, -a.x)), a); }\n\nvec2 _iv_add(vec2 a, vec2 b) {\n return _iv_guard2(_iv_clamp(vec2(a.x + b.x, a.y + b.y)), a, b);\n}\n\nvec2 _iv_sub(vec2 a, vec2 b) {\n return _iv_guard2(_iv_clamp(vec2(a.x - b.y, a.y - b.x)), a, b);\n}\n\nvec2 _iv_mul(vec2 a, vec2 b) {\n float p1 = a.x * b.x, p2 = a.x * b.y, p3 = a.y * b.x, p4 = a.y * b.y;\n vec2 r = vec2(min(min(p1, p2), min(p3, p4)), max(max(p1, p2), max(p3, p4)));\n return _iv_guard2(_iv_clamp(r), a, b);\n}\n\nvec2 _iv_div(vec2 a, vec2 b) {\n // Denominator spanning 0 \u2192 entire (wide, never narrow): the CPU pass turns\n // the pole into a proper asymptote break.\n bool spansZero = (b.x <= 0.0 && b.y >= 0.0);\n float q1 = a.x / b.x, q2 = a.x / b.y, q3 = a.y / b.x, q4 = a.y / b.y;\n vec2 r = vec2(min(min(q1, q2), min(q3, q4)), max(max(q1, q2), max(q3, q4)));\n r = spansZero ? IV_ENTIRE : r;\n return _iv_guard2(_iv_clamp(r), a, b);\n}\n\nvec2 _iv_square(vec2 a) {\n float lo2 = a.x * a.x, hi2 = a.y * a.y;\n // Straddles 0 \u21D2 min is 0; otherwise the smaller endpoint\u00B2 is the min.\n float lo = (a.x <= 0.0 && a.y >= 0.0) ? 0.0 : min(lo2, hi2);\n return _iv_guard1(_iv_clamp(vec2(lo, max(lo2, hi2))), a);\n}\n\n// Scalar integer power that is correct for negative bases (GLSL `pow` requires\n// a non-negative base): keep the sign for odd exponents, drop it for even.\nfloat _iv_powi_scalar(float x, float n) {\n float a = pow(abs(x), n);\n return (mod(n, 2.0) == 1.0 && x < 0.0) ? -a : a;\n}\n\nvec2 _iv_powi(vec2 a, float n) {\n float pl = _iv_powi_scalar(a.x, n);\n float ph = _iv_powi_scalar(a.y, n);\n bool even = (mod(n, 2.0) == 0.0);\n bool straddle = (a.x <= 0.0 && a.y >= 0.0);\n float lo = even ? (straddle ? 0.0 : min(pl, ph)) : pl;\n float hi = even ? max(pl, ph) : ph;\n return _iv_guard1(_iv_clamp(vec2(lo, hi)), a);\n}\n\n// \u2500\u2500 Phase 2: elementary functions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nvec2 _iv_abs(vec2 a) {\n float al = abs(a.x), ah = abs(a.y);\n bool straddle = (a.x <= 0.0 && a.y >= 0.0);\n return _iv_guard1(_iv_clamp(vec2(straddle ? 0.0 : min(al, ah), max(al, ah))), a);\n}\n\n// Domain x \u2265 0: fully-negative box \u2192 empty; a box straddling 0 clamps lo to 0.\nvec2 _iv_sqrt(vec2 a) {\n vec2 r = vec2(sqrt(max(a.x, 0.0)), sqrt(max(a.y, 0.0)));\n r = (a.y < 0.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_exp(vec2 a) {\n return _iv_guard1(_iv_clamp(vec2(exp(a.x), exp(a.y))), a);\n}\n\n// Domain x > 0: fully-\u22640 box \u2192 empty; straddling box \u2192 lo clamped to \u2212IV_INF\n// (ln \u2192 \u2212\u221E as x \u2192 0\u207A, never a real \u2212inf).\nvec2 _iv_ln(vec2 a) {\n vec2 r = vec2(a.x > 0.0 ? log(a.x) : -IV_INF, log(a.y));\n r = (a.y <= 0.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nconst float _IV_INV_LN10 = 0.43429448190325176;\nconst float _IV_INV_LN2 = 1.4426950408889634;\n\nvec2 _iv_log10(vec2 a) {\n vec2 r = vec2(a.x > 0.0 ? log(a.x) * _IV_INV_LN10 : -IV_INF, log(a.y) * _IV_INV_LN10);\n r = (a.y <= 0.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_log2(vec2 a) {\n vec2 r = vec2(a.x > 0.0 ? log(a.x) * _IV_INV_LN2 : -IV_INF, log(a.y) * _IV_INV_LN2);\n r = (a.y <= 0.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\n// Non-integer power. Real only for base \u2265 0: fully-negative box \u2192 empty; a box\n// straddling 0 clamps the base low end to 0. `p` is a compile-time constant, so\n// the `p >= 0` test is a constant branch.\nvec2 _iv_powf(vec2 a, float p) {\n float lob = max(a.x, 0.0);\n float e0 = pow(lob, p), e1 = pow(a.y, p);\n vec2 r = (p >= 0.0) ? vec2(e0, e1) : vec2(e1, e0);\n r = (a.y < 0.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\n// \u2500\u2500 Phase 3: trigonometric & inverse-trigonometric functions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Mirrors interval-js (interval/trigonometric.ts): exact endpoints with\n// extremum snapping (no outward epsilon). Per the Option-A contract, a tan pole\n// yields `entire` (interval-js returns `singular`; entire \u2287 singular and the\n// CPU classifies the asymptote).\n\nconst float _IV_PI = 3.141592653589793;\nconst float _IV_TWO_PI = 6.283185307179586;\nconst float _IV_HALF_PI = 1.5707963267948966;\nconst float _IV_THREE_HALF_PI = 4.71238898038469;\n\n// True if [a] contains an extremum of the family { ext + n\u00B7period }.\nbool _iv_has_ext(vec2 a, float ext, float period) {\n float n = ceil((a.x - ext) / period);\n float cand = ext + n * period;\n return cand >= a.x - 1e-15 && cand <= a.y + 1e-15;\n}\n\nvec2 _iv_sin(vec2 a) {\n vec2 r;\n if (a.y - a.x >= _IV_TWO_PI) r = vec2(-1.0, 1.0);\n else {\n float sl = sin(a.x), sh = sin(a.y);\n float lo = min(sl, sh), hi = max(sl, sh);\n if (_iv_has_ext(a, _IV_HALF_PI, _IV_TWO_PI)) hi = 1.0;\n if (_iv_has_ext(a, _IV_THREE_HALF_PI, _IV_TWO_PI)) lo = -1.0;\n r = vec2(lo, hi);\n }\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_cos(vec2 a) {\n vec2 r;\n if (a.y - a.x >= _IV_TWO_PI) r = vec2(-1.0, 1.0);\n else {\n float cl = cos(a.x), ch = cos(a.y);\n float lo = min(cl, ch), hi = max(cl, ch);\n if (_iv_has_ext(a, 0.0, _IV_TWO_PI)) hi = 1.0;\n if (_iv_has_ext(a, _IV_PI, _IV_TWO_PI)) lo = -1.0;\n r = vec2(lo, hi);\n }\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_tan(vec2 a) {\n // A pole in the interval \u2192 entire (cannot exclude).\n bool pole =\n (a.y - a.x >= _IV_PI) || _iv_has_ext(a, _IV_HALF_PI, _IV_PI);\n float tl = tan(a.x), th = tan(a.y);\n // Floating-point branch-cross sanity (large opposite-sign endpoints).\n bool crossed = (tl > 1e10 && th < -1e10) || (tl < -1e10 && th > 1e10);\n vec2 r = (pole || crossed) ? IV_ENTIRE : vec2(tl, th);\n return _iv_guard1(_iv_clamp(r), a);\n}\n\n// asin: domain [\u22121, 1]. Fully outside \u2192 empty; straddling clamps to the valid\n// sub-range. Monotonic increasing.\nvec2 _iv_asin(vec2 a) {\n vec2 r = vec2(asin(max(a.x, -1.0)), asin(min(a.y, 1.0)));\n r = (a.x > 1.0 || a.y < -1.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\n// acos: domain [\u22121, 1], monotonic decreasing (bounds swap).\nvec2 _iv_acos(vec2 a) {\n vec2 r = vec2(acos(min(a.y, 1.0)), acos(max(a.x, -1.0)));\n r = (a.x > 1.0 || a.y < -1.0) ? IV_EMPTY : r;\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_atan(vec2 a) {\n return _iv_guard1(_iv_clamp(vec2(atan(a.x), atan(a.y))), a);\n}\n\n// \u2500\u2500 Discontinuous / step functions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Bounded jump-discontinuity functions return the TIGHT value-range enclosure\n// (sound, and excludable when the range misses 0) rather than `entire` \u2014 only\n// genuine poles are entire. Per the Option-A division of labor, the CPU still\n// classifies the discontinuity on the (kept) live cells; the GPU only needs a\n// sound bound for the exclusion test. These functions are monotone, so the\n// enclosure is just [f(lo), f(hi)] unless noted.\n\nvec2 _iv_floor(vec2 a) { return _iv_guard1(_iv_clamp(vec2(floor(a.x), floor(a.y))), a); }\nvec2 _iv_ceil(vec2 a) { return _iv_guard1(_iv_clamp(vec2(ceil(a.x), ceil(a.y))), a); }\nvec2 _iv_round(vec2 a) { return _iv_guard1(_iv_clamp(vec2(floor(a.x + 0.5), floor(a.y + 0.5))), a); }\nvec2 _iv_trunc(vec2 a) { return _iv_guard1(_iv_clamp(vec2(trunc(a.x), trunc(a.y))), a); }\nvec2 _iv_sign(vec2 a) { return _iv_guard1(vec2(sign(a.x), sign(a.y)), a); }\n\nvec2 _iv_heaviside(vec2 a) {\n float hl = a.x < 0.0 ? 0.0 : (a.x > 0.0 ? 1.0 : 0.5);\n float hh = a.y < 0.0 ? 0.0 : (a.y > 0.0 ? 1.0 : 0.5);\n return _iv_guard1(vec2(hl, hh), a);\n}\n\n// fract(x) = x \u2212 floor(x): continuous within an integer cell, sawtooth across\n// one (\u2192 full [0, 1] range).\nvec2 _iv_fract(vec2 a) {\n float fl = floor(a.x);\n vec2 r = (fl == floor(a.y)) ? vec2(a.x - fl, a.y - fl) : vec2(0.0, 1.0);\n return _iv_guard1(_iv_clamp(r), a);\n}\n\nvec2 _iv_min(vec2 a, vec2 b) {\n return _iv_guard2(_iv_clamp(vec2(min(a.x, b.x), min(a.y, b.y))), a, b);\n}\nvec2 _iv_max(vec2 a, vec2 b) {\n return _iv_guard2(_iv_clamp(vec2(max(a.x, b.x), max(a.y, b.y))), a, b);\n}\n\n// mod(x, y) = x \u2212 y\u00B7floor(x/y). A modulus straddling 0 is a pole \u2192 entire. For\n// a constant (point) modulus the fast path is exact; otherwise compose (the\n// tight floor keeps it sound).\nvec2 _iv_mod(vec2 a, vec2 b) {\n if (b.x <= 0.0 && b.y >= 0.0) return _iv_guard2(IV_ENTIRE, a, b);\n if (b.x == b.y) {\n float p = abs(b.x);\n float flo = floor(a.x / p);\n vec2 r = (flo == floor(a.y / p)) ? vec2(a.x - p * flo, a.y - p * flo)\n : vec2(0.0, p);\n return _iv_guard2(_iv_clamp(r), a, b);\n }\n return _iv_sub(a, _iv_mul(b, _iv_floor(_iv_div(a, b))));\n}\n";
|
|
10
|
+
/**
|
|
11
|
+
* GLSL interval-arithmetic compilation target. Reuses `GLSLTarget`'s shader
|
|
12
|
+
* assembly; swaps in the interval function table, the `vec2` point-interval
|
|
13
|
+
* number/var hooks, and the `_iv_*` preamble.
|
|
14
|
+
*/
|
|
15
|
+
export declare class IntervalGLSLTarget extends GLSLTarget {
|
|
16
|
+
protected readonly languageId = "interval-glsl";
|
|
17
|
+
getOperators(): CompiledOperators;
|
|
18
|
+
getFunctions(): CompiledFunctions<Expression>;
|
|
19
|
+
getConstants(): Record<string, string>;
|
|
20
|
+
createTarget(options?: Partial<CompileTarget<Expression>>): CompileTarget<Expression>;
|
|
21
|
+
compile(expr: Expression, options?: CompilationOptions<Expression>): CompilationResult;
|
|
22
|
+
/**
|
|
23
|
+
* Emit a complete, self-contained GLSL fragment shader implementing the
|
|
24
|
+
* **interval exclusion oracle** for the implicit curve `f = 0` (Phase 4).
|
|
25
|
+
*
|
|
26
|
+
* The shader is structured so the core contract — the interval evaluator —
|
|
27
|
+
* is cleanly separable from the render harness:
|
|
28
|
+
*
|
|
29
|
+
* - `vec2 _implicit(<vec2 per free variable>)` evaluates the interval of `f`
|
|
30
|
+
* over a cell box (this is the part that matters; it is identical to
|
|
31
|
+
* `compile(expr).code` wrapped in a function).
|
|
32
|
+
* - `main()` is a **reference harness**: it derives each fragment's cell box
|
|
33
|
+
* from `gl_FragCoord` and the viewport uniforms, evaluates `_implicit`, and
|
|
34
|
+
* writes the exclusion result. The renderer is free to replace `main()` /
|
|
35
|
+
* the uniforms with its own conventions and keep `_implicit`.
|
|
36
|
+
*
|
|
37
|
+
* The first free variable maps to `u_domainX`, the second to `u_domainY`
|
|
38
|
+
* (≤ 2 free variables; a 2D implicit curve). The exclusion predicate is
|
|
39
|
+
* `f.lo > 0 || f.hi < 0` — which also excludes the `empty` (domain-undefined)
|
|
40
|
+
* interval, since its `lo` is the `+IV_INF` sentinel.
|
|
41
|
+
*
|
|
42
|
+
* @throws if the expression has more than two free variables, or cannot be
|
|
43
|
+
* lowered (an unsupported head propagates from `BaseCompiler.compile`).
|
|
44
|
+
*/
|
|
45
|
+
compileExclusionShader(expr: Expression, options?: {
|
|
46
|
+
version?: string;
|
|
47
|
+
precision?: string;
|
|
48
|
+
}): string;
|
|
49
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import { chop, factorial, factorial2, gcd, lcm, limit } from '../numerics/numeric';
|
|
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';
|
|
3
|
+
import { gamma, gammaln, erf, erfc, erfInv, beta, digamma, trigamma, polygamma, zeta, lambertW, besselJ, besselY, besselI, besselK, airyAi, airyBi, fresnelS, fresnelC, sinc, sinIntegral, cosIntegral, expIntegralEi, logIntegral, erfi, agm, ellipticK, ellipticE, ellipticEIncomplete, ellipticF, ellipticPiComplete, ellipticPiIncomplete, hypergeometric2F1, hypergeometric1F1 } from '../numerics/special-functions';
|
|
4
4
|
import { choose } from '../boxed-expression/expand';
|
|
5
5
|
import { interquartileRange, kurtosis, mean, median, mode, populationStandardDeviation, populationVariance, quartiles, skewness, standardDeviation, variance } from '../numerics/statistics';
|
|
6
6
|
import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult, ComplexResult } from './types';
|
|
@@ -68,6 +68,20 @@ export declare class ComputeEngineFunction extends Function {
|
|
|
68
68
|
sinc: typeof sinc;
|
|
69
69
|
fresnelS: typeof fresnelS;
|
|
70
70
|
fresnelC: typeof fresnelC;
|
|
71
|
+
sinIntegral: typeof sinIntegral;
|
|
72
|
+
cosIntegral: typeof cosIntegral;
|
|
73
|
+
expIntegralEi: typeof expIntegralEi;
|
|
74
|
+
logIntegral: typeof logIntegral;
|
|
75
|
+
erfi: typeof erfi;
|
|
76
|
+
agm: typeof agm;
|
|
77
|
+
ellipticK: typeof ellipticK;
|
|
78
|
+
ellipticE: typeof ellipticE;
|
|
79
|
+
ellipticEIncomplete: typeof ellipticEIncomplete;
|
|
80
|
+
ellipticF: typeof ellipticF;
|
|
81
|
+
ellipticPiComplete: typeof ellipticPiComplete;
|
|
82
|
+
ellipticPiIncomplete: typeof ellipticPiIncomplete;
|
|
83
|
+
hypergeometric2F1: typeof hypergeometric2F1;
|
|
84
|
+
hypergeometric1F1: typeof hypergeometric1F1;
|
|
71
85
|
mandelbrot: (c: number | {
|
|
72
86
|
re: number;
|
|
73
87
|
im: number;
|
|
@@ -258,6 +272,20 @@ export declare class ComputeEngineFunctionLiteral extends Function {
|
|
|
258
272
|
sinc: typeof sinc;
|
|
259
273
|
fresnelS: typeof fresnelS;
|
|
260
274
|
fresnelC: typeof fresnelC;
|
|
275
|
+
sinIntegral: typeof sinIntegral;
|
|
276
|
+
cosIntegral: typeof cosIntegral;
|
|
277
|
+
expIntegralEi: typeof expIntegralEi;
|
|
278
|
+
logIntegral: typeof logIntegral;
|
|
279
|
+
erfi: typeof erfi;
|
|
280
|
+
agm: typeof agm;
|
|
281
|
+
ellipticK: typeof ellipticK;
|
|
282
|
+
ellipticE: typeof ellipticE;
|
|
283
|
+
ellipticEIncomplete: typeof ellipticEIncomplete;
|
|
284
|
+
ellipticF: typeof ellipticF;
|
|
285
|
+
ellipticPiComplete: typeof ellipticPiComplete;
|
|
286
|
+
ellipticPiIncomplete: typeof ellipticPiIncomplete;
|
|
287
|
+
hypergeometric2F1: typeof hypergeometric2F1;
|
|
288
|
+
hypergeometric1F1: typeof hypergeometric1F1;
|
|
261
289
|
mandelbrot: (c: number | {
|
|
262
290
|
re: number;
|
|
263
291
|
im: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
/**
|
|
3
3
|
* Source code in the target language
|
|
4
4
|
*/
|
|
@@ -132,7 +132,21 @@ export interface CompilationOptions<Expr = unknown> {
|
|
|
132
132
|
operators?: Partial<CompiledOperators> | ((op: MathJsonSymbol) => [op: string, prec: number] | undefined);
|
|
133
133
|
/** Custom function implementations */
|
|
134
134
|
functions?: Record<MathJsonSymbol, TargetSource | Function>;
|
|
135
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Map a symbol to the target-language source emitted for it (e.g. a GLSL
|
|
137
|
+
* uniform name `{ a: 'u_var_a' }`, or a JS literal `{ a: 5 }`).
|
|
138
|
+
*
|
|
139
|
+
* A `vars`-mapped symbol is **never constant-folded**, even when the symbol
|
|
140
|
+
* has an assigned value in the engine (`ce.assign('a', …)`). The mapping
|
|
141
|
+
* always wins, so the generated code keeps referencing the mapped
|
|
142
|
+
* identifier — a per-frame uniform / argument write updates the result
|
|
143
|
+
* without recompiling. This is a guaranteed contract.
|
|
144
|
+
*
|
|
145
|
+
* A symbol that is *not* mapped here but *is* known to the engine (an
|
|
146
|
+
* assigned value or a declared constant) is folded into the generated code,
|
|
147
|
+
* matching `evaluate()` and `expr.unknowns`. A genuinely free symbol (no
|
|
148
|
+
* mapping, no value) is emitted through the target's free-symbol plumbing.
|
|
149
|
+
*/
|
|
136
150
|
vars?: Record<MathJsonSymbol, TargetSource>;
|
|
137
151
|
/** Additional imports/libraries to include */
|
|
138
152
|
imports?: unknown[];
|
|
@@ -232,6 +246,44 @@ export type CompilationResult<T extends string = string, R = number | ComplexRes
|
|
|
232
246
|
success: boolean;
|
|
233
247
|
/** Generated source code */
|
|
234
248
|
code: string;
|
|
249
|
+
/**
|
|
250
|
+
* Identifiers the generated `code` references that the caller must supply at
|
|
251
|
+
* run time (JS vars-object keys / GLSL uniforms) for the result to be
|
|
252
|
+
* self-contained.
|
|
253
|
+
*
|
|
254
|
+
* These are the expression's free symbols *as the generated code sees them*:
|
|
255
|
+
* symbols with no value in the engine, after assigned values and declared
|
|
256
|
+
* constants are folded in (so an assigned symbol is **not** listed — its
|
|
257
|
+
* value is inlined, matching `evaluate()`), and after bound variables (lambda
|
|
258
|
+
* parameters, `Sum`/`Product`/`Integrate`/`Loop` indices, `Block` locals) are
|
|
259
|
+
* excluded. A symbol supplied through the `vars` option is always listed —
|
|
260
|
+
* the mapping makes it an external input.
|
|
261
|
+
*
|
|
262
|
+
* Populated by the built-in targets on a successful compile. Use it instead
|
|
263
|
+
* of `expr.unknowns` when building a uniforms / vars mapping: unlike
|
|
264
|
+
* `unknowns`, it is guaranteed consistent with what the code actually
|
|
265
|
+
* references (including symbols reachable only through a folded value).
|
|
266
|
+
*/
|
|
267
|
+
freeSymbols?: string[];
|
|
268
|
+
/**
|
|
269
|
+
* Operator heads in the expression that this target cannot lower — they have
|
|
270
|
+
* no operator or function mapping and are not one of the structural forms the
|
|
271
|
+
* compiler handles directly. An empty array means every operator was
|
|
272
|
+
* lowerable.
|
|
273
|
+
*
|
|
274
|
+
* On the built-in `LanguageTarget.compile` paths a genuinely unsupported
|
|
275
|
+
* operator throws (so the engine-level `compile()` can fall back to
|
|
276
|
+
* interpretation); this field lets a caller detect the condition
|
|
277
|
+
* **declaratively** — it is populated on the engine-level `compile()` result
|
|
278
|
+
* (including its `success: false` fallback) and on successful direct-target
|
|
279
|
+
* compiles (where it is `[]`).
|
|
280
|
+
*/
|
|
281
|
+
unsupported?: string[];
|
|
282
|
+
/**
|
|
283
|
+
* When `success` is `false`, a human-readable reason the expression could not
|
|
284
|
+
* be compiled to the target (e.g. `Unknown operator \`SinIntegral\``).
|
|
285
|
+
*/
|
|
286
|
+
error?: string;
|
|
235
287
|
/**
|
|
236
288
|
* Library/helper code that must be included before the compiled `code`.
|
|
237
289
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import { BigDecimal } from '../big-decimal';
|
|
3
3
|
import { Type, TypeResolver, TypeString } from '../common/type/types';
|
|
4
4
|
import { BoxedType } from '../common/type/boxed-type';
|
|
@@ -550,6 +550,15 @@ export declare class ComputeEngine implements IComputeEngine {
|
|
|
550
550
|
details?: boolean;
|
|
551
551
|
maxDepth?: number;
|
|
552
552
|
}): void;
|
|
553
|
+
/** Stack of parameter-name sets active while canonicalizing function bodies.
|
|
554
|
+
* @internal */
|
|
555
|
+
private _shadowedParameterStack;
|
|
556
|
+
/** @internal */
|
|
557
|
+
_pushShadowedParameters(names: ReadonlyArray<string>): void;
|
|
558
|
+
/** @internal */
|
|
559
|
+
_popShadowedParameters(): void;
|
|
560
|
+
/** @internal */
|
|
561
|
+
_isShadowedParameter(name: string): boolean;
|
|
553
562
|
/**
|
|
554
563
|
* Use `ce.expr(name)` instead
|
|
555
564
|
* @internal */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_CALCULUS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_COMPLEX: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_SETS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_STATISTICS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
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.
|
|
1
|
+
/* 0.61.0 */
|
|
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';
|