@cortex-js/compute-engine 0.58.0 → 0.59.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/README.md +4 -0
- package/dist/compile.esm.js +1721 -483
- package/dist/compile.min.esm.js +122 -74
- package/dist/compile.min.umd.cjs +122 -74
- package/dist/compile.umd.cjs +1721 -483
- package/dist/compute-engine.esm.js +25209 -22883
- package/dist/compute-engine.min.esm.js +135 -87
- package/dist/compute-engine.min.umd.cjs +135 -87
- package/dist/compute-engine.umd.cjs +24952 -22626
- package/dist/core.esm.js +25208 -22882
- package/dist/core.min.esm.js +134 -86
- package/dist/core.min.umd.cjs +134 -86
- package/dist/core.umd.cjs +24951 -22625
- package/dist/identities.esm.js +1921 -0
- package/dist/identities.min.esm.js +2 -0
- package/dist/identities.min.umd.cjs +4 -0
- package/dist/identities.umd.cjs +1946 -0
- package/dist/interval.esm.js +653 -330
- package/dist/interval.min.esm.js +8 -8
- package/dist/interval.min.umd.cjs +8 -8
- package/dist/interval.umd.cjs +653 -330
- package/dist/latex-syntax.esm.js +758 -512
- package/dist/latex-syntax.min.esm.js +7 -7
- package/dist/latex-syntax.min.umd.cjs +7 -7
- package/dist/latex-syntax.umd.cjs +758 -512
- package/dist/math-json.esm.js +8 -12
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +8 -12
- package/dist/numerics.esm.js +1349 -228
- package/dist/numerics.min.esm.js +16 -5
- package/dist/numerics.min.umd.cjs +16 -5
- package/dist/numerics.umd.cjs +1349 -228
- 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 -208
- package/dist/types/common/type/parser.d.ts +124 -2
- package/dist/types/common/type/primitive.d.ts +5 -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 +18 -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 +13 -6
- 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 +3 -3
- 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 +140 -0
- 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 +14 -4
- 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/rule-index.d.ts +112 -0
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +2 -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 +16 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +15 -5
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +4 -4
- 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 +1 -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 +10 -2
- 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/fungrim/loader.d.ts +13 -0
- package/dist/types/compute-engine/fungrim/types.d.ts +160 -0
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +48 -2
- 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 +10 -2
- package/dist/types/compute-engine/interval/index.d.ts +2 -2
- 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 +4 -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 +3 -2
- 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 -11
- 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 +13 -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 +27 -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 +7 -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 +39 -0
- 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 +12 -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/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 +78 -10
- 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 +3 -3
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +19 -3
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +17 -14
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +32 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +45 -3
- 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 +3 -0
- 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 +9 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* GPU shader operators shared by GLSL and WGSL.
|
|
@@ -33,14 +33,24 @@ export declare function compileGPUMatrix(args: ReadonlyArray<Expression>, compil
|
|
|
33
33
|
* GPU gamma function using Lanczos approximation (g=7, n=9 coefficients).
|
|
34
34
|
*
|
|
35
35
|
* Uses reflection formula for z < 0.5 and Lanczos for z >= 0.5.
|
|
36
|
-
*
|
|
36
|
+
* GLSL syntax.
|
|
37
37
|
*/
|
|
38
|
-
export declare const
|
|
38
|
+
export declare const GPU_GAMMA_PREAMBLE_GLSL = "\nfloat _gpu_gamma(float z) {\n const float PI = 3.14159265358979;\n // For z < 0.5, use reflection formula with inlined Lanczos (non-recursive)\n float w = z;\n if (z < 0.5) w = 1.0 - z;\n w -= 1.0;\n float x = 0.99999999999980993;\n x += 676.5203681218851 / (w + 1.0);\n x += -1259.1392167224028 / (w + 2.0);\n x += 771.32342877765313 / (w + 3.0);\n x += -176.61502916214059 / (w + 4.0);\n x += 12.507343278686905 / (w + 5.0);\n x += -0.13857109526572012 / (w + 6.0);\n x += 9.9843695780195716e-6 / (w + 7.0);\n x += 1.5056327351493116e-7 / (w + 8.0);\n float t = w + 7.5;\n float g = sqrt(2.0 * PI) * pow(t, w + 0.5) * exp(-t) * x;\n if (z < 0.5) return PI / (sin(PI * z) * g);\n return g;\n}\n\nfloat _gpu_gammaln(float z) {\n // Stirling asymptotic expansion for ln(Gamma(z)), z > 0\n float z3 = z * z * z;\n return z * log(z) - z - 0.5 * log(z)\n + 0.5 * log(2.0 * 3.14159265358979)\n + 1.0 / (12.0 * z)\n - 1.0 / (360.0 * z3)\n + 1.0 / (1260.0 * z3 * z * z);\n}\n";
|
|
39
|
+
/**
|
|
40
|
+
* GPU Gamma function preamble (WGSL syntax). WGSL has no implicit GLSL-style
|
|
41
|
+
* `float`/braceless-`if` syntax, so a `_WGSL` variant is required (the GLSL
|
|
42
|
+
* preamble does not compile as WGSL).
|
|
43
|
+
*/
|
|
44
|
+
export declare const GPU_GAMMA_PREAMBLE_WGSL = "\nfn _gpu_gamma(z: f32) -> f32 {\n let PI = 3.14159265358979;\n var w = z;\n if (z < 0.5) { w = 1.0 - z; }\n w = w - 1.0;\n var x = 0.99999999999980993;\n x = x + 676.5203681218851 / (w + 1.0);\n x = x + -1259.1392167224028 / (w + 2.0);\n x = x + 771.32342877765313 / (w + 3.0);\n x = x + -176.61502916214059 / (w + 4.0);\n x = x + 12.507343278686905 / (w + 5.0);\n x = x + -0.13857109526572012 / (w + 6.0);\n x = x + 9.9843695780195716e-6 / (w + 7.0);\n x = x + 1.5056327351493116e-7 / (w + 8.0);\n let t = w + 7.5;\n let g = sqrt(2.0 * PI) * pow(t, w + 0.5) * exp(-t) * x;\n if (z < 0.5) { return PI / (sin(PI * z) * g); }\n return g;\n}\n\nfn _gpu_gammaln(z: f32) -> f32 {\n let z3 = z * z * z;\n return z * log(z) - z - 0.5 * log(z)\n + 0.5 * log(2.0 * 3.14159265358979)\n + 1.0 / (12.0 * z)\n - 1.0 / (360.0 * z3)\n + 1.0 / (1260.0 * z3 * z * z);\n}\n";
|
|
39
45
|
/**
|
|
40
46
|
* GPU error function using Abramowitz & Stegun approximation.
|
|
41
|
-
* Maximum error: |epsilon(x)| <= 1.5e-7.
|
|
47
|
+
* Maximum error: |epsilon(x)| <= 1.5e-7. GLSL syntax.
|
|
48
|
+
*/
|
|
49
|
+
export declare const GPU_ERF_PREAMBLE_GLSL = "\nfloat _gpu_erf(float x) {\n float ax = abs(x);\n float t = 1.0 / (1.0 + 0.3275911 * ax);\n float y = ((((1.061405429 * t - 1.453152027) * t + 1.421413741) * t - 0.284496736) * t + 0.254829592) * t;\n float result = 1.0 - y * exp(-ax * ax);\n return x < 0.0 ? -result : result;\n}\n\nfloat _gpu_erfinv(float x) {\n float pi = 3.14159265358979;\n float x2 = x * x;\n float x3 = x * x2;\n float x5 = x3 * x2;\n float x7 = x5 * x2;\n float x9 = x7 * x2;\n return sqrt(pi) * 0.5 * (x + (pi / 12.0) * x3 + (7.0 * pi * pi / 480.0) * x5 + (127.0 * pi * pi * pi / 40320.0) * x7 + (4369.0 * pi * pi * pi * pi / 5806080.0) * x9);\n}\n";
|
|
50
|
+
/**
|
|
51
|
+
* GPU error function preamble (WGSL syntax). See GPU_GAMMA_PREAMBLE_WGSL.
|
|
42
52
|
*/
|
|
43
|
-
export declare const
|
|
53
|
+
export declare const GPU_ERF_PREAMBLE_WGSL = "\nfn _gpu_erf(x: f32) -> f32 {\n let ax = abs(x);\n let t = 1.0 / (1.0 + 0.3275911 * ax);\n let y = ((((1.061405429 * t - 1.453152027) * t + 1.421413741) * t - 0.284496736) * t + 0.254829592) * t;\n let result = 1.0 - y * exp(-ax * ax);\n if (x < 0.0) { return -result; }\n return result;\n}\n\nfn _gpu_erfinv(x: f32) -> f32 {\n let pi = 3.14159265358979;\n let x2 = x * x;\n let x3 = x * x2;\n let x5 = x3 * x2;\n let x7 = x5 * x2;\n let x9 = x7 * x2;\n return sqrt(pi) * 0.5 * (x + (pi / 12.0) * x3 + (7.0 * pi * pi / 480.0) * x5 + (127.0 * pi * pi * pi / 40320.0) * x7 + (4369.0 * pi * pi * pi * pi / 5806080.0) * x9);\n}\n";
|
|
44
54
|
/**
|
|
45
55
|
* GPU Heaviside step function preamble (GLSL syntax).
|
|
46
56
|
* Returns 0 for x<0, 0.5 at x=0, 1 for x>0.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
* JavaScript interval arithmetic compilation target
|
|
3
3
|
*
|
|
4
4
|
* Compiles mathematical expressions to JavaScript code using interval arithmetic
|
|
@@ -61,9 +61,9 @@ export declare class ComputeEngineIntervalFunction extends Function {
|
|
|
61
61
|
gammaln: typeof import("../interval").gammaln;
|
|
62
62
|
factorial: typeof import("../interval").factorial;
|
|
63
63
|
factorial2: typeof import("../interval").factorial2;
|
|
64
|
-
binomial: typeof import("../interval
|
|
65
|
-
gcd: typeof import("../interval
|
|
66
|
-
lcm: typeof import("../interval
|
|
64
|
+
binomial: typeof import("../interval").binomial;
|
|
65
|
+
gcd: typeof import("../interval").gcd;
|
|
66
|
+
lcm: typeof import("../interval").lcm;
|
|
67
67
|
chop: typeof import("../interval/elementary").chop;
|
|
68
68
|
erf: typeof import("../interval/elementary").erf;
|
|
69
69
|
erfc: typeof import("../interval/elementary").erfc;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
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.
|
|
1
|
+
/* 0.59.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.59.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.59.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.59.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.59.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,6 +1,14 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
/**
|
|
3
|
-
* Internal holder for
|
|
3
|
+
* Internal holder for a rule array and its cache-staleness marker.
|
|
4
|
+
*
|
|
5
|
+
* Despite its name, this class is rule-agnostic and backs all three
|
|
6
|
+
* engine rule stores: `ce.simplificationRules`, `ce.solveRules` and
|
|
7
|
+
* `ce.harmonizationRules`.
|
|
8
|
+
*
|
|
9
|
+
* Note: mutation detection is length-based, so a same-length in-place
|
|
10
|
+
* element replacement is not detected. Use the property setter (full
|
|
11
|
+
* replacement) for that.
|
|
4
12
|
*
|
|
5
13
|
* @internal
|
|
6
14
|
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
import type { FungrimLoadOptions, FungrimLoadReport, FungrimRuleData } from './types';
|
|
3
|
+
/** The compiled artifact (the whole slice, bundled as JSON). */
|
|
4
|
+
export declare const FUNGRIM_CORE: FungrimRuleData;
|
|
5
|
+
/**
|
|
6
|
+
* Load the compiled Fungrim identities into a Compute Engine instance.
|
|
7
|
+
*
|
|
8
|
+
* Synchronous and idempotent per engine: a second call with an overlapping
|
|
9
|
+
* selection skips the already-loaded rule ids. Shell declarations go into
|
|
10
|
+
* the **current** scope — call `loadIdentities` before declaring user
|
|
11
|
+
* symbols that could shadow shell heads.
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadIdentities(ce: IComputeEngine, options?: FungrimLoadOptions): FungrimLoadReport;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
import type { BoxedSubstitution } from '../types-serialization';
|
|
3
|
+
/** Raw MathJSON — the artifact is plain JSON. */
|
|
4
|
+
export type FungrimMathJson = unknown;
|
|
5
|
+
/**
|
|
6
|
+
* A declarative guard specification, compiled offline from a corpus entry's
|
|
7
|
+
* assumptions (FUNGRIM-PLAN-5-LOADER.md §2.2). The runtime loader turns each
|
|
8
|
+
* spec into a tri-valued condition closure; every predicate must return a
|
|
9
|
+
* definitive positive for the rule to fire (fail-closed).
|
|
10
|
+
*/
|
|
11
|
+
export type GuardSpec = {
|
|
12
|
+
k: 'type';
|
|
13
|
+
wc: string;
|
|
14
|
+
t: 'integer' | 'real' | 'rational' | 'complex';
|
|
15
|
+
} | {
|
|
16
|
+
k: 'cmp';
|
|
17
|
+
wc: string;
|
|
18
|
+
op: 'gt' | 'ge' | 'lt' | 'le';
|
|
19
|
+
bound: FungrimMathJson;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Phase 3: comparison over a part extractor of the substituted value —
|
|
23
|
+
* `Greater(Re(z), 0)`, `Less(Abs(q), 1)`, `Element(Im(z), Interval(a,b))`.
|
|
24
|
+
* Literal substitutions fold numerically; symbol substitutions consult the
|
|
25
|
+
* Track-3 part-bound assumption facts.
|
|
26
|
+
*/
|
|
27
|
+
| {
|
|
28
|
+
k: 'part-cmp';
|
|
29
|
+
wc: string;
|
|
30
|
+
part: 're' | 'im' | 'abs' | 'arg';
|
|
31
|
+
op: 'gt' | 'ge' | 'lt' | 'le';
|
|
32
|
+
bound: FungrimMathJson;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Phase 3: membership in an inert or compound set (`HH`, explicit
|
|
36
|
+
* `Set(…)`, `Union(…)`). Fires only on a literal `True` from the Element
|
|
37
|
+
* evaluation — for inert shells like `HH` (no `contains` handler) that is
|
|
38
|
+
* the Track-3 stored-membership exact-match path
|
|
39
|
+
* (`assume(Element(tau, HH))`); literals can never discharge those.
|
|
40
|
+
*/
|
|
41
|
+
| {
|
|
42
|
+
k: 'member';
|
|
43
|
+
wc: string;
|
|
44
|
+
set: FungrimMathJson;
|
|
45
|
+
} | {
|
|
46
|
+
k: 'ne';
|
|
47
|
+
lhs: FungrimMathJson;
|
|
48
|
+
rhs: FungrimMathJson;
|
|
49
|
+
} | {
|
|
50
|
+
k: 'eval';
|
|
51
|
+
pred: FungrimMathJson;
|
|
52
|
+
};
|
|
53
|
+
/** Corpus entry class of a compiled rule. */
|
|
54
|
+
export type FungrimRuleClass = 'specific-value' | 'identity';
|
|
55
|
+
/** Which engine rule store a compiled rule is routed to. */
|
|
56
|
+
export type FungrimRuleTarget = 'simplify' | 'solve' | 'harmonization';
|
|
57
|
+
/**
|
|
58
|
+
* One compiled rule record from the artifact. `match`/`replace` are stored
|
|
59
|
+
* in CANONICAL-form MathJSON: the loader must box them canonically (in a
|
|
60
|
+
* scope where the wildcards carry their guard-implied types) before handing
|
|
61
|
+
* them to the engine.
|
|
62
|
+
*/
|
|
63
|
+
export type CompiledFungrimRule = {
|
|
64
|
+
/** `'fungrim:<entry-id>'` — surfaces in `simplify()` steps' `because`. */
|
|
65
|
+
id: string;
|
|
66
|
+
match: FungrimMathJson;
|
|
67
|
+
replace: FungrimMathJson;
|
|
68
|
+
guards: GuardSpec[];
|
|
69
|
+
purpose: RulePurpose;
|
|
70
|
+
target: FungrimRuleTarget;
|
|
71
|
+
class: FungrimRuleClass;
|
|
72
|
+
/** Heads referenced by the rule (for shell pruning and diagnostics). */
|
|
73
|
+
heads: string[];
|
|
74
|
+
/** Corpus topics (for load-time filtering). */
|
|
75
|
+
topics: string[];
|
|
76
|
+
};
|
|
77
|
+
/** A pruned shell declaration: a head referenced by the compiled rules that
|
|
78
|
+
* is not a Compute Engine built-in. */
|
|
79
|
+
export type FungrimShellDeclaration = {
|
|
80
|
+
signature: string;
|
|
81
|
+
description?: string;
|
|
82
|
+
arity?: number | number[];
|
|
83
|
+
};
|
|
84
|
+
/** Provenance and compile-time statistics baked into the artifact. */
|
|
85
|
+
export type FungrimManifest = {
|
|
86
|
+
schemaVersion: number;
|
|
87
|
+
generator: string;
|
|
88
|
+
upstream: {
|
|
89
|
+
name: string;
|
|
90
|
+
snapshotSha256: string | null;
|
|
91
|
+
translator: string | null;
|
|
92
|
+
};
|
|
93
|
+
slice: {
|
|
94
|
+
classes: string[];
|
|
95
|
+
guardLevels: string[];
|
|
96
|
+
entries: number;
|
|
97
|
+
};
|
|
98
|
+
counts: {
|
|
99
|
+
rules: number;
|
|
100
|
+
byPurpose: Record<string, number>;
|
|
101
|
+
byClass: Record<string, number>;
|
|
102
|
+
byTarget: Record<string, number>;
|
|
103
|
+
};
|
|
104
|
+
/** Offline skip counts by reason (guard-uncompilable, compat-signature,
|
|
105
|
+
* wildcard-loss, no-fire, duplicate-undirected, lhs-not-value-form, …). */
|
|
106
|
+
ledger: Record<string, number>;
|
|
107
|
+
};
|
|
108
|
+
/** The shape of the compiled artifact (`fungrim-core-data.json`). */
|
|
109
|
+
export type FungrimRuleData = {
|
|
110
|
+
manifest: FungrimManifest;
|
|
111
|
+
declarations: Record<string, FungrimShellDeclaration>;
|
|
112
|
+
rules: CompiledFungrimRule[];
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Debug hook invoked when a rule's condition fails specifically because a
|
|
116
|
+
* guard predicate returned `undefined` (unknown) — as opposed to a
|
|
117
|
+
* definitive negative. Converts "the rule silently didn't fire" into an
|
|
118
|
+
* actionable trace (FUNGRIM-PLAN-5-LOADER.md §2.8).
|
|
119
|
+
*/
|
|
120
|
+
export type FungrimGuardUndecidedHandler = (ruleId: string, wildcards: BoxedSubstitution) => void;
|
|
121
|
+
/** Options for `loadIdentities()` (FUNGRIM-PLAN-5-LOADER.md §2.1). */
|
|
122
|
+
export type FungrimLoadOptions = {
|
|
123
|
+
/** Only load rules tagged with at least one of these corpus topics. */
|
|
124
|
+
topics?: ReadonlyArray<string>;
|
|
125
|
+
/** Only load rules of these classes. */
|
|
126
|
+
classes?: ReadonlyArray<FungrimRuleClass>;
|
|
127
|
+
/** Only load rules with these purposes. */
|
|
128
|
+
purposes?: ReadonlyArray<RulePurpose>;
|
|
129
|
+
/** When `true`, rules targeting the solve/harmonization stores are routed
|
|
130
|
+
* to `ce.solveRules`/`ce.harmonizationRules`. **Default**: `false`
|
|
131
|
+
* (such rules are skipped with reason `'solve-disabled'`). */
|
|
132
|
+
solve?: boolean;
|
|
133
|
+
/** Debug hook for guard predicates that return `undefined`. */
|
|
134
|
+
onGuardUndecided?: FungrimGuardUndecidedHandler;
|
|
135
|
+
/** Alternate compiled artifact (testing, future per-family data modules).
|
|
136
|
+
* **Default**: the bundled `FUNGRIM_CORE` artifact. */
|
|
137
|
+
data?: FungrimRuleData;
|
|
138
|
+
};
|
|
139
|
+
/** The report returned by `loadIdentities()` (FUNGRIM-PLAN-5-LOADER.md §2.8). */
|
|
140
|
+
export type FungrimLoadReport = {
|
|
141
|
+
/** Number of rules registered by this call. */
|
|
142
|
+
loaded: number;
|
|
143
|
+
byTarget: Record<FungrimRuleTarget, number>;
|
|
144
|
+
byPurpose: Record<RulePurpose, number>;
|
|
145
|
+
/** Shell heads newly declared in the current scope by this call. */
|
|
146
|
+
declared: string[];
|
|
147
|
+
/** Runtime skips: selection filters, already-loaded ids, boxing failures
|
|
148
|
+
* in the user's environment. */
|
|
149
|
+
skipped: {
|
|
150
|
+
id: string;
|
|
151
|
+
reason: string;
|
|
152
|
+
}[];
|
|
153
|
+
/** Baked-in offline skip counts by reason, from the artifact manifest —
|
|
154
|
+
* what the *corpus* contains vs. what this artifact can do. */
|
|
155
|
+
compileLedger: Record<string, number>;
|
|
156
|
+
};
|
|
157
|
+
export type IdentitiesLoadOptions = FungrimLoadOptions;
|
|
158
|
+
export type IdentitiesLoadReport = FungrimLoadReport;
|
|
159
|
+
export type IdentitiesRuleData = FungrimRuleData;
|
|
160
|
+
export type IdentitiesGuardUndecidedHandler = FungrimGuardUndecidedHandler;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.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,11 +1,11 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.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';
|
|
5
5
|
import type { OneOf } from '../common/one-of';
|
|
6
6
|
import type { ConfigurationChangeListener } from '../common/configuration-change';
|
|
7
7
|
import type { MathJsonExpression, MathJsonSymbol, MathJsonNumberObject } from '../math-json/types';
|
|
8
|
-
import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition, OperatorInfo, SymbolInfo } from './global-types';
|
|
8
|
+
import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, RulePurpose, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition, OperatorInfo, SymbolInfo } from './global-types';
|
|
9
9
|
import type { LibraryCategory, ParseLatexOptions, SerializeLatexOptions } from './latex-syntax/types';
|
|
10
10
|
import type { BigNum, Rational } from './numerics/types';
|
|
11
11
|
import { ExactNumericValueData, NumericValue, NumericValueData } from './numeric-value/types';
|
|
@@ -92,6 +92,10 @@ export declare class ComputeEngine implements IComputeEngine {
|
|
|
92
92
|
private _cost?;
|
|
93
93
|
/** @internal Backing state for simplificationRules */
|
|
94
94
|
private _simplificationRules;
|
|
95
|
+
/** @internal Backing state for solveRules */
|
|
96
|
+
private _solveRules;
|
|
97
|
+
/** @internal Backing state for harmonizationRules */
|
|
98
|
+
private _harmonizationRules;
|
|
95
99
|
/** @internal Registry of compilation targets */
|
|
96
100
|
private _compilationTargets;
|
|
97
101
|
/** @internal Fu trigonometric simplification algorithm */
|
|
@@ -112,6 +116,8 @@ export declare class ComputeEngine implements IComputeEngine {
|
|
|
112
116
|
get contextStack(): ReadonlyArray<EvalContext>;
|
|
113
117
|
set contextStack(stack: ReadonlyArray<EvalContext>);
|
|
114
118
|
/** @internal */
|
|
119
|
+
private __typeResolver;
|
|
120
|
+
/** @internal */
|
|
115
121
|
get _typeResolver(): TypeResolver;
|
|
116
122
|
/**
|
|
117
123
|
* Declare a new type in the current scope.
|
|
@@ -445,6 +451,43 @@ export declare class ComputeEngine implements IComputeEngine {
|
|
|
445
451
|
*/
|
|
446
452
|
get simplificationRules(): Rule[];
|
|
447
453
|
set simplificationRules(rules: Rule[]);
|
|
454
|
+
/**
|
|
455
|
+
* The rules used by `solve()` to find roots of univariate expressions.
|
|
456
|
+
*
|
|
457
|
+
* Each rule matches a normalized equation `f(_x) = 0` — the unknown is
|
|
458
|
+
* the wildcard `_x` — and `replace` produces a root expression.
|
|
459
|
+
* Conditions should reject matches where other wildcards capture `_x`.
|
|
460
|
+
*
|
|
461
|
+
* Candidate roots are validated against the original equation, so an
|
|
462
|
+
* over-eager template degrades to a no-op rather than a wrong answer.
|
|
463
|
+
*
|
|
464
|
+
* Initialized to a copy of the built-in root-finding rules.
|
|
465
|
+
*
|
|
466
|
+
* Add custom rules with `push()`:
|
|
467
|
+
* ```ts
|
|
468
|
+
* ce.solveRules.push({
|
|
469
|
+
* match: ['Add', ['Tan', '_x'], '__b'],
|
|
470
|
+
* replace: ['Arctan', ['Negate', '__b']],
|
|
471
|
+
* condition: ({ __b }) => !__b.has('_x'),
|
|
472
|
+
* });
|
|
473
|
+
* ```
|
|
474
|
+
*
|
|
475
|
+
* Or replace entirely:
|
|
476
|
+
* ```ts
|
|
477
|
+
* ce.solveRules = myCustomRules;
|
|
478
|
+
* ```
|
|
479
|
+
*/
|
|
480
|
+
get solveRules(): Rule[];
|
|
481
|
+
set solveRules(rules: Rule[]);
|
|
482
|
+
/**
|
|
483
|
+
* The rules used by `solve()` to transform an equation into equivalent,
|
|
484
|
+
* easier-to-solve forms before root-finding (e.g. `ln f(x) → f(x) - 1`).
|
|
485
|
+
*
|
|
486
|
+
* Same conventions and extension pattern as `solveRules`: the unknown is
|
|
487
|
+
* the wildcard `_x`; `push()` to extend, assign to replace.
|
|
488
|
+
*/
|
|
489
|
+
get harmonizationRules(): Rule[];
|
|
490
|
+
set harmonizationRules(rules: Rule[]);
|
|
448
491
|
/**
|
|
449
492
|
* Return definition matching the symbol, starting with the current
|
|
450
493
|
* lexical scope and going up the scope chain.
|
|
@@ -738,6 +781,9 @@ export declare class ComputeEngine implements IComputeEngine {
|
|
|
738
781
|
}): Expression;
|
|
739
782
|
rules(rules: Rule | ReadonlyArray<Rule | BoxedRule> | BoxedRuleSet | undefined | null, options?: {
|
|
740
783
|
canonical?: boolean;
|
|
784
|
+
/** Default purpose applied to any rule in the set that doesn't carry
|
|
785
|
+
* its own `purpose` tag (a per-rule tag takes precedence). */
|
|
786
|
+
purpose?: RulePurpose;
|
|
741
787
|
}): BoxedRuleSet;
|
|
742
788
|
/**
|
|
743
789
|
* Return a set of built-in rules.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
* Elementary interval functions (sqrt, pow, exp, ln, abs, floor, ceil, min, max, mod)
|
|
3
3
|
*
|
|
4
4
|
* @module interval/elementary
|
|
@@ -173,15 +173,23 @@ export declare function factorial(x: Interval | IntervalResult): IntervalResult;
|
|
|
173
173
|
export declare function factorial2(x: Interval | IntervalResult): IntervalResult;
|
|
174
174
|
/**
|
|
175
175
|
* Binomial coefficient C(n, k) on intervals.
|
|
176
|
-
*
|
|
176
|
+
*
|
|
177
|
+
* Both arguments are rounded to nearest integer. C(n, k) is not monotone in k
|
|
178
|
+
* (it peaks at k ≈ n/2), so the enclosure enumerates the integer grid.
|
|
177
179
|
*/
|
|
178
180
|
export declare function binomial(n: Interval | IntervalResult, k: Interval | IntervalResult): IntervalResult;
|
|
179
181
|
/**
|
|
180
182
|
* GCD on intervals. Both arguments rounded to nearest integer.
|
|
183
|
+
*
|
|
184
|
+
* gcd is not monotone (e.g. gcd(6, 5) = 1 sits between gcd(6, 6) = 6 and
|
|
185
|
+
* gcd(6, 4) = 2), so the enclosure enumerates the integer grid.
|
|
181
186
|
*/
|
|
182
187
|
export declare function gcd(a: Interval | IntervalResult, b: Interval | IntervalResult): IntervalResult;
|
|
183
188
|
/**
|
|
184
189
|
* LCM on intervals. Both arguments rounded to nearest integer.
|
|
190
|
+
*
|
|
191
|
+
* lcm is not monotone (e.g. lcm(2, 5) = 10 exceeds lcm(2, 6) = 6), so the
|
|
192
|
+
* enclosure enumerates the integer grid.
|
|
185
193
|
*/
|
|
186
194
|
export declare function lcm(a: Interval | IntervalResult, b: Interval | IntervalResult): IntervalResult;
|
|
187
195
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
* Interval arithmetic library for reliable function evaluation
|
|
3
3
|
*
|
|
4
4
|
* This module provides interval versions of mathematical operations
|
|
@@ -16,7 +16,7 @@ import { less as _less, lessEqual as _lessEqual, greater as _greater, greaterEqu
|
|
|
16
16
|
export type { Interval, IntervalResult, BoolInterval } from './types';
|
|
17
17
|
export { ok, point, containsExtremum, unionResults, mergeDomainClip, isPoint, containsZero, isPositive, isNegative, isNonNegative, isNonPositive, width, midpoint, getValue, unwrap, unwrapOrPropagate, } from './util';
|
|
18
18
|
export { add, sub, mul, div, negate, _mul } from './arithmetic';
|
|
19
|
-
export { sqrt, square, pow, powInterval, exp, ln, log10, log2, abs, floor, ceil, round, fract, trunc, min, max, mod, remainder, heaviside, sign, gamma, gammaln, factorial, factorial2, } from './elementary';
|
|
19
|
+
export { sqrt, square, pow, powInterval, exp, ln, log10, log2, abs, floor, ceil, round, fract, trunc, min, max, mod, remainder, heaviside, sign, gamma, gammaln, factorial, factorial2, binomial, gcd, lcm, } from './elementary';
|
|
20
20
|
export { sin, cos, tan, cot, sec, csc, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh, acot, acsc, asec, coth, csch, sech, acoth, acsch, asech, sinc, fresnelS, fresnelC, } from './trigonometric';
|
|
21
21
|
export { less, lessEqual, greater, greaterEqual, equal, notEqual, and, or, not, piecewise, clamp, } from './comparison';
|
|
22
22
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare const DEFINITIONS_CALCULUS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare const DEFINITIONS_COMPLEX: LatexDictionary;
|