@pie-framework/math-validation 1.4.1 → 1.4.3

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 (41) hide show
  1. package/lib/conversion/ast-to-mathjs.d.ts +1 -1
  2. package/lib/conversion/ast-to-mathjs.js +1 -1
  3. package/lib/conversion/ast-to-mathjs.js.map +1 -1
  4. package/lib/conversion/flatten.js +6 -6
  5. package/lib/conversion/flatten.js.map +1 -1
  6. package/lib/conversion/latex-to-ast.d.ts +1 -1
  7. package/lib/conversion/latex-to-ast.js +4 -4
  8. package/lib/conversion/latex-to-ast.js.map +1 -1
  9. package/lib/conversion/lexer.d.ts +2 -2
  10. package/lib/conversion/lexer.js +1 -1
  11. package/lib/conversion/lexer.js.map +1 -1
  12. package/lib/demo.d.ts +1 -1
  13. package/lib/demo.js +2 -2
  14. package/lib/demo.js.map +1 -1
  15. package/lib/difference.js +1 -1
  16. package/lib/difference.js.map +1 -1
  17. package/lib/index.d.ts +2 -2
  18. package/lib/index.js +1 -1
  19. package/lib/index.js.map +1 -1
  20. package/lib/latex-equal.d.ts +3 -3
  21. package/lib/latex-equal.js +4 -4
  22. package/lib/latex-equal.js.map +1 -1
  23. package/lib/literal/index.d.ts +1 -1
  24. package/lib/literal/index.js +3 -3
  25. package/lib/literal/index.js.map +1 -1
  26. package/lib/mathjs.js +1 -1
  27. package/lib/mathjs.js.map +1 -1
  28. package/lib/node-sort.js +4 -4
  29. package/lib/node-sort.js.map +1 -1
  30. package/lib/symbolic/compare-compound-inequations.d.ts +2 -2
  31. package/lib/symbolic/compare-compound-inequations.js +14 -14
  32. package/lib/symbolic/compare-compound-inequations.js.map +1 -1
  33. package/lib/symbolic/compare-equations.js +25 -27
  34. package/lib/symbolic/compare-equations.js.map +1 -1
  35. package/lib/symbolic/index.d.ts +1 -1
  36. package/lib/symbolic/index.js +150 -25
  37. package/lib/symbolic/index.js.map +1 -1
  38. package/lib/symbolic/utils.d.ts +5 -1
  39. package/lib/symbolic/utils.js +138 -22
  40. package/lib/symbolic/utils.js.map +1 -1
  41. package/package.json +19 -12
package/lib/mathjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.replacer = exports.parse = exports.mathjs = void 0;
4
4
  const mathjs_1 = require("mathjs");
5
- exports.mathjs = mathjs_1.create(mathjs_1.all, { number: "Fraction" });
5
+ exports.mathjs = (0, mathjs_1.create)(mathjs_1.all, { number: "Fraction" });
6
6
  exports.parse = exports.mathjs.parse;
7
7
  // @ts-ignore
8
8
  exports.replacer = exports.mathjs.replacer;
package/lib/mathjs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mathjs.js","sourceRoot":"","sources":["../src/mathjs.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACxB,QAAA,MAAM,GAAG,eAAM,CAAC,YAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC3C,aAAK,GAAK,cAAM,OAAC;AAEhC,aAAa;AACA,QAAA,QAAQ,GAAG,cAAM,CAAC,QAAQ,CAAC"}
1
+ {"version":3,"file":"mathjs.js","sourceRoot":"","sources":["../src/mathjs.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACxB,QAAA,MAAM,GAAG,IAAA,eAAM,EAAC,YAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC3C,aAAK,GAAK,cAAM,OAAC;AAEhC,aAAa;AACA,QAAA,QAAQ,GAAG,cAAM,CAAC,QAAQ,CAAC"}
package/lib/node-sort.js CHANGED
@@ -4,7 +4,7 @@ exports.sort = exports.sortRelationalNode = exports.flattenNode = void 0;
4
4
  const log_1 = require("./log");
5
5
  const mathjs_1 = require("./mathjs");
6
6
  const m = mathjs_1.mathjs;
7
- const log = log_1.logger("mv:node-sort");
7
+ const log = (0, log_1.logger)("mv:node-sort");
8
8
  //import { string } from "mathjs";
9
9
  /**
10
10
  * The plan with node sort was to sort all the nodes in an expression where possible
@@ -185,7 +185,7 @@ const sortRelationalNode = (node) => {
185
185
  node.params.reverse();
186
186
  }
187
187
  if (parent && parent.type === "RelationalNode" && node.args) {
188
- node = exports.sort(node);
188
+ node = (0, exports.sort)(node);
189
189
  }
190
190
  return node;
191
191
  });
@@ -195,7 +195,7 @@ exports.sortRelationalNode = sortRelationalNode;
195
195
  const sort = (node) => {
196
196
  let resultNode = node;
197
197
  if (node.type === "RelationalNode") {
198
- return exports.sortRelationalNode(node);
198
+ return (0, exports.sortRelationalNode)(node);
199
199
  }
200
200
  if (node.isOperatorNode && node.fn === "smaller") {
201
201
  node.op = ">";
@@ -228,7 +228,7 @@ const sort = (node) => {
228
228
  node.items = node.items.sort(newCompare);
229
229
  return node;
230
230
  }
231
- const flattened = exports.flattenNode(node);
231
+ const flattened = (0, exports.flattenNode)(node);
232
232
  resultNode = flattened.transform(applySort);
233
233
  return resultNode;
234
234
  };
@@ -1 +1 @@
1
- {"version":3,"file":"node-sort.js","sourceRoot":"","sources":["../src/node-sort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-sort.js","sourceRoot":"","sources":["../src/node-sort.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { MathNode } from "mathjs";
2
- export declare type NodePair = {
2
+ export type NodePair = {
3
3
  left: MathNode;
4
4
  right: MathNode;
5
5
  };
6
- export declare type Range = {
6
+ export type Range = {
7
7
  min: number;
8
8
  max: number;
9
9
  };
@@ -28,10 +28,10 @@ const splitInequality = (compoundInequality) => ({
28
28
  exports.splitInequality = splitInequality;
29
29
  // get interval inferior/superior limits
30
30
  const getLimit = (expressionsPair, limitType) => {
31
- const expressionR = utils_1.transformEqualityInExpression(expressionsPair.right);
32
- const expressionL = utils_1.transformEqualityInExpression(expressionsPair.left);
33
- const xFirstInequality = utils_1.solveLinearEquation(utils_1.getCoefficients(expressionR, true));
34
- const xSecondInequality = utils_1.solveLinearEquation(utils_1.getCoefficients(expressionL, true));
31
+ const expressionR = (0, utils_1.transformEqualityInExpression)(expressionsPair.right);
32
+ const expressionL = (0, utils_1.transformEqualityInExpression)(expressionsPair.left);
33
+ const xFirstInequality = (0, utils_1.solveLinearEquation)((0, utils_1.getCoefficients)(expressionR, true));
34
+ const xSecondInequality = (0, utils_1.solveLinearEquation)((0, utils_1.getCoefficients)(expressionL, true));
35
35
  if (limitType === "inferior") {
36
36
  return Math.min(xFirstInequality, xSecondInequality);
37
37
  }
@@ -39,26 +39,26 @@ const getLimit = (expressionsPair, limitType) => {
39
39
  };
40
40
  exports.getLimit = getLimit;
41
41
  const compareCompoundInequations = (firstInequation, secondInequation) => {
42
- if (!utils_1.expressionsCanBeCompared(firstInequation, secondInequation)) {
42
+ if (!(0, utils_1.expressionsCanBeCompared)(firstInequation, secondInequation)) {
43
43
  return false;
44
44
  }
45
- const firstInequalityVariablesName = utils_1.getVariables(firstInequation);
46
- const secondInequalityVariablesName = utils_1.getVariables(secondInequation);
47
- if (!utils_1.equationsHaveTheSameVariables(firstInequalityVariablesName, secondInequalityVariablesName) &&
45
+ const firstInequalityVariablesName = (0, utils_1.getVariables)(firstInequation);
46
+ const secondInequalityVariablesName = (0, utils_1.getVariables)(secondInequation);
47
+ if (!(0, utils_1.equationsHaveTheSameVariables)(firstInequalityVariablesName, secondInequalityVariablesName) &&
48
48
  (firstInequalityVariablesName === null || firstInequalityVariablesName === void 0 ? void 0 : firstInequalityVariablesName.length) === 1) {
49
49
  return false;
50
50
  }
51
- const firstInequalities = exports.splitInequality(firstInequation);
52
- const secondInequalities = exports.splitInequality(secondInequation);
51
+ const firstInequalities = (0, exports.splitInequality)(firstInequation);
52
+ const secondInequalities = (0, exports.splitInequality)(secondInequation);
53
53
  // find out interval for inequality solution;
54
54
  // it does not matter whether we have an open, or half-open/half-close interval, the signs are already compared and at this point they match
55
55
  let firstInequalitiesSolution = {
56
- min: exports.getLimit(firstInequalities, "inferior"),
57
- max: exports.getLimit(firstInequalities, "superior"),
56
+ min: (0, exports.getLimit)(firstInequalities, "inferior"),
57
+ max: (0, exports.getLimit)(firstInequalities, "superior"),
58
58
  };
59
59
  let secondInequalitiesSolution = {
60
- min: exports.getLimit(secondInequalities, "inferior"),
61
- max: exports.getLimit(secondInequalities, "superior"),
60
+ min: (0, exports.getLimit)(secondInequalities, "inferior"),
61
+ max: (0, exports.getLimit)(secondInequalities, "superior"),
62
62
  };
63
63
  // if interval limits are the same for both inequalities then we can say that inequalities are equivalent
64
64
  return (firstInequalitiesSolution.min === secondInequalitiesSolution.min &&
@@ -1 +1 @@
1
- {"version":3,"file":"compare-compound-inequations.js","sourceRoot":"","sources":["../../src/symbolic/compare-compound-inequations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-compound-inequations.js","sourceRoot":"","sources":["../../src/symbolic/compare-compound-inequations.ts"],"names":[],"mappings":"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"}
@@ -10,27 +10,27 @@ const compareCoefficients = (firstEqCoeff, secondEqCoeff) => Array.isArray(first
10
10
  firstEqCoeff.every((val, index) => val === secondEqCoeff[index]);
11
11
  const compareEquations = (firstEquation, secondEquation, isInequality) => {
12
12
  let equivalence = false;
13
- if (utils_1.expressionsCanBeCompared(firstEquation, secondEquation)) {
14
- let firstExpression = utils_1.transformEqualityInExpression(firstEquation);
15
- let secondExpression = utils_1.transformEqualityInExpression(secondEquation);
13
+ if ((0, utils_1.expressionsCanBeCompared)(firstEquation, secondEquation)) {
14
+ let firstExpression = (0, utils_1.transformEqualityInExpression)(firstEquation);
15
+ let secondExpression = (0, utils_1.transformEqualityInExpression)(secondEquation);
16
16
  if (firstExpression.equals(secondExpression)) {
17
17
  return true;
18
18
  }
19
- let firstEquationVariablesName = utils_1.getVariables(firstExpression);
20
- let secondEquationVariablesName = utils_1.getVariables(secondExpression);
21
- if (!utils_1.equationsHaveTheSameVariables(firstEquationVariablesName, secondEquationVariablesName)) {
19
+ let firstEquationVariablesName = (0, utils_1.getVariables)(firstExpression);
20
+ let secondEquationVariablesName = (0, utils_1.getVariables)(secondExpression);
21
+ if (!(0, utils_1.equationsHaveTheSameVariables)(firstEquationVariablesName, secondEquationVariablesName)) {
22
22
  return false;
23
23
  }
24
24
  let firstEquationCoefficients;
25
25
  let secondEquationCoefficients;
26
- if (utils_1.hasSymbolicExponent(firstExpression) ||
27
- utils_1.hasSymbolicExponent(secondExpression)) {
28
- const isEquivalent = utils_1.areNumericallyEquivalent(firstExpression, secondExpression, firstEquationVariablesName);
26
+ if ((0, utils_1.hasSymbolicExponent)(firstExpression) ||
27
+ (0, utils_1.hasSymbolicExponent)(secondExpression)) {
28
+ const isEquivalent = (0, utils_1.areNumericallyEquivalent)(firstExpression, secondExpression, firstEquationVariablesName);
29
29
  return isEquivalent;
30
30
  }
31
31
  if (firstEquationVariablesName.length === 1) {
32
- firstEquationCoefficients = utils_1.getCoefficients(firstExpression, isInequality);
33
- secondEquationCoefficients = utils_1.getCoefficients(secondExpression, isInequality);
32
+ firstEquationCoefficients = (0, utils_1.getCoefficients)(firstExpression, isInequality);
33
+ secondEquationCoefficients = (0, utils_1.getCoefficients)(secondExpression, isInequality);
34
34
  // if coefficients are equal, there is no need for further calculations => equations are equivalent
35
35
  if (compareCoefficients(firstEquationCoefficients, secondEquationCoefficients)) {
36
36
  return true;
@@ -47,8 +47,8 @@ const compareEquations = (firstEquation, secondEquation, isInequality) => {
47
47
  firstEquationCoefficients = firstEquationCoefficients.splice(1, 3);
48
48
  secondEquationCoefficients = secondEquationCoefficients.splice(1, 3);
49
49
  }
50
- let rootsFirstEquation = utils_1.solveQuadraticEquation(firstEquationCoefficients);
51
- let rootsSecondEquation = utils_1.solveQuadraticEquation(secondEquationCoefficients);
50
+ let rootsFirstEquation = (0, utils_1.solveQuadraticEquation)(firstEquationCoefficients);
51
+ let rootsSecondEquation = (0, utils_1.solveQuadraticEquation)(secondEquationCoefficients);
52
52
  let firstRoot = m.complex(rootsFirstEquation);
53
53
  let secondRoot = m.complex(rootsSecondEquation);
54
54
  if (rootsFirstEquation[0].im === 0 && rootsFirstEquation[1].im === 0) {
@@ -67,25 +67,23 @@ const compareEquations = (firstEquation, secondEquation, isInequality) => {
67
67
  }
68
68
  // if both equations are linear in one variable then we solve "x" for both. If x has the same value then equations are equivalent
69
69
  // solve linear equations
70
- const solutionForFirstEquation = utils_1.solveLinearEquation(firstEquationCoefficients);
71
- const solutionForSecondEquation = utils_1.solveLinearEquation(secondEquationCoefficients);
70
+ const solutionForFirstEquation = (0, utils_1.solveLinearEquation)(firstEquationCoefficients);
71
+ const solutionForSecondEquation = (0, utils_1.solveLinearEquation)(secondEquationCoefficients);
72
72
  equivalence =
73
73
  solutionForFirstEquation === solutionForSecondEquation &&
74
74
  solutionForFirstEquation !== undefined;
75
+ // equations that are neither linear nor quadratic can't be solved above; compare them numerically instead
76
+ if (!isInequality &&
77
+ (solutionForFirstEquation === undefined ||
78
+ solutionForSecondEquation === undefined)) {
79
+ return (0, utils_1.areEquationsNumericallyEquivalent)(firstExpression, secondExpression, firstEquationVariablesName);
80
+ }
75
81
  }
76
- // if both equations are linear in two variabled then we give value "1" for both "x". Doing this we get a linear equation in one variable "y". Then we solve "y" for both. If y has the same value then equations are equivalent
82
+ // equations in two variables describe the same curve when one is a multiple of the other;
83
+ // checking a single value of x is not enough, and fails for equations that are not linear in y (PIE-443)
84
+ // inequalities describe the same region only when the multiple is positive, since a negative one would flip the sign (PIE-1419)
77
85
  if (firstEquationVariablesName.length === 2) {
78
- let x = firstEquationVariablesName[0];
79
- // solve expression for x=1
80
- let expraNoX = utils_1.setXToOne(firstExpression, x);
81
- firstEquationCoefficients = utils_1.getCoefficients(expraNoX, isInequality);
82
- let exprbNoX = utils_1.setXToOne(secondExpression, x);
83
- secondEquationCoefficients = utils_1.getCoefficients(exprbNoX, isInequality);
84
- // find y for both equations, where x equals 1
85
- let yFromFirstExpression = utils_1.solveLinearEquation(firstEquationCoefficients);
86
- let yFromSecondExpression = utils_1.solveLinearEquation(secondEquationCoefficients);
87
- // if y has the same value, for the same x then the expressions should be equivalent
88
- equivalence = yFromFirstExpression === yFromSecondExpression;
86
+ return (0, utils_1.areEquationsNumericallyEquivalent)(firstExpression, secondExpression, firstEquationVariablesName, { allowVariableFactor: true, positiveOnly: isInequality });
89
87
  }
90
88
  // determine equivalence between 2-way inequalities with 1 or 2 variables:
91
89
  // we treat 2-way inequalities the same way as linear equations in 1 or 2 variables; we find out the solutions that solve the inequality then compare them
@@ -1 +1 @@
1
- {"version":3,"file":"compare-equations.js","sourceRoot":"","sources":["../../src/symbolic/compare-equations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-equations.js","sourceRoot":"","sources":["../../src/symbolic/compare-equations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { MathNode } from "mathjs";
2
- export declare type SymbolicOpts = {};
2
+ export type SymbolicOpts = {};
3
3
  export declare const simplify: (v: any) => MathNode;
4
4
  export declare const isMathEqual: (a: any, b: any) => any;
@@ -3,13 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isMathEqual = exports.simplify = void 0;
4
4
  const log_1 = require("../log");
5
5
  const mathjs_1 = require("../mathjs");
6
+ const mathjs_2 = require("mathjs");
6
7
  const node_sort_1 = require("../node-sort");
7
8
  const compare_equations_1 = require("./compare-equations");
8
9
  const compare_compound_inequations_1 = require("./compare-compound-inequations");
9
10
  const m = mathjs_1.mathjs;
10
- const log = log_1.logger("mv:symbolic");
11
- const positiveInfinity = 1.497258191621251e6;
12
- const negativeInfinity = -1.497258191621251e6;
11
+ const log = (0, log_1.logger)("mv:symbolic");
12
+ // an angle counts as k quarter turns (90°, 180°, ...) only when it is one up to floating-point error,
13
+ // which keeps angles that are only close, like 89.9999°, 1.5708 or 9090.001°, from being matched
14
+ const ANGLE_TOLERANCE = 1e-9;
15
+ // angles are evaluated as plain numbers, the Fraction config used elsewhere cannot represent pi
16
+ const numeric = (0, mathjs_2.create)(mathjs_2.all);
17
+ // tolerances for floating-point noise from trig functions, pi and angle conversions (PIE-905);
18
+ // the noise grows with the angle, e.g. sin(2pi) = -2.4e-16, sin(200pi) = 3.9e-15, tan(36045°) - 1 = -5.4e-14,
19
+ // so a value is accepted only when it agrees with the target to about 13 significant digits
20
+ const RELATIVE_EPSILON = 1e-13;
21
+ // floor for comparisons with 0, where a relative tolerance alone would require an exact match;
22
+ // it covers residues such as sin(200pi) and cos(100.5pi) while still rejecting 0 vs 0.0000000000001
23
+ const ABSOLUTE_EPSILON = 1e-14;
13
24
  const { simplify: ms, rationalize } = mathjs_1.mathjs;
14
25
  const SIMPLIFY_RULES = [
15
26
  { l: "n1^(1/n2)", r: "nthRoot(n1, n2)" },
@@ -59,8 +70,92 @@ const simplify = (v) => {
59
70
  return ms(v, rules); //.concat(SIMPLIFY_RULES));
60
71
  };
61
72
  exports.simplify = simplify;
73
+ const hasSymbol = (node, matches) => {
74
+ let found = false;
75
+ // the name of a function such as sqrt is a symbol too, under the path "fn"
76
+ node.traverse((n, path) => {
77
+ found = found || (n.isSymbolNode && path !== "fn" && matches(n.name));
78
+ });
79
+ return found;
80
+ };
81
+ // evaluates a constant expression as a plain number, undefined if it has variables;
82
+ // any symbol other than pi and Infinity is a variable, even names mathjs knows as constants such as e, E or phi
83
+ const evaluateNumber = (node) => {
84
+ if (hasSymbol(node, (name) => name !== "pi" && name !== "Infinity")) {
85
+ return undefined;
86
+ }
87
+ try {
88
+ const value = numeric.evaluate(node.toString());
89
+ return typeof value === "number" ? value : undefined;
90
+ }
91
+ catch (e) {
92
+ return undefined;
93
+ }
94
+ };
95
+ // returns k when the constant angle is (within tolerance) a multiple k of pi/2
96
+ const quarterTurns = (angle) => {
97
+ const value = evaluateNumber(angle);
98
+ if (value === undefined || !isFinite(value)) {
99
+ return undefined;
100
+ }
101
+ const turns = value / (Math.PI / 2);
102
+ const k = Math.round(turns);
103
+ return Math.abs(turns - k) <= ANGLE_TOLERANCE * Math.max(1, Math.abs(k))
104
+ ? k
105
+ : undefined;
106
+ };
107
+ // replace trigonometric functions evaluated at an angle where they are zero or undefined
108
+ // with their exact value, so that tan(90°) becomes Infinity instead of a large finite number
109
+ const snapTrigonometricValues = (node) => {
110
+ let changed = false;
111
+ const r = node.transform((n) => {
112
+ var _a;
113
+ if (!n.isFunctionNode || ((_a = n.args) === null || _a === void 0 ? void 0 : _a.length) !== 1) {
114
+ return n;
115
+ }
116
+ const k = quarterTurns(n.args[0]);
117
+ if (k === undefined) {
118
+ return n;
119
+ }
120
+ const odd = Math.abs(k) % 2 === 1;
121
+ let snapped = n;
122
+ switch (n.fn.name) {
123
+ case "sin":
124
+ snapped = odd ? n : new m.ConstantNode(0);
125
+ break;
126
+ case "cos":
127
+ snapped = odd ? new m.ConstantNode(0) : n;
128
+ break;
129
+ case "tan":
130
+ snapped = odd ? new m.SymbolNode("Infinity") : new m.ConstantNode(0);
131
+ break;
132
+ case "cot":
133
+ snapped = odd ? new m.ConstantNode(0) : new m.SymbolNode("Infinity");
134
+ break;
135
+ case "sec":
136
+ snapped = odd ? new m.SymbolNode("Infinity") : n;
137
+ break;
138
+ case "csc":
139
+ snapped = odd ? n : new m.SymbolNode("Infinity");
140
+ break;
141
+ }
142
+ changed = changed || snapped !== n;
143
+ return snapped;
144
+ });
145
+ // keep the original node when nothing was replaced, later steps rely on its identity
146
+ return { r: changed ? r : node, changed };
147
+ };
62
148
  const normalize = (a) => {
63
- let r = a;
149
+ const snapped = snapTrigonometricValues(a);
150
+ let r = snapped.r;
151
+ // simplify and rationalize treat Infinity as a variable (1 / Infinity + 3 becomes (1 + 3 * Infinity) / Infinity)
152
+ // and keep the sign of a division by zero, so a constant expression with an Infinity or a division by zero is evaluated before it is normalized;
153
+ // other constant expressions keep their exact value, such as 1/3 in sin(0) + 1/3
154
+ const snappedValue = snapped.changed ? evaluateNumber(r) : undefined;
155
+ const valueWithSnappedTrigonometry = snappedValue !== undefined &&
156
+ (!isFinite(snappedValue) || hasSymbol(r, (name) => name === "Infinity"))
157
+ ? snappedValue
158
+ : undefined;
64
159
  let onlyConstant = true;
65
160
  let containsFunctionNode = false;
66
161
  let containsArrayNode = false;
@@ -69,7 +164,7 @@ const normalize = (a) => {
69
164
  r.traverse(function (node, path, parent) {
70
165
  if (node.isArrayNode) {
71
166
  containsArrayNode = true;
72
- node.items = node.items.map((item) => exports.simplify(item));
167
+ node.items = node.items.map((item) => (0, exports.simplify)(item));
73
168
  }
74
169
  if (node.isSymbolNode) {
75
170
  pi = pi || node.name === "pi";
@@ -83,7 +178,7 @@ const normalize = (a) => {
83
178
  !containsInverseFlag &&
84
179
  !pi) {
85
180
  try {
86
- arg = exports.simplify(arg);
181
+ arg = (0, exports.simplify)(arg);
87
182
  }
88
183
  catch (e) {
89
184
  // ok;
@@ -97,7 +192,7 @@ const normalize = (a) => {
97
192
  r.args = r.args.map((arg) => {
98
193
  if (!arg.isFunctionNode && !arg.isArrayNode) {
99
194
  try {
100
- arg = rationalize(exports.simplify(arg), {}, true).expression;
195
+ arg = rationalize((0, exports.simplify)(arg), {}, true).expression;
101
196
  }
102
197
  catch (e) {
103
198
  // ok;
@@ -115,31 +210,51 @@ const normalize = (a) => {
115
210
  catch (_a) { }
116
211
  }
117
212
  if (r.conditionals && r.params) {
118
- r.params = r.params.map((param) => node_sort_1.sort(exports.simplify(param)));
213
+ r.params = r.params.map((param) => (0, node_sort_1.sort)((0, exports.simplify)(param)));
119
214
  }
120
215
  if (!containsArrayNode && !onlyConstant) {
121
216
  // overcome TypeError
122
217
  try {
123
- r = exports.simplify(r);
218
+ r = (0, exports.simplify)(r);
124
219
  }
125
220
  catch (e) { }
126
221
  }
127
222
  log("[normalize] input: ", a.toString(), "output: ", r.toString());
128
- // check for infinity
129
- if (r.toString() === "Infinity" ||
130
- +r.toString() >= positiveInfinity ||
131
- +r.toString() <= negativeInfinity) {
223
+ // an undefined value has no sign, so -tan(90°) and -1/cos(90°) are Infinity as well;
224
+ // an indeterminate result such as tan(90°) - tan(90°) or 0 * tan(90°) is NaN and must not simplify to a number
225
+ if (valueWithSnappedTrigonometry !== undefined) {
226
+ r = isNaN(valueWithSnappedTrigonometry)
227
+ ? new m.SymbolNode("NaN")
228
+ : isFinite(valueWithSnappedTrigonometry)
229
+ ? new m.ConstantNode(valueWithSnappedTrigonometry)
230
+ : new m.SymbolNode("Infinity");
231
+ }
232
+ if (r.toString() === "Infinity") {
132
233
  r = new m.SymbolNode("Infinity");
133
234
  }
134
- if (r.value) {
135
- r.value = new m.Fraction(Math.round(r.value * 10000) / 10000);
235
+ return r;
236
+ };
237
+ // numeric value of an expression without variables, such as 5, -5 or -1/2; undefined for anything else
238
+ const constantValue = (node) => {
239
+ if (node.filter((n) => n.isSymbolNode).length > 0) {
240
+ return undefined;
136
241
  }
137
- else if (r.fn === "unaryMinus") {
138
- r.args[0].value = new m.Fraction(Math.round(r.args[0].value * 10000) / 10000);
139
- r = exports.simplify(r);
242
+ try {
243
+ const result = node.evaluate();
244
+ // equations and inequalities without variables evaluate to booleans
245
+ if (typeof result === "boolean") {
246
+ return undefined;
247
+ }
248
+ const value = +result;
249
+ return Number.isFinite(value) ? value : undefined;
250
+ }
251
+ catch (e) {
252
+ return undefined;
140
253
  }
141
- return r;
142
254
  };
255
+ const areNearlyEqual = (a, b) => Math.abs(a - b) <
256
+ ABSOLUTE_EPSILON + RELATIVE_EPSILON * Math.max(Math.abs(a), Math.abs(b));
257
+ const isIndeterminate = (node) => (node === null || node === void 0 ? void 0 : node.isSymbolNode) && node.name === "NaN";
143
258
  const isMathEqual = (a, b) => {
144
259
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
145
260
  let as;
@@ -158,18 +273,28 @@ const isMathEqual = (a, b) => {
158
273
  return false;
159
274
  }
160
275
  // apply sort if we are not in a relationalNode
161
- as = a.conditionals ? normalize(a) : node_sort_1.sort(normalize(a));
162
- bs = b.conditionals ? normalize(b) : node_sort_1.sort(normalize(b));
276
+ as = a.conditionals ? normalize(a) : (0, node_sort_1.sort)(normalize(a));
277
+ bs = b.conditionals ? normalize(b) : (0, node_sort_1.sort)(normalize(b));
163
278
  log("[isMathEqual]", as.toString(), "==?", bs.toString());
164
- const isSortingEnough = node_sort_1.sort(a).equals(node_sort_1.sort(b));
279
+ // an indeterminate result such as tan(90°) - tan(90°) is not equal to anything, not even another indeterminate result
280
+ if (isIndeterminate(as) || isIndeterminate(bs)) {
281
+ return false;
282
+ }
283
+ const isSortingEnough = (0, node_sort_1.sort)(a).equals((0, node_sort_1.sort)(b));
165
284
  const isTexEnough = as.toTex().trim() === bs.toTex().trim();
166
285
  let equality = isTexEnough || as.equals(bs) || isSortingEnough;
167
286
  if (equality) {
168
287
  return true;
169
288
  }
289
+ // compare constant results numerically, allowing only for floating-point noise
290
+ const aValue = constantValue(as);
291
+ const bValue = constantValue(bs);
292
+ if (aValue !== undefined && bValue !== undefined) {
293
+ return areNearlyEqual(aValue, bValue);
294
+ }
170
295
  // if both expressions are equations
171
296
  if (as.fn === "equal" && bs.fn === "equal") {
172
- return compare_equations_1.compareEquations(as, bs, false);
297
+ return (0, compare_equations_1.compareEquations)(as, bs, false);
173
298
  }
174
299
  // if both expressions are inequalities treat greater sign as equal sign
175
300
  if ((as.fn === "larger" && bs.fn === "larger") ||
@@ -181,7 +306,7 @@ const isMathEqual = (a, b) => {
181
306
  bs.fn = "equal";
182
307
  as.op = "=";
183
308
  bs.op = "=";
184
- return compare_equations_1.compareEquations(as, bs, true);
309
+ return (0, compare_equations_1.compareEquations)(as, bs, true);
185
310
  }
186
311
  // check for compound inequalities/3-way inequalities
187
312
  if (
@@ -206,7 +331,7 @@ const isMathEqual = (a, b) => {
206
331
  //@ts-ignore
207
332
  bs.conditionals.includes(param));
208
333
  if (paramsIncludedA && paramsIncludedB) {
209
- return compare_compound_inequations_1.compareCompoundInequations(as, bs);
334
+ return (0, compare_compound_inequations_1.compareCompoundInequations)(as, bs);
210
335
  }
211
336
  }
212
337
  return equality;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/symbolic/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/symbolic/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { MathNode } from "mathjs";
2
2
  export declare const expressionsCanBeCompared: (firstEquation: MathNode, secondEquation: MathNode) => boolean;
3
3
  export declare const hasSymbolicExponent: (node: MathNode) => boolean;
4
+ export declare const getSamplePoints: (variables: string[], count?: number) => Record<string, number>[];
4
5
  export declare const areNumericallyEquivalent: (exprA: MathNode, exprB: MathNode, variables: string[], tolerance?: number) => boolean;
6
+ export declare const areEquationsNumericallyEquivalent: (firstExpression: MathNode, secondExpression: MathNode, variables: string[], options?: {
7
+ allowVariableFactor?: boolean;
8
+ positiveOnly?: boolean;
9
+ }) => boolean;
5
10
  export declare const transformEqualityInExpression: (equality: MathNode) => MathNode;
6
11
  export declare const getVariables: (equation: MathNode) => string[];
7
12
  export declare const getCoefficients: (equation: MathNode, isInequality: boolean) => any;
8
- export declare const setXToOne: (equation: any, variableName: string) => any;
9
13
  export declare const solveQuadraticEquation: (coefficients: number[]) => {
10
14
  re: any;
11
15
  im: number;