@cortex-js/compute-engine 0.35.6 → 0.50.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.
Files changed (222) hide show
  1. package/README.md +121 -5
  2. package/dist/compute-engine.esm.js +50435 -44944
  3. package/dist/compute-engine.min.esm.js +1072 -69
  4. package/dist/compute-engine.min.umd.js +1072 -69
  5. package/dist/compute-engine.umd.js +50540 -45049
  6. package/dist/math-json.esm.js +2 -2
  7. package/dist/math-json.min.esm.js +2 -2
  8. package/dist/math-json.min.umd.js +2 -2
  9. package/dist/math-json.umd.js +2 -2
  10. package/dist/types/common/ansi-codes.d.ts +1 -1
  11. package/dist/types/common/configuration-change.d.ts +1 -1
  12. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  13. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  14. package/dist/types/common/interruptible.d.ts +1 -1
  15. package/dist/types/common/one-of.d.ts +1 -1
  16. package/dist/types/common/signals.d.ts +1 -1
  17. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  18. package/dist/types/common/type/boxed-type.d.ts +1 -1
  19. package/dist/types/common/type/lexer.d.ts +1 -1
  20. package/dist/types/common/type/parse.d.ts +1 -1
  21. package/dist/types/common/type/parser.d.ts +8 -1
  22. package/dist/types/common/type/primitive.d.ts +2 -1
  23. package/dist/types/common/type/reduce.d.ts +1 -1
  24. package/dist/types/common/type/serialize.d.ts +1 -1
  25. package/dist/types/common/type/subtype.d.ts +1 -1
  26. package/dist/types/common/type/type-builder.d.ts +1 -1
  27. package/dist/types/common/type/types.d.ts +1 -1
  28. package/dist/types/common/type/utils.d.ts +3 -2
  29. package/dist/types/common/utils.d.ts +1 -1
  30. package/dist/types/compute-engine/assume.d.ts +4 -22
  31. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +63 -76
  32. package/dist/types/compute-engine/boxed-expression/apply.d.ts +4 -4
  33. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +15 -6
  34. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +72 -6
  35. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +8 -8
  36. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +5 -8
  37. package/dist/types/compute-engine/boxed-expression/box.d.ts +63 -8
  38. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +13 -12
  39. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +44 -43
  40. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +31 -30
  41. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +18 -18
  42. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +5 -37
  43. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +5 -4
  44. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +34 -33
  45. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +34 -33
  46. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +8 -8
  47. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +2 -2
  49. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -2
  50. package/dist/types/compute-engine/boxed-expression/compare.d.ts +4 -4
  51. package/dist/types/compute-engine/boxed-expression/constants.d.ts +6 -0
  52. package/dist/types/compute-engine/boxed-expression/expand.d.ts +4 -5
  53. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +9 -9
  54. package/dist/types/compute-engine/boxed-expression/factor.d.ts +7 -7
  55. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +4 -13
  56. package/dist/types/compute-engine/boxed-expression/hold.d.ts +3 -3
  57. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +21 -0
  58. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +4 -0
  59. package/dist/types/compute-engine/boxed-expression/match.d.ts +2 -2
  60. package/dist/types/compute-engine/boxed-expression/negate.d.ts +4 -4
  61. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +8 -8
  62. package/dist/types/compute-engine/boxed-expression/order.d.ts +14 -14
  63. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +41 -0
  64. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +18 -0
  65. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +12 -35
  66. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +2 -0
  67. package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
  68. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +3 -3
  69. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +2 -2
  70. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +2 -2
  71. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +8 -8
  72. package/dist/types/compute-engine/boxed-expression/solve.d.ts +3 -11
  73. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +7 -7
  74. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +31 -0
  75. package/dist/types/compute-engine/boxed-expression/utils.d.ts +13 -13
  76. package/dist/types/compute-engine/boxed-expression/validate.d.ts +10 -10
  77. package/dist/types/compute-engine/collection-utils.d.ts +4 -4
  78. package/dist/types/compute-engine/compilation/base-compiler.d.ts +3 -3
  79. package/dist/types/compute-engine/compilation/compile-expression.d.ts +25 -0
  80. package/dist/types/compute-engine/compilation/glsl-target.d.ts +12 -41
  81. package/dist/types/compute-engine/compilation/gpu-target.d.ts +50 -0
  82. package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +11 -11
  83. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +7 -7
  84. package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +54 -0
  85. package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
  86. package/dist/types/compute-engine/compilation/python-target.d.ts +61 -0
  87. package/dist/types/compute-engine/compilation/types.d.ts +27 -22
  88. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +41 -0
  89. package/dist/types/compute-engine/cost-function.d.ts +3 -3
  90. package/dist/types/compute-engine/engine-assumptions.d.ts +6 -0
  91. package/dist/types/compute-engine/engine-cache.d.ts +6 -0
  92. package/dist/types/compute-engine/engine-common-symbols.d.ts +6 -0
  93. package/dist/types/compute-engine/engine-compilation-targets.d.ts +17 -0
  94. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +15 -0
  95. package/dist/types/compute-engine/engine-declarations.d.ts +19 -0
  96. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +44 -0
  97. package/dist/types/compute-engine/engine-extension-contracts.d.ts +9 -0
  98. package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +13 -0
  99. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +6 -0
  100. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +34 -0
  101. package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +7 -0
  102. package/dist/types/compute-engine/engine-runtime-state.d.ts +19 -0
  103. package/dist/types/compute-engine/engine-scope.d.ts +13 -0
  104. package/dist/types/compute-engine/engine-sequences.d.ts +14 -0
  105. package/dist/types/compute-engine/engine-simplification-rules.d.ts +15 -0
  106. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +28 -0
  107. package/dist/types/compute-engine/engine-type-resolver.d.ts +12 -0
  108. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +13 -0
  109. package/dist/types/compute-engine/free-functions.d.ts +20 -0
  110. package/dist/types/compute-engine/function-utils.d.ts +10 -10
  111. package/dist/types/compute-engine/global-types.d.ts +5 -3301
  112. package/dist/types/compute-engine/index.d.ts +155 -112
  113. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  114. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  115. package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
  116. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  117. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  118. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  119. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  120. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  121. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  122. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  123. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  124. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  125. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  126. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  127. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  128. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  129. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  130. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  131. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  132. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  133. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +4 -80
  134. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +83 -0
  135. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +28 -0
  136. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
  137. package/dist/types/compute-engine/latex-syntax/parse.d.ts +23 -33
  138. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
  139. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +8 -8
  140. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +15 -15
  141. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  142. package/dist/types/compute-engine/latex-syntax/types.d.ts +73 -53
  143. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  144. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -2
  145. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  146. package/dist/types/compute-engine/library/collections.d.ts +4 -4
  147. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  148. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  149. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  150. package/dist/types/compute-engine/library/core.d.ts +1 -1
  151. package/dist/types/compute-engine/library/library.d.ts +19 -6
  152. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  153. package/dist/types/compute-engine/library/logic-analysis.d.ts +19 -32
  154. package/dist/types/compute-engine/library/logic.d.ts +1 -5
  155. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  156. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  157. package/dist/types/compute-engine/library/random-expression.d.ts +2 -2
  158. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  159. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  160. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  161. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  162. package/dist/types/compute-engine/library/type-handlers.d.ts +4 -0
  163. package/dist/types/compute-engine/library/utils.d.ts +12 -12
  164. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +5 -5
  165. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
  166. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
  167. package/dist/types/compute-engine/numeric-value/types.d.ts +2 -3
  168. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  169. package/dist/types/compute-engine/numerics/expression.d.ts +3 -3
  170. package/dist/types/compute-engine/numerics/interval.d.ts +2 -2
  171. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  172. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  173. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  174. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  175. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  176. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  177. package/dist/types/compute-engine/numerics/rationals.d.ts +4 -4
  178. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  179. package/dist/types/compute-engine/numerics/special-functions.d.ts +120 -1
  180. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -2
  181. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  182. package/dist/types/compute-engine/numerics/types.d.ts +3 -1
  183. package/dist/types/compute-engine/oeis.d.ts +3 -3
  184. package/dist/types/compute-engine/sequence.d.ts +13 -13
  185. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +2 -2
  186. package/dist/types/compute-engine/symbolic/derivative.d.ts +3 -3
  187. package/dist/types/compute-engine/symbolic/distribute.d.ts +2 -2
  188. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +6 -6
  189. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +46 -46
  190. package/dist/types/compute-engine/symbolic/fu.d.ts +4 -4
  191. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +54 -0
  192. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +4 -4
  193. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +2 -2
  194. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -2
  195. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +2 -2
  196. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +2 -2
  197. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +5 -0
  198. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +2 -2
  199. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +2 -2
  200. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +65 -4
  201. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +2 -2
  202. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -2
  203. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +42 -42
  204. package/dist/types/compute-engine/tensor/tensors.d.ts +4 -4
  205. package/dist/types/compute-engine/types-definitions.d.ts +900 -0
  206. package/dist/types/compute-engine/types-engine.d.ts +375 -0
  207. package/dist/types/compute-engine/types-evaluation.d.ts +67 -0
  208. package/dist/types/compute-engine/types-expression.d.ts +1655 -0
  209. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +164 -0
  210. package/dist/types/compute-engine/types-kernel-serialization.d.ts +147 -0
  211. package/dist/types/compute-engine/types-serialization.d.ts +23 -0
  212. package/dist/types/compute-engine/types.d.ts +2 -2
  213. package/dist/types/compute-engine.d.ts +16 -3
  214. package/dist/types/math-json/symbols.d.ts +1 -1
  215. package/dist/types/math-json/types.d.ts +3 -3
  216. package/dist/types/math-json/utils.d.ts +31 -31
  217. package/dist/types/math-json.d.ts +2 -2
  218. package/package.json +8 -1
  219. package/dist/types/compute-engine/boxed-expression/product.d.ts +0 -66
  220. package/dist/types/compute-engine/boxed-expression/terms.d.ts +0 -10
  221. package/dist/types/compute-engine/library/invisible-operator.d.ts +0 -4
  222. package/dist/types/compute-engine/library/logic-utils.d.ts +0 -54
@@ -0,0 +1,44 @@
1
+ /* 0.50.0 */
2
+ import { Decimal } from 'decimal.js';
3
+ import type { MathJsonNumberObject, MathJsonSymbol } from '../math-json/types';
4
+ import { NumericValue } from './numeric-value/types';
5
+ import type { Rational } from './numerics/types';
6
+ import type { BoxedDefinition, Expression, CanonicalOptions, Metadata, ValueDefinition, IComputeEngine as ComputeEngine } from './global-types';
7
+ export type CommonNumberTable = {
8
+ [num: number]: null | Expression;
9
+ };
10
+ type SymbolHost = ComputeEngine & {
11
+ strict: boolean;
12
+ Nothing: Expression;
13
+ lookupDefinition(id: MathJsonSymbol): undefined | BoxedDefinition;
14
+ _declareSymbolValue(name: MathJsonSymbol, def: Partial<ValueDefinition>): BoxedDefinition;
15
+ error(message: string | string[], where?: string): Expression;
16
+ };
17
+ type NumberHost = ComputeEngine & {
18
+ Zero: Expression;
19
+ One: Expression;
20
+ NegativeOne: Expression;
21
+ Two: Expression;
22
+ NaN: Expression;
23
+ PositiveInfinity: Expression;
24
+ NegativeInfinity: Expression;
25
+ _fn(name: MathJsonSymbol, ops: ReadonlyArray<Expression>, options?: {
26
+ metadata?: Metadata;
27
+ canonical?: boolean;
28
+ }): Expression;
29
+ number(value: number | bigint | string | NumericValue | MathJsonNumberObject | Decimal | Complex | Rational, options?: {
30
+ metadata: Metadata;
31
+ canonical: CanonicalOptions;
32
+ }): Expression;
33
+ };
34
+ export declare function createSymbolExpression(engine: SymbolHost, commonSymbols: {
35
+ [symbol: string]: null | Expression;
36
+ }, symbolName: string, options?: {
37
+ canonical?: CanonicalOptions;
38
+ metadata?: Metadata;
39
+ }): Expression;
40
+ export declare function createNumberExpression(engine: NumberHost, commonNumbers: CommonNumberTable, value: number | bigint | string | NumericValue | MathJsonNumberObject | Decimal | Complex | Rational, options?: {
41
+ metadata: Metadata;
42
+ canonical: CanonicalOptions;
43
+ }): Expression;
44
+ export {};
@@ -0,0 +1,9 @@
1
+ /* 0.50.0 */
2
+ import type { LanguageTarget, CompilationOptions } from './compilation/types';
3
+ export declare function assertCompilationTargetName(name: unknown): string;
4
+ export declare function assertLibraryName(name: unknown): string;
5
+ export declare function assertCompilationTargetContract(target: unknown): asserts target is LanguageTarget<Expression>;
6
+ export declare function assertLibraryDefinitionContract(library: unknown): asserts library is LibraryDefinition;
7
+ export declare function assertCompilationOptionsContract(options: unknown): asserts options is CompilationOptions<Expression> & {
8
+ fallback?: boolean;
9
+ };
@@ -0,0 +1,13 @@
1
+ /* 0.50.0 */
2
+ import type { LatexDictionaryEntry } from './latex-syntax/types';
3
+ type DefaultDictionaryProvider = () => Readonly<LatexDictionaryEntry[]>;
4
+ export declare class EngineLatexDictionaryState {
5
+ private readonly _defaultProvider;
6
+ private _input;
7
+ private _indexed;
8
+ constructor(_defaultProvider: DefaultDictionaryProvider);
9
+ get dictionary(): Readonly<LatexDictionaryEntry[]>;
10
+ set dictionary(dictionary: Readonly<LatexDictionaryEntry[]>);
11
+ get indexedDictionary(): IndexedLatexDictionary;
12
+ }
13
+ export {};
@@ -0,0 +1,6 @@
1
+ /* 0.50.0 */
2
+ import type { LatexDictionaryEntry, LibraryCategory } from './latex-syntax/types';
3
+ export declare function resolveBootstrapLibraries(libraries?: readonly (string | LibraryDefinition)[]): LibraryDefinition[];
4
+ export declare function loadLibraryDefinitions(engine: ComputeEngine, libraries: readonly LibraryDefinition[]): void;
5
+ export declare function collectLibraryLatexEntries(libraries: readonly LibraryDefinition[]): LatexDictionaryEntry[];
6
+ export declare function getLatexDictionaryForDomain(domain?: LibraryCategory | 'all'): readonly Readonly<LatexDictionaryEntry>[];
@@ -0,0 +1,34 @@
1
+ /* 0.50.0 */
2
+ import type { AngularUnit } from './types-definitions';
3
+ export declare class EngineNumericConfiguration {
4
+ private _bignum;
5
+ private _precision;
6
+ private _angularUnit;
7
+ private _tolerance;
8
+ private _bignumTolerance;
9
+ private _negBignumTolerance;
10
+ private _constants;
11
+ constructor(options?: {
12
+ precision?: number | 'machine';
13
+ tolerance?: number | 'auto';
14
+ angularUnit?: AngularUnit;
15
+ });
16
+ get precision(): number;
17
+ setPrecision(value: number | 'machine' | 'auto'): boolean;
18
+ get angularUnit(): AngularUnit;
19
+ setAngularUnit(value: AngularUnit): boolean;
20
+ get tolerance(): number;
21
+ setTolerance(value: number | 'auto'): void;
22
+ get bignumTolerance(): Decimal;
23
+ get negBignumTolerance(): Decimal;
24
+ get bignumNaN(): Decimal;
25
+ get bignumZero(): Decimal;
26
+ get bignumOne(): Decimal;
27
+ get bignumTwo(): Decimal;
28
+ get bignumHalf(): Decimal;
29
+ get bignumPi(): Decimal;
30
+ get bignumNegativeOne(): Decimal;
31
+ refreshConstants(): void;
32
+ bignum(value: Decimal.Value | bigint): Decimal;
33
+ private computeConstants;
34
+ }
@@ -0,0 +1,7 @@
1
+ /* 0.50.0 */
2
+ import type { LatexString, ParseLatexOptions } from './latex-syntax/types';
3
+ import type { FormOption } from './types-serialization';
4
+ export type ParseEntrypointOptions = Partial<ParseLatexOptions> & {
5
+ form?: FormOption;
6
+ };
7
+ export declare function parseLatexEntrypoint(engine: ComputeEngine, latex: LatexString | null, options?: ParseEntrypointOptions): Expression | null;
@@ -0,0 +1,19 @@
1
+ /* 0.50.0 */
2
+ private _timeLimit;
3
+ private _iterationLimit;
4
+ private _recursionLimit;
5
+ private _deadline;
6
+ private _isVerifying;
7
+ get timeLimit(): number;
8
+ set timeLimit(value: number);
9
+ get iterationLimit(): number;
10
+ set iterationLimit(value: number);
11
+ get recursionLimit(): number;
12
+ set recursionLimit(value: number);
13
+ get deadline(): number | undefined;
14
+ set deadline(value: number | undefined);
15
+ get timeRemaining(): number;
16
+ get isVerifying(): boolean;
17
+ set isVerifying(value: boolean);
18
+ shouldContinueExecution(): boolean;
19
+ }
@@ -0,0 +1,13 @@
1
+ /* 0.50.0 */
2
+ import type { IComputeEngine, Scope, EvalContext } from './global-types';
3
+ export declare function pushScope(ce: IComputeEngine, scope?: Scope, name?: string): void;
4
+ export declare function popScope(ce: IComputeEngine): void;
5
+ export declare function pushEvalContext(ce: IComputeEngine, scope: Scope, name?: string): void;
6
+ export declare function popEvalContext(ce: IComputeEngine): void;
7
+ export declare function inScope<T>(ce: IComputeEngine, scope: Scope | undefined, f: () => T): T;
8
+ export declare function printStack(ce: IComputeEngine, options?: {
9
+ details?: boolean;
10
+ maxDepth?: number;
11
+ }): void;
12
+ export declare function lookupContext(ce: IComputeEngine, id: MathJsonSymbol): EvalContext | undefined;
13
+ export declare function swapContext(ce: IComputeEngine, context: EvalContext): void;
@@ -0,0 +1,14 @@
1
+ /* 0.50.0 */
2
+ export declare function declareSequence(ce: IComputeEngine, name: string, def: SequenceDefinition): IComputeEngine;
3
+ export declare function getSequenceStatus(ce: IComputeEngine, name: string): SequenceStatus;
4
+ export declare function getSequence(ce: IComputeEngine, name: string): SequenceInfo | undefined;
5
+ export declare function listSequences(ce: IComputeEngine): string[];
6
+ export declare function isSequence(ce: IComputeEngine, name: string): boolean;
7
+ export declare function clearSequenceCache(ce: IComputeEngine, name?: string): void;
8
+ export declare function getSequenceCache(ce: IComputeEngine, name: string): Map<number | string, Expression> | undefined;
9
+ export declare function getSequenceTerms(ce: IComputeEngine, name: string, start: number, end: number, step?: number): Expression[] | undefined;
10
+ export declare function lookupOEIS(ce: IComputeEngine, terms: (number | Expression)[], options?: OEISOptions): Promise<OEISSequenceInfo[]>;
11
+ export declare function checkSequenceOEIS(ce: IComputeEngine, name: string, count?: number, options?: OEISOptions): Promise<{
12
+ matches: OEISSequenceInfo[];
13
+ terms: number[];
14
+ }>;
@@ -0,0 +1,15 @@
1
+ /* 0.50.0 */
2
+ /**
3
+ * Internal holder for simplification rules and their cache-staleness marker.
4
+ *
5
+ * @internal
6
+ */
7
+ export declare class SimplificationRuleStore {
8
+ private _rules;
9
+ private _cachedLength;
10
+ constructor(initialRules: Rule[]);
11
+ get rules(): Rule[];
12
+ set rules(rules: Rule[]);
13
+ hasMutatedSinceLastCache(): boolean;
14
+ markCached(): void;
15
+ }
@@ -0,0 +1,28 @@
1
+ /* 0.50.0 */
2
+ import type { Expression, IComputeEngine as ComputeEngine, LibraryDefinition } from './global-types';
3
+ export type CommonNumberBindings = {
4
+ Zero: Expression;
5
+ One: Expression;
6
+ Half: Expression;
7
+ NegativeOne: Expression;
8
+ Two: Expression;
9
+ I: Expression;
10
+ NaN: Expression;
11
+ PositiveInfinity: Expression;
12
+ NegativeInfinity: Expression;
13
+ ComplexInfinity: Expression;
14
+ };
15
+ export type CommonSymbolBindings = {
16
+ True: Expression;
17
+ False: Expression;
18
+ Pi: Expression;
19
+ E: Expression;
20
+ Nothing: Expression;
21
+ };
22
+ export declare class EngineStartupCoordinator {
23
+ private readonly engine;
24
+ constructor(engine: ComputeEngine);
25
+ initializeCommonNumbers(): CommonNumberBindings;
26
+ bootstrapLibraries(libraries?: readonly (string | LibraryDefinition)[]): void;
27
+ initializeCommonSymbolBindings(commonSymbols: CommonSymbolTable): CommonSymbolBindings;
28
+ }
@@ -0,0 +1,12 @@
1
+ /* 0.50.0 */
2
+ type ResolverScope = {
3
+ parent: ResolverScope | null;
4
+ types?: Record<string, TypeReference>;
5
+ };
6
+ export type TypeResolverHost = {
7
+ context: {
8
+ lexicalScope: ResolverScope;
9
+ };
10
+ };
11
+ export declare function createTypeResolver(host: TypeResolverHost): TypeResolver;
12
+ export {};
@@ -0,0 +1,13 @@
1
+ /* 0.50.0 */
2
+ import { BoxedType } from '../common/type/boxed-type';
3
+ import type { Expression, Metadata, ExpressionInput } from './global-types';
4
+ type ValidationHost = {
5
+ string(s: string, metadata?: Metadata): Expression;
6
+ function(name: string, ops: ReadonlyArray<ExpressionInput>, options?: {
7
+ metadata?: Metadata;
8
+ }): Expression;
9
+ box(expr: ExpressionInput): Expression;
10
+ };
11
+ export declare function createErrorExpression(engine: ValidationHost, message: string | string[], where?: string): Expression;
12
+ export declare function createTypeErrorExpression(engine: ValidationHost, expected: Type, actual: undefined | Type | BoxedType, where?: string): Expression;
13
+ export {};
@@ -0,0 +1,20 @@
1
+ /* 0.50.0 */
2
+ import type { LatexString } from './latex-syntax/types';
3
+ import { compile as compileExpr } from './compilation/compile-expression';
4
+ /** @internal Called by index.ts to register the ComputeEngine class,
5
+ * avoiding a circular dependency (index.ts re-exports this file). */
6
+ export declare function _setComputeEngineClass(cls: new () => IComputeEngine): void;
7
+ export declare function getDefaultEngine(): IComputeEngine;
8
+ export declare function parse(latex: LatexString): Expression;
9
+ export declare function simplify(latex: LatexString | Expression): Expression;
10
+ export declare function evaluate(latex: LatexString | Expression): Expression;
11
+ export declare function N(latex: LatexString | Expression): Expression;
12
+ export declare function assign(id: string, value: AssignValue): void;
13
+ export declare function assign(ids: {
14
+ [id: string]: AssignValue;
15
+ }): void;
16
+ export declare function expand(latex: LatexString | Expression): Expression | null;
17
+ export declare function solve(latex: LatexString | Expression, vars?: string | Iterable<string> | Expression | Iterable<Expression>): null | ReadonlyArray<Expression> | Record<string, Expression> | Array<Record<string, Expression>>;
18
+ export declare function expandAll(latex: LatexString | Expression): Expression | null;
19
+ export declare function factor(latex: LatexString | Expression): Expression;
20
+ export declare function compile(latex: LatexString | Expression, options?: Parameters<typeof compileExpr>[1]): ReturnType<typeof compileExpr>;
@@ -1,5 +1,5 @@
1
- /* 0.35.6 */
2
- import type { BoxedDefinition, BoxedExpression, ComputeEngine, Scope } from './global-types';
1
+ /* 0.50.0 */
2
+ import type { BoxedDefinition, Expression, IComputeEngine as ComputeEngine, Scope } from './global-types';
3
3
  /***
4
4
  * ### THEORY OF OPERATIONS
5
5
  *
@@ -37,11 +37,11 @@ import type { BoxedDefinition, BoxedExpression, ComputeEngine, Scope } from './g
37
37
  /**
38
38
  * From an expression, return a predicate function, which can be used to filter.
39
39
  */
40
- export declare function predicate(_expr: BoxedExpression): (...args: BoxedExpression[]) => boolean;
40
+ export declare function predicate(_expr: Expression): (...args: Expression[]) => boolean;
41
41
  /**
42
42
  * From an expression, create an ordering function, which can be used to sort.
43
43
  */
44
- export declare function order(_expr: BoxedExpression): (a: BoxedExpression, b: BoxedExpression) => -1 | 0 | 1;
44
+ export declare function order(_expr: Expression): (a: Expression, b: Expression) => -1 | 0 | 1;
45
45
  /**
46
46
  * Given an expression, rewrite it to a symbol or canonical Function form.
47
47
  *
@@ -72,7 +72,7 @@ export declare function order(_expr: BoxedExpression): (a: BoxedExpression, b: B
72
72
  *
73
73
  *
74
74
  */
75
- export declare function canonicalFunctionLiteral(expr: BoxedExpression | undefined): BoxedExpression | undefined;
75
+ export declare function canonicalFunctionLiteral(expr: Expression | undefined): Expression | undefined;
76
76
  /** Assuming that ops has the following form:
77
77
  * - body
78
78
  * - ...params
@@ -80,18 +80,18 @@ export declare function canonicalFunctionLiteral(expr: BoxedExpression | undefin
80
80
  * body is potentially wrapped in a Block expression and the arguments are
81
81
  * declared in the scope of the body.
82
82
  */
83
- export declare function canonicalFunctionLiteralArguments(ce: ComputeEngine, ops: ReadonlyArray<BoxedExpression>): BoxedExpression | undefined;
83
+ export declare function canonicalFunctionLiteralArguments(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression | undefined;
84
84
  /**
85
85
  * Apply arguments to an expression which is either:
86
86
  * - a `["Function"]` expression
87
87
  * - the symbol for a function, e.g. `Sin`.
88
88
  */
89
- export declare function apply(fn: BoxedExpression, args: ReadonlyArray<BoxedExpression>): BoxedExpression;
89
+ export declare function apply(fn: Expression, args: ReadonlyArray<Expression>): Expression;
90
90
  /**
91
91
  * Return a lambda function, assuming a scoped environment has been
92
92
  * created and there is a single numeric argument
93
93
  */
94
- export declare function makeLambdaN1(expr: BoxedExpression): ((arg: number) => number) | undefined;
94
+ export declare function makeLambdaN1(expr: Expression): ((arg: number) => number) | undefined;
95
95
  /**
96
96
  * Given an expression such as:
97
97
  * - ["Function", ["Add", 1, "x"], "x"]
@@ -102,7 +102,7 @@ export declare function makeLambdaN1(expr: BoxedExpression): ((arg: number) => n
102
102
  *
103
103
  * return a JS function that can be called with arguments.
104
104
  */
105
- export declare function applicable(fn: BoxedExpression): (xs: ReadonlyArray<BoxedExpression>) => BoxedExpression | undefined;
105
+ export declare function applicable(fn: Expression): (xs: ReadonlyArray<Expression>) => Expression | undefined;
106
106
  /**
107
107
  * Use `applicableN1()` when the function is known to be a function with a
108
108
  * single real argument that returns a real value.
@@ -111,7 +111,7 @@ export declare function applicable(fn: BoxedExpression): (xs: ReadonlyArray<Boxe
111
111
  * with an argument.
112
112
  *
113
113
  */
114
- export declare function applicableN1(fn: BoxedExpression): (x: number) => number;
114
+ export declare function applicableN1(fn: Expression): (x: number) => number;
115
115
  /**
116
116
  * Given a string like "f(x,y)" return, ["f", ["x", "y"]]
117
117
  */