@cortex-js/compute-engine 0.35.6 → 0.50.1
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 +121 -5
- package/dist/compute-engine.esm.js +55594 -51135
- package/dist/compute-engine.min.esm.js +1081 -78
- package/dist/compute-engine.min.umd.js +1081 -78
- package/dist/compute-engine.umd.js +53638 -49162
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- 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 +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 +8 -1
- package/dist/types/common/type/primitive.d.ts +2 -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 +3 -2
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +4 -22
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +66 -76
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +15 -6
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +72 -6
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +5 -8
- package/dist/types/compute-engine/boxed-expression/box.d.ts +63 -8
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +13 -12
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +44 -43
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +31 -30
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +18 -18
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +5 -37
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +5 -4
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +34 -33
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +34 -33
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +7 -4
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +6 -0
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +4 -5
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +9 -9
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +7 -7
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +4 -13
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +21 -0
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -0
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +4 -0
- package/dist/types/compute-engine/boxed-expression/match.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/order.d.ts +14 -14
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +41 -0
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +18 -0
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +12 -35
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +2 -0
- package/dist/types/compute-engine/boxed-expression/product.d.ts +1 -66
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +6 -3
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +3 -11
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +7 -7
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +31 -0
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +13 -13
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +10 -10
- package/dist/types/compute-engine/collection-utils.d.ts +4 -4
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +3 -3
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +25 -0
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +12 -41
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +50 -0
- package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +11 -11
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +7 -7
- package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +54 -0
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
- package/dist/types/compute-engine/compilation/python-target.d.ts +61 -0
- package/dist/types/compute-engine/compilation/types.d.ts +38 -22
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +41 -0
- package/dist/types/compute-engine/cost-function.d.ts +3 -3
- package/dist/types/compute-engine/engine-assumptions.d.ts +6 -0
- package/dist/types/compute-engine/engine-cache.d.ts +6 -0
- package/dist/types/compute-engine/engine-common-symbols.d.ts +6 -0
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +17 -0
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +15 -0
- package/dist/types/compute-engine/engine-declarations.d.ts +19 -0
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +44 -0
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +9 -0
- package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +13 -0
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +6 -0
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +34 -0
- package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +7 -0
- package/dist/types/compute-engine/engine-runtime-state.d.ts +19 -0
- package/dist/types/compute-engine/engine-scope.d.ts +13 -0
- package/dist/types/compute-engine/engine-sequences.d.ts +14 -0
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +15 -0
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +28 -0
- package/dist/types/compute-engine/engine-type-resolver.d.ts +12 -0
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +13 -0
- package/dist/types/compute-engine/free-functions.d.ts +20 -0
- package/dist/types/compute-engine/function-utils.d.ts +10 -10
- package/dist/types/compute-engine/global-types.d.ts +5 -3301
- package/dist/types/compute-engine/index.d.ts +156 -112
- 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/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 +4 -80
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +83 -0
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +28 -0
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +23 -33
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +8 -8
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +15 -15
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +73 -53
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -2
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +4 -4
- 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/library.d.ts +19 -6
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +19 -32
- package/dist/types/compute-engine/library/logic.d.ts +1 -5
- 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 +2 -2
- 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 +4 -0
- package/dist/types/compute-engine/library/utils.d.ts +12 -12
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/types.d.ts +2 -3
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +3 -3
- package/dist/types/compute-engine/numerics/interval.d.ts +2 -2
- 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 +4 -4
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +120 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -2
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +3 -1
- package/dist/types/compute-engine/oeis.d.ts +3 -3
- package/dist/types/compute-engine/sequence.d.ts +13 -13
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/derivative.d.ts +3 -3
- package/dist/types/compute-engine/symbolic/distribute.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +6 -6
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +46 -46
- package/dist/types/compute-engine/symbolic/fu.d.ts +4 -4
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +54 -0
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +4 -4
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +5 -0
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +65 -4
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -2
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +42 -42
- package/dist/types/compute-engine/tensor/tensors.d.ts +4 -4
- package/dist/types/compute-engine/types-definitions.d.ts +900 -0
- package/dist/types/compute-engine/types-engine.d.ts +375 -0
- package/dist/types/compute-engine/types-evaluation.d.ts +67 -0
- package/dist/types/compute-engine/types-expression.d.ts +1655 -0
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +164 -0
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +147 -0
- package/dist/types/compute-engine/types-serialization.d.ts +23 -0
- package/dist/types/compute-engine/types.d.ts +2 -2
- package/dist/types/compute-engine.d.ts +16 -3
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +3 -3
- package/dist/types/math-json/utils.d.ts +31 -31
- package/dist/types/math-json.d.ts +2 -2
- package/package.json +8 -1
- package/dist/types/compute-engine/boxed-expression/terms.d.ts +0 -10
- package/dist/types/compute-engine/library/invisible-operator.d.ts +0 -4
- package/dist/types/compute-engine/library/logic-utils.d.ts +0 -54
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
import type { Type, TypeString } from '../../common/type/types';
|
|
3
3
|
import type { OneOf } from '../../common/one-of';
|
|
4
4
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
5
5
|
import type { BigNum } from '../numerics/types';
|
|
6
6
|
import { NumericValue } from '../numeric-value/types';
|
|
7
|
-
import type {
|
|
7
|
+
import type { Expression, SimplifyOptions, PatternMatchOptions, ReplaceOptions, BoxedValueDefinition, BoxedOperatorDefinition, IComputeEngine as ComputeEngine, Metadata, CanonicalOptions, BoxedBaseDefinition, BoxedSubstitution, EvaluateOptions, Rule, BoxedRule, BoxedRuleSet, Substitution, Sign, BoxedDefinition, CollectionHandlers, SymbolInterface } from '../global-types';
|
|
8
8
|
import { _BoxedExpression } from './abstract-boxed-expression';
|
|
9
9
|
/**
|
|
10
10
|
* ### BoxedSymbol
|
|
@@ -34,7 +34,8 @@ import { _BoxedExpression } from './abstract-boxed-expression';
|
|
|
34
34
|
* symbol may have no value).
|
|
35
35
|
*
|
|
36
36
|
*/
|
|
37
|
-
export declare class BoxedSymbol extends _BoxedExpression {
|
|
37
|
+
export declare class BoxedSymbol extends _BoxedExpression implements SymbolInterface {
|
|
38
|
+
readonly _kind = "symbol";
|
|
38
39
|
private _hash;
|
|
39
40
|
/** The name of the symbol */
|
|
40
41
|
protected _id: MathJsonSymbol;
|
|
@@ -47,7 +48,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
47
48
|
metadata?: Metadata;
|
|
48
49
|
def?: BoxedDefinition;
|
|
49
50
|
});
|
|
50
|
-
get json():
|
|
51
|
+
get json(): MathJsonExpression;
|
|
51
52
|
get hash(): number;
|
|
52
53
|
get isPure(): boolean;
|
|
53
54
|
get isConstant(): boolean;
|
|
@@ -55,20 +56,20 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
55
56
|
reset(): void;
|
|
56
57
|
get isCanonical(): boolean;
|
|
57
58
|
set isCanonical(val: boolean);
|
|
58
|
-
get canonical():
|
|
59
|
-
is(other:
|
|
60
|
-
toNumericValue(): [NumericValue,
|
|
61
|
-
neg():
|
|
62
|
-
inv():
|
|
63
|
-
abs():
|
|
64
|
-
add(rhs: number |
|
|
65
|
-
mul(rhs: NumericValue | number |
|
|
66
|
-
div(rhs: number |
|
|
67
|
-
pow(exp: number |
|
|
68
|
-
root(n: number |
|
|
69
|
-
sqrt():
|
|
70
|
-
ln(semiBase?: number |
|
|
71
|
-
solve(vars?: Iterable<string> | string |
|
|
59
|
+
get canonical(): Expression;
|
|
60
|
+
is(other: unknown): boolean;
|
|
61
|
+
toNumericValue(): [NumericValue, Expression];
|
|
62
|
+
neg(): Expression;
|
|
63
|
+
inv(): Expression;
|
|
64
|
+
abs(): Expression;
|
|
65
|
+
add(rhs: number | Expression): Expression;
|
|
66
|
+
mul(rhs: NumericValue | number | Expression): Expression;
|
|
67
|
+
div(rhs: number | Expression): Expression;
|
|
68
|
+
pow(exp: number | Expression): Expression;
|
|
69
|
+
root(n: number | Expression): Expression;
|
|
70
|
+
sqrt(): Expression;
|
|
71
|
+
ln(semiBase?: number | Expression): Expression;
|
|
72
|
+
solve(vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression>;
|
|
72
73
|
get complexity(): number;
|
|
73
74
|
get operator(): MathJsonSymbol;
|
|
74
75
|
get symbol(): MathJsonSymbol;
|
|
@@ -101,8 +102,8 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
101
102
|
*/
|
|
102
103
|
infer(t: Type, inferenceMode?: 'narrow' | 'widen'): boolean;
|
|
103
104
|
/** Return the value of the symbol, undefined if an operator or not bound */
|
|
104
|
-
get _value():
|
|
105
|
-
get value():
|
|
105
|
+
get _value(): Expression | undefined;
|
|
106
|
+
get value(): Expression | undefined;
|
|
106
107
|
set value(value: boolean | string | BigNum | number[] | OneOf<[
|
|
107
108
|
{
|
|
108
109
|
re: number;
|
|
@@ -112,7 +113,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
112
113
|
num: number;
|
|
113
114
|
denom: number;
|
|
114
115
|
},
|
|
115
|
-
|
|
116
|
+
Expression
|
|
116
117
|
]> | number | undefined);
|
|
117
118
|
/**
|
|
118
119
|
* The type of the symbol.
|
|
@@ -127,7 +128,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
127
128
|
get type(): BoxedType;
|
|
128
129
|
set type(t: Type | TypeString | BoxedType);
|
|
129
130
|
has(x: MathJsonSymbol | MathJsonSymbol[]): boolean;
|
|
130
|
-
match(pattern:
|
|
131
|
+
match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
|
|
131
132
|
/** The shape of the tensor (dimensions), derived from the type */
|
|
132
133
|
get shape(): number[];
|
|
133
134
|
/** The rank of the tensor (number of dimensions), derived from the type */
|
|
@@ -151,24 +152,24 @@ export declare class BoxedSymbol extends _BoxedExpression {
|
|
|
151
152
|
get im(): number;
|
|
152
153
|
get bignumRe(): BigNum | undefined;
|
|
153
154
|
get bignumIm(): BigNum | undefined;
|
|
154
|
-
simplify(options?: Partial<SimplifyOptions>):
|
|
155
|
-
evaluate(options?: Partial<EvaluateOptions>):
|
|
156
|
-
N():
|
|
157
|
-
replace(rules: Rule | (Rule | BoxedRule)[] | BoxedRuleSet, options?: Partial<ReplaceOptions>):
|
|
155
|
+
simplify(options?: Partial<SimplifyOptions>): Expression;
|
|
156
|
+
evaluate(options?: Partial<EvaluateOptions>): Expression;
|
|
157
|
+
N(): Expression;
|
|
158
|
+
replace(rules: Rule | (Rule | BoxedRule)[] | BoxedRuleSet, options?: Partial<ReplaceOptions>): Expression | null;
|
|
158
159
|
subs(sub: Substitution, options?: {
|
|
159
160
|
canonical?: CanonicalOptions;
|
|
160
|
-
}):
|
|
161
|
+
}): Expression;
|
|
161
162
|
get _asCollection(): CollectionHandlers | undefined;
|
|
162
163
|
get isCollection(): boolean;
|
|
163
164
|
get isIndexedCollection(): boolean;
|
|
164
165
|
get isLazyCollection(): boolean;
|
|
165
|
-
contains(rhs:
|
|
166
|
+
contains(rhs: Expression): boolean | undefined;
|
|
166
167
|
get count(): number;
|
|
167
168
|
get isEmptyCollection(): boolean;
|
|
168
169
|
get isFiniteCollection(): boolean | undefined;
|
|
169
|
-
each(): Generator<
|
|
170
|
-
at(index: number):
|
|
171
|
-
get(index:
|
|
172
|
-
indexWhere(predicate: (element:
|
|
173
|
-
subsetOf(rhs:
|
|
170
|
+
each(): Generator<Expression>;
|
|
171
|
+
at(index: number): Expression | undefined;
|
|
172
|
+
get(index: Expression | string): Expression | undefined;
|
|
173
|
+
indexWhere(predicate: (element: Expression) => boolean): number | undefined;
|
|
174
|
+
subsetOf(rhs: Expression, strict: boolean): boolean;
|
|
174
175
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
import type { ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions,
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
import type { IComputeEngine as ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions, Expression, SimplifyOptions, PatternMatchOptions, Tensor, TensorInterface } from '../global-types';
|
|
3
3
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
4
4
|
import { NumericValue } from '../numeric-value/types';
|
|
5
5
|
import { _BoxedExpression } from './abstract-boxed-expression';
|
|
@@ -14,71 +14,72 @@ import { _BoxedExpression } from './abstract-boxed-expression';
|
|
|
14
14
|
* if input is expression) is created lazily.
|
|
15
15
|
*
|
|
16
16
|
*/
|
|
17
|
-
export declare class BoxedTensor<T extends TensorDataType> extends _BoxedExpression {
|
|
17
|
+
export declare class BoxedTensor<T extends TensorDataType> extends _BoxedExpression implements TensorInterface {
|
|
18
18
|
readonly input: {
|
|
19
|
-
ops: ReadonlyArray<
|
|
19
|
+
ops: ReadonlyArray<Expression>;
|
|
20
20
|
shape: number[];
|
|
21
21
|
dtype: T;
|
|
22
22
|
};
|
|
23
23
|
readonly options?: {
|
|
24
24
|
metadata?: Metadata;
|
|
25
25
|
};
|
|
26
|
+
readonly _kind = "tensor";
|
|
26
27
|
private _tensor;
|
|
27
28
|
private _expression?;
|
|
28
29
|
constructor(ce: ComputeEngine, input: {
|
|
29
|
-
ops: ReadonlyArray<
|
|
30
|
+
ops: ReadonlyArray<Expression>;
|
|
30
31
|
shape: number[];
|
|
31
32
|
dtype: T;
|
|
32
33
|
}, options?: {
|
|
33
34
|
metadata?: Metadata;
|
|
34
35
|
});
|
|
35
|
-
get structural():
|
|
36
|
+
get structural(): Expression;
|
|
36
37
|
/** Create the tensor on demand */
|
|
37
38
|
get tensor(): Tensor<T>;
|
|
38
39
|
get baseDefinition(): BoxedBaseDefinition | undefined;
|
|
39
40
|
get operatorDefinition(): BoxedOperatorDefinition | undefined;
|
|
40
41
|
get hash(): number;
|
|
41
|
-
get canonical():
|
|
42
|
+
get canonical(): Expression;
|
|
42
43
|
get isCanonical(): boolean;
|
|
43
44
|
get isPure(): boolean;
|
|
44
45
|
get isValid(): boolean;
|
|
45
46
|
get complexity(): number;
|
|
46
47
|
get operator(): string;
|
|
47
48
|
get nops(): number;
|
|
48
|
-
get ops(): ReadonlyArray<
|
|
49
|
-
get op1():
|
|
50
|
-
get op2():
|
|
51
|
-
get op3():
|
|
52
|
-
neg():
|
|
53
|
-
inv():
|
|
54
|
-
abs():
|
|
55
|
-
add(rhs: number |
|
|
56
|
-
sub(rhs:
|
|
57
|
-
mul(rhs: NumericValue | number |
|
|
58
|
-
div(rhs: number |
|
|
59
|
-
pow(exp: number |
|
|
60
|
-
root(exp: number |
|
|
61
|
-
sqrt():
|
|
49
|
+
get ops(): ReadonlyArray<Expression>;
|
|
50
|
+
get op1(): Expression;
|
|
51
|
+
get op2(): Expression;
|
|
52
|
+
get op3(): Expression;
|
|
53
|
+
neg(): Expression;
|
|
54
|
+
inv(): Expression;
|
|
55
|
+
abs(): Expression;
|
|
56
|
+
add(rhs: number | Expression): Expression;
|
|
57
|
+
sub(rhs: Expression): Expression;
|
|
58
|
+
mul(rhs: NumericValue | number | Expression): Expression;
|
|
59
|
+
div(rhs: number | Expression): Expression;
|
|
60
|
+
pow(exp: number | Expression): Expression;
|
|
61
|
+
root(exp: number | Expression): Expression;
|
|
62
|
+
sqrt(): Expression;
|
|
62
63
|
get shape(): number[];
|
|
63
64
|
get rank(): number;
|
|
64
65
|
get type(): BoxedType;
|
|
65
|
-
get json():
|
|
66
|
+
get json(): MathJsonExpression;
|
|
66
67
|
/** Mathematical equality */
|
|
67
|
-
isEqual(rhs: number |
|
|
68
|
+
isEqual(rhs: number | Expression): boolean | undefined;
|
|
68
69
|
get isCollection(): boolean;
|
|
69
70
|
get isIndexedCollection(): boolean;
|
|
70
|
-
contains(other:
|
|
71
|
+
contains(other: Expression): boolean | undefined;
|
|
71
72
|
get count(): number;
|
|
72
|
-
each(): Generator<
|
|
73
|
-
at(index: number):
|
|
74
|
-
match(pattern:
|
|
75
|
-
evaluate(options?: Partial<EvaluateOptions>):
|
|
76
|
-
simplify(options?: Partial<SimplifyOptions>):
|
|
77
|
-
N():
|
|
78
|
-
solve(vars?: Iterable<string> | string |
|
|
73
|
+
each(): Generator<Expression>;
|
|
74
|
+
at(index: number): Expression | undefined;
|
|
75
|
+
match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
|
|
76
|
+
evaluate(options?: Partial<EvaluateOptions>): Expression;
|
|
77
|
+
simplify(options?: Partial<SimplifyOptions>): Expression;
|
|
78
|
+
N(): Expression;
|
|
79
|
+
solve(vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression> | Record<string, Expression> | Array<Record<string, Expression>>;
|
|
79
80
|
}
|
|
80
|
-
export declare function
|
|
81
|
-
export declare function expressionTensorInfo(operator: string, rows: ReadonlyArray<
|
|
81
|
+
export declare function isTensor(val: unknown): val is BoxedTensor<TensorDataType>;
|
|
82
|
+
export declare function expressionTensorInfo(operator: string, rows: ReadonlyArray<Expression>): {
|
|
82
83
|
shape: number[];
|
|
83
84
|
dtype: TensorDataType;
|
|
84
85
|
} | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
import type { Type, TypeString } from '../../common/type/types';
|
|
3
3
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
4
4
|
import { ConfigurationChangeListener } from '../../common/configuration-change';
|
|
@@ -31,19 +31,19 @@ export declare class _BoxedValueDefinition implements BoxedValueDefinition, Conf
|
|
|
31
31
|
inferredType: boolean;
|
|
32
32
|
_isConstant: boolean;
|
|
33
33
|
holdUntil: 'never' | 'evaluate' | 'N';
|
|
34
|
-
eq?: (a:
|
|
35
|
-
neq?: (a:
|
|
36
|
-
cmp?: (a:
|
|
34
|
+
eq?: (a: Expression) => boolean | undefined;
|
|
35
|
+
neq?: (a: Expression) => boolean | undefined;
|
|
36
|
+
cmp?: (a: Expression) => '=' | '>' | '<' | undefined;
|
|
37
37
|
collection?: CollectionHandlers;
|
|
38
|
-
subscriptEvaluate?: (subscript:
|
|
38
|
+
subscriptEvaluate?: (subscript: Expression, options: {
|
|
39
39
|
engine: ComputeEngine;
|
|
40
40
|
numericApproximation?: boolean;
|
|
41
|
-
}) =>
|
|
41
|
+
}) => Expression | undefined;
|
|
42
42
|
constructor(ce: ComputeEngine, name: string, def: Partial<ValueDefinition>);
|
|
43
43
|
/** For debugging */
|
|
44
|
-
toJSON():
|
|
44
|
+
toJSON(): Record<string, unknown>;
|
|
45
45
|
get isConstant(): boolean;
|
|
46
|
-
get value():
|
|
46
|
+
get value(): Expression | undefined;
|
|
47
47
|
get type(): BoxedType;
|
|
48
48
|
set type(t: Type | TypeString | BoxedType);
|
|
49
49
|
onConfigurationChange(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
/**
|
|
3
3
|
* Ensure all expressions in the array are in canonical form
|
|
4
4
|
*/
|
|
5
|
-
export declare function canonical(ce: ComputeEngine, xs: ReadonlyArray<
|
|
5
|
+
export declare function canonical(ce: ComputeEngine, xs: ReadonlyArray<Expression>, scope?: Scope): ReadonlyArray<Expression>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
export declare function canonicalForm(expr:
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
export declare function canonicalForm(expr: Expression, forms: CanonicalOptions, scope?: Scope): Expression;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
import type { expand as _ExpandFn } from './expand';
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare function _setExpand(fn: typeof _ExpandFn): void;
|
|
2
5
|
/**
|
|
3
6
|
* Structural equality of boxed expressions.
|
|
4
7
|
*/
|
|
5
|
-
export declare function same(a:
|
|
8
|
+
export declare function same(a: Expression, b: Expression): boolean;
|
|
6
9
|
/**
|
|
7
10
|
* Mathematical equality of two boxed expressions.
|
|
8
11
|
*
|
|
9
12
|
* In general, it is impossible to always prove equality
|
|
10
13
|
* ([Richardson's theorem](https://en.wikipedia.org/wiki/Richardson%27s_theorem)) but this works often...
|
|
11
14
|
*/
|
|
12
|
-
export declare function eq(a:
|
|
13
|
-
export declare function cmp(a:
|
|
15
|
+
export declare function eq(a: Expression, inputB: number | Expression): boolean | undefined;
|
|
16
|
+
export declare function cmp(a: Expression, b: number | Expression): '<' | '=' | '>' | '>=' | '<=' | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
* Leaf module for shared constants used across boxed-expression modules.
|
|
3
|
+
* No imports from sibling modules to avoid circular dependencies.
|
|
4
|
+
*/
|
|
5
|
+
/** Default complexity for operators that don't specify one */
|
|
6
|
+
export declare const DEFAULT_COMPLEXITY = 100000;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
export declare function expandProducts(ce: ComputeEngine, ops: ReadonlyArray<BoxedExpression>): BoxedExpression | null;
|
|
1
|
+
/* 0.50.1 */
|
|
3
2
|
export declare function choose(n: number, k: number): number;
|
|
4
3
|
/** Attempt to transform the expression (h, ops) into a sum */
|
|
5
|
-
export declare function expandFunction(ce: ComputeEngine, h: string, ops: ReadonlyArray<
|
|
4
|
+
export declare function expandFunction(ce: ComputeEngine, h: string, ops: ReadonlyArray<Expression>): Expression | null;
|
|
6
5
|
/** Apply the distributive law if the expression is a product of sums.
|
|
7
6
|
* For example, a(b + c) = ab + ac
|
|
8
7
|
* Expand the expression if it is a power of a sum.
|
|
@@ -11,10 +10,10 @@ export declare function expandFunction(ce: ComputeEngine, h: string, ops: Readon
|
|
|
11
10
|
* If the exression is a relational operator, expand the operands.
|
|
12
11
|
* Return null if the expression cannot be expanded.
|
|
13
12
|
*/
|
|
14
|
-
export declare function expand(expr:
|
|
13
|
+
export declare function expand(expr: Expression | undefined): Expression | null;
|
|
15
14
|
/**
|
|
16
15
|
* Recursive expand of all terms in the expression.
|
|
17
16
|
*
|
|
18
17
|
* `expand()` only expands the top level of the expression.
|
|
19
18
|
*/
|
|
20
|
-
export declare function expandAll(expr:
|
|
19
|
+
export declare function expandAll(expr: Expression): Expression | null;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
export declare class ExpressionMap<U> implements ExpressionMapInterface<U> {
|
|
3
|
-
readonly _items: Map<
|
|
4
|
-
constructor(source?: ExpressionMapInterface<U> | readonly (readonly [
|
|
5
|
-
has(expr:
|
|
6
|
-
get(expr:
|
|
3
|
+
readonly _items: Map<Expression, U>;
|
|
4
|
+
constructor(source?: ExpressionMapInterface<U> | readonly (readonly [Expression, U])[]);
|
|
5
|
+
has(expr: Expression): boolean;
|
|
6
|
+
get(expr: Expression): U | undefined;
|
|
7
7
|
clear(): void;
|
|
8
|
-
set(expr:
|
|
9
|
-
delete(expr:
|
|
10
|
-
[Symbol.iterator](): IterableIterator<[
|
|
11
|
-
entries(): IterableIterator<[
|
|
8
|
+
set(expr: Expression, value: U): void;
|
|
9
|
+
delete(expr: Expression): void;
|
|
10
|
+
[Symbol.iterator](): IterableIterator<[Expression, U]>;
|
|
11
|
+
entries(): IterableIterator<[Expression, U]>;
|
|
12
12
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
/** Combine rational expressions into a single fraction */
|
|
3
|
-
export declare function together(op:
|
|
3
|
+
export declare function together(op: Expression): Expression;
|
|
4
4
|
/**
|
|
5
5
|
* Detect if an expression is a perfect square trinomial.
|
|
6
6
|
* Returns the factored form (a±b)² if successful, null otherwise.
|
|
@@ -14,7 +14,7 @@ export declare function together(op: BoxedExpression): BoxedExpression;
|
|
|
14
14
|
*
|
|
15
15
|
* IMPORTANT: Does not call .simplify() to avoid infinite recursion.
|
|
16
16
|
*/
|
|
17
|
-
export declare function factorPerfectSquare(expr:
|
|
17
|
+
export declare function factorPerfectSquare(expr: Expression): Expression | null;
|
|
18
18
|
/**
|
|
19
19
|
* Detect if an expression is a difference of squares.
|
|
20
20
|
* Returns the factored form (a-b)(a+b) if successful, null otherwise.
|
|
@@ -23,7 +23,7 @@ export declare function factorPerfectSquare(expr: BoxedExpression): BoxedExpress
|
|
|
23
23
|
*
|
|
24
24
|
* IMPORTANT: Does not call .simplify() on the result to avoid infinite recursion.
|
|
25
25
|
*/
|
|
26
|
-
export declare function factorDifferenceOfSquares(expr:
|
|
26
|
+
export declare function factorDifferenceOfSquares(expr: Expression): Expression | null;
|
|
27
27
|
/**
|
|
28
28
|
* Factor a quadratic polynomial using the quadratic formula.
|
|
29
29
|
* Returns factored form if successful, null otherwise.
|
|
@@ -34,7 +34,7 @@ export declare function factorDifferenceOfSquares(expr: BoxedExpression): BoxedE
|
|
|
34
34
|
*
|
|
35
35
|
* IMPORTANT: Does not call .simplify() to avoid infinite recursion.
|
|
36
36
|
*/
|
|
37
|
-
export declare function factorQuadratic(expr:
|
|
37
|
+
export declare function factorQuadratic(expr: Expression, variable: string): Expression | null;
|
|
38
38
|
/**
|
|
39
39
|
* Factor a polynomial expression.
|
|
40
40
|
* Attempts various factoring strategies:
|
|
@@ -46,11 +46,11 @@ export declare function factorQuadratic(expr: BoxedExpression, variable: string)
|
|
|
46
46
|
*
|
|
47
47
|
* IMPORTANT: Does not call .simplify() to avoid infinite recursion.
|
|
48
48
|
*/
|
|
49
|
-
export declare function factorPolynomial(expr:
|
|
49
|
+
export declare function factorPolynomial(expr: Expression, variable?: string): Expression;
|
|
50
50
|
/**
|
|
51
51
|
* Return an expression factored as a product.
|
|
52
52
|
* - 2x + 4 -> 2(x + 2)
|
|
53
53
|
* - 2x < 4 -> x < 2
|
|
54
54
|
* - (2x) * (2y) -> 4xy
|
|
55
55
|
*/
|
|
56
|
-
export declare function factor(expr:
|
|
56
|
+
export declare function factor(expr: Expression): Expression;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Optionally make all the arguments canonical (default).
|
|
5
5
|
*
|
|
6
6
|
* "Lift" Sequence expressions to the top level.
|
|
7
7
|
* e.g. `["Add", 1, ["Sequence", 2, 3]]` -> `["Add", 1, 2, 3]`
|
|
@@ -12,14 +12,5 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Note: *not* recursive
|
|
14
14
|
*/
|
|
15
|
-
export declare function flatten<T extends ReadonlyArray<
|
|
16
|
-
|
|
17
|
-
* Flatten the arguments.
|
|
18
|
-
* @fixme replace with just flatten.
|
|
19
|
-
* @fixme consider adding flatternSort()
|
|
20
|
-
*/
|
|
21
|
-
export declare function flattenOps<T extends ReadonlyArray<BoxedExpression> | BoxedExpression[]>(ops: T, operator: string): T;
|
|
22
|
-
/**
|
|
23
|
-
* @todo: this function should probably not be recursive. As it, it is semi-recursive.
|
|
24
|
-
*/
|
|
25
|
-
export declare function flattenSequence(xs: ReadonlyArray<BoxedExpression>): ReadonlyArray<BoxedExpression>;
|
|
15
|
+
export declare function flatten<T extends ReadonlyArray<Expression> | Expression[]>(ops: T, operator?: string, canonicalize?: boolean): T;
|
|
16
|
+
export declare function flattenSequence(xs: ReadonlyArray<Expression>): ReadonlyArray<Expression>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
/** Apply the function `f` to each operand of the expression `expr`,
|
|
3
3
|
* account for the 'lazy' property of the operator definition:
|
|
4
4
|
*
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
*
|
|
7
7
|
* If `f` returns `null`, the element is not added to the result
|
|
8
8
|
*/
|
|
9
|
-
export declare function holdMap(expr:
|
|
10
|
-
export declare function holdMapAsync(expr:
|
|
9
|
+
export declare function holdMap(expr: Expression, f: (x: Expression) => Expression | null): ReadonlyArray<Expression>;
|
|
10
|
+
export declare function holdMapAsync(expr: Expression, f: (x: Expression) => Promise<Expression | null>): Promise<ReadonlyArray<Expression>>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
/**
|
|
3
|
+
* Get inequality bounds for a symbol from the assumption database.
|
|
4
|
+
*
|
|
5
|
+
* For example, if `x > 4` is assumed, this returns `{ lowerBound: 4, lowerStrict: true }`.
|
|
6
|
+
* If `x <= 10` is assumed, this returns `{ upperBound: 10, upperStrict: false }`.
|
|
7
|
+
*
|
|
8
|
+
* Note: Assumptions are normalized to forms like:
|
|
9
|
+
* - `x > 4` becomes `Less(Add(Negate(x), 4), 0)` i.e., `4 - x < 0`
|
|
10
|
+
* - `x > 0` becomes `Less(Negate(x), 0)` i.e., `-x < 0`
|
|
11
|
+
*
|
|
12
|
+
* @param ce - The compute engine instance
|
|
13
|
+
* @param symbol - The symbol name to query
|
|
14
|
+
* @returns An object with lowerBound, upperBound, and strictness flags
|
|
15
|
+
*/
|
|
16
|
+
export declare function getInequalityBoundsFromAssumptions(ce: ComputeEngine, symbol: string): {
|
|
17
|
+
lowerBound?: Expression;
|
|
18
|
+
lowerStrict?: boolean;
|
|
19
|
+
upperBound?: Expression;
|
|
20
|
+
upperStrict?: boolean;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* 0.50.1 */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
/**
|
|
3
3
|
* The function attempts to match a subject expression to a
|
|
4
4
|
* [pattern](/compute-engine/guides/patterns-and-rules/).
|
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
* -->
|
|
39
39
|
*
|
|
40
40
|
*/
|
|
41
|
-
export declare function match(subject:
|
|
41
|
+
export declare function match(subject: Expression, pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
export declare function canonicalNegate(expr:
|
|
1
|
+
/* 0.50.1 */
|
|
2
|
+
export declare function canonicalNegate(expr: Expression): Expression;
|
|
3
3
|
/**
|
|
4
4
|
* Distribute `Negate` (multiply by -1) if expr is a number literal, an
|
|
5
5
|
* addition or multiplication or another `Negate`.
|
|
@@ -7,5 +7,5 @@ export declare function canonicalNegate(expr: BoxedExpression): BoxedExpression;
|
|
|
7
7
|
* It is important to do all these to handle cases like
|
|
8
8
|
* `-3x` -> ["Negate, ["Multiply", 3, "x"]] -> ["Multiply, -3, x]
|
|
9
9
|
*/
|
|
10
|
-
export declare function negate(expr:
|
|
11
|
-
export declare function negateProduct(ce: ComputeEngine, args: ReadonlyArray<
|
|
10
|
+
export declare function negate(expr: Expression): Expression;
|
|
11
|
+
export declare function negateProduct(ce: ComputeEngine, args: ReadonlyArray<Expression>): Expression;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
import { Decimal } from 'decimal.js';
|
|
3
3
|
import type { Rational } from '../numerics/types';
|
|
4
|
-
import type {
|
|
5
|
-
export declare function asRational(expr:
|
|
6
|
-
export declare function asBigint(x: Complex | Decimal |
|
|
7
|
-
export declare function asBignum(expr:
|
|
4
|
+
import type { Expression, ExpressionInput } from '../global-types';
|
|
5
|
+
export declare function asRational(expr: Expression): Rational | undefined;
|
|
6
|
+
export declare function asBigint(x: Complex | Decimal | ExpressionInput | undefined): bigint | null;
|
|
7
|
+
export declare function asBignum(expr: Expression | undefined): Decimal | null;
|
|
8
8
|
/**
|
|
9
9
|
* Validate if the expression is a small integer.
|
|
10
10
|
* A small integer is an integer between -SMALL_INTEGER and SMALL_INTEGER (inclusive).
|
|
@@ -13,7 +13,7 @@ export declare function asBignum(expr: BoxedExpression | undefined): Decimal | n
|
|
|
13
13
|
* Unlike `toInteger()` this functions fails if the expression is not an
|
|
14
14
|
* integer. `toInteger()` will round the value to the nearest integer.
|
|
15
15
|
*/
|
|
16
|
-
export declare function asSmallInteger(expr: number |
|
|
16
|
+
export declare function asSmallInteger(expr: number | Expression | undefined): number | null;
|
|
17
17
|
/**
|
|
18
18
|
* Convert a boxed expression to an integer.
|
|
19
19
|
* Returns null if the expression cannot be converted to an integer.
|
|
@@ -25,10 +25,10 @@ export declare function asSmallInteger(expr: number | BoxedExpression | undefine
|
|
|
25
25
|
* value to the nearest integer if it is a number.
|
|
26
26
|
*
|
|
27
27
|
*/
|
|
28
|
-
export declare function toInteger(expr:
|
|
28
|
+
export declare function toInteger(expr: Expression | undefined): number | null;
|
|
29
29
|
/** Convert a boxed expression to a bigint.
|
|
30
30
|
* Returns null if the expression cannot be converted to a bigint.
|
|
31
31
|
* If the expression is a complex number, only the real part is considered.
|
|
32
32
|
* If the real part is not an integer, it is rounded to the nearest integer.
|
|
33
33
|
*/
|
|
34
|
-
export declare function toBigint(expr:
|
|
34
|
+
export declare function toBigint(expr: Expression | undefined): bigint | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
2
2
|
export type Order = 'lex' | 'dexlex' | 'grevlex' | 'elim';
|
|
3
|
-
|
|
3
|
+
import { DEFAULT_COMPLEXITY } from './constants';
|
|
4
|
+
export { DEFAULT_COMPLEXITY };
|
|
4
5
|
/**
|
|
5
6
|
* The sorting order of arguments of the Add function uses a modified degrevlex:
|
|
6
7
|
* - Sort by total degree (sum of degree)
|
|
@@ -13,8 +14,8 @@ export declare const DEFAULT_COMPLEXITY = 100000;
|
|
|
13
14
|
* - 2x^2 + 3x + 1
|
|
14
15
|
* - 2x^2y^3 + 5x^3y
|
|
15
16
|
*/
|
|
16
|
-
export declare function addOrder(a:
|
|
17
|
-
export declare function equalOrder(a:
|
|
17
|
+
export declare function addOrder(a: Expression, b: Expression): number;
|
|
18
|
+
export declare function equalOrder(a: Expression, b: Expression): number;
|
|
18
19
|
declare const RANKS: readonly ["integer", "rational", "radical", "real", "complex", "constant", "symbol", "multiply", "divide", "add", "trig", "fn", "power", "string", "other"];
|
|
19
20
|
export type Rank = (typeof RANKS)[number];
|
|
20
21
|
/**
|
|
@@ -50,22 +51,21 @@ export type Rank = (typeof RANKS)[number];
|
|
|
50
51
|
* description of the ordering of expressions in Mathematica.
|
|
51
52
|
*
|
|
52
53
|
*/
|
|
53
|
-
export declare function order(a:
|
|
54
|
+
export declare function order(a: Expression, b: Expression): number;
|
|
54
55
|
/** Return a version of the expression with its arguments sorted in
|
|
55
56
|
* canonical order
|
|
56
57
|
*/
|
|
57
|
-
export declare function canonicalOrder(expr:
|
|
58
|
+
export declare function canonicalOrder(expr: Expression, { recursive }: {
|
|
58
59
|
recursive?: boolean;
|
|
59
|
-
}):
|
|
60
|
-
export declare function sortOperands(operator: string, xs: ReadonlyArray<
|
|
60
|
+
}): Expression;
|
|
61
|
+
export declare function sortOperands(operator: string, xs: ReadonlyArray<Expression>): ReadonlyArray<Expression>;
|
|
61
62
|
/**
|
|
62
63
|
* Sort the terms of a polynomial expression (`Add` expression) according
|
|
63
64
|
* to the deglex polynomial ordering
|
|
64
65
|
*
|
|
65
66
|
*/
|
|
66
|
-
export declare function polynomialOrder(expr:
|
|
67
|
-
export declare function lexicographicOrder(expr:
|
|
68
|
-
export declare function degreeLexicographicOrder(expr:
|
|
69
|
-
export declare function degreeReverseLexicographicOrder(expr:
|
|
70
|
-
export declare function eliminationOrder(expr:
|
|
71
|
-
export {};
|
|
67
|
+
export declare function polynomialOrder(expr: Expression): Expression;
|
|
68
|
+
export declare function lexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
|
|
69
|
+
export declare function degreeLexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
|
|
70
|
+
export declare function degreeReverseLexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
|
|
71
|
+
export declare function eliminationOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
|