@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 type { OneOf } from '../common/one-of';
|
|
3
3
|
import type { MathJsonExpression, MathJsonNumberObject, MathJsonStringObject, MathJsonSymbolObject, MathJsonFunctionObject, MathJsonSymbol, MathJsonDictionaryObject } from '../math-json';
|
|
4
4
|
import type { Type, TypeString } from '../common/type/types';
|
|
@@ -405,6 +405,20 @@ export interface Tensor<DT extends TensorDataType> extends TensorData<DT> {
|
|
|
405
405
|
* @category Boxed Expression
|
|
406
406
|
*
|
|
407
407
|
*/
|
|
408
|
+
/**
|
|
409
|
+
* Lower and upper bounds for a symbol extracted from a domain restriction.
|
|
410
|
+
*
|
|
411
|
+
* `lowerStrict`/`upperStrict` are `true` for strict (`<`, `>`) bounds and
|
|
412
|
+
* `false` (or `undefined`) for non-strict (`≤`, `≥`) bounds.
|
|
413
|
+
*
|
|
414
|
+
* @category Boxed Expression
|
|
415
|
+
*/
|
|
416
|
+
export type IntervalBounds = {
|
|
417
|
+
lower?: Expression;
|
|
418
|
+
lowerStrict?: boolean;
|
|
419
|
+
upper?: Expression;
|
|
420
|
+
upperStrict?: boolean;
|
|
421
|
+
};
|
|
408
422
|
export interface Expression {
|
|
409
423
|
/** @internal */
|
|
410
424
|
readonly _kind: string;
|
|
@@ -1051,26 +1065,29 @@ export interface Expression {
|
|
|
1051
1065
|
*
|
|
1052
1066
|
* - If no rules apply, return `null`.
|
|
1053
1067
|
*
|
|
1054
|
-
*
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1068
|
+
* The `form` option controls the form of *replacements*. The deprecated
|
|
1069
|
+
* `canonical` option is also accepted for backward compatibility; only one
|
|
1070
|
+
* of the two may be specified.
|
|
1057
1071
|
*
|
|
1058
|
-
*
|
|
1059
|
-
*
|
|
1072
|
+
* When neither `form` nor `canonical` is specified, the form of each
|
|
1073
|
+
* replacement is determined as follows:
|
|
1074
|
+
* 1. the form of the replacement produced by the rule, if it has a
|
|
1075
|
+
* non-`'raw'` form;
|
|
1076
|
+
* 2. otherwise, the form of the expression being replaced;
|
|
1077
|
+
* 3. otherwise, the replacement is left in its raw form.
|
|
1060
1078
|
*
|
|
1061
|
-
*
|
|
1062
|
-
*
|
|
1063
|
-
*
|
|
1064
|
-
*
|
|
1065
|
-
*
|
|
1066
|
-
* in canonical operands*. In this case, an expr. meeting this criteria will be updated to
|
|
1067
|
-
* canonical status. (Canonicalization is opportunistic here, in other words).
|
|
1079
|
+
* While the form applies directly to replaced sub-expressions only, a
|
|
1080
|
+
* non-`'raw'` form also propagates 'opportunistically' up the expression
|
|
1081
|
+
* tree: an expression whose operands all share a form after replacement
|
|
1082
|
+
* assumes that form as well. (Specifying `form: 'raw'` disables this
|
|
1083
|
+
* propagation.)
|
|
1068
1084
|
*
|
|
1069
1085
|
* :::info[Note]
|
|
1070
|
-
* Applicable to
|
|
1086
|
+
* Applicable to input expressions of any form.
|
|
1071
1087
|
*
|
|
1072
1088
|
* To match a specific symbol (not a wildcard pattern), the `match` must be
|
|
1073
1089
|
* a `Expression` (e.g., `{ match: ce.expr('x'), replace: ... }`).
|
|
1090
|
+
*
|
|
1074
1091
|
* For simple symbol substitution, consider using `subs()` instead.
|
|
1075
1092
|
* :::
|
|
1076
1093
|
*/
|
|
@@ -1372,6 +1389,60 @@ export interface Expression {
|
|
|
1372
1389
|
*
|
|
1373
1390
|
*/
|
|
1374
1391
|
simplify(options?: Partial<SimplifyOptions>): Expression;
|
|
1392
|
+
/**
|
|
1393
|
+
* For a relation expression (`Equal`, `Less`, `Greater`, `LessEqual`,
|
|
1394
|
+
* `GreaterEqual`, `NotEqual`), return the "signed function" form
|
|
1395
|
+
* useful for implicit-surface rendering and region classification:
|
|
1396
|
+
*
|
|
1397
|
+
* - `Equal(a, b)` → `a - b` (zero on the surface)
|
|
1398
|
+
* - `Less(a, b)` / `LessEqual(a, b)` → `a - b` (negative when relation holds)
|
|
1399
|
+
* - `Greater(a, b)` / `GreaterEqual(a, b)` → `b - a` (negative when relation holds)
|
|
1400
|
+
* - `NotEqual(a, b)` → `a - b` (caller checks ≠ 0)
|
|
1401
|
+
*
|
|
1402
|
+
* For non-relation expressions, returns `undefined`.
|
|
1403
|
+
*
|
|
1404
|
+
* Strictness (strict vs non-strict inequality) and direction (less vs
|
|
1405
|
+
* greater) are encoded in the original `expr.operator`, not in the
|
|
1406
|
+
* returned expression. Callers handling 3D implicit rendering use
|
|
1407
|
+
* `expr.operator` for the boundary policy and the signed function for
|
|
1408
|
+
* the interior/exterior classification.
|
|
1409
|
+
*
|
|
1410
|
+
* Notes:
|
|
1411
|
+
* - CE canonical form normalizes `GreaterEqual(a, b)` to `LessEqual(b, a)`
|
|
1412
|
+
* (and similarly `Greater` to `Less`). Callers using `toSignedFunction()`
|
|
1413
|
+
* on canonicalized parsed expressions will see `LessEqual`/`Less` rather
|
|
1414
|
+
* than `GreaterEqual`/`Greater`. The signed-function semantics are
|
|
1415
|
+
* preserved through the normalization. The `GreaterEqual`/`Greater`
|
|
1416
|
+
* branches handle non-canonical expressions constructed via
|
|
1417
|
+
* `ce.box(['GreaterEqual', ...])`.
|
|
1418
|
+
* - For chained relations with more than two operands (e.g.
|
|
1419
|
+
* `Less(a, b, c)` from `a < b < c`), only the first pair is used.
|
|
1420
|
+
* The result is the signed function for the first sub-relation only;
|
|
1421
|
+
* 3D implicit rendering rarely uses chained relations, but if it
|
|
1422
|
+
* does, callers should decompose first.
|
|
1423
|
+
*/
|
|
1424
|
+
toSignedFunction(): BoxedExpression | undefined;
|
|
1425
|
+
/**
|
|
1426
|
+
* For an expression representing a domain restriction (a `When` whose
|
|
1427
|
+
* condition is a comparison or `And` of comparisons over `symbol`, or
|
|
1428
|
+
* a bare comparison expression), return the lower/upper bounds for
|
|
1429
|
+
* `symbol`. Returns `undefined` if no bounds can be extracted.
|
|
1430
|
+
*
|
|
1431
|
+
* Supported shapes:
|
|
1432
|
+
* - Bare comparisons: `a < x`, `x < b`, etc.
|
|
1433
|
+
* - Chained comparisons: `a < x < b` (parsed as `Less(a, x, b)`)
|
|
1434
|
+
* - `And(c1, c2, ...)` where each `ci` is a supported shape
|
|
1435
|
+
* - `When(e, cond)` — operates on `cond`
|
|
1436
|
+
* - `Multiply(f, When(...), ...)` — the Desmos parse shape for
|
|
1437
|
+
* `f(x)\{a < x < b\}`; bounds from each `When` factor are merged
|
|
1438
|
+
*
|
|
1439
|
+
* `lowerStrict`/`upperStrict` are `true` for strict (`<`, `>`) bounds
|
|
1440
|
+
* and `false` for non-strict (`≤`, `≥`).
|
|
1441
|
+
*
|
|
1442
|
+
* Returns `undefined` for unsupported shapes (e.g. equations, non-linear
|
|
1443
|
+
* constraints, comparisons over multiple symbols, disjunctions).
|
|
1444
|
+
*/
|
|
1445
|
+
getInterval(symbol: string): IntervalBounds | undefined;
|
|
1375
1446
|
/**
|
|
1376
1447
|
* Return the value of the canonical form of this expression.
|
|
1377
1448
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { TypeReference } from '../common/type/types';
|
|
3
3
|
import type { BoxedType } from '../common/type/boxed-type';
|
|
4
4
|
import type { LatexString } from './latex-syntax/types';
|
|
@@ -80,10 +80,27 @@ export type RuleReplaceFunction<Expr = unknown> = (expr: Expr, wildcards: BoxedS
|
|
|
80
80
|
export type RuleConditionFunction<Expr = unknown, CE = unknown> = (wildcards: BoxedSubstitution<Expr>, ce: CE) => boolean;
|
|
81
81
|
/** @category Rules */
|
|
82
82
|
export type RuleFunction<Expr = unknown> = (expr: Expr) => undefined | Expr | RuleStep<Expr>;
|
|
83
|
+
/**
|
|
84
|
+
* The purpose of a rule determines how its result is treated by
|
|
85
|
+
* the simplification cost policy:
|
|
86
|
+
*
|
|
87
|
+
* - `'simplify'`: the result must pass the cost gate (the default;
|
|
88
|
+
* today's behavior — results that grow the expression are discarded).
|
|
89
|
+
* - `'transform'`: a mathematically-preferred rewrite; exempt from the
|
|
90
|
+
* cost gate (accepted by `simplify()` even if structurally larger).
|
|
91
|
+
* - `'expand'`: growth-by-design (series, argument expansion); skipped by
|
|
92
|
+
* `simplify()`, but reachable via `expr.replace()` and future expand APIs.
|
|
93
|
+
*
|
|
94
|
+
* @category Rules
|
|
95
|
+
*/
|
|
96
|
+
export type RulePurpose = 'simplify' | 'transform' | 'expand';
|
|
83
97
|
/** @category Rules */
|
|
84
98
|
export type RuleStep<Expr = unknown> = {
|
|
85
99
|
value: Expr;
|
|
86
100
|
because: string;
|
|
101
|
+
/** The purpose of the rule that produced this step, stamped by
|
|
102
|
+
* `applyRule` from the firing rule. */
|
|
103
|
+
purpose?: RulePurpose;
|
|
87
104
|
};
|
|
88
105
|
/** @category Rules */
|
|
89
106
|
export type RuleSteps<Expr = unknown> = RuleStep<Expr>[];
|
|
@@ -117,6 +134,13 @@ export type Rule<Expr = unknown, SemiExpr = unknown, CE = unknown> = string | Ru
|
|
|
117
134
|
replace: LatexString | SemiExpr | RuleReplaceFunction<Expr> | RuleFunction<Expr>;
|
|
118
135
|
condition?: LatexString | RuleConditionFunction<Expr, CE>;
|
|
119
136
|
useVariations?: boolean;
|
|
137
|
+
/** Dispatch hint: this rule can only ever apply to expressions whose
|
|
138
|
+
* operator is one of these. Used to index the rule; semantics are
|
|
139
|
+
* unchanged (the rule is simply never tried on other operators). */
|
|
140
|
+
operators?: ReadonlyArray<string>;
|
|
141
|
+
/** How the result of this rule is treated by the simplification cost
|
|
142
|
+
* policy. See {@linkcode RulePurpose}. **Default**: `'simplify'`. */
|
|
143
|
+
purpose?: RulePurpose;
|
|
120
144
|
id?: string;
|
|
121
145
|
onBeforeMatch?: (rule: Rule<Expr, SemiExpr, CE>, expr: Expr) => void;
|
|
122
146
|
onMatch?: (rule: Rule<Expr, SemiExpr, CE>, expr: Expr, replace: Expr | RuleStep<Expr>) => void;
|
|
@@ -128,6 +152,13 @@ export type BoxedRule<Expr = unknown, CE = unknown> = {
|
|
|
128
152
|
replace: Expr | RuleReplaceFunction<Expr> | RuleFunction<Expr>;
|
|
129
153
|
condition: undefined | RuleConditionFunction<Expr, CE>;
|
|
130
154
|
useVariations?: boolean;
|
|
155
|
+
/** Dispatch hint: this rule can only ever apply to expressions whose
|
|
156
|
+
* operator is one of these. Used to index the rule; semantics are
|
|
157
|
+
* unchanged (the rule is simply never tried on other operators). */
|
|
158
|
+
operators?: ReadonlyArray<string>;
|
|
159
|
+
/** How the result of this rule is treated by the simplification cost
|
|
160
|
+
* policy. See {@linkcode RulePurpose}. **Default**: `'simplify'`. */
|
|
161
|
+
purpose?: RulePurpose;
|
|
131
162
|
id?: string;
|
|
132
163
|
onBeforeMatch?: (rule: Rule<Expr, unknown, CE>, expr: Expr) => void;
|
|
133
164
|
onMatch?: (rule: Rule<Expr, unknown, CE>, expr: Expr, replace: Expr | RuleStep<Expr>) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export type Hold = 'none' | 'all' | 'first' | 'rest' | 'last' | 'most';
|
|
3
3
|
/**
|
|
4
4
|
* Options to control serialization to MathJSON when using
|
|
@@ -126,9 +126,51 @@ export type ReplaceOptions = {
|
|
|
126
126
|
*/
|
|
127
127
|
iterationLimit: number;
|
|
128
128
|
/**
|
|
129
|
-
*
|
|
129
|
+
* Canonical-status of replaced sub-expressions.
|
|
130
|
+
*
|
|
131
|
+
* Equivalent to `form`: `true` maps to `'canonical'`, `false` to `'raw'`,
|
|
132
|
+
* and a `CanonicalForm` (or array of them) is used as-is. Specifying both
|
|
133
|
+
* `canonical` and `form` is an error.
|
|
134
|
+
*
|
|
135
|
+
* @deprecated Use `form` instead, which covers a wider range of forms.
|
|
136
|
+
*/
|
|
137
|
+
canonical?: CanonicalOptions;
|
|
138
|
+
/**
|
|
139
|
+
* The form (`'canonical'`, `'structural'`, `'raw'`, or specific canonical
|
|
140
|
+
* transforms) applied to *replaced* sub-expressions.
|
|
141
|
+
*
|
|
142
|
+
* The form does not automatically apply to the entire input expression.
|
|
143
|
+
* However, a non-`'raw'` form propagates upward through the expression tree:
|
|
144
|
+
* an expression whose operands all share a form after replacement assumes
|
|
145
|
+
* that form as well.
|
|
146
|
+
*
|
|
147
|
+
* To guarantee a form for the *entire* result, either ensure the input is
|
|
148
|
+
* already in the requested form before replacing, or request the form on the
|
|
149
|
+
* result after replacement (e.g. with `.canonical`).
|
|
150
|
+
*
|
|
151
|
+
* If no `form` (or `canonical`) option is specified, the form of each
|
|
152
|
+
* replacement is determined by the rule itself: see `replace()`.
|
|
153
|
+
*
|
|
154
|
+
* Note: a `'raw'` form does not undo a form the replacement already has,
|
|
155
|
+
* e.g. when a `RuleFunction` returns an expression that is already
|
|
156
|
+
* canonical.
|
|
157
|
+
*/
|
|
158
|
+
form: FormOption;
|
|
159
|
+
/**
|
|
160
|
+
* Traversal direction through the expression tree, for both rule matching
|
|
161
|
+
* and replacement:
|
|
162
|
+
*
|
|
163
|
+
* - `'left-right'` (default): post-order traversal — left sub-tree first,
|
|
164
|
+
* depth-first (LRN).
|
|
165
|
+
* - `'right-left'`: reverse post-order — right sub-tree first, depth-first
|
|
166
|
+
* (RLN).
|
|
167
|
+
*
|
|
168
|
+
* In both cases the root (input) expression is visited last.
|
|
169
|
+
*
|
|
170
|
+
* The direction is only observable for order-sensitive rules, e.g. a
|
|
171
|
+
* `RuleFunction` whose replacements depend on visit order.
|
|
130
172
|
*/
|
|
131
|
-
|
|
173
|
+
direction: 'left-right' | 'right-left';
|
|
132
174
|
};
|
|
133
175
|
/**
|
|
134
176
|
* Canonical normalization transforms.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
import type { BoxedSubstitution as KernelBoxedSubstitution, CanonicalForm, CanonicalOptions, FormOption, Hold, JsonSerializationOptions, Metadata, PatternMatchOptions as KernelPatternMatchOptions, ReplaceOptions, Substitution as KernelSubstitution } from './types-kernel-serialization';
|
|
3
3
|
export type { Hold, JsonSerializationOptions, ReplaceOptions, CanonicalForm, CanonicalOptions, FormOption, Metadata, };
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export type { MathJsonExpression, MathJsonAttributes, MathJsonNumberObject, MathJsonSymbolObject, MathJsonStringObject, MathJsonFunctionObject, DictionaryValue, MathJsonDictionaryObject, ExpressionObject, MathJsonSymbol, } from '../math-json/types';
|
|
3
3
|
export * from '../common/type/boxed-type';
|
|
4
4
|
export * from '../common/type/types';
|
package/dist/types/core.d.ts
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* 0.59.0 */
|
|
2
|
+
export { loadIdentities, FUNGRIM_CORE } from './compute-engine/fungrim/loader';
|
|
3
|
+
export type { IdentitiesLoadOptions, IdentitiesLoadReport, IdentitiesRuleData, IdentitiesGuardUndecidedHandler, FungrimLoadOptions, FungrimLoadReport, FungrimRuleData, FungrimGuardUndecidedHandler, FungrimManifest, FungrimShellDeclaration, FungrimRuleClass, FungrimRuleTarget, FungrimMathJson, CompiledFungrimRule, GuardSpec, } from './compute-engine/fungrim/types';
|
package/dist/types/interval.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export type { Interval, IntervalResult, BoolInterval, } from './compute-engine/interval/types';
|
|
3
3
|
export { ok, point, containsExtremum, unionResults, mergeDomainClip, isPoint, containsZero, isPositive, isNegative, isNonNegative, isNonPositive, width, midpoint, getValue, unwrap, unwrapOrPropagate, } from './compute-engine/interval/util';
|
|
4
4
|
export { add, sub, mul, div, negate, _mul, } from './compute-engine/interval/arithmetic';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
* Entry point for `@cortex-js/compute-engine/latex-syntax`.
|
|
3
3
|
*
|
|
4
4
|
* Provides standalone LaTeX <-> MathJSON parsing and serialization
|
|
@@ -11,4 +11,4 @@ export type { LatexSyntaxOptions } from './compute-engine/latex-syntax/latex-syn
|
|
|
11
11
|
export { LATEX_DICTIONARY, CORE_DICTIONARY, SYMBOLS_DICTIONARY, ALGEBRA_DICTIONARY, ARITHMETIC_DICTIONARY, COMPLEX_DICTIONARY, TRIGONOMETRY_DICTIONARY, CALCULUS_DICTIONARY, LINEAR_ALGEBRA_DICTIONARY, STATISTICS_DICTIONARY, LOGIC_DICTIONARY, SETS_DICTIONARY, INEQUALITIES_DICTIONARY, UNITS_DICTIONARY, OTHERS_DICTIONARY, PHYSICS_DICTIONARY, } from './compute-engine/latex-syntax/dictionary/default-dictionary';
|
|
12
12
|
export type { LatexDictionaryEntry, LatexDictionary, SerializeLatexOptions, ParseLatexOptions, LatexString, } from './compute-engine/latex-syntax/types';
|
|
13
13
|
export type { MathJsonExpression } from './math-json/types';
|
|
14
|
-
export declare const version = "0.
|
|
14
|
+
export declare const version = "0.59.0";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export declare const MISSING: MathJsonExpression;
|
|
3
3
|
export declare function isNumberExpression(expr: MathJsonExpression | null): expr is number | string | MathJsonNumberObject;
|
|
4
4
|
export declare function isNumberObject(expr: MathJsonExpression | null): expr is MathJsonNumberObject;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export { isSymbolObject, isStringObject, isFunctionObject, stringValue, operator, operand, symbol, mapArgs, dictionaryFromExpression, } from './math-json/utils';
|
|
3
|
-
export declare const version = "0.
|
|
3
|
+
export declare const version = "0.59.0";
|
package/dist/types/numerics.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.59.0 */
|
|
2
2
|
export type { SmallInteger, Rational, BigNum, } from './compute-engine/numerics/types';
|
|
3
3
|
export type { ExactNumericValueData, NumericValueData, NumericValueFactory, } from './compute-engine/numeric-value/types';
|
|
4
4
|
export { NumericValue } from './compute-engine/numeric-value/types';
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.59.0",
|
|
3
3
|
"scripts": {
|
|
4
4
|
"doc": "bash ./scripts/doc.sh",
|
|
5
5
|
"build": "bash ./scripts/build.sh",
|
|
@@ -84,6 +84,12 @@
|
|
|
84
84
|
"import": "./dist/compile.min.esm.js",
|
|
85
85
|
"require": "./dist/compile.min.umd.cjs",
|
|
86
86
|
"default": "./dist/compile.min.esm.js"
|
|
87
|
+
},
|
|
88
|
+
"./identities": {
|
|
89
|
+
"types": "./dist/types/identities.d.ts",
|
|
90
|
+
"import": "./dist/identities.min.esm.js",
|
|
91
|
+
"require": "./dist/identities.min.umd.cjs",
|
|
92
|
+
"default": "./dist/identities.min.esm.js"
|
|
87
93
|
}
|
|
88
94
|
},
|
|
89
95
|
"main": "./dist/compute-engine.min.esm.js",
|
|
@@ -106,6 +112,7 @@
|
|
|
106
112
|
"chalk": "^5.6.2",
|
|
107
113
|
"check-node-version": "^4.2.1",
|
|
108
114
|
"concat-md": "^0.5.1",
|
|
115
|
+
"decimal.js": "^10.6.0",
|
|
109
116
|
"esbuild": "^0.27.3",
|
|
110
117
|
"eslint": "^8.56.0",
|
|
111
118
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -130,7 +137,6 @@
|
|
|
130
137
|
"prettier": "@cortex-js/prettier-config",
|
|
131
138
|
"dependencies": {
|
|
132
139
|
"@arnog/colors": "^0.5.0",
|
|
133
|
-
"complex-esm": "^2.1.1-esm1"
|
|
134
|
-
"decimal.js": "^10.6.0"
|
|
140
|
+
"complex-esm": "^2.1.1-esm1"
|
|
135
141
|
}
|
|
136
142
|
}
|