pimath 0.0.124 → 0.0.126
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +192 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +2404 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +1362 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +4 -0
- package/dev/pimath.js +7940 -7930
- package/dev/pimath.js.map +1 -1
- package/dist/pimath.js +219 -227
- package/dist/pimath.js.map +1 -1
- package/dist/pimath.min.js +1 -1
- package/dist/pimath.min.js.map +1 -1
- package/docs/assets/main.js +59 -58
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -1
- package/docs/assets/style.css +1383 -1367
- package/docs/classes/Logicalset.Logicalset.html +217 -221
- package/docs/classes/Polynom.Rational.html +397 -391
- package/docs/classes/Vector-1.Vector.html +490 -494
- package/docs/classes/Vector.Point.html +337 -341
- package/docs/classes/algebra_equation.Equation.html +790 -796
- package/docs/classes/algebra_linearSystem.LinearSystem.html +404 -408
- package/docs/classes/algebra_monom.Monom.html +962 -967
- package/docs/classes/algebra_polynom.Polynom.html +1275 -1281
- package/docs/classes/coefficients_fraction.Fraction.html +934 -939
- package/docs/classes/geometry_circle.Circle.html +472 -476
- package/docs/classes/geometry_line.Line.html +774 -779
- package/docs/classes/geometry_triangle.Triangle.html +429 -429
- package/docs/classes/numeric.Numeric.html +265 -269
- package/docs/classes/shutingyard.Shutingyard.html +250 -259
- package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +83 -89
- package/docs/enums/geometry_line.LinePropriety.html +97 -102
- package/docs/enums/shutingyard.ShutingyardMode.html +97 -106
- package/docs/enums/shutingyard.ShutingyardType.html +111 -120
- package/docs/index.html +63 -63
- package/docs/interfaces/algebra_equation.ISolution.html +105 -111
- package/docs/interfaces/algebra_polynom.IEuclidian.html +87 -93
- package/docs/interfaces/geometry_triangle.remarquableLines.html +163 -150
- package/docs/modules/Logicalset.html +65 -69
- package/docs/modules/Polynom.html +65 -69
- package/docs/modules/Vector-1.html +65 -69
- package/docs/modules/Vector.html +65 -69
- package/docs/modules/algebra_equation.html +69 -75
- package/docs/modules/algebra_linearSystem.html +61 -65
- package/docs/modules/algebra_monom.html +65 -70
- package/docs/modules/algebra_polynom.html +69 -75
- package/docs/modules/coefficients_fraction.html +65 -70
- package/docs/modules/geometry_circle.html +61 -65
- package/docs/modules/geometry_line.html +65 -70
- package/docs/modules/geometry_triangle.html +65 -70
- package/docs/modules/numeric.html +61 -65
- package/docs/modules/shutingyard.html +75 -84
- package/docs/types/algebra_monom.literalType.html +61 -66
- package/docs/types/algebra_polynom.PolynomParsingType.html +56 -62
- package/docs/types/coefficients_fraction.FractionParsingType.html +56 -61
- package/docs/types/shutingyard.Token.html +63 -72
- package/docs/types/shutingyard.tokenType.html +68 -77
- package/docs/variables/shutingyard.tokenConstant.html +61 -70
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/maths/algebra/monom.d.ts +19 -19
- package/esm/maths/algebra/monom.js +66 -66
- package/esm/maths/algebra/monom.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +14 -14
- package/esm/maths/algebra/polynom.js +72 -50
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/numeric.js +3 -48
- package/esm/maths/numeric.js.map +1 -1
- package/esm/maths/randomization/random.d.ts +1 -1
- package/esm/maths/randomization/random.js +2 -2
- package/esm/maths/randomization/random.js.map +1 -1
- package/esm/maths/randomization/rndHelpers.d.ts +1 -1
- package/esm/maths/randomization/rndHelpers.js +25 -4
- package/esm/maths/randomization/rndHelpers.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/maths/algebra/monom.ts +138 -130
- package/src/maths/algebra/polynom.ts +107 -85
- package/src/maths/numeric.ts +61 -90
- package/src/maths/randomization/random.ts +2 -2
- package/src/maths/randomization/rndHelpers.ts +49 -18
- package/tests/algebra/linear.test.ts +1 -1
- package/tests/algebra/polynom.test.ts +152 -1
- package/tests/algebra/study.test.ts +1 -0
- package/tests/geometry/circle.test.ts +124 -25
- package/tests/geometry/line.test.ts +8 -17
- package/tests/numexp.test.ts +10 -2
- package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
- package/esm/maths/expressions/ExpressionTree.js +0 -150
- package/esm/maths/expressions/ExpressionTree.js.map +0 -1
- package/esm/maths/expressions/expression.d.ts +0 -27
- package/esm/maths/expressions/expression.js +0 -239
- package/esm/maths/expressions/expression.js.map +0 -1
- package/esm/maths/expressions/expressionFactor.d.ts +0 -36
- package/esm/maths/expressions/expressionFactor.js +0 -156
- package/esm/maths/expressions/expressionFactor.js.map +0 -1
- package/esm/maths/expressions/expressionMember.d.ts +0 -27
- package/esm/maths/expressions/expressionMember.js +0 -199
- package/esm/maths/expressions/expressionMember.js.map +0 -1
- package/esm/maths/expressions/expressionOperators.d.ts +0 -8
- package/esm/maths/expressions/expressionOperators.js +0 -42
- package/esm/maths/expressions/expressionOperators.js.map +0 -1
- package/esm/maths/expressions/expressionParser.d.ts +0 -14
- package/esm/maths/expressions/expressionParser.js +0 -259
- package/esm/maths/expressions/expressionParser.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
- package/esm/maths/expressions/factors/ExpFactor.js +0 -34
- package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
- package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
- package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
- package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
- package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
- package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
- package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
- package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
- package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
- package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
- package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
- package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
- package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
- package/esm/maths/expressions/internals.d.ts +0 -12
- package/esm/maths/expressions/internals.js +0 -29
- package/esm/maths/expressions/internals.js.map +0 -1
- package/esm/maths/expressions/numexp.d.ts +0 -19
- package/esm/maths/expressions/numexp.js +0 -186
- package/esm/maths/expressions/numexp.js.map +0 -1
- package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
- package/esm/maths/expressions/polynomexp.bkp.js +0 -184
- package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
- package/esm/maths/expressions/polynomexp.d.ts +0 -52
- package/esm/maths/expressions/polynomexp.js +0 -246
- package/esm/maths/expressions/polynomexp.js.map +0 -1
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpressionNode = exports.ExpressionTree = void 0;
|
|
4
|
-
const shutingyard_1 = require("../shutingyard");
|
|
5
|
-
class ExpressionTree {
|
|
6
|
-
constructor(value) {
|
|
7
|
-
this._root = this._parse(value);
|
|
8
|
-
}
|
|
9
|
-
get tex() {
|
|
10
|
-
return this._root.tex;
|
|
11
|
-
}
|
|
12
|
-
print() {
|
|
13
|
-
return this._root.print(0, []).join('\n');
|
|
14
|
-
}
|
|
15
|
-
_parse(value) {
|
|
16
|
-
let SY = new shutingyard_1.Shutingyard(shutingyard_1.ShutingyardMode.EXPRESSION).parse(value);
|
|
17
|
-
// Store the rpn
|
|
18
|
-
this._rpn = SY.rpn;
|
|
19
|
-
// Build the tree with nodes.
|
|
20
|
-
let stack = [];
|
|
21
|
-
for (let item of this._rpn) {
|
|
22
|
-
switch (item.tokenType) {
|
|
23
|
-
case shutingyard_1.ShutingyardType.COEFFICIENT:
|
|
24
|
-
stack.push(new ExpressionNode(item.tokenType, item.token));
|
|
25
|
-
break;
|
|
26
|
-
case shutingyard_1.ShutingyardType.CONSTANT:
|
|
27
|
-
stack.push(new ExpressionNode(item.tokenType, item.token));
|
|
28
|
-
break;
|
|
29
|
-
case shutingyard_1.ShutingyardType.VARIABLE:
|
|
30
|
-
stack.push(new ExpressionNode(item.tokenType, item.token));
|
|
31
|
-
break;
|
|
32
|
-
case shutingyard_1.ShutingyardType.OPERATION:
|
|
33
|
-
if (stack.length >= 2) {
|
|
34
|
-
let b = stack.pop(), a = stack.pop();
|
|
35
|
-
stack.push(new ExpressionNode(item.token, a, b));
|
|
36
|
-
}
|
|
37
|
-
break;
|
|
38
|
-
case shutingyard_1.ShutingyardType.FUNCTION:
|
|
39
|
-
let a = stack.pop();
|
|
40
|
-
switch (item.token) {
|
|
41
|
-
case 'nthrt':
|
|
42
|
-
stack.push(new ExpressionNode(item.token, a, stack.pop()));
|
|
43
|
-
break;
|
|
44
|
-
default:
|
|
45
|
-
stack.push(new ExpressionNode(item.token, a));
|
|
46
|
-
}
|
|
47
|
-
break;
|
|
48
|
-
default:
|
|
49
|
-
throw (`Something went wrong while parsing ${value} at ${item.token}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return stack[0];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.ExpressionTree = ExpressionTree;
|
|
56
|
-
const operationFunction = ['nthrt'];
|
|
57
|
-
const softwrap = ['*', '^', 'sqrt', 'nthrt'];
|
|
58
|
-
function TeXit(value, parentheses, soft) {
|
|
59
|
-
if (value === undefined) {
|
|
60
|
-
return '';
|
|
61
|
-
}
|
|
62
|
-
if (value === null) {
|
|
63
|
-
return '';
|
|
64
|
-
}
|
|
65
|
-
let addParentheses = parentheses === true;
|
|
66
|
-
if (addParentheses) {
|
|
67
|
-
if (soft === true) {
|
|
68
|
-
if (value instanceof ExpressionNode) {
|
|
69
|
-
if (value.isSingle()) {
|
|
70
|
-
addParentheses = false;
|
|
71
|
-
}
|
|
72
|
-
// The current element might not need to be wrapped.
|
|
73
|
-
if (softwrap.includes(value.op)) {
|
|
74
|
-
addParentheses = false;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
addParentheses = false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (value instanceof ExpressionNode) {
|
|
83
|
-
return addParentheses === true ? `\\left( ${value.tex} \\right) ` : value.tex;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return value;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
class ExpressionNode {
|
|
90
|
-
constructor(op, ...children) {
|
|
91
|
-
this._op = op;
|
|
92
|
-
this._children = children;
|
|
93
|
-
}
|
|
94
|
-
get op() {
|
|
95
|
-
return this._op;
|
|
96
|
-
}
|
|
97
|
-
get tex() {
|
|
98
|
-
let a = this._children[0], b = this._children[1];
|
|
99
|
-
switch (this._op) {
|
|
100
|
-
case shutingyard_1.ShutingyardType.COEFFICIENT:
|
|
101
|
-
case shutingyard_1.ShutingyardType.CONSTANT:
|
|
102
|
-
case shutingyard_1.ShutingyardType.VARIABLE:
|
|
103
|
-
if (typeof a === "string") {
|
|
104
|
-
return a;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
return '';
|
|
108
|
-
}
|
|
109
|
-
case '+':
|
|
110
|
-
return `${TeXit(a)} ${this._op} ${TeXit(b)}`;
|
|
111
|
-
case '-':
|
|
112
|
-
return `${TeXit(a)} ${this._op} ${TeXit(b, true, true)}`;
|
|
113
|
-
case '*':
|
|
114
|
-
return `${TeXit(a, true, true)} \\cdot ${TeXit(b, true, true)}`;
|
|
115
|
-
case '/':
|
|
116
|
-
return `\\frac{ ${TeXit(a)} }{ ${TeXit(b)} }`;
|
|
117
|
-
case '^':
|
|
118
|
-
return `${TeXit(a, true)}^{ ${TeXit(b)} }`;
|
|
119
|
-
case 'sqrt':
|
|
120
|
-
return `\\sqrt{ ${TeXit(a)} }`;
|
|
121
|
-
default:
|
|
122
|
-
throw (`Something went wrong with ${this._op}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
isSingle() {
|
|
126
|
-
return this._op === shutingyard_1.ShutingyardType.COEFFICIENT ||
|
|
127
|
-
this._op === shutingyard_1.ShutingyardType.VARIABLE ||
|
|
128
|
-
this._op === shutingyard_1.ShutingyardType.CONSTANT;
|
|
129
|
-
}
|
|
130
|
-
print(tab, stack) {
|
|
131
|
-
// Tabulation
|
|
132
|
-
let tabChr = '';
|
|
133
|
-
for (let i = 0; i < tab; i++) {
|
|
134
|
-
tabChr += '\t';
|
|
135
|
-
}
|
|
136
|
-
// Walk through all nodes.
|
|
137
|
-
let row = [`${tabChr}${this._op}`];
|
|
138
|
-
for (let child of this._children) {
|
|
139
|
-
if (child instanceof ExpressionNode) {
|
|
140
|
-
row = [...child.print(tab + 1, row)];
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
row[row.length - 1] += ` -> ${child}`;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return [...stack, ...row];
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
exports.ExpressionNode = ExpressionNode;
|
|
150
|
-
//# sourceMappingURL=ExpressionTree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionTree.js","sourceRoot":"","sources":["../../../src/maths/expressions/ExpressionTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ExpressionFactor, ExpressionMember } from "./internals";
|
|
2
|
-
export type ExpressionMemberType = {
|
|
3
|
-
member: ExpressionMember;
|
|
4
|
-
sign: number;
|
|
5
|
-
};
|
|
6
|
-
export declare class Expression {
|
|
7
|
-
private _members;
|
|
8
|
-
constructor(...values: (ExpressionMember | ExpressionFactor | ExpressionMemberType)[]);
|
|
9
|
-
get tex(): string;
|
|
10
|
-
get display(): string;
|
|
11
|
-
get members(): ExpressionMemberType[];
|
|
12
|
-
set members(value: ExpressionMemberType[]);
|
|
13
|
-
addMembers(...values: (ExpressionMemberType | ExpressionMember | ExpressionFactor)[]): Expression;
|
|
14
|
-
add(value: Expression | ExpressionMember | ExpressionFactor): this;
|
|
15
|
-
subtract(value: Expression | ExpressionMember | ExpressionFactor): this;
|
|
16
|
-
variables(): string[];
|
|
17
|
-
isPolynom(): Boolean;
|
|
18
|
-
getAllFactors(): ExpressionFactor[];
|
|
19
|
-
hasVariable(variable?: string): boolean;
|
|
20
|
-
isZero(): boolean;
|
|
21
|
-
isNumeric(): boolean;
|
|
22
|
-
isNumber(): boolean;
|
|
23
|
-
isSingle(): Boolean;
|
|
24
|
-
isFactor(): Boolean;
|
|
25
|
-
structure(depth?: number): string;
|
|
26
|
-
reduce(): Expression;
|
|
27
|
-
}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Expression = void 0;
|
|
4
|
-
const internals_1 = require("./internals");
|
|
5
|
-
class Expression {
|
|
6
|
-
constructor(...values) {
|
|
7
|
-
this._members = [];
|
|
8
|
-
this.addMembers(...values);
|
|
9
|
-
return this;
|
|
10
|
-
}
|
|
11
|
-
get tex() {
|
|
12
|
-
let tex = "";
|
|
13
|
-
for (let item of this._members) {
|
|
14
|
-
try {
|
|
15
|
-
if (tex === "") {
|
|
16
|
-
tex = (item.sign === -1 ? "-" : "") + item.member.tex;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
tex += (item.sign === -1 ? "-" : "+") + item.member.tex;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
console.log('Error while generating the TeX code for ', item.constructor.name);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return tex;
|
|
27
|
-
}
|
|
28
|
-
get display() {
|
|
29
|
-
let display = "";
|
|
30
|
-
for (let item of this._members) {
|
|
31
|
-
try {
|
|
32
|
-
if (display === "") {
|
|
33
|
-
display = (item.sign === -1 ? "-" : "") + item.member.display;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
display += (item.sign === -1 ? "-" : "+") + item.member.display;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
console.log('Error while generating the display code for ', item.constructor.name);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return display;
|
|
44
|
-
}
|
|
45
|
-
get members() {
|
|
46
|
-
return this._members;
|
|
47
|
-
}
|
|
48
|
-
set members(value) {
|
|
49
|
-
this._members = value;
|
|
50
|
-
}
|
|
51
|
-
addMembers(...values) {
|
|
52
|
-
for (let item of values) {
|
|
53
|
-
if (item instanceof internals_1.ExpressionMember) {
|
|
54
|
-
this._members.push({
|
|
55
|
-
member: item,
|
|
56
|
-
sign: 1
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
else if (item instanceof internals_1.ExpressionFactor) {
|
|
60
|
-
this._members.push({
|
|
61
|
-
member: new internals_1.ExpressionMember(item),
|
|
62
|
-
sign: 1
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this._members.push(item);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
add(value) {
|
|
72
|
-
if (value instanceof Expression) {
|
|
73
|
-
this.members = this.members.concat(...value.members);
|
|
74
|
-
}
|
|
75
|
-
else if (value instanceof internals_1.ExpressionMember) {
|
|
76
|
-
this.members.push({
|
|
77
|
-
member: value,
|
|
78
|
-
sign: 1
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else if (value instanceof internals_1.ExpressionFactor) {
|
|
82
|
-
this.members.push({
|
|
83
|
-
member: new internals_1.ExpressionMember(value),
|
|
84
|
-
sign: 1
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
subtract(value) {
|
|
90
|
-
if (value instanceof Expression) {
|
|
91
|
-
this.members = this.members.concat(...value.members
|
|
92
|
-
.map(item => {
|
|
93
|
-
return { member: item.member, sign: -item.sign };
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
else if (value instanceof internals_1.ExpressionMember) {
|
|
97
|
-
this.members.push({
|
|
98
|
-
member: value,
|
|
99
|
-
sign: -1
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
else if (value instanceof internals_1.ExpressionFactor) {
|
|
103
|
-
this.members.push({
|
|
104
|
-
member: new internals_1.ExpressionMember(value),
|
|
105
|
-
sign: -1
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
return this;
|
|
109
|
-
}
|
|
110
|
-
variables() {
|
|
111
|
-
let values = [], varFactor;
|
|
112
|
-
values = this.getAllFactors().filter(x => x instanceof internals_1.ExpFactorVariable).map(x => {
|
|
113
|
-
return x instanceof internals_1.ExpFactorVariable ? x.variable : null;
|
|
114
|
-
});
|
|
115
|
-
return [...new Set(values)];
|
|
116
|
-
}
|
|
117
|
-
isPolynom() {
|
|
118
|
-
// Allow variable, number, factor, power, constant
|
|
119
|
-
let factors = this.getAllFactors();
|
|
120
|
-
for (let factor of factors) {
|
|
121
|
-
// No root
|
|
122
|
-
if (factor.root > 1) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
// Allow power, as long as the power argument is numeric
|
|
126
|
-
if (factor instanceof internals_1.ExpFactorPower) {
|
|
127
|
-
if (!factor.powerArgument.isNumeric()) {
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
// TODO: the power must be an integer value.
|
|
131
|
-
if (!factor.powerArgument.isNumber()) {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// Allow some type of factors.
|
|
136
|
-
if (!(factor instanceof internals_1.ExpFactor ||
|
|
137
|
-
factor instanceof internals_1.ExpFactorConstant ||
|
|
138
|
-
factor instanceof internals_1.ExpFactorNumber ||
|
|
139
|
-
factor instanceof internals_1.ExpFactorVariable)) {
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
getAllFactors() {
|
|
146
|
-
let EF = [];
|
|
147
|
-
for (let item of this._members) {
|
|
148
|
-
for (let factor of item.member.factors) {
|
|
149
|
-
EF.push(factor);
|
|
150
|
-
for (let expr of factor.getArguments()) {
|
|
151
|
-
EF = EF.concat(...expr.getAllFactors());
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return EF;
|
|
156
|
-
}
|
|
157
|
-
hasVariable(variable) {
|
|
158
|
-
if (variable === undefined) {
|
|
159
|
-
return !this.isNumeric();
|
|
160
|
-
}
|
|
161
|
-
for (let item of this._members) {
|
|
162
|
-
if (item.member.hasVariable(variable)) {
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// The variable hasn't been found !
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
isZero() {
|
|
170
|
-
// TODO: Must check if all the members has a value of zero
|
|
171
|
-
if (this._members.length === 0) {
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
for (let item of this._members) {
|
|
175
|
-
if (item.member.isZero()) {
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
isNumeric() {
|
|
182
|
-
for (let item of this._members) {
|
|
183
|
-
if (!item.member.isNumeric()) {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return true;
|
|
188
|
-
}
|
|
189
|
-
isNumber() {
|
|
190
|
-
if (this._members.length === 1) {
|
|
191
|
-
if (this._members[0]?.member.factors[0] instanceof internals_1.ExpFactorNumber) {
|
|
192
|
-
return this._members[0].member.factors[0].root === 1;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
isSingle() {
|
|
198
|
-
if (this.members.length > 1) {
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
else if (this.members[0]?.member.factors.length > 1) {
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
isFactor() {
|
|
209
|
-
return this.members.length === 1;
|
|
210
|
-
}
|
|
211
|
-
structure(depth) {
|
|
212
|
-
let struct = [], indent = "", dftIndent = "\t";
|
|
213
|
-
if (depth === undefined) {
|
|
214
|
-
depth = 0;
|
|
215
|
-
}
|
|
216
|
-
for (let i = 0; i < depth; i++) {
|
|
217
|
-
indent += dftIndent;
|
|
218
|
-
}
|
|
219
|
-
struct.push(`${indent}${this.constructor.name}: ${this.tex}`);
|
|
220
|
-
for (let item of this._members) {
|
|
221
|
-
struct.push(`${indent}${dftIndent}${item.member.constructor.name}: ${item.member.tex}`);
|
|
222
|
-
for (let factor of item.member.factors) {
|
|
223
|
-
struct.push(`${indent}${dftIndent}${dftIndent}${factor.constructor.name}: ${factor.tex} ; power: ${factor.power}; root: ${factor.root}`);
|
|
224
|
-
if (factor.argument !== null) {
|
|
225
|
-
struct.push(factor.argument.structure(depth + 3));
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return struct.join('\n');
|
|
230
|
-
}
|
|
231
|
-
reduce() {
|
|
232
|
-
for (let item of this.members) {
|
|
233
|
-
item.member.reduce();
|
|
234
|
-
}
|
|
235
|
-
return this;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
exports.Expression = Expression;
|
|
239
|
-
//# sourceMappingURL=expression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/maths/expressions/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Expression } from "./internals";
|
|
2
|
-
export declare abstract class ExpressionFactor {
|
|
3
|
-
private _argument;
|
|
4
|
-
private _power?;
|
|
5
|
-
private _root?;
|
|
6
|
-
private _inline?;
|
|
7
|
-
constructor(_argument: Expression, _power?: number, _root?: number, _inline?: boolean);
|
|
8
|
-
get inline(): boolean;
|
|
9
|
-
set inline(value: boolean);
|
|
10
|
-
get tex(): string;
|
|
11
|
-
get display(): string;
|
|
12
|
-
get power(): number;
|
|
13
|
-
set power(value: number);
|
|
14
|
-
get root(): number;
|
|
15
|
-
set root(value: number);
|
|
16
|
-
get argument(): Expression;
|
|
17
|
-
set argument(value: Expression);
|
|
18
|
-
abstract makeTeX(numberOfFactors?: number, position?: number): string;
|
|
19
|
-
abstract makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
20
|
-
abstract derivative(variable: string): Expression;
|
|
21
|
-
abstract integrate(variable: string): Expression;
|
|
22
|
-
getArguments(): Expression[];
|
|
23
|
-
hasVariable(variable?: string): boolean;
|
|
24
|
-
isNumeric(): boolean;
|
|
25
|
-
hasRoot(): boolean;
|
|
26
|
-
hasPower(inline?: boolean): boolean;
|
|
27
|
-
texPowerAndRoot(tex: string): string;
|
|
28
|
-
displayPowerAndRoot(display: string): string;
|
|
29
|
-
displayPower(display: string): string;
|
|
30
|
-
displayRoot(display: string): string;
|
|
31
|
-
texPower(tex: string): string;
|
|
32
|
-
wrapWithParentheses(tex: string, asTex?: boolean): string;
|
|
33
|
-
texRoot(tex: string): string;
|
|
34
|
-
isZero(): Boolean;
|
|
35
|
-
reduce(): ExpressionFactor;
|
|
36
|
-
}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpressionFactor = void 0;
|
|
4
|
-
const internals_1 = require("./internals");
|
|
5
|
-
const numeric_1 = require("../numeric");
|
|
6
|
-
class ExpressionFactor {
|
|
7
|
-
constructor(_argument, _power, _root, _inline) {
|
|
8
|
-
this._argument = _argument;
|
|
9
|
-
this._power = _power;
|
|
10
|
-
this._root = _root;
|
|
11
|
-
this._inline = _inline;
|
|
12
|
-
if (this._power === undefined) {
|
|
13
|
-
this._power = 1;
|
|
14
|
-
}
|
|
15
|
-
if (this._root === undefined) {
|
|
16
|
-
this._root = 1;
|
|
17
|
-
}
|
|
18
|
-
if (this._inline === undefined) {
|
|
19
|
-
this._inline = false;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
get inline() {
|
|
23
|
-
return this._inline;
|
|
24
|
-
}
|
|
25
|
-
set inline(value) {
|
|
26
|
-
this._inline = value;
|
|
27
|
-
}
|
|
28
|
-
get tex() {
|
|
29
|
-
return this.makeTeX();
|
|
30
|
-
}
|
|
31
|
-
get display() {
|
|
32
|
-
return this.makeDisplay();
|
|
33
|
-
}
|
|
34
|
-
get power() {
|
|
35
|
-
return this._power;
|
|
36
|
-
}
|
|
37
|
-
set power(value) {
|
|
38
|
-
if (!Number.isSafeInteger(value)) {
|
|
39
|
-
throw `Power value (${value}) is not a safe integer`;
|
|
40
|
-
}
|
|
41
|
-
this._power = value;
|
|
42
|
-
}
|
|
43
|
-
get root() {
|
|
44
|
-
return this._root;
|
|
45
|
-
}
|
|
46
|
-
set root(value) {
|
|
47
|
-
if (!Number.isSafeInteger(value)) {
|
|
48
|
-
throw `Root value (${value}) is not a safe integer`;
|
|
49
|
-
}
|
|
50
|
-
this._root = value;
|
|
51
|
-
}
|
|
52
|
-
get argument() {
|
|
53
|
-
return this._argument;
|
|
54
|
-
}
|
|
55
|
-
set argument(value) {
|
|
56
|
-
this._argument = value;
|
|
57
|
-
}
|
|
58
|
-
getArguments() {
|
|
59
|
-
if (this._argument !== null) {
|
|
60
|
-
return [this.argument];
|
|
61
|
-
}
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
hasVariable(variable) {
|
|
65
|
-
if (variable === undefined) {
|
|
66
|
-
return !this.isNumeric();
|
|
67
|
-
}
|
|
68
|
-
// The argument is an Expression
|
|
69
|
-
if (this._argument instanceof internals_1.Expression) {
|
|
70
|
-
return this._argument.hasVariable(variable);
|
|
71
|
-
}
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
isNumeric() {
|
|
75
|
-
for (let expressionArgument of this.getArguments()) {
|
|
76
|
-
if (!expressionArgument.isNumeric()) {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
hasRoot() {
|
|
83
|
-
return this.root > 1;
|
|
84
|
-
}
|
|
85
|
-
hasPower(inline) {
|
|
86
|
-
if (inline === true) {
|
|
87
|
-
return !(this.power === 1);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
return !(this.power === 1 || this.power === -1);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
texPowerAndRoot(tex) {
|
|
94
|
-
return this.texPower(this.texRoot(tex));
|
|
95
|
-
}
|
|
96
|
-
displayPowerAndRoot(display) {
|
|
97
|
-
return this.displayPower(this.displayRoot(display));
|
|
98
|
-
}
|
|
99
|
-
displayPower(display) {
|
|
100
|
-
if (this.hasPower(this.inline)) {
|
|
101
|
-
return `${display}^(${Math.abs(this.power)})`;
|
|
102
|
-
}
|
|
103
|
-
return display;
|
|
104
|
-
}
|
|
105
|
-
displayRoot(display) {
|
|
106
|
-
if (this.root === 2) {
|
|
107
|
-
return `sqrt( ${display} )`;
|
|
108
|
-
}
|
|
109
|
-
else if (this.root > 2) {
|
|
110
|
-
return `nthrt(${display},${this.root})`;
|
|
111
|
-
}
|
|
112
|
-
return display;
|
|
113
|
-
}
|
|
114
|
-
texPower(tex) {
|
|
115
|
-
if (this.hasPower(this.inline)) {
|
|
116
|
-
return `${tex}^{ ${Math.abs(this.power)} }`;
|
|
117
|
-
}
|
|
118
|
-
return tex;
|
|
119
|
-
}
|
|
120
|
-
wrapWithParentheses(tex, asTex) {
|
|
121
|
-
if (asTex === undefined || asTex === true) {
|
|
122
|
-
return `\\left( ${tex} \\right)`;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
return `( ${tex} )`;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
texRoot(tex) {
|
|
129
|
-
if (this.root === 2) {
|
|
130
|
-
return `\\sqrt{ ${tex} }`;
|
|
131
|
-
}
|
|
132
|
-
else if (this.root > 2) {
|
|
133
|
-
return `\\sqrt[${this.root}]{ ${tex} }`;
|
|
134
|
-
}
|
|
135
|
-
return tex;
|
|
136
|
-
}
|
|
137
|
-
isZero() {
|
|
138
|
-
if (this._argument instanceof internals_1.Expression) {
|
|
139
|
-
return this._argument.isZero();
|
|
140
|
-
}
|
|
141
|
-
return this._argument === 0;
|
|
142
|
-
}
|
|
143
|
-
reduce() {
|
|
144
|
-
let gcd = numeric_1.Numeric.gcd(this.root, this.power);
|
|
145
|
-
if (gcd > 1) {
|
|
146
|
-
this.root = this.root / gcd;
|
|
147
|
-
this.power = this.power / gcd;
|
|
148
|
-
}
|
|
149
|
-
for (let expressionArgument of this.getArguments()) {
|
|
150
|
-
expressionArgument.reduce();
|
|
151
|
-
}
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
exports.ExpressionFactor = ExpressionFactor;
|
|
156
|
-
//# sourceMappingURL=expressionFactor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressionFactor.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionFactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ExpressionFactor } from "./internals";
|
|
2
|
-
export declare class ExpressionMember {
|
|
3
|
-
private _factors;
|
|
4
|
-
constructor(...values: ExpressionFactor[]);
|
|
5
|
-
get factors(): ExpressionFactor[];
|
|
6
|
-
set factors(value: ExpressionFactor[]);
|
|
7
|
-
get numerator(): ExpressionFactor[];
|
|
8
|
-
get denominator(): ExpressionFactor[];
|
|
9
|
-
get tex(): string;
|
|
10
|
-
get display(): string;
|
|
11
|
-
toString(asTex: boolean): string;
|
|
12
|
-
add(value: ExpressionFactor): ExpressionMember;
|
|
13
|
-
addFactors(...values: ExpressionFactor[]): ExpressionMember;
|
|
14
|
-
isZero(): Boolean;
|
|
15
|
-
hasVariable(variable?: string): boolean;
|
|
16
|
-
isNumeric(): boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Returns the "coefficient", ie a member with only numeric values factors.
|
|
19
|
-
*/
|
|
20
|
-
coefficient(): ExpressionMember;
|
|
21
|
-
/**
|
|
22
|
-
* Returns a member with all factors containing a literal part.
|
|
23
|
-
*/
|
|
24
|
-
literal(): ExpressionMember;
|
|
25
|
-
similarTo(member: ExpressionMember): boolean;
|
|
26
|
-
reduce(): ExpressionMember;
|
|
27
|
-
}
|