@cortex-js/compute-engine 0.15.0 → 0.17.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 (100) hide show
  1. package/README.md +1 -1
  2. package/dist/compute-engine.esm.js +7319 -5823
  3. package/dist/compute-engine.js +7319 -5823
  4. package/dist/compute-engine.min.esm.js +47 -25822
  5. package/dist/compute-engine.min.js +19 -25805
  6. package/dist/math-json.esm.js +2 -2
  7. package/dist/math-json.js +2 -2
  8. package/dist/math-json.min.esm.js +2 -2
  9. package/dist/math-json.min.js +2 -281
  10. package/dist/types/common/ansi-codes.d.ts +15 -0
  11. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  12. package/dist/types/common/signals.d.ts +1 -1
  13. package/dist/types/common/utils.d.ts +1 -1
  14. package/dist/types/compute-engine/assume.d.ts +2 -2
  15. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +15 -19
  16. package/dist/types/compute-engine/boxed-expression/box.d.ts +8 -3
  17. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +9 -9
  18. package/dist/types/compute-engine/boxed-expression/boxed-domain.d.ts +16 -28
  19. package/dist/types/compute-engine/boxed-expression/boxed-function-definition.d.ts +27 -1
  20. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +9 -21
  21. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +6 -5
  22. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +4 -4
  23. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +3 -3
  24. package/dist/types/compute-engine/boxed-expression/boxed-symbol-definition.d.ts +13 -12
  25. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +21 -15
  26. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  27. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  28. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +2 -2
  29. package/dist/types/compute-engine/boxed-expression/utils.d.ts +30 -9
  30. package/dist/types/compute-engine/boxed-expression/validate.d.ts +32 -12
  31. package/dist/types/compute-engine/compile.d.ts +18 -2
  32. package/dist/types/compute-engine/compute-engine.d.ts +77 -55
  33. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  34. package/dist/types/compute-engine/domain-utils.d.ts +4 -21
  35. package/dist/types/compute-engine/function-utils.d.ts +124 -0
  36. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  37. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  38. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  39. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  40. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  41. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-inequalities.d.ts +1 -1
  42. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  43. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  44. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  45. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  46. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  47. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  48. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  49. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +2 -2
  50. package/dist/types/compute-engine/latex-syntax/parse-identifier.d.ts +1 -1
  51. package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
  52. package/dist/types/compute-engine/latex-syntax/public.d.ts +31 -13
  53. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  54. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  55. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  56. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  57. package/dist/types/compute-engine/library/arithmetic-add.d.ts +2 -2
  58. package/dist/types/compute-engine/library/arithmetic-divide.d.ts +1 -1
  59. package/dist/types/compute-engine/library/arithmetic-multiply.d.ts +1 -1
  60. package/dist/types/compute-engine/library/arithmetic-power.d.ts +1 -1
  61. package/dist/types/compute-engine/library/arithmetic.d.ts +3 -2
  62. package/dist/types/compute-engine/library/calculus.d.ts +2 -2
  63. package/dist/types/compute-engine/library/collections.d.ts +2 -2
  64. package/dist/types/compute-engine/library/complex.d.ts +2 -2
  65. package/dist/types/compute-engine/library/control-structures.d.ts +2 -0
  66. package/dist/types/compute-engine/library/core.d.ts +2 -2
  67. package/dist/types/compute-engine/library/domains.d.ts +9 -9
  68. package/dist/types/compute-engine/library/library.d.ts +7 -5
  69. package/dist/types/compute-engine/library/linear-algebra.d.ts +2 -0
  70. package/dist/types/compute-engine/library/logic.d.ts +2 -2
  71. package/dist/types/compute-engine/library/polynomials.d.ts +2 -2
  72. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  73. package/dist/types/compute-engine/library/relational-operator.d.ts +2 -2
  74. package/dist/types/compute-engine/library/sets.d.ts +2 -2
  75. package/dist/types/compute-engine/library/statistics.d.ts +2 -2
  76. package/dist/types/compute-engine/library/trigonometry.d.ts +2 -2
  77. package/dist/types/compute-engine/library/utils.d.ts +1 -3
  78. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  79. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +3 -2
  80. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +2 -2
  81. package/dist/types/compute-engine/numerics/numeric.d.ts +61 -3
  82. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  83. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  84. package/dist/types/compute-engine/public.d.ts +281 -189
  85. package/dist/types/compute-engine/rules.d.ts +1 -1
  86. package/dist/types/compute-engine/simplify-rules.d.ts +1 -1
  87. package/dist/types/compute-engine/solve.d.ts +1 -1
  88. package/dist/types/compute-engine/symbolic/derivative.d.ts +20 -0
  89. package/dist/types/compute-engine/symbolic/expand.d.ts +1 -1
  90. package/dist/types/compute-engine/symbolic/flatten.d.ts +1 -2
  91. package/dist/types/compute-engine/symbolic/negate.d.ts +1 -1
  92. package/dist/types/compute-engine/symbolic/polynomials.d.ts +1 -1
  93. package/dist/types/compute-engine/symbolic/product.d.ts +1 -1
  94. package/dist/types/compute-engine/symbolic/sum.d.ts +1 -1
  95. package/dist/types/compute-engine/symbolic/utils.d.ts +5 -3
  96. package/dist/types/compute-engine.d.ts +2 -2
  97. package/dist/types/math-json/math-json-format.d.ts +4 -3
  98. package/dist/types/math-json/utils.d.ts +1 -1
  99. package/dist/types/math-json.d.ts +2 -2
  100. package/package.json +25 -22
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * Go through all the rules in the rule set, and for all the rules that match
4
4
  * return the rhs of the rule applied to `expr`.
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * A set of simplification rules.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  export declare const UNIVARIATE_ROOTS: Rule[];
3
3
  /**
4
4
  * Expression is a function of a single variable (`x`) or an Equality
@@ -0,0 +1,20 @@
1
+ /* 0.17.0 */
2
+ /**
3
+ *
4
+ * @param fn The function to differentiate, a `["Function"]` expression or
5
+ * an identifier for a function name.
6
+ *
7
+ * @param degrees
8
+ * @returns a function expression representing the derivative of `fn` with
9
+ * respect to the variables in `degrees`.
10
+ */
11
+ export declare function differentiateFunction(fn: BoxedExpression, degrees: number[]): BoxedExpression | undefined;
12
+ /**
13
+ * Calculate the partial derivative of an expression with respect to a
14
+ * variable, `v`.
15
+ *
16
+ * All expressions that do not explicitly depend on `v` are taken to have zero
17
+ * partial derivative.
18
+ *
19
+ */
20
+ export declare function differentiate(expr: BoxedExpression, v: string): BoxedExpression | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  export declare function distribute(expr: BoxedExpression[]): BoxedExpression;
3
3
  /** Use the multinomial theorem (https://en.wikipedia.org/wiki/Multinomial_theorem) to expand the expression.
4
4
  * The expression must be a power of a sum of terms.
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * Flatten the arguments.
4
4
  * If `expr` was canonical, the result it canonical.
@@ -6,4 +6,3 @@
6
6
  export declare function flatten(expr: BoxedExpression, head: string): BoxedExpression;
7
7
  export declare function flattenOps(ops: BoxedExpression[], head: string): BoxedExpression[];
8
8
  export declare function flattenSequence(xs: BoxedExpression[]): BoxedExpression[];
9
- export declare function canonical(xs: BoxedExpression[]): BoxedExpression[];
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * Distribute `Negate` (multiply by -1) if expr is a number literal, an
4
4
  * addition or multiplication or another `Negate`.
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * Coefficient of a univariate (single variable) polynomial.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /**
3
3
  * Group terms in a product by common term.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  export declare class Sum {
3
3
  private engine;
4
4
  private _isCanonical;
@@ -1,6 +1,6 @@
1
- /* 0.15.0 */
2
- import Decimal from 'decimal.js';
3
- import { BoxedExpression, Rational } from '../public';
1
+ /* 0.17.0 */
2
+ import { Decimal } from 'decimal.js';
3
+ import { BoxedExpression, Hold, Rational } from '../public';
4
4
  /**
5
5
  * Return a rational coef and constant such that `coef * mod + constant = expr`
6
6
  */
@@ -23,3 +23,5 @@ export declare function apply(expr: BoxedExpression, fn: (x: number) => number |
23
23
  export declare function applyN(expr: BoxedExpression, fn: (x: number) => number | Complex, bigFn?: (x: Decimal) => Decimal | Complex | number, complexFn?: (x: Complex) => number | Complex): BoxedExpression | undefined;
24
24
  export declare function apply2(expr1: BoxedExpression, expr2: BoxedExpression, fn: (x1: number, x2: number) => number | Complex | Rational, bigFn?: (x1: Decimal, x2: Decimal) => Decimal | Complex | Rational | number, complexFn?: (x1: Complex, x2: number | Complex) => Complex | number): number | Decimal | Complex | Rational;
25
25
  export declare function apply2N(expr1: BoxedExpression, expr2: BoxedExpression, fn: (x1: number, x2: number) => number | Complex | Rational, bigFn?: (x1: Decimal, x2: Decimal) => Decimal | Complex | number | Rational, complexFn?: (x1: Complex, x2: number | Complex) => Complex | number): BoxedExpression | undefined;
26
+ export declare function shouldHold(skip: Hold, count: number, index: number): boolean;
27
+ export declare function canonical(xs: BoxedExpression[]): BoxedExpression[];
@@ -1,3 +1,3 @@
1
- /* 0.15.0 */
2
- export declare const version = "0.15.0";
1
+ /* 0.17.0 */
2
+ export declare const version = "0.17.0";
3
3
  export { ComputeEngine } from './compute-engine/compute-engine';
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  /** A human readable string to annotate this expression, since JSON does not
3
3
  * allow comments in its encoding */
4
4
  comment?: string;
@@ -54,6 +54,7 @@
54
54
  */
55
55
  sourceOffsets?: [start: number, end: number];
56
56
  };
57
+ export type MathJsonIdentifier = string;
57
58
  /**
58
59
  * A MathJSON numeric quantity.
59
60
  *
@@ -82,7 +83,7 @@ export type MathJsonNumber = {
82
83
  num: 'NaN' | '-Infinity' | '+Infinity' | string;
83
84
  } & Attributes;
84
85
  export type MathJsonSymbol = {
85
- sym: string;
86
+ sym: MathJsonIdentifier;
86
87
  } & Attributes;
87
88
  export type MathJsonString = {
88
89
  str: string;
@@ -102,4 +103,4 @@ export type MathJsonDictionary = {
102
103
  * The dictionary and function nodes can contain expressions themselves.
103
104
  *
104
105
  */
105
- export type Expression = number | string | MathJsonNumber | MathJsonString | MathJsonSymbol | MathJsonFunction | MathJsonDictionary | [Expression, ...Expression[]];
106
+ export type Expression = number | MathJsonIdentifier | string | MathJsonNumber | MathJsonString | MathJsonSymbol | MathJsonFunction | MathJsonDictionary | [Expression, ...Expression[]];
@@ -1,4 +1,4 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  export declare const MISSING: Expression;
3
3
  export declare function isNumberExpression(expr: Expression | null): expr is number | string | MathJsonNumber;
4
4
  export declare function isNumberObject(expr: Expression | null): expr is MathJsonNumber;
@@ -1,3 +1,3 @@
1
- /* 0.15.0 */
1
+ /* 0.17.0 */
2
2
  export { isSymbolObject, isStringObject, isFunctionObject, isDictionaryObject, stringValue as getStringValue, head, headName, symbol, applyRecursively, mapArgs, op, nops, dictionary as getDictionary, } from './math-json/utils';
3
- export declare const version = "0.15.0";
3
+ export declare const version = "0.17.0";
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.15.0",
2
+ "version": "0.17.0",
3
3
  "scripts": {
4
4
  "build": "bash ./scripts/build.sh",
5
5
  "clean": "bash ./scripts/clean.sh",
@@ -46,33 +46,36 @@
46
46
  "node": ">=16.14.2"
47
47
  },
48
48
  "devDependencies": {
49
- "@cortex-js/prettier-config": "^1.1.1",
50
- "@jest/console": "^29.0.3",
51
- "@types/jest": "^29.0.0",
52
- "@types/node": "^20.3.2",
53
- "@typescript-eslint/eslint-plugin": "^5.36.2",
54
- "@typescript-eslint/parser": "^5.36.2",
55
- "@typescript-eslint/typescript-estree": "^5.36.2",
56
- "chalk": "^5.0.1",
49
+ "@cortex-js/prettier-config": "^1.2.0",
50
+ "@jest/console": "^29.7.0",
51
+ "@types/jest": "^29.5.5",
52
+ "@types/node": "^20.6.3",
53
+ "@typescript-eslint/eslint-plugin": "^6.7.2",
54
+ "@typescript-eslint/parser": "^6.7.2",
55
+ "@typescript-eslint/typescript-estree": "^6.7.2",
56
+ "chalk": "^5.3.0",
57
57
  "check-node-version": "^4.2.1",
58
- "esbuild": "^0.18.10",
59
- "eslint": "^8.23.0",
60
- "eslint-config-prettier": "^8.5.0",
61
- "eslint-plugin-import": "^2.26.0",
62
- "eslint-plugin-no-unsanitized": "^4.0.1",
63
- "eslint-plugin-prettier": "^4.2.1",
64
- "jest": "^29.0.3",
58
+ "esbuild": "^0.19.3",
59
+ "eslint": "^8.50.0",
60
+ "eslint-config-prettier": "^9.0.0",
61
+ "eslint-plugin-import": "^2.28.1",
62
+ "eslint-plugin-no-unsanitized": "^4.0.2",
63
+ "eslint-plugin-prettier": "^5.0.0",
64
+ "jest": "^29.7.0",
65
65
  "jest-silent-reporter": "^0.5.0",
66
66
  "open": "^9.1.0",
67
- "prettier": "^2.7.1",
67
+ "prettier": "^3.0.3",
68
68
  "serve-http": "^1.0.7",
69
- "ts-jest": "^29.0.0",
70
- "typescript": "^5.1.5",
71
- "update-notifier": "^6.0.2"
69
+ "ts-jest": "^29.1.1",
70
+ "ts-node": "^10.9.1",
71
+ "typescript": "^5.2.2",
72
+ "update-notifier": "^6.0.2",
73
+ "prettier-2": "npm:prettier@^2"
72
74
  },
73
75
  "prettier": "@cortex-js/prettier-config",
74
76
  "dependencies": {
75
77
  "complex.js": "^2.1.1",
76
- "decimal.js": "^10.4.0"
77
- }
78
+ "decimal.js": "^10.4.3"
79
+ },
80
+ "type": "module"
78
81
  }