@cortex-js/compute-engine 0.57.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 +2376 -501
- package/dist/compile.min.esm.js +316 -68
- package/dist/compile.min.umd.cjs +316 -68
- package/dist/compile.umd.cjs +2376 -501
- package/dist/compute-engine.esm.js +15717 -12444
- package/dist/compute-engine.min.esm.js +331 -83
- package/dist/compute-engine.min.umd.cjs +330 -82
- package/dist/compute-engine.umd.cjs +15717 -12444
- package/dist/core.esm.js +15716 -12443
- package/dist/core.min.esm.js +329 -81
- package/dist/core.min.umd.cjs +329 -81
- package/dist/core.umd.cjs +15716 -12443
- 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 +779 -339
- package/dist/interval.min.esm.js +8 -8
- package/dist/interval.min.umd.cjs +8 -8
- package/dist/interval.umd.cjs +779 -339
- package/dist/latex-syntax.esm.js +971 -608
- package/dist/latex-syntax.min.esm.js +7 -7
- package/dist/latex-syntax.min.umd.cjs +7 -7
- package/dist/latex-syntax.umd.cjs +971 -608
- 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 +1382 -226
- package/dist/numerics.min.esm.js +16 -5
- package/dist/numerics.min.umd.cjs +16 -5
- package/dist/numerics.umd.cjs +1382 -226
- 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 +3 -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 +7 -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 +34 -12
- 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 +8 -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 +58 -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 +4 -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 +63 -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 +23 -0
- 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 +52 -3
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +85 -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 { Rational, SmallInteger } from '../numerics/types';
|
|
3
3
|
import { ExactNumericValueData, NumericValue, NumericValueFactory } from './types';
|
|
4
4
|
import { MathJsonExpression } from '../../math-json/types';
|
|
@@ -62,6 +62,12 @@ export declare class ExactNumericValue extends NumericValue {
|
|
|
62
62
|
abs(): NumericValue;
|
|
63
63
|
ln(base?: number): NumericValue;
|
|
64
64
|
exp(): NumericValue;
|
|
65
|
+
/**
|
|
66
|
+
* Floor/ceil/round of a pure rational (`radical === 1`) computed exactly with
|
|
67
|
+
* bigints. Routing through `this.re` (a float) would lose digits for
|
|
68
|
+
* integers/rationals larger than 2^53.
|
|
69
|
+
*/
|
|
70
|
+
private _integerPart;
|
|
65
71
|
floor(): NumericValue;
|
|
66
72
|
ceil(): NumericValue;
|
|
67
73
|
round(): NumericValue;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
* Exact Bernoulli numbers and exact values of the Riemann zeta function at
|
|
3
|
+
* integers, computed with bigint rationals.
|
|
4
|
+
*
|
|
5
|
+
* Used by the exact (non-numericApproximation) evaluation path of `Zeta`
|
|
6
|
+
* in `library/arithmetic.ts`:
|
|
7
|
+
*
|
|
8
|
+
* - ζ(2k) = (−1)^{k+1} · B₂ₖ · (2π)^{2k} / (2·(2k)!) → rational · π^{2k}
|
|
9
|
+
* - ζ(−n) = −Bₙ₊₁/(n+1) → exact rational
|
|
10
|
+
*
|
|
11
|
+
* (The numeric approximation path uses the BigDecimal Bernoulli rationals in
|
|
12
|
+
* `numerics/special-functions.ts`; this module is self-contained so that the
|
|
13
|
+
* exact path has no dependency on the BigDecimal machinery.)
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Bernoulli number Bₙ (B₁ = −1/2 convention) as a reduced bigint rational
|
|
17
|
+
* `[numerator, denominator]`.
|
|
18
|
+
*
|
|
19
|
+
* Uses the defining recurrence Bₘ = −1/(m+1) · Σ_{k=0}^{m−1} C(m+1, k)·Bₖ
|
|
20
|
+
* with exact bigint rational arithmetic. Suitable for moderate n (the Zeta
|
|
21
|
+
* exact path caps |argument| at 100, i.e. at most B₁₀₁).
|
|
22
|
+
*/
|
|
23
|
+
export declare function bernoulliRational(n: number): [bigint, bigint];
|
|
24
|
+
/**
|
|
25
|
+
* The exact rational c such that ζ(2k) = c·π^{2k}, for integer k ≥ 1.
|
|
26
|
+
*
|
|
27
|
+
* From ζ(2k) = (−1)^{k+1}·B₂ₖ·(2π)^{2k} / (2·(2k)!) and the sign alternation
|
|
28
|
+
* of B₂ₖ, the coefficient is |B₂ₖ|·2^{2k−1}/(2k)! (always positive).
|
|
29
|
+
*
|
|
30
|
+
* ζ(2) = π²/6, ζ(4) = π⁴/90, ζ(6) = π⁶/945, ζ(8) = π⁸/9450, …
|
|
31
|
+
*/
|
|
32
|
+
export declare function zetaEvenCoefficient(k: number): [bigint, bigint];
|
|
33
|
+
/**
|
|
34
|
+
* ζ(−n) for integer n ≥ 1 as an exact reduced rational: ζ(−n) = −Bₙ₊₁/(n+1).
|
|
35
|
+
*
|
|
36
|
+
* ζ(−1) = −1/12, ζ(−3) = 1/120, and ζ(−2k) = 0 (the trivial zeros, since
|
|
37
|
+
* the odd Bernoulli numbers B₃, B₅, … vanish).
|
|
38
|
+
*/
|
|
39
|
+
export declare function zetaNegativeInteger(n: number): [bigint, bigint];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function bigint(a: BigDecimal | number | bigint | string): bigint | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function bigintValue(expr: MathJsonExpression | null | undefined): bigint | null;
|
|
3
3
|
/** Output a shorthand if possible */
|
|
4
4
|
export declare function numberToExpression(num: number | bigint, fractionalDigits?: string | number): MathJsonExpression;
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
/**
|
|
3
|
+
* Gamma function for a complex argument, via the Lanczos approximation.
|
|
4
|
+
*
|
|
5
|
+
* Uses the reflection formula Γ(z)·Γ(1−z) = π / sin(πz) for Re(z) < 0.5 so the
|
|
6
|
+
* series converges on the whole complex plane (except at the non-positive
|
|
7
|
+
* integer poles, where the result is a (signed) infinity / NaN).
|
|
8
|
+
*/
|
|
2
9
|
export declare function gamma(c: Complex): Complex;
|
|
10
|
+
/**
|
|
11
|
+
* Natural logarithm of the Gamma function for a complex argument (principal
|
|
12
|
+
* branch), via the Lanczos approximation.
|
|
13
|
+
*/
|
|
3
14
|
export declare function gammaln(c: Complex): Complex;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
* Shared deterministic-PRNG helpers for Random/Shuffle/Sample.
|
|
3
|
+
*
|
|
4
|
+
* The hash matches the GLSL/WGSL formula used by the GPU compile target:
|
|
5
|
+
* fract(sin(seed * 12.9898) * 43758.5453)
|
|
6
|
+
*
|
|
7
|
+
* JS↔GLSL parity is approximate (fp64 vs fp32; Math.sin is not bit-portable).
|
|
8
|
+
* Within a single host, the same seed always yields the same value.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Return a deterministic pseudorandom value in [0, 1) for the given seed.
|
|
12
|
+
* Matches the GLSL `_gpu_random(seed)` hash to within fp32 precision.
|
|
13
|
+
*/
|
|
14
|
+
export declare function deterministicRandom(seed: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Advance the seed by a fixed amount so subsequent calls produce decorrelated
|
|
17
|
+
* draws. Used by Shuffle/Sample to walk through the elements deterministically.
|
|
18
|
+
* Uses a Weyl-sequence-style increment (golden-ratio fractional part).
|
|
19
|
+
*
|
|
20
|
+
* @param seed The current seed value.
|
|
21
|
+
* @returns The next seed in the sequence.
|
|
22
|
+
*/
|
|
23
|
+
export declare function nextSeed(seed: number): number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function isRational(x: unknown | null): x is Rational;
|
|
3
3
|
export declare function isMachineRational(x: unknown | null): x is [SmallInteger, SmallInteger];
|
|
4
4
|
export declare function isBigRational(x: unknown | null): x is [bigint, bigint];
|
|
@@ -1,27 +1,47 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { BigNum } from './types';
|
|
3
3
|
export declare function gammaln(z: number): number;
|
|
4
4
|
export declare function gamma(z: number): number;
|
|
5
5
|
/**
|
|
6
|
-
* Inverse Error Function.
|
|
6
|
+
* Inverse Error Function, accurate to full machine (double) precision.
|
|
7
7
|
*
|
|
8
|
+
* Winitzki's approximation (~3 correct digits) refined with Newton's
|
|
9
|
+
* method on the full-precision `erf()`:
|
|
10
|
+
* y ← y − (erf(y) − x)·(√π/2)·e^{y²}
|
|
11
|
+
* Each iteration doubles the number of correct digits, so 4 iterations
|
|
12
|
+
* reach machine precision.
|
|
13
|
+
*
|
|
14
|
+
* (Previously used a 6-term truncated Maclaurin series, which was only
|
|
15
|
+
* ~4-digit accurate at x = 0.5 and diverged badly for |x| → 1.)
|
|
8
16
|
*/
|
|
9
17
|
export declare function erfInv(x: number): number;
|
|
10
18
|
/**
|
|
11
|
-
*
|
|
19
|
+
* Complementary error function, erfc(x) = 1 - erf(x), accurate to full
|
|
20
|
+
* machine (double) precision.
|
|
21
|
+
*
|
|
22
|
+
* For |x| < 2 the value is computed as `1 - erf(x)` (no significant
|
|
23
|
+
* cancellation). For larger |x|, `1 - erf(x)` would lose all precision
|
|
24
|
+
* (erf(x) ≈ 1), so erfc is computed directly from a continued fraction
|
|
25
|
+
* (DLMF 7.9.3) evaluated with the modified Lentz algorithm.
|
|
26
|
+
*
|
|
27
|
+
* References:
|
|
28
|
+
* - NIST DLMF: https://dlmf.nist.gov/7.9
|
|
12
29
|
*/
|
|
13
30
|
export declare function erfc(x: number): number;
|
|
14
31
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
32
|
+
* The Gauss error function, erf(x), accurate to full machine (double)
|
|
33
|
+
* precision.
|
|
34
|
+
*
|
|
35
|
+
* Computed from the well-conditioned Maclaurin series (DLMF 7.6.2):
|
|
36
|
+
* erf(x) = (2/√π) e^{-x²} Σ_{n≥0} 2^n x^{2n+1} / (1·3·5···(2n+1))
|
|
37
|
+
* All terms are positive, so there is no subtractive cancellation. For
|
|
38
|
+
* |x| ≥ 6 the result rounds to ±1 (erfc(6) ≈ 2.15e-17, below machine eps).
|
|
17
39
|
*
|
|
18
|
-
*
|
|
19
|
-
* -
|
|
20
|
-
* - https://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions
|
|
21
|
-
|
|
40
|
+
* (Previously used the 5-term Abramowitz & Stegun rational approximation,
|
|
41
|
+
* which was only ~7-digit accurate.)
|
|
22
42
|
*
|
|
23
43
|
* References:
|
|
24
|
-
* - NIST: https://dlmf.nist.gov/7.
|
|
44
|
+
* - NIST DLMF: https://dlmf.nist.gov/7.6
|
|
25
45
|
*/
|
|
26
46
|
export declare function erf(x: number): number;
|
|
27
47
|
/**
|
|
@@ -185,3 +205,51 @@ export declare function fresnelS(x: number): number;
|
|
|
185
205
|
export declare function fresnelC(x: number): number;
|
|
186
206
|
/** Unnormalized cardinal sine: sinc(x) = sin(x)/x, sinc(0) = 1. */
|
|
187
207
|
export declare function sinc(x: number): number;
|
|
208
|
+
/**
|
|
209
|
+
* Bignum error function. Precision scales with `BigDecimal.precision`.
|
|
210
|
+
*
|
|
211
|
+
* - |x| ≤ √((p+10)·ln 10): Maclaurin series (DLMF 7.6.2), no cancellation.
|
|
212
|
+
* - beyond: erf(x) rounds to ±1 at the working precision
|
|
213
|
+
* (erfc(x) < e^{−x²} ≤ 10^{−(p+10)}).
|
|
214
|
+
*/
|
|
215
|
+
export declare function bigErf(ce: ComputeEngine, x: BigNum): BigNum;
|
|
216
|
+
/**
|
|
217
|
+
* Bignum complementary error function.
|
|
218
|
+
* Precision scales with `BigDecimal.precision`.
|
|
219
|
+
*
|
|
220
|
+
* - x² log10(e) ≤ p+10: computed as 1 − erf(x) with the working precision
|
|
221
|
+
* raised by the x²·log10(e) digits lost to cancellation.
|
|
222
|
+
* - beyond: the asymptotic series (DLMF 7.12.1), which by construction of
|
|
223
|
+
* the switchover delivers ≥ p+10 digits there.
|
|
224
|
+
*/
|
|
225
|
+
export declare function bigErfc(ce: ComputeEngine, x: BigNum): BigNum;
|
|
226
|
+
/**
|
|
227
|
+
* Bignum inverse error function: y such that erf(y) = x, for x ∈ [−1, 1].
|
|
228
|
+
* Precision scales with `BigDecimal.precision`.
|
|
229
|
+
*
|
|
230
|
+
* Newton iteration on `bigErf`:
|
|
231
|
+
* y ← y − (erf(y) − x)·(√π/2)·e^{y²}
|
|
232
|
+
* seeded from the machine-precision Winitzki estimate (~3 digits; each
|
|
233
|
+
* iteration doubles the digits). Note that erfInv is intrinsically
|
|
234
|
+
* ill-conditioned as |x| → 1 (|dy/dx| = (√π/2)e^{y²}): the result is the
|
|
235
|
+
* best possible for the given input, but tiny perturbations of x near ±1
|
|
236
|
+
* produce large changes in y.
|
|
237
|
+
*/
|
|
238
|
+
export declare function bigErfInv(ce: ComputeEngine, x: BigNum): BigNum;
|
|
239
|
+
/**
|
|
240
|
+
* Bignum unnormalized cardinal sine: sinc(x) = sin(x)/x, sinc(0) = 1.
|
|
241
|
+
* Precision scales with `BigDecimal.precision` (sin uses the engine's
|
|
242
|
+
* 1100-digit π for argument reduction).
|
|
243
|
+
*/
|
|
244
|
+
export declare function bigSinc(x: BigNum): BigNum;
|
|
245
|
+
/**
|
|
246
|
+
* Bignum Fresnel sine integral S(x). Precision scales with
|
|
247
|
+
* `BigDecimal.precision`: Taylor series for πx²/2·log10(e) ≤ p+20 (with
|
|
248
|
+
* raised working precision to absorb the alternating-series cancellation),
|
|
249
|
+
* asymptotic expansion beyond (where it delivers ≥ p+10 digits).
|
|
250
|
+
*/
|
|
251
|
+
export declare function bigFresnelS(x: BigNum): BigNum;
|
|
252
|
+
/**
|
|
253
|
+
* Bignum Fresnel cosine integral C(x). Same switchover as `bigFresnelS`.
|
|
254
|
+
*/
|
|
255
|
+
export declare function bigFresnelC(x: BigNum): BigNum;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function numberToString(num: number | bigint, fractionalDigits?: number | string): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function simplifyHyperbolic(x: Expression): RuleStep | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare function simplifyTrig(x: Expression): RuleStep | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import { Expression, IComputeEngine as ComputeEngine, DataTypeMap, TensorDataType, TensorField } from '../global-types';
|
|
3
3
|
/** @category Tensors */
|
|
4
4
|
export declare function makeTensorField<DT extends keyof DataTypeMap>(ce: ComputeEngine, dtype: DT): TensorField<DataTypeMap[DT]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
/** @category Tensors */
|
|
3
3
|
export declare abstract class AbstractTensor<DT extends keyof DataTypeMap> implements Tensor<DT> {
|
|
4
4
|
private ce;
|
|
@@ -6,8 +6,8 @@ export declare abstract class AbstractTensor<DT extends keyof DataTypeMap> imple
|
|
|
6
6
|
* Return a tuple of tensors that have the same dtype.
|
|
7
7
|
* If necessary, one of the two input tensors is upcast.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* This harmonizes only the *dtype*; it does not reshape. Element-wise
|
|
10
|
+
* callers (see `broadcast`) must ensure the shapes are compatible.
|
|
11
11
|
*
|
|
12
12
|
* @param lhs
|
|
13
13
|
* @param rhs
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { OneOf } from '../common/one-of';
|
|
3
3
|
import type { MathJsonSymbol, MathJsonNumberObject } from '../math-json';
|
|
4
4
|
import type { Type, TypeString, TypeResolver } from '../common/type/types';
|
|
@@ -10,8 +10,9 @@ import type { BigNum, Rational } from './numerics/types';
|
|
|
10
10
|
import type { Expression, ExpressionInput } from './types-expression';
|
|
11
11
|
import type { Metadata, CanonicalOptions, FormOption, BoxedSubstitution } from './types-serialization';
|
|
12
12
|
import type { AngularUnit, SymbolDefinition, OperatorDefinition, ValueDefinition, BoxedDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions } from './types-definitions';
|
|
13
|
-
import type { AssumeResult, Rule as KernelRule, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, RuleStep as KernelRuleStep, AssignValue as KernelAssignValue, Scope as KernelScope, EvalContext as KernelEvalContext } from './types-kernel-evaluation';
|
|
13
|
+
import type { AssumeResult, Rule as KernelRule, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, RulePurpose, RuleStep as KernelRuleStep, AssignValue as KernelAssignValue, Scope as KernelScope, EvalContext as KernelEvalContext } from './types-kernel-evaluation';
|
|
14
14
|
import type { LanguageTarget, CompilationResult } from './compilation/types';
|
|
15
|
+
export type { RulePurpose } from './types-kernel-evaluation';
|
|
15
16
|
type Rule = KernelRule<Expression, ExpressionInput, IComputeEngine>;
|
|
16
17
|
type BoxedRule = KernelBoxedRule<Expression, IComputeEngine>;
|
|
17
18
|
type BoxedRuleSet = KernelBoxedRuleSet<Expression, IComputeEngine>;
|
|
@@ -29,6 +30,10 @@ export type OperatorInfo = {
|
|
|
29
30
|
kind: 'function' | 'opaque';
|
|
30
31
|
signature?: BoxedType;
|
|
31
32
|
};
|
|
33
|
+
export type SymbolInfo = {
|
|
34
|
+
kind: 'constant' | 'variable';
|
|
35
|
+
type: BoxedType;
|
|
36
|
+
};
|
|
32
37
|
/** @internal */
|
|
33
38
|
export interface IComputeEngine {
|
|
34
39
|
/** The LatexSyntax instance used for LaTeX parsing/serialization.
|
|
@@ -79,6 +84,7 @@ export interface IComputeEngine {
|
|
|
79
84
|
timeLimit: number;
|
|
80
85
|
iterationLimit: number;
|
|
81
86
|
recursionLimit: number;
|
|
87
|
+
maxCollectionSize: number;
|
|
82
88
|
chop(n: number): number;
|
|
83
89
|
chop(n: BigNum): BigNum | 0;
|
|
84
90
|
chop(n: number | BigNum): number | BigNum;
|
|
@@ -95,6 +101,19 @@ export interface IComputeEngine {
|
|
|
95
101
|
* Initialized to the built-in simplification rules.
|
|
96
102
|
* Users can `push()` additional rules or replace the entire array. */
|
|
97
103
|
simplificationRules: Rule[];
|
|
104
|
+
/** The rules used by `solve()` to find roots of univariate expressions.
|
|
105
|
+
* Each rule matches a normalized equation `f(_x) = 0` — the unknown is
|
|
106
|
+
* the wildcard `_x` — and `replace` produces a root expression.
|
|
107
|
+
* Conditions should reject matches where other wildcards capture `_x`.
|
|
108
|
+
* Candidate roots are validated against the original equation, so an
|
|
109
|
+
* over-eager template degrades to a no-op rather than a wrong answer.
|
|
110
|
+
* Initialized to the built-in root-finding rules; `push()` to extend,
|
|
111
|
+
* assign to replace. */
|
|
112
|
+
solveRules: Rule[];
|
|
113
|
+
/** The rules used by `solve()` to transform an equation into equivalent,
|
|
114
|
+
* easier-to-solve forms before root-finding (e.g. `ln f(x) → f(x) - 1`).
|
|
115
|
+
* Same conventions and extension pattern as `solveRules`. */
|
|
116
|
+
harmonizationRules: Rule[];
|
|
98
117
|
strict: boolean;
|
|
99
118
|
expr(expr: NumericValue | ExpressionInput, options?: {
|
|
100
119
|
form?: FormOption;
|
|
@@ -169,6 +188,9 @@ export interface IComputeEngine {
|
|
|
169
188
|
type(type: Type | TypeString | BoxedType): BoxedType;
|
|
170
189
|
rules(rules: Rule | ReadonlyArray<Rule | BoxedRule> | BoxedRuleSet | undefined | null, options?: {
|
|
171
190
|
canonical?: boolean;
|
|
191
|
+
/** Default purpose applied to any rule in the set that doesn't carry
|
|
192
|
+
* its own `purpose` tag (a per-rule tag takes precedence). */
|
|
193
|
+
purpose?: RulePurpose;
|
|
172
194
|
}): BoxedRuleSet;
|
|
173
195
|
getRuleSet(id?: 'harmonization' | 'solve-univariate' | 'standard-simplification'): BoxedRuleSet | undefined;
|
|
174
196
|
pushScope(scope?: Scope, name?: string): void;
|
|
@@ -377,6 +399,34 @@ export interface IComputeEngine {
|
|
|
377
399
|
* maintaining a parallel list of "known" operators.
|
|
378
400
|
*/
|
|
379
401
|
operatorInfo(head: string): OperatorInfo | undefined;
|
|
402
|
+
/**
|
|
403
|
+
* Convert a LaTeX identifier string to its canonical MathJSON name without
|
|
404
|
+
* declaring the symbol in the engine scope.
|
|
405
|
+
*
|
|
406
|
+
* Examples:
|
|
407
|
+
* - `'R_{3}'` → `'R_3'`
|
|
408
|
+
* - `'\\theta_x'` → `'theta_x'`
|
|
409
|
+
* - `'\\alpha'` → `'alpha'`
|
|
410
|
+
* - `'1 + 2'` → `''` (not an identifier)
|
|
411
|
+
*
|
|
412
|
+
* Use this instead of `ce.parse(latex).symbol` when you need the canonical
|
|
413
|
+
* name without the side-effect of auto-declaring the symbol.
|
|
414
|
+
*/
|
|
415
|
+
normalizeIdentifier(latex: string): string;
|
|
416
|
+
/**
|
|
417
|
+
* Return introspection metadata for a symbol (value definition) in the
|
|
418
|
+
* current scope chain.
|
|
419
|
+
*
|
|
420
|
+
* - `kind: 'constant'` when the symbol is a CE-registered constant
|
|
421
|
+
* (e.g. `Pi`, `True`, `ExponentialE`).
|
|
422
|
+
* - `kind: 'variable'` for declared but non-constant value symbols
|
|
423
|
+
* (e.g. after `ce.declare('a', 'real')`).
|
|
424
|
+
*
|
|
425
|
+
* Returns `undefined` for unknown names and for names that resolve to
|
|
426
|
+
* operator/function definitions (use `operatorInfo()` for those — the
|
|
427
|
+
* two methods are non-overlapping).
|
|
428
|
+
*/
|
|
429
|
+
symbolInfo(name: string): SymbolInfo | undefined;
|
|
380
430
|
}
|
|
381
431
|
declare module './types-expression' {
|
|
382
432
|
interface ExpressionComputeEngine extends IComputeEngine {
|
|
@@ -386,4 +436,3 @@ declare module './types-definitions' {
|
|
|
386
436
|
interface ComputeEngine extends IComputeEngine {
|
|
387
437
|
}
|
|
388
438
|
}
|
|
389
|
-
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { IComputeEngine as ComputeEngine } from './types-engine';
|
|
3
3
|
import type { Expression, ExpressionInput } from './types-expression';
|
|
4
4
|
import type { Assumption as KernelAssumption, AssumeResult, AssignValue as KernelAssignValue, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, EvaluateOptions as KernelEvaluateOptions, EvalContext as KernelEvalContext, ExpressionMapInterface as KernelExpressionMapInterface, Rule as KernelRule, RuleConditionFunction as KernelRuleConditionFunction, RuleFunction as KernelRuleFunction, RuleReplaceFunction as KernelRuleReplaceFunction, RuleStep as KernelRuleStep, RuleSteps as KernelRuleSteps, Scope as KernelScope } from './types-kernel-evaluation';
|