@cortex-js/compute-engine 0.32.1 → 0.33.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/compute-engine.esm.js +31665 -25881
- package/dist/compute-engine.min.esm.js +43 -46
- package/dist/compute-engine.min.umd.js +43 -46
- package/dist/compute-engine.umd.js +31692 -25925
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -130
- package/dist/math-json.min.umd.js +2 -2
- package/dist/math-json.umd.js +2 -2
- 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 +2 -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/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/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +2 -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 +5 -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 +5 -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/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/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/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/product.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.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/terms.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -2
- 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/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +42 -3
- package/dist/types/compute-engine/index.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-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.d.ts +3 -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-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 +11 -2
- 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/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/invisible-operator.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 +31 -1
- package/dist/types/compute-engine/library/logic-utils.d.ts +1 -5
- 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/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/utils.d.ts +60 -2
- 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/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 +2 -2
- 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 +2 -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 +33 -0
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +130 -0
- package/dist/types/compute-engine/symbolic/fu.d.ts +48 -0
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +12 -0
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +15 -0
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -0
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +14 -0
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +15 -0
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +15 -0
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -11
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -0
- 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.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- 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/package.json +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +0 -31
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +0 -68
- package/dist/types/compute-engine/compilation/types.d.ts +0 -83
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
export declare function Fu(exp: BoxedExpression): RuleStep | undefined;
|
|
1
|
+
/* 0.33.0 */
|
|
3
2
|
/** Assuming x in an expression in radians, convert to current angular unit. */
|
|
4
3
|
export declare function radiansToAngle(x: BoxedExpression | undefined): BoxedExpression | undefined;
|
|
5
4
|
export declare function evalTrig(name: string, op: BoxedExpression | undefined): BoxedExpression | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
import type { OneOf } from '../common/one-of';
|
|
3
3
|
import type { Expression, MathJsonNumberObject, MathJsonStringObject, MathJsonFunctionObject, MathJsonSymbolObject, MathJsonSymbol, MathJsonDictionaryObject } from '../math-json';
|
|
4
4
|
import type { Type, TypeReference, TypeResolver, TypeString } from '../common/type/types';
|
|
@@ -107,7 +107,7 @@ export interface Tensor<DT extends TensorDataType> extends TensorData<DT> {
|
|
|
107
107
|
readonly isZero: boolean;
|
|
108
108
|
at(...indices: number[]): DataTypeMap[DT] | undefined;
|
|
109
109
|
diagonal(axis1?: number, axis2?: number): undefined | DataTypeMap[DT][];
|
|
110
|
-
trace(axis1?: number, axis2?: number): undefined | DataTypeMap[DT]
|
|
110
|
+
trace(axis1?: number, axis2?: number): undefined | DataTypeMap[DT] | Tensor<DT>;
|
|
111
111
|
reshape(...shape: number[]): Tensor<DT>;
|
|
112
112
|
slice(index: number): Tensor<DT>;
|
|
113
113
|
flatten(): DataTypeMap[DT][];
|
|
@@ -615,7 +615,7 @@ export interface BoxedExpression {
|
|
|
615
615
|
* Return the value of this expression, if a number literal.
|
|
616
616
|
*
|
|
617
617
|
* Note it is possible for `expr.numericValue` to be `null`, and for
|
|
618
|
-
* `expr.
|
|
618
|
+
* `expr.is(0)` to be false. For example, when a symbol has been
|
|
619
619
|
* defined with an assumption.
|
|
620
620
|
*
|
|
621
621
|
* Conversely, `expr.isNumber` may be true even if `expr.numericValue` is
|
|
@@ -1242,6 +1242,30 @@ export interface BoxedExpression {
|
|
|
1242
1242
|
*
|
|
1243
1243
|
*/
|
|
1244
1244
|
simplify(options?: Partial<SimplifyOptions>): BoxedExpression;
|
|
1245
|
+
/**
|
|
1246
|
+
* Apply the Fu algorithm to simplify trigonometric expressions.
|
|
1247
|
+
*
|
|
1248
|
+
* The Fu algorithm is a systematic approach to trigonometric simplification
|
|
1249
|
+
* that uses transformation rules (TR1-TR22), combination transforms (CTR),
|
|
1250
|
+
* and rule lists (RL) to reduce the number of trigonometric functions.
|
|
1251
|
+
*
|
|
1252
|
+
* This is equivalent to calling `simplify({ strategy: 'fu' })` but is
|
|
1253
|
+
* more convenient for trig-heavy expressions.
|
|
1254
|
+
*
|
|
1255
|
+
* Reference: Fu, Hongguang, Xiuqin Zhong, and Zhenbing Zeng.
|
|
1256
|
+
* "Automated and readable simplification of trigonometric expressions."
|
|
1257
|
+
* Mathematical and Computer Modelling 44.11 (2006): 1169-1177.
|
|
1258
|
+
*
|
|
1259
|
+
* @example
|
|
1260
|
+
* ```typescript
|
|
1261
|
+
* ce.parse('\\sin(x)\\cos(x)').trigSimplify()
|
|
1262
|
+
* // => sin(2x)/2
|
|
1263
|
+
*
|
|
1264
|
+
* ce.parse('\\sin^2(x) + \\cos^2(x)').trigSimplify()
|
|
1265
|
+
* // => 1
|
|
1266
|
+
* ```
|
|
1267
|
+
*/
|
|
1268
|
+
trigSimplify(): BoxedExpression;
|
|
1245
1269
|
/**
|
|
1246
1270
|
* Expand the expression: distribute multiplications over additions,
|
|
1247
1271
|
* and expand powers.
|
|
@@ -2041,6 +2065,21 @@ export type SimplifyOptions = {
|
|
|
2041
2065
|
* used.
|
|
2042
2066
|
*/
|
|
2043
2067
|
costFunction?: (expr: BoxedExpression) => number;
|
|
2068
|
+
/**
|
|
2069
|
+
* The simplification strategy to use.
|
|
2070
|
+
*
|
|
2071
|
+
* - `'default'`: Use standard simplification rules (default)
|
|
2072
|
+
* - `'fu'`: Use the Fu algorithm for trigonometric simplification.
|
|
2073
|
+
* This is more aggressive for trig expressions and may produce
|
|
2074
|
+
* different results than the default strategy.
|
|
2075
|
+
*
|
|
2076
|
+
* **Note:** When using the `'fu'` strategy, the `costFunction` and `rules`
|
|
2077
|
+
* options are ignored. The Fu algorithm uses its own specialized cost
|
|
2078
|
+
* function that prioritizes minimizing the number of trigonometric
|
|
2079
|
+
* functions. Standard simplification is applied before and after the
|
|
2080
|
+
* Fu transformations using the engine's default rules.
|
|
2081
|
+
*/
|
|
2082
|
+
strategy?: 'default' | 'fu';
|
|
2044
2083
|
};
|
|
2045
2084
|
/**
|
|
2046
2085
|
* A table mapping symbols to their definition.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_CALCULUS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_COMPLEX: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_LOGIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_OTHERS: LatexDictionary;
|
package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_SETS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_STATISTICS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
import { Delimiter, EnvironmentParseHandler, ExpressionParseHandler, InfixParseHandler, LatexDictionary, LatexDictionaryEntry, LatexString, LatexToken, LibraryCategory, MatchfixParseHandler, PostfixParseHandler, Precedence, SerializeHandler } from '../types';
|
|
3
3
|
export type CommonEntry = {
|
|
4
4
|
/** Note: a name is required if a serialize handler is provided */
|
|
@@ -75,7 +75,9 @@ export type IndexedEnvironmentEntry = CommonEntry & {
|
|
|
75
75
|
};
|
|
76
76
|
/** @internal */
|
|
77
77
|
export declare function isIndexedEnvironmentEntry(entry: IndexedLatexDictionaryEntry): entry is IndexedEnvironmentEntry;
|
|
78
|
+
/** @internal */
|
|
78
79
|
export type IndexedLatexDictionaryEntry = IndexedExpressionEntry | IndexedFunctionEntry | IndexedSymbolEntry | IndexedMatchfixEntry | IndexedInfixEntry | IndexedPrefixEntry | IndexedPostfixEntry | IndexedEnvironmentEntry;
|
|
80
|
+
/** @internal */
|
|
79
81
|
export type IndexedLatexDictionary = {
|
|
80
82
|
ids: Map<string, IndexedLatexDictionaryEntry>;
|
|
81
83
|
lookahead: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
import { ParseLatexOptions, LatexToken, Terminator, Parser, SymbolTable } from './types';
|
|
3
3
|
import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedPrefixEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry } from './dictionary/definitions';
|
|
4
4
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
import type { Expression, MathJsonSymbol } from '../../math-json/types';
|
|
3
3
|
import { BoxedType, TypeString } from '../types';
|
|
4
4
|
import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry } from './dictionary/definitions';
|
|
@@ -365,7 +365,7 @@ export type FunctionEntry = BaseEntry & Trigger & {
|
|
|
365
365
|
* A dictionary entry is a record that maps a LaTeX token or string of tokens
|
|
366
366
|
* ( a trigger) to a MathJSON expression or to a parsing handler.
|
|
367
367
|
*
|
|
368
|
-
* Set the
|
|
368
|
+
* Set the `ComputeEngine.latexDictionary` property to an array of
|
|
369
369
|
* dictionary entries to define custom LaTeX parsing and serialization.
|
|
370
370
|
*
|
|
371
371
|
* @category Latex Parsing and Serialization
|
|
@@ -563,6 +563,15 @@ export type ParseLatexOptions = NumberFormat & {
|
|
|
563
563
|
* // parses as: ∀x. (P(x) → Q(x))
|
|
564
564
|
*/
|
|
565
565
|
quantifierScope: 'tight' | 'loose';
|
|
566
|
+
/**
|
|
567
|
+
* The variable used for time derivatives in Newton notation
|
|
568
|
+
* (`\dot{x}`, `\ddot{x}`, etc.).
|
|
569
|
+
*
|
|
570
|
+
* When parsing `\dot{x}`, it will be interpreted as `["D", "x", timeDerivativeVariable]`.
|
|
571
|
+
*
|
|
572
|
+
* **Default:** `"t"`
|
|
573
|
+
*/
|
|
574
|
+
timeDerivativeVariable: string;
|
|
566
575
|
};
|
|
567
576
|
/**
|
|
568
577
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export type CanonicalArithmeticOperators = 'Add' | 'Negate' | 'Multiply' | 'Divide' | 'Power' | 'Sqrt' | 'Root' | 'Ln';
|
|
3
3
|
export declare const ARITHMETIC_LIBRARY: SymbolDefinitions[];
|
|
4
4
|
export declare function isPrime(expr: BoxedExpression): boolean | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const CALCULUS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const COMBINATORICS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const COMPLEX_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const CONTROL_STRUCTURES_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const CORE_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const LINEAR_ALGEBRA_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
/**
|
|
3
3
|
* Quantifier domain helpers and boolean analysis functions.
|
|
4
4
|
* Extracted from logic.ts for better code organization.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Result of extracting a finite domain from an Element expression.
|
|
8
|
+
* - `status: 'success'` - Domain was successfully extracted
|
|
9
|
+
* - `status: 'non-enumerable'` - Domain exists but cannot be enumerated (e.g., infinite set, unknown symbol)
|
|
10
|
+
* - `status: 'error'` - Invalid Element expression (missing variable, malformed domain)
|
|
11
|
+
*/
|
|
12
|
+
export type ExtractDomainResult = {
|
|
13
|
+
status: 'success';
|
|
14
|
+
variable: string;
|
|
15
|
+
values: BoxedExpression[];
|
|
16
|
+
} | {
|
|
17
|
+
status: 'non-enumerable';
|
|
18
|
+
variable: string;
|
|
19
|
+
domain: BoxedExpression;
|
|
20
|
+
reason: string;
|
|
21
|
+
} | {
|
|
22
|
+
status: 'error';
|
|
23
|
+
reason: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Extract the finite domain from a quantifier's condition.
|
|
27
|
+
* Supports:
|
|
28
|
+
* - ["Element", "x", ["Set", 1, 2, 3]] → [1, 2, 3]
|
|
29
|
+
* - ["Element", "x", ["Range", 1, 5]] → [1, 2, 3, 4, 5]
|
|
30
|
+
* - ["Element", "x", ["Interval", 1, 5]] → [1, 2, 3, 4, 5] (integers only)
|
|
31
|
+
* - ["Element", "x", ["Set", 1, 2, 3], condition] → filtered values (EL-3)
|
|
32
|
+
* Returns detailed result indicating success, non-enumerable domain, or error.
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractFiniteDomainWithReason(condition: BoxedExpression, ce: ComputeEngine): ExtractDomainResult;
|
|
6
35
|
/**
|
|
7
36
|
* Extract the finite domain from a quantifier's condition.
|
|
8
37
|
* Supports:
|
|
@@ -10,6 +39,7 @@
|
|
|
10
39
|
* - ["Element", "x", ["Range", 1, 5]] → [1, 2, 3, 4, 5]
|
|
11
40
|
* - ["Element", "x", ["Interval", 1, 5]] → [1, 2, 3, 4, 5] (integers only)
|
|
12
41
|
* Returns null if the domain is not finite or not recognized.
|
|
42
|
+
* @deprecated Use extractFiniteDomainWithReason for better error handling
|
|
13
43
|
*/
|
|
14
44
|
export declare function extractFiniteDomain(condition: BoxedExpression, ce: ComputeEngine): {
|
|
15
45
|
variable: string;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
/**
|
|
3
|
-
* Basic evaluation functions for logical operators.
|
|
4
|
-
* Extracted from logic.ts for better code organization.
|
|
5
|
-
*/
|
|
1
|
+
/* 0.33.0 */
|
|
6
2
|
export declare function evaluateAnd(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
7
3
|
engine: ComputeEngine;
|
|
8
4
|
}): BoxedExpression | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const NUMBER_THEORY_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const POLYNOMIALS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare function randomExpression(level?: number): Expression;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const RELOP_LIBRARY: SymbolDefinitions;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const SETS_LIBRARY: SymbolDefinitions;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const STATISTICS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare const TRIGONOMETRY_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,4 +1,20 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
|
+
/**
|
|
3
|
+
* EL-4: Convert known infinite integer sets to their equivalent Limits bounds.
|
|
4
|
+
* Returns undefined if the set cannot be converted to a Limits form.
|
|
5
|
+
*
|
|
6
|
+
* Mappings:
|
|
7
|
+
* - NonNegativeIntegers (ℕ₀) → [0, ∞)
|
|
8
|
+
* - PositiveIntegers (ℤ⁺) → [1, ∞)
|
|
9
|
+
* - NegativeIntegers (ℤ⁻) → Not supported (would need negative direction)
|
|
10
|
+
* - Integers (ℤ) → Not supported (bidirectional)
|
|
11
|
+
* - Other sets (Reals, Complexes, etc.) → Not supported (non-integer)
|
|
12
|
+
*/
|
|
13
|
+
export declare function convertInfiniteSetToLimits(domainSymbol: string): {
|
|
14
|
+
lower: number;
|
|
15
|
+
upper: number;
|
|
16
|
+
isFinite: false;
|
|
17
|
+
} | undefined;
|
|
2
18
|
export type IndexingSet = {
|
|
3
19
|
index: string | undefined;
|
|
4
20
|
lower: number;
|
|
@@ -58,20 +74,62 @@ export declare function canonicalLimits(ops: ReadonlyArray<BoxedExpression>, { e
|
|
|
58
74
|
* - `lower` (a number), `Nothing` if none is present
|
|
59
75
|
* - `upper` (a number), `Nothing` if none is present
|
|
60
76
|
*
|
|
77
|
+
* Or, for Element expressions, preserve them in canonical form.
|
|
78
|
+
*
|
|
61
79
|
* Assume we are in the context of a big operator
|
|
62
80
|
* (i.e. `pushScope()` has been called)
|
|
63
81
|
*/
|
|
64
82
|
export declare function canonicalIndexingSet(expr: BoxedExpression): BoxedExpression | undefined;
|
|
65
83
|
export declare function canonicalBigop(bigOp: string, body: BoxedExpression, indexingSets: BoxedExpression[], scope: Scope | undefined): BoxedExpression | null;
|
|
84
|
+
/**
|
|
85
|
+
* A special symbol used to signal that a BigOp could not be evaluated
|
|
86
|
+
* because the domain is non-enumerable (e.g., infinite set, unknown symbol).
|
|
87
|
+
* When this is returned, the Sum/Product should keep the expression symbolic
|
|
88
|
+
* rather than returning NaN.
|
|
89
|
+
*/
|
|
90
|
+
export declare const NON_ENUMERABLE_DOMAIN: unique symbol;
|
|
91
|
+
/**
|
|
92
|
+
* Result type for reduceBigOp that includes reason for failure
|
|
93
|
+
*/
|
|
94
|
+
export type BigOpResult<T> = {
|
|
95
|
+
status: 'success';
|
|
96
|
+
value: T;
|
|
97
|
+
} | {
|
|
98
|
+
status: 'non-enumerable';
|
|
99
|
+
reason: string;
|
|
100
|
+
domain?: BoxedExpression;
|
|
101
|
+
} | {
|
|
102
|
+
status: 'error';
|
|
103
|
+
reason: string;
|
|
104
|
+
};
|
|
66
105
|
/**
|
|
67
106
|
* Process an expression of the form
|
|
68
107
|
* - ['Operator', body, ['Tuple', index1, lower, upper]]
|
|
69
108
|
* - ['Operator', body, ['Tuple', index1, lower, upper], ['Tuple', index2, lower, upper], ...]
|
|
109
|
+
* - ['Operator', body, ['Element', index, collection]]
|
|
70
110
|
* - ['Operator', body]
|
|
71
111
|
* - ['Operator', collection]
|
|
72
112
|
*
|
|
73
113
|
* `fn()` is the processing done on each element
|
|
74
114
|
* Apply the function `fn` to the body of a big operator, according to the
|
|
75
115
|
* indexing sets.
|
|
116
|
+
*
|
|
117
|
+
* Returns either the reduced value, or `typeof NON_ENUMERABLE_DOMAIN` if the
|
|
118
|
+
* domain cannot be enumerated (in which case the expression should remain symbolic).
|
|
76
119
|
*/
|
|
77
|
-
export declare function reduceBigOp<T>(body: BoxedExpression, indexes: ReadonlyArray<BoxedExpression>, fn: (acc: T, x: BoxedExpression) => T | null, initial: T): Generator<T | undefined>;
|
|
120
|
+
export declare function reduceBigOp<T>(body: BoxedExpression, indexes: ReadonlyArray<BoxedExpression>, fn: (acc: T, x: BoxedExpression) => T | null, initial: T): Generator<T | typeof NON_ENUMERABLE_DOMAIN | undefined>;
|
|
121
|
+
/**
|
|
122
|
+
* Result type for reduceElementIndexingSets to distinguish between
|
|
123
|
+
* successful evaluation, non-enumerable domains (keep symbolic), and errors.
|
|
124
|
+
*/
|
|
125
|
+
export type ReduceElementResult<T> = {
|
|
126
|
+
status: 'success';
|
|
127
|
+
value: T;
|
|
128
|
+
} | {
|
|
129
|
+
status: 'non-enumerable';
|
|
130
|
+
reason: string;
|
|
131
|
+
domain?: BoxedExpression;
|
|
132
|
+
} | {
|
|
133
|
+
status: 'error';
|
|
134
|
+
reason: string;
|
|
135
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare function bigint(a: Decimal | number | bigint | string): bigint | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.33.0 */
|
|
2
2
|
export declare function bigintValue(expr: Expression | null | undefined): bigint | null;
|
|
3
3
|
/** Output a shorthand if possible */
|
|
4
4
|
export declare function numberToExpression(num: number | bigint, fractionalDigits?: string | number): Expression;
|