@pie-framework/math-validation 1.4.3 → 2.0.0-next.20261110063142

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 (71) hide show
  1. package/LICENSE +233 -0
  2. package/README.md +41 -110
  3. package/dist/conversion/ast-to-mathjs.d.ts +3 -0
  4. package/dist/conversion/error.d.ts +4 -0
  5. package/dist/conversion/flatten.d.ts +1 -0
  6. package/{lib → dist}/conversion/latex-to-ast.d.ts +13 -12
  7. package/{lib → dist}/conversion/lexer.d.ts +5 -5
  8. package/dist/difference.d.ts +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.js +1594 -0
  11. package/dist/latex-equal.d.ts +2 -0
  12. package/dist/literal/index.d.ts +3 -0
  13. package/dist/log.d.ts +1 -0
  14. package/dist/mathjs.d.ts +11 -0
  15. package/{lib → dist}/node-sort.d.ts +1 -1
  16. package/dist/options.d.ts +13 -0
  17. package/{lib → dist}/symbolic/compare-compound-inequations.d.ts +2 -2
  18. package/{lib → dist}/symbolic/compare-equations.d.ts +1 -1
  19. package/dist/symbolic/index.d.ts +1 -0
  20. package/dist/symbolic/simplify.d.ts +2 -0
  21. package/{lib → dist}/symbolic/utils.d.ts +3 -3
  22. package/dist/value.d.ts +6 -0
  23. package/package.json +28 -56
  24. package/lib/conversion/ast-to-mathjs.d.ts +0 -12
  25. package/lib/conversion/ast-to-mathjs.js +0 -329
  26. package/lib/conversion/ast-to-mathjs.js.map +0 -1
  27. package/lib/conversion/error.d.ts +0 -5
  28. package/lib/conversion/error.js +0 -13
  29. package/lib/conversion/error.js.map +0 -1
  30. package/lib/conversion/flatten.d.ts +0 -12
  31. package/lib/conversion/flatten.js +0 -103
  32. package/lib/conversion/flatten.js.map +0 -1
  33. package/lib/conversion/latex-to-ast.js +0 -1479
  34. package/lib/conversion/latex-to-ast.js.map +0 -1
  35. package/lib/conversion/lexer.js +0 -135
  36. package/lib/conversion/lexer.js.map +0 -1
  37. package/lib/conversion/util.d.ts +0 -3
  38. package/lib/conversion/util.js +0 -36
  39. package/lib/conversion/util.js.map +0 -1
  40. package/lib/demo.d.ts +0 -4
  41. package/lib/demo.js +0 -173
  42. package/lib/demo.js.map +0 -1
  43. package/lib/difference.d.ts +0 -2
  44. package/lib/difference.js +0 -24
  45. package/lib/difference.js.map +0 -1
  46. package/lib/index.d.ts +0 -5
  47. package/lib/index.js +0 -9
  48. package/lib/index.js.map +0 -1
  49. package/lib/latex-equal.d.ts +0 -10
  50. package/lib/latex-equal.js +0 -41
  51. package/lib/latex-equal.js.map +0 -1
  52. package/lib/literal/index.d.ts +0 -10
  53. package/lib/literal/index.js +0 -22
  54. package/lib/literal/index.js.map +0 -1
  55. package/lib/log.d.ts +0 -1
  56. package/lib/log.js +0 -14
  57. package/lib/log.js.map +0 -1
  58. package/lib/mathjs.d.ts +0 -3
  59. package/lib/mathjs.js +0 -9
  60. package/lib/mathjs.js.map +0 -1
  61. package/lib/node-sort.js +0 -236
  62. package/lib/node-sort.js.map +0 -1
  63. package/lib/symbolic/compare-compound-inequations.js +0 -68
  64. package/lib/symbolic/compare-compound-inequations.js.map +0 -1
  65. package/lib/symbolic/compare-equations.js +0 -106
  66. package/lib/symbolic/compare-equations.js.map +0 -1
  67. package/lib/symbolic/index.d.ts +0 -4
  68. package/lib/symbolic/index.js +0 -340
  69. package/lib/symbolic/index.js.map +0 -1
  70. package/lib/symbolic/utils.js +0 -323
  71. package/lib/symbolic/utils.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import type { Latex, Opts } from './options.js';
2
+ export declare const latexEqual: (a: Latex, b: Latex, opts: Opts) => boolean;
@@ -0,0 +1,3 @@
1
+ import type { MathNode } from 'mathjs';
2
+ import type { LiteralOpts } from '../options.js';
3
+ export declare const isMathEqual: (a: MathNode, b: MathNode, opts?: LiteralOpts) => boolean;
package/dist/log.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const logger: (name: string) => ((...args: unknown[]) => void);
@@ -0,0 +1,11 @@
1
+ import { type MathJsStatic } from 'mathjs';
2
+ export declare const mathjs: MathJsStatic & {
3
+ replacer: (key: string, value: unknown) => unknown;
4
+ };
5
+ export declare const parse: import("mathjs").ParseFunction;
6
+ export declare const replacer: (key: string, value: unknown) => unknown;
7
+ export declare const numeric: MathJsStatic;
8
+ export declare const TRAILING_ZEROS_RULE: Readonly<{
9
+ l: "tzn(n1, n2)";
10
+ r: "n1";
11
+ }>;
@@ -1,4 +1,4 @@
1
- import { MathNode } from "mathjs";
1
+ import type { MathNode } from 'mathjs';
2
2
  export declare const flattenNode: (node: MathNode) => MathNode;
3
3
  export declare const sortRelationalNode: (node: any) => any;
4
4
  export declare const sort: (node: MathNode) => any;
@@ -0,0 +1,13 @@
1
+ export type Latex = string;
2
+ export type Mode = 'symbolic' | 'literal';
3
+ export type LiteralOpts = {
4
+ allowTrailingZeros?: boolean;
5
+ ignoreOrder?: boolean;
6
+ /** A single number matches only a single number of equal value, so `4/6` matches `2/3` and `3+3` doesn't match `6`. */
7
+ compareNumbersByValue?: boolean;
8
+ };
9
+ /** Symbolic mode takes no options. */
10
+ export type Opts = {
11
+ mode?: Mode;
12
+ literal?: LiteralOpts;
13
+ };
@@ -1,4 +1,4 @@
1
- import { MathNode } from "mathjs";
1
+ import type { MathNode } from 'mathjs';
2
2
  export type NodePair = {
3
3
  left: MathNode;
4
4
  right: MathNode;
@@ -8,5 +8,5 @@ export type Range = {
8
8
  max: number;
9
9
  };
10
10
  export declare const splitInequality: (compoundInequality: any) => NodePair;
11
- export declare const getLimit: (expressionsPair: NodePair, limitType: string) => number;
11
+ export declare const getInterval: ({ left, right }: NodePair) => Range;
12
12
  export declare const compareCompoundInequations: (firstInequation: any, secondInequation: any) => boolean;
@@ -1,2 +1,2 @@
1
- import { MathNode } from "mathjs";
1
+ import type { MathNode } from 'mathjs';
2
2
  export declare const compareEquations: (firstEquation: MathNode, secondEquation: MathNode, isInequality: boolean) => any;
@@ -0,0 +1 @@
1
+ export declare const isMathEqual: (a: any, b: any) => any;
@@ -0,0 +1,2 @@
1
+ import type { MathNode } from 'mathjs';
2
+ export declare const simplify: (v: MathNode | string) => MathNode;
@@ -1,4 +1,4 @@
1
- import { MathNode } from "mathjs";
1
+ import type { MathNode } from 'mathjs';
2
2
  export declare const expressionsCanBeCompared: (firstEquation: MathNode, secondEquation: MathNode) => boolean;
3
3
  export declare const hasSymbolicExponent: (node: MathNode) => boolean;
4
4
  export declare const getSamplePoints: (variables: string[], count?: number) => Record<string, number>[];
@@ -14,5 +14,5 @@ export declare const solveQuadraticEquation: (coefficients: number[]) => {
14
14
  re: any;
15
15
  im: number;
16
16
  }[];
17
- export declare const solveLinearEquation: (coefficients: number[]) => number;
18
- export declare const equationsHaveTheSameVariables: (firstEquationVariables: string[], secondEquationVariables: string[]) => boolean;
17
+ export declare const solveLinearEquation: (coefficients: number[]) => number | undefined;
18
+ export declare const haveSameElements: <T>(first: T[], second: T[]) => boolean;
@@ -0,0 +1,6 @@
1
+ import type { Latex } from './options.js';
2
+ /**
3
+ * Compares by value when either side is a single number: equal when both are and their values are
4
+ * equal, unequal when only one is. Undefined when neither is, which leaves the comparison to the mode.
5
+ */
6
+ export declare const compareNumbers: (a: Latex, b: Latex) => boolean | undefined;
package/package.json CHANGED
@@ -1,71 +1,43 @@
1
1
  {
2
2
  "name": "@pie-framework/math-validation",
3
- "version": "1.4.3",
4
- "description": "New math validation",
5
- "module": "src/index.ts",
6
- "main": "lib/index.js",
7
- "types": "lib/index.d.ts",
8
- "prepublish": "tsc",
3
+ "version": "2.0.0-next.20261110063142",
4
+ "description": "Decides whether two LaTeX math expressions are equal, literally or symbolically",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
9
14
  "files": [
10
- "lib"
15
+ "dist"
11
16
  ],
17
+ "sideEffects": false,
12
18
  "scripts": {
13
- "build": "rollup -c",
14
- "watch": "rollup -cw",
15
- "test": "jest",
16
- "test:report": "jest --config jest-stare.config.js",
17
- "build:demo": "tsc && yarn rollup -c rollup.config.js",
18
- "demo": "yarn rollup -c rollup.config.js && serve docs",
19
- "semantic-release": "yarn tsc && semantic-release"
19
+ "build": "rm -rf dist tsconfig.tsbuildinfo && vite build && tsc --emitDeclarationOnly",
20
+ "dev": "vite build --watch",
21
+ "test": "vitest",
22
+ "demo": "vite --config vite.demo.config.ts",
23
+ "build:demo": "tsc -p demo && vite build --config vite.demo.config.ts",
24
+ "clean": "rm -rf dist demo/dist"
20
25
  },
21
- "license": "ISC",
22
26
  "dependencies": {
23
- "lodash": "^4.17.21",
27
+ "debug": "^4.4.3",
24
28
  "mathjs": "^9.4.2"
25
29
  },
26
- "devDependencies": {
27
- "@babel/runtime": "^7.13.10",
28
- "@rollup/plugin-commonjs": "^15.0.0",
29
- "@rollup/plugin-node-resolve": "^9.0.0",
30
- "@rollup/plugin-strip": "^2.1.0",
31
- "@rollup/plugin-sucrase": "^3.1.0",
32
- "@semantic-release/changelog": "^6.0.3",
33
- "@semantic-release/commit-analyzer": "^13.0.1",
34
- "@semantic-release/exec": "^7.1.0",
35
- "@semantic-release/git": "^10.0.1",
36
- "@semantic-release/github": "^12.0.6",
37
- "@semantic-release/npm": "^13.1.5",
38
- "@semantic-release/release-notes-generator": "^14.1.0",
39
- "@types/fs-extra": "^9.0.1",
40
- "@types/glob": "^7.1.3",
41
- "@types/jest": "^26.0.14",
42
- "@types/jest-diff": "^24.3.0",
43
- "@types/mathjs": "^6.0.11",
44
- "@types/minimist": "^1.2.0",
45
- "debug": "^4.3.1",
46
- "fs-extra": "^9.0.1",
47
- "glob": "^7.1.6",
48
- "jest": "^26.4.2",
49
- "jest-diff": "^26.4.2",
50
- "jest-silent-reporter": "^0.2.1",
51
- "jest-stare": "^2.2.1",
52
- "latex-utensils": "^2.0.3",
53
- "latex.js": "^0.12.4",
54
- "minimist": "^1.2.5",
55
- "prettier": "^2.3.2",
56
- "rollup": "^2.50.2",
57
- "rollup-plugin-cleanup": "^3.2.1",
58
- "semantic-release": "^25.0.3",
59
- "serve": "^11.3.2",
60
- "ts-jest": "^26.3.0",
61
- "ts-node": "^9.0.0",
62
- "typescript": "^4.9.5"
30
+ "publishConfig": {
31
+ "access": "public"
63
32
  },
33
+ "license": "MIT",
64
34
  "repository": {
65
35
  "type": "git",
66
- "url": "git@github.com:pie-framework/math-validation.git"
36
+ "url": "git+https://github.com/pie-framework/pie-elements-ng.git",
37
+ "directory": "packages/shared/math-validation"
67
38
  },
68
- "publishConfig": {
69
- "access": "public"
39
+ "homepage": "https://github.com/pie-framework/pie-elements-ng/tree/develop/packages/shared/math-validation#readme",
40
+ "bugs": {
41
+ "url": "https://github.com/pie-framework/pie-elements-ng/issues"
70
42
  }
71
43
  }
@@ -1,12 +0,0 @@
1
- export type AstToMathJsOpts = {
2
- number?: string;
3
- };
4
- export declare class AstToMathJs {
5
- private opts;
6
- /**
7
- * Note: we use fractions as the default number format.
8
- * So by default AstToMathJs will generate fractions too.
9
- */
10
- constructor(opts?: AstToMathJsOpts);
11
- convert(tree: any): any;
12
- }
@@ -1,329 +0,0 @@
1
- "use strict";
2
- /*
3
- * convert AST to a expression tree from math.js
4
- *
5
- * Copyright 2014-2017 by
6
- * Jim Fowler <kisonecat@gmail.com>
7
- * Duane Nykamp <nykamp@umn.edu>
8
- *
9
- * This file is part of a math-expressions library
10
- *
11
- * math-expressions is free software: you can redistribute
12
- * it and/or modify it under the terms of the GNU General Public
13
- * License as published by the Free Software Foundation, either
14
- * version 3 of the License, or at your option any later version.
15
- *
16
- * math-expressions is distributed in the hope that it
17
- * will be useful, but WITHOUT ANY WARRANTY; without even the implied
18
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
- * See the GNU General Public License for more details.
20
- *
21
- */
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.AstToMathJs = void 0;
24
- const mathjs_1 = require("../mathjs");
25
- const log_1 = require("../log");
26
- const log = (0, log_1.logger)("mv:ast-to-math");
27
- const m = mathjs_1.mathjs;
28
- const operators = {
29
- "+": function (operands) {
30
- return new m.OperatorNode("+", "add", operands);
31
- },
32
- "*": function (operands) {
33
- const [left, right] = operands;
34
- if ((left === null || left === void 0 ? void 0 : left.type) === "ConstantNode" &&
35
- (right === null || right === void 0 ? void 0 : right.isUnit) &&
36
- typeof left.value === "object") {
37
- const leftVal = left.value.valueOf();
38
- const unitResult = m.multiply(leftVal, right);
39
- return unitResult;
40
- }
41
- return new m.OperatorNode("*", "multiply", operands);
42
- },
43
- "/": function (operands) {
44
- return new m.OperatorNode("/", "divide", operands);
45
- },
46
- "-": function (operands) {
47
- return new m.OperatorNode("-", "unaryMinus", [operands[0]]);
48
- },
49
- "^": function (operands) {
50
- return new m.OperatorNode("^", "pow", operands);
51
- },
52
- //"prime": function(operands) { return operands[0] + "'"; },
53
- // tuple: function (operands) {
54
- // return new m.ArrayNode(operands);
55
- // },
56
- list: function (operands) {
57
- return new m.ArrayNode(operands);
58
- },
59
- //"array": function(operands) { return '\\left[ ' + operands.join( ', ' ) + ' \\right]';},
60
- //"set": function(operands) { return '\\left\\{ ' + operands.join( ', ' ) + ' \\right\\}';},
61
- vector: function (operands) {
62
- return new m.ArrayNode(operands);
63
- },
64
- //"interval": function(operands) { return '\\left( ' + operands.join( ', ' ) + ' \\right)';},
65
- and: function (operands) {
66
- return new m.OperatorNode("and", "and", operands);
67
- },
68
- or: function (operands) {
69
- return new m.OperatorNode("or", "or", operands);
70
- },
71
- not: function (operands) {
72
- return new m.OperatorNode("not", "not", [operands[0]]);
73
- },
74
- "<": function (operands) {
75
- return new m.OperatorNode("<", "smaller", operands);
76
- },
77
- ">": function (operands) {
78
- return new m.OperatorNode(">", "larger", operands);
79
- },
80
- le: function (operands) {
81
- return new m.OperatorNode("<=", "smallerEq", operands);
82
- },
83
- ge: function (operands) {
84
- return new m.OperatorNode(">=", "largerEq", operands);
85
- },
86
- _: function (operands) {
87
- const [arrayName, ...position] = operands;
88
- const result = new m.SymbolNode(`${arrayName}[${position}]`);
89
- return result;
90
- },
91
- ne: function (operands) {
92
- return new m.OperatorNode("!=", "unequal", operands);
93
- },
94
- //"union": function (operands) { return operands.join(' \\cup '); },
95
- //"intersect": function (operands) { return operands.join(' \\cap '); },
96
- tzn: function (operands) {
97
- return new m.FunctionNode("tzn", operands);
98
- },
99
- "≈": function (operands) {
100
- return new m.FunctionNode("≈", operands);
101
- },
102
- "≉": function (operands) {
103
- return new m.FunctionNode("≉", operands);
104
- },
105
- "~": function (operands) {
106
- return new m.FunctionNode("~", operands);
107
- },
108
- "≃": function (operands) {
109
- return new m.FunctionNode("≃", operands);
110
- },
111
- "≁": function (operands) {
112
- return new m.FunctionNode("≁", operands);
113
- },
114
- "≅": function (operands) {
115
- return new m.FunctionNode("≅", operands);
116
- },
117
- "≆": function (operands) {
118
- return new m.FunctionNode("≆", operands);
119
- },
120
- };
121
- class AstToMathJs {
122
- /**
123
- * Note: we use fractions as the default number format.
124
- * So by default AstToMathJs will generate fractions too.
125
- */
126
- constructor(opts = { number: "Fraction" }) {
127
- this.opts = opts;
128
- }
129
- convert(tree) {
130
- if (typeof tree === "number") {
131
- if (Number.isFinite(tree)) {
132
- if (this.opts.number === "Fraction") {
133
- const f = new m.Fraction([
134
- new m.ConstantNode(tree),
135
- new m.ConstantNode(1),
136
- ]);
137
- return new m.ConstantNode(f);
138
- }
139
- else {
140
- return new m.ConstantNode(tree);
141
- }
142
- }
143
- if (Number.isNaN(tree))
144
- return new m.SymbolNode("NaN");
145
- if (tree < 0)
146
- return operators["-"]([new m.SymbolNode("Infinity")]);
147
- return new m.SymbolNode("Infinity");
148
- }
149
- if (typeof tree === "string") {
150
- return new m.SymbolNode(tree);
151
- }
152
- if (typeof tree === "boolean")
153
- throw Error("no support for boolean");
154
- if (!Array.isArray(tree))
155
- throw Error("Invalid ast");
156
- const operator = tree[0];
157
- const operands = tree.slice(1);
158
- if (operator === "apply") {
159
- log("operands:", operands);
160
- log("0", operands[0]);
161
- if (typeof operands[0] !== "string")
162
- throw Error("Non string functions not implemented for conversion to mathjs");
163
- if (operands[0] === "factorial")
164
- return new m.OperatorNode("!", "factorial", [
165
- this.convert(operands[1]),
166
- ]);
167
- const f = operands[0];
168
- const args = operands[1];
169
- let f_args;
170
- if (args[0] === "tuple")
171
- f_args = args.slice(1).map(function (v, i) {
172
- return this.convert(v);
173
- }.bind(this));
174
- else
175
- f_args = [this.convert(args)];
176
- return new m.FunctionNode(f, f_args);
177
- }
178
- if (operator === "unit") {
179
- const unit = new m.Unit(1, operands[0]);
180
- return unit;
181
- }
182
- if (operator === "relational") {
183
- // if we have more than one comparison operators return a Relational Node
184
- const params = operands[0];
185
- const strict = operands[1];
186
- if (params[0] !== "tuple" || strict[0] !== "tuple")
187
- // something wrong if args or strict are not tuples
188
- throw new Error("Badly formed ast");
189
- params.splice(0, 1);
190
- strict.splice(0, 1);
191
- const arg_nodes = params.map(function (v, i) {
192
- return this.convert(v);
193
- }.bind(this));
194
- let comparisons = [];
195
- for (let i = 0; i < params.length - 1; i++) {
196
- comparisons.push(strict[i]);
197
- }
198
- let result = new m.RelationalNode(comparisons, arg_nodes);
199
- return result;
200
- }
201
- // if we have more than one equality operators return a Relational Node
202
- if (operator === "=") {
203
- let arg_nodes = operands.map(function (v, i) {
204
- return this.convert(v);
205
- }.bind(this));
206
- let comparisons = [];
207
- for (let i = 0; i < arg_nodes.length - 1; i++) {
208
- comparisons.push("equal");
209
- }
210
- if (comparisons.length === 1)
211
- return new m.OperatorNode("==", "equal", arg_nodes);
212
- let result = new m.RelationalNode(comparisons, arg_nodes);
213
- return result;
214
- }
215
- if (operator === "in" ||
216
- operator === "notin" ||
217
- operator === "ni" ||
218
- operator === "notni") {
219
- let x, interval;
220
- if (operator === "in" || operator === "notin") {
221
- x = operands[0];
222
- interval = operands[1];
223
- }
224
- else {
225
- x = operands[1];
226
- interval = operands[0];
227
- }
228
- if (typeof x !== "number" && typeof x !== "string")
229
- throw Error("Set membership non-string variables not implemented for conversion to mathjs");
230
- x = this.convert(x);
231
- if (interval[0] !== "interval")
232
- throw Error("Set membership in non-intervals not implemented for conversion to mathjs");
233
- let args = interval[1];
234
- let closed = interval[2];
235
- if (args[0] !== "tuple" || closed[0] !== "tuple")
236
- throw new Error("Badly formed ast");
237
- let a = this.convert(args[1]);
238
- let b = this.convert(args[2]);
239
- let comparisons = [];
240
- if (closed[1])
241
- comparisons.push(new m.OperatorNode(">=", "largerEq", [x, a]));
242
- else
243
- comparisons.push(new m.OperatorNode(">", "larger", [x, a]));
244
- if (closed[2])
245
- comparisons.push(new m.OperatorNode("<=", "smallerEq", [x, b]));
246
- else
247
- comparisons.push(new m.OperatorNode("<", "smaller", [x, b]));
248
- let result = new m.OperatorNode("and", "and", comparisons);
249
- if (operator === "notin" || operator === "notni")
250
- result = new m.OperatorNode("not", "not", [result]);
251
- return result;
252
- }
253
- if (operator === "subset" ||
254
- operator === "notsubset" ||
255
- operator === "superset" ||
256
- operator === "notsuperset") {
257
- let big, small;
258
- if (operator === "subset" || operator === "notsubset") {
259
- small = operands[0];
260
- big = operands[1];
261
- }
262
- else {
263
- small = operands[1];
264
- big = operands[0];
265
- }
266
- if (small[0] !== "interval" || big[0] !== "interval")
267
- throw Error("Set containment of non-intervals not implemented for conversion to mathjs");
268
- let small_args = small[1];
269
- let small_closed = small[2];
270
- let big_args = big[1];
271
- let big_closed = big[2];
272
- if (small_args[0] !== "tuple" ||
273
- small_closed[0] !== "tuple" ||
274
- big_args[0] !== "tuple" ||
275
- big_closed[0] !== "tuple")
276
- throw Error("Badly formed ast");
277
- let small_a = this.convert(small_args[1]);
278
- let small_b = this.convert(small_args[2]);
279
- let big_a = this.convert(big_args[1]);
280
- let big_b = this.convert(big_args[2]);
281
- let comparisons = [];
282
- if (small_closed[1] && !big_closed[1])
283
- comparisons.push(new m.OperatorNode(">", "larger", [small_a, big_a]));
284
- else
285
- comparisons.push(new m.OperatorNode(">=", "largerEq", [small_a, big_a]));
286
- if (small_closed[2] && !big_closed[2])
287
- comparisons.push(new m.OperatorNode("<", "smaller", [small_b, big_b]));
288
- else
289
- comparisons.push(new m.OperatorNode("<=", "smallerEq", [small_b, big_b]));
290
- let result = new m.OperatorNode("and", "and", comparisons);
291
- if (operator === "notsubset" || operator === "notsuperset")
292
- result = new m.OperatorNode("not", "not", [result]);
293
- return result;
294
- }
295
- if (operator === "matrix") {
296
- // Convert matrices into nested array nodes
297
- // Will become matrix on eval
298
- let size = operands[0];
299
- let nrows = size[1];
300
- let ncols = size[2];
301
- let entries = operands[1];
302
- if (!Number.isInteger(nrows) || !Number.isInteger(ncols))
303
- throw Error("Matrix must have integer dimensions");
304
- let result = [];
305
- for (let i = 1; i <= nrows; i++) {
306
- let row = [];
307
- for (let j = 1; j <= ncols; j++) {
308
- row.push(this.convert(entries[i][j]));
309
- }
310
- result.push(new m.ArrayNode(row));
311
- }
312
- return new m.ArrayNode(result);
313
- }
314
- if (operator == "%") {
315
- const dividend = this.convert(operands[0]);
316
- const divisor = new m.ConstantNode(100);
317
- const result = new m.OperatorNode("/", "divide", [dividend, divisor]);
318
- return result;
319
- }
320
- if (operator in operators) {
321
- return operators[operator](operands.map(function (v, i) {
322
- return this.convert(v);
323
- }.bind(this)));
324
- }
325
- throw Error("Operator " + operator + " not implemented for conversion to mathjs");
326
- }
327
- }
328
- exports.AstToMathJs = AstToMathJs;
329
- //# sourceMappingURL=ast-to-mathjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-to-mathjs.js","sourceRoot":"","sources":["../../src/conversion/ast-to-mathjs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- declare function ParseError(message: string, location?: number): void;
2
- declare namespace ParseError {
3
- var prototype: any;
4
- }
5
- export { ParseError };
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParseError = void 0;
4
- function ParseError(message, location) {
5
- this.name = "ParseError";
6
- this.message = message || "Error parsing input";
7
- this.stack = new Error().stack;
8
- this.location = location;
9
- }
10
- exports.ParseError = ParseError;
11
- ParseError.prototype = Object.create(Error.prototype);
12
- ParseError.prototype.constructor = ParseError;
13
- //# sourceMappingURL=error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/conversion/error.ts"],"names":[],"mappings":";;;AAAA,SAAS,UAAU,CAAC,OAAe,EAAE,QAAiB;IACpD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IACzB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,qBAAqB,CAAC;IAChD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,CAAC;AAIQ,gCAAU;AAHnB,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC"}
@@ -1,12 +0,0 @@
1
- export declare var is_associative: {
2
- "+": boolean;
3
- "*": boolean;
4
- and: boolean;
5
- or: boolean;
6
- union: boolean;
7
- intersect: boolean;
8
- };
9
- export declare function flatten(expr: any): any;
10
- export declare const unflattenRight: (expr: any) => any;
11
- export declare const unflattenLeft: (expr: any) => any;
12
- export declare const allChildren: (tree: any) => any;