@cortex-js/compute-engine 0.56.0 → 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile.esm.js +450 -42
- package/dist/compile.min.esm.js +57 -57
- package/dist/compile.min.umd.cjs +58 -58
- package/dist/compile.umd.cjs +450 -42
- package/dist/compute-engine.esm.js +677 -49
- package/dist/compute-engine.min.esm.js +62 -62
- package/dist/compute-engine.min.umd.cjs +62 -62
- package/dist/compute-engine.umd.cjs +677 -49
- package/dist/core.esm.js +676 -48
- package/dist/core.min.esm.js +61 -61
- package/dist/core.min.umd.cjs +61 -61
- package/dist/core.umd.cjs +676 -48
- package/dist/interval.esm.js +228 -16
- package/dist/interval.min.esm.js +6 -6
- package/dist/interval.min.umd.cjs +6 -6
- package/dist/interval.umd.cjs +228 -16
- package/dist/latex-syntax.esm.js +269 -16
- package/dist/latex-syntax.min.esm.js +6 -6
- package/dist/latex-syntax.min.umd.cjs +6 -6
- package/dist/latex-syntax.umd.cjs +269 -16
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +2 -2
- package/dist/numerics.esm.js +2 -2
- package/dist/numerics.min.esm.js +2 -2
- package/dist/numerics.min.umd.cjs +2 -2
- package/dist/numerics.umd.cjs +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +1 -1
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +6 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +55 -6
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +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 +1 -1
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +3 -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 +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +40 -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 +5 -3
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +18 -1
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/package.json +1 -1
package/dist/interval.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Interval 0.
|
|
1
|
+
/** Interval 0.57.0 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Interval = {}));})(this, (function (exports) { 'use strict';
|
|
3
3
|
var Interval = (() => {
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -6041,6 +6041,64 @@ var Interval = (() => {
|
|
|
6041
6041
|
}
|
|
6042
6042
|
|
|
6043
6043
|
// src/compute-engine/latex-syntax/dictionary/definitions-core.ts
|
|
6044
|
+
var COMPONENT_ACCESS_HEADS = {
|
|
6045
|
+
x: "First",
|
|
6046
|
+
y: "Second",
|
|
6047
|
+
z: "Third",
|
|
6048
|
+
real: "Real",
|
|
6049
|
+
re: "Real",
|
|
6050
|
+
imag: "Imaginary",
|
|
6051
|
+
im: "Imaginary",
|
|
6052
|
+
count: "Length",
|
|
6053
|
+
total: "Sum",
|
|
6054
|
+
max: "Max",
|
|
6055
|
+
min: "Min"
|
|
6056
|
+
};
|
|
6057
|
+
function memberHead(name) {
|
|
6058
|
+
return COMPONENT_ACCESS_HEADS[name] ?? null;
|
|
6059
|
+
}
|
|
6060
|
+
function parseComponentAccess(parser, lhs) {
|
|
6061
|
+
parser.skipVisualSpace();
|
|
6062
|
+
if (parser.match("\\operatorname")) {
|
|
6063
|
+
const name = parser.parseStringGroup();
|
|
6064
|
+
if (name === null) return null;
|
|
6065
|
+
const head = memberHead(name.trim());
|
|
6066
|
+
if (head === null) return null;
|
|
6067
|
+
return [head, lhs];
|
|
6068
|
+
}
|
|
6069
|
+
const tok = parser.peek;
|
|
6070
|
+
if (typeof tok === "string" && tok.startsWith("\\")) {
|
|
6071
|
+
const bare = tok.slice(1);
|
|
6072
|
+
const head = memberHead(bare);
|
|
6073
|
+
if (head !== null) {
|
|
6074
|
+
parser.nextToken();
|
|
6075
|
+
return [head, lhs];
|
|
6076
|
+
}
|
|
6077
|
+
return null;
|
|
6078
|
+
}
|
|
6079
|
+
if (typeof tok === "string" && /^[a-zA-Z]$/.test(tok)) {
|
|
6080
|
+
const head = memberHead(tok);
|
|
6081
|
+
if (head === null) return null;
|
|
6082
|
+
parser.nextToken();
|
|
6083
|
+
return [head, lhs];
|
|
6084
|
+
}
|
|
6085
|
+
return null;
|
|
6086
|
+
}
|
|
6087
|
+
function parseWhenRestriction(parser, lhs, close) {
|
|
6088
|
+
parser.addBoundary(close);
|
|
6089
|
+
parser.skipVisualSpace();
|
|
6090
|
+
const cond = parser.parseExpression({ minPrec: 0 });
|
|
6091
|
+
if (cond === null) {
|
|
6092
|
+
parser.removeBoundary();
|
|
6093
|
+
return null;
|
|
6094
|
+
}
|
|
6095
|
+
parser.skipVisualSpace();
|
|
6096
|
+
if (!parser.matchBoundary()) {
|
|
6097
|
+
parser.removeBoundary();
|
|
6098
|
+
return null;
|
|
6099
|
+
}
|
|
6100
|
+
return ["When", lhs, cond];
|
|
6101
|
+
}
|
|
6044
6102
|
function parseSequence(parser, terminator, lhs, prec, sep) {
|
|
6045
6103
|
if (terminator && terminator.minPrec >= prec) return null;
|
|
6046
6104
|
const result = lhs ? [lhs] : ["Nothing"];
|
|
@@ -6512,6 +6570,15 @@ var Interval = (() => {
|
|
|
6512
6570
|
}
|
|
6513
6571
|
},
|
|
6514
6572
|
{ name: "LatexTokens", serialize: serializeLatexTokens },
|
|
6573
|
+
// Component-access postfix: expr.member (C3)
|
|
6574
|
+
// The '.' trigger is consumed before the parse function is called.
|
|
6575
|
+
// Precedence 850 > 810 (At/indexing) so .x chains tightly.
|
|
6576
|
+
{
|
|
6577
|
+
kind: "postfix",
|
|
6578
|
+
precedence: 850,
|
|
6579
|
+
latexTrigger: ["."],
|
|
6580
|
+
parse: parseComponentAccess
|
|
6581
|
+
},
|
|
6515
6582
|
{
|
|
6516
6583
|
name: "At",
|
|
6517
6584
|
kind: "postfix",
|
|
@@ -6532,6 +6599,29 @@ var Interval = (() => {
|
|
|
6532
6599
|
latexTrigger: ["\\left", "\\lbrack"],
|
|
6533
6600
|
parse: parseAt("\\right", "\\rbrack")
|
|
6534
6601
|
},
|
|
6602
|
+
// When-restriction: `expr\left\{cond\right\}` → `When(expr, cond)` (D3)
|
|
6603
|
+
{
|
|
6604
|
+
name: "When",
|
|
6605
|
+
kind: "postfix",
|
|
6606
|
+
precedence: 800,
|
|
6607
|
+
latexTrigger: ["\\left", "\\{"],
|
|
6608
|
+
parse: (parser, lhs) => parseWhenRestriction(parser, lhs, ["\\right", "\\}"]),
|
|
6609
|
+
serialize: (serializer, expr) => {
|
|
6610
|
+
const e = operand(expr, 1);
|
|
6611
|
+
const cond = operand(expr, 2);
|
|
6612
|
+
if (!e || !cond) return "";
|
|
6613
|
+
const clauses = operator(cond) === "And" ? operands(cond) ?? [] : [cond];
|
|
6614
|
+
const inner = clauses.map((c) => `\\left\\{${serializer.serialize(c)}\\right\\}`).join("");
|
|
6615
|
+
return `${serializer.serialize(e)}${inner}`;
|
|
6616
|
+
}
|
|
6617
|
+
},
|
|
6618
|
+
// When-restriction: bare `expr\{cond\}` → `When(expr, cond)`
|
|
6619
|
+
{
|
|
6620
|
+
kind: "postfix",
|
|
6621
|
+
precedence: 800,
|
|
6622
|
+
latexTrigger: ["\\{"],
|
|
6623
|
+
parse: (parser, lhs) => parseWhenRestriction(parser, lhs, ["\\}"])
|
|
6624
|
+
},
|
|
6535
6625
|
{
|
|
6536
6626
|
kind: "postfix",
|
|
6537
6627
|
latexTrigger: ["_"],
|
|
@@ -6614,6 +6704,29 @@ var Interval = (() => {
|
|
|
6614
6704
|
return "";
|
|
6615
6705
|
}
|
|
6616
6706
|
},
|
|
6707
|
+
// Additional triggers for Range: `...`, `\ldots`, and `\dots` are
|
|
6708
|
+
// equivalent to `..` when used as infix operators (e.g. `[1...9]`).
|
|
6709
|
+
// No `name` field here — names must be unique per the dictionary rules;
|
|
6710
|
+
// the first Range entry owns the name. When there is no LHS the symbol
|
|
6711
|
+
// entries near the top of the file still fire (ContinuationPlaceholder).
|
|
6712
|
+
{
|
|
6713
|
+
latexTrigger: [".", ".", "."],
|
|
6714
|
+
kind: "infix",
|
|
6715
|
+
precedence: 800,
|
|
6716
|
+
parse: parseRange
|
|
6717
|
+
},
|
|
6718
|
+
{
|
|
6719
|
+
latexTrigger: ["\\ldots"],
|
|
6720
|
+
kind: "infix",
|
|
6721
|
+
precedence: 800,
|
|
6722
|
+
parse: parseRange
|
|
6723
|
+
},
|
|
6724
|
+
{
|
|
6725
|
+
latexTrigger: ["\\dots"],
|
|
6726
|
+
kind: "infix",
|
|
6727
|
+
precedence: 800,
|
|
6728
|
+
parse: parseRange
|
|
6729
|
+
},
|
|
6617
6730
|
{
|
|
6618
6731
|
latexTrigger: [";"],
|
|
6619
6732
|
kind: "infix",
|
|
@@ -6798,13 +6911,24 @@ var Interval = (() => {
|
|
|
6798
6911
|
const args = operands(expr);
|
|
6799
6912
|
if (!args || args.length < 2) return "";
|
|
6800
6913
|
const body = args[0];
|
|
6801
|
-
const
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6805
|
-
|
|
6806
|
-
|
|
6807
|
-
|
|
6914
|
+
const elements = args.slice(1);
|
|
6915
|
+
const allElements = elements.every((e) => operator(e) === "Element");
|
|
6916
|
+
if (!allElements) {
|
|
6917
|
+
return joinLatex([
|
|
6918
|
+
"\\operatorname{Loop}(",
|
|
6919
|
+
serializer.serialize(body),
|
|
6920
|
+
", ",
|
|
6921
|
+
serializer.serialize(elements[0]),
|
|
6922
|
+
")"
|
|
6923
|
+
]);
|
|
6924
|
+
}
|
|
6925
|
+
if (elements.length === 1) {
|
|
6926
|
+
const elem = elements[0];
|
|
6927
|
+
const index = operand(elem, 1);
|
|
6928
|
+
const coll = operand(elem, 2);
|
|
6929
|
+
if (operator(coll) === "Range") {
|
|
6930
|
+
const lo = operand(coll, 1);
|
|
6931
|
+
const hi = operand(coll, 2);
|
|
6808
6932
|
return joinLatex([
|
|
6809
6933
|
"\\text{for }",
|
|
6810
6934
|
serializer.serialize(index),
|
|
@@ -6816,13 +6940,27 @@ var Interval = (() => {
|
|
|
6816
6940
|
serializer.serialize(body)
|
|
6817
6941
|
]);
|
|
6818
6942
|
}
|
|
6943
|
+
return joinLatex([
|
|
6944
|
+
serializer.serialize(body),
|
|
6945
|
+
" \\operatorname{for} ",
|
|
6946
|
+
serializer.serialize(index),
|
|
6947
|
+
" = ",
|
|
6948
|
+
serializer.serialize(coll)
|
|
6949
|
+
]);
|
|
6819
6950
|
}
|
|
6951
|
+
const bindings = elements.map((elem) => {
|
|
6952
|
+
const name = operand(elem, 1);
|
|
6953
|
+
const coll = operand(elem, 2);
|
|
6954
|
+
return joinLatex([
|
|
6955
|
+
serializer.serialize(name),
|
|
6956
|
+
" = ",
|
|
6957
|
+
serializer.serialize(coll)
|
|
6958
|
+
]);
|
|
6959
|
+
}).join(", ");
|
|
6820
6960
|
return joinLatex([
|
|
6821
|
-
"\\operatorname{Loop}(",
|
|
6822
6961
|
serializer.serialize(body),
|
|
6823
|
-
"
|
|
6824
|
-
|
|
6825
|
-
")"
|
|
6962
|
+
" \\operatorname{for} ",
|
|
6963
|
+
bindings
|
|
6826
6964
|
]);
|
|
6827
6965
|
}
|
|
6828
6966
|
},
|
|
@@ -6855,6 +6993,18 @@ var Interval = (() => {
|
|
|
6855
6993
|
precedence: 245,
|
|
6856
6994
|
parse: (parser, until) => parseForExpression(parser, until)
|
|
6857
6995
|
},
|
|
6996
|
+
// \operatorname{for} as postfix infix (list comprehension):
|
|
6997
|
+
// `body \operatorname{for} x = L_1, y = L_2`
|
|
6998
|
+
// Precedence 19 — just below comma (20) so the body is allowed to use
|
|
6999
|
+
// any operator (including comma sequencing) up to the keyword, and the
|
|
7000
|
+
// bindings can be comma-separated below us.
|
|
7001
|
+
{
|
|
7002
|
+
symbolTrigger: "for",
|
|
7003
|
+
kind: "infix",
|
|
7004
|
+
associativity: "none",
|
|
7005
|
+
precedence: 19,
|
|
7006
|
+
parse: (parser, lhs, until) => parseForComprehension(parser, lhs, until)
|
|
7007
|
+
},
|
|
6858
7008
|
// \operatorname{break}
|
|
6859
7009
|
{
|
|
6860
7010
|
symbolTrigger: "break",
|
|
@@ -7059,7 +7209,10 @@ var Interval = (() => {
|
|
|
7059
7209
|
if (!sym || !parser.getSymbolType(sym).matches("function")) return null;
|
|
7060
7210
|
parser.addBoundary([")"]);
|
|
7061
7211
|
const expr = parser.parseExpression(until);
|
|
7062
|
-
if (!parser.matchBoundary())
|
|
7212
|
+
if (!parser.matchBoundary()) {
|
|
7213
|
+
parser.removeBoundary();
|
|
7214
|
+
return null;
|
|
7215
|
+
}
|
|
7063
7216
|
if (!parser.match("<}>")) return null;
|
|
7064
7217
|
return ["Derivative", lhs, expr];
|
|
7065
7218
|
}
|
|
@@ -7500,7 +7653,12 @@ var Interval = (() => {
|
|
|
7500
7653
|
if (isEmptySequence(body)) return ["List"];
|
|
7501
7654
|
const h = operator(body);
|
|
7502
7655
|
if (h === "Range" || h === "Linspace") return body;
|
|
7503
|
-
if (h === "Sequence")
|
|
7656
|
+
if (h === "Sequence") {
|
|
7657
|
+
const elems = operands(body);
|
|
7658
|
+
const inferred = tryInferRangeFromElements(elems, parser);
|
|
7659
|
+
if (inferred) return inferred;
|
|
7660
|
+
return ["List", ...elems];
|
|
7661
|
+
}
|
|
7504
7662
|
if (h === "Delimiter") {
|
|
7505
7663
|
const delim = stringValue(operand(body, 2)) ?? "...";
|
|
7506
7664
|
if (delim === ";" || delim === ".;.") {
|
|
@@ -7513,12 +7671,37 @@ var Interval = (() => {
|
|
|
7513
7671
|
}
|
|
7514
7672
|
if (delim === "," || delim === ".,.") {
|
|
7515
7673
|
body = operand(body, 1);
|
|
7516
|
-
if (operator(body) === "Sequence")
|
|
7674
|
+
if (operator(body) === "Sequence") {
|
|
7675
|
+
const elems = operands(body);
|
|
7676
|
+
const inferred = tryInferRangeFromElements(elems, parser);
|
|
7677
|
+
if (inferred) return inferred;
|
|
7678
|
+
return ["List", ...elems];
|
|
7679
|
+
}
|
|
7517
7680
|
return ["List", body ?? "Nothing"];
|
|
7518
7681
|
}
|
|
7519
7682
|
}
|
|
7520
7683
|
return ["List", body];
|
|
7521
7684
|
}
|
|
7685
|
+
function tryInferRangeFromElements(elems, parser) {
|
|
7686
|
+
if (elems.length < 4) return null;
|
|
7687
|
+
const penultimate = elems[elems.length - 2];
|
|
7688
|
+
if (symbol(penultimate) !== "ContinuationPlaceholder") return null;
|
|
7689
|
+
const samples = elems.slice(0, -2);
|
|
7690
|
+
const endExpr = elems[elems.length - 1];
|
|
7691
|
+
if (samples.length < 2) return null;
|
|
7692
|
+
const sampleNums = samples.map(machineValue);
|
|
7693
|
+
if (sampleNums.some((n) => n === null)) return null;
|
|
7694
|
+
const nums = sampleNums;
|
|
7695
|
+
const step = nums[nums.length - 1] - nums[nums.length - 2];
|
|
7696
|
+
const tol = parser.options.tolerance;
|
|
7697
|
+
if (Math.abs(step) < tol)
|
|
7698
|
+
return parser.error("degenerate-range-step", parser.index);
|
|
7699
|
+
for (let i = 1; i < nums.length; i++) {
|
|
7700
|
+
if (Math.abs(nums[i] - nums[i - 1] - step) > tol)
|
|
7701
|
+
return parser.error("inconsistent-range-samples", parser.index);
|
|
7702
|
+
}
|
|
7703
|
+
return ["Range", nums[0], endExpr, step];
|
|
7704
|
+
}
|
|
7522
7705
|
function serializeList(serializer, expr) {
|
|
7523
7706
|
if (nops(expr) > 1 && operands(expr).every((x) => {
|
|
7524
7707
|
const op = operator(x);
|
|
@@ -7770,6 +7953,35 @@ var Interval = (() => {
|
|
|
7770
7953
|
["Element", index, ["Range", lower, upper]]
|
|
7771
7954
|
];
|
|
7772
7955
|
}
|
|
7956
|
+
function parseForComprehension(parser, lhs, until) {
|
|
7957
|
+
const bindingTerminator = {
|
|
7958
|
+
minPrec: 21,
|
|
7959
|
+
// Above comma (20) and ; (19), so `x = L_1` is captured whole
|
|
7960
|
+
condition: (p) => {
|
|
7961
|
+
if (until?.condition?.(p)) return true;
|
|
7962
|
+
const saved = p.index;
|
|
7963
|
+
p.skipVisualSpace();
|
|
7964
|
+
const isComma = p.peek === ",";
|
|
7965
|
+
p.index = saved;
|
|
7966
|
+
return isComma;
|
|
7967
|
+
}
|
|
7968
|
+
};
|
|
7969
|
+
const elements = [];
|
|
7970
|
+
do {
|
|
7971
|
+
parser.skipVisualSpace();
|
|
7972
|
+
const binding = parser.parseExpression(bindingTerminator);
|
|
7973
|
+
if (binding === null) break;
|
|
7974
|
+
const op = operator(binding);
|
|
7975
|
+
if (op !== "Equal" && op !== "Assign") return null;
|
|
7976
|
+
const name = operand(binding, 1);
|
|
7977
|
+
const list = operand(binding, 2);
|
|
7978
|
+
if (!name || !list) return null;
|
|
7979
|
+
elements.push(["Element", name, list]);
|
|
7980
|
+
parser.skipVisualSpace();
|
|
7981
|
+
} while (parser.match(","));
|
|
7982
|
+
if (elements.length === 0) return null;
|
|
7983
|
+
return ["Loop", lhs, ...elements];
|
|
7984
|
+
}
|
|
7773
7985
|
function parseWhereExpression(parser, lhs, until) {
|
|
7774
7986
|
const bindingTerminator = {
|
|
7775
7987
|
minPrec: 21,
|
|
@@ -13653,7 +13865,7 @@ var Interval = (() => {
|
|
|
13653
13865
|
};
|
|
13654
13866
|
|
|
13655
13867
|
// src/interval.ts
|
|
13656
|
-
var version = "0.
|
|
13868
|
+
var version = "0.57.0";
|
|
13657
13869
|
return __toCommonJS(interval_exports);
|
|
13658
13870
|
})();
|
|
13659
13871
|
/*! Bundled license information:
|