pimath 0.0.123 → 0.0.125
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/dist/pimath.js +53 -14
- package/dist/pimath.js.map +1 -1
- package/dist/pimath.min.js +1 -1
- package/dist/pimath.min.js.map +1 -1
- package/esm/maths/algebra/rational.d.ts +1 -0
- package/esm/maths/algebra/rational.js +12 -1
- package/esm/maths/algebra/rational.js.map +1 -1
- package/esm/maths/geometry/triangle.d.ts +6 -0
- package/esm/maths/geometry/triangle.js +14 -7
- package/esm/maths/geometry/triangle.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 +8 -8
- package/src/maths/algebra/rational.ts +13 -1
- package/src/maths/geometry/triangle.ts +24 -8
- package/src/maths/randomization/random.ts +2 -2
- package/src/maths/randomization/rndHelpers.ts +49 -18
- package/tests/algebra/rationnal.test.ts +5 -0
- package/tests/geometry/circle.test.ts +125 -10
- package/tests/numexp.test.ts +15 -2
- package/dev/pimath.js +0 -7935
- package/dev/pimath.js.map +0 -1
- package/docs/.nojekyll +0 -1
- package/docs/assets/highlight.css +0 -78
- package/docs/assets/main.js +0 -58
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1367
- package/docs/classes/Logicalset.Logicalset.html +0 -221
- package/docs/classes/Polynom.Rational.html +0 -391
- package/docs/classes/Vector-1.Vector.html +0 -494
- package/docs/classes/Vector.Point.html +0 -341
- package/docs/classes/algebra_equation.Equation.html +0 -796
- package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -408
- package/docs/classes/algebra_monom.Monom.html +0 -967
- package/docs/classes/algebra_polynom.Polynom.html +0 -1281
- package/docs/classes/coefficients_fraction.Fraction.html +0 -939
- package/docs/classes/geometry_circle.Circle.html +0 -476
- package/docs/classes/geometry_line.Line.html +0 -779
- package/docs/classes/geometry_triangle.Triangle.html +0 -429
- package/docs/classes/numeric.Numeric.html +0 -269
- package/docs/classes/shutingyard.Shutingyard.html +0 -259
- package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -89
- package/docs/enums/geometry_line.LinePropriety.html +0 -102
- package/docs/enums/shutingyard.ShutingyardMode.html +0 -106
- package/docs/enums/shutingyard.ShutingyardType.html +0 -120
- package/docs/index.html +0 -63
- package/docs/interfaces/algebra_equation.ISolution.html +0 -111
- package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -93
- package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -150
- package/docs/modules/Logicalset.html +0 -69
- package/docs/modules/Polynom.html +0 -69
- package/docs/modules/Vector-1.html +0 -69
- package/docs/modules/Vector.html +0 -69
- package/docs/modules/algebra_equation.html +0 -75
- package/docs/modules/algebra_linearSystem.html +0 -65
- package/docs/modules/algebra_monom.html +0 -70
- package/docs/modules/algebra_polynom.html +0 -75
- package/docs/modules/coefficients_fraction.html +0 -70
- package/docs/modules/geometry_circle.html +0 -65
- package/docs/modules/geometry_line.html +0 -70
- package/docs/modules/geometry_triangle.html +0 -70
- package/docs/modules/numeric.html +0 -65
- package/docs/modules/shutingyard.html +0 -84
- package/docs/types/algebra_monom.literalType.html +0 -66
- package/docs/types/algebra_polynom.PolynomParsingType.html +0 -62
- package/docs/types/coefficients_fraction.FractionParsingType.html +0 -61
- package/docs/types/shutingyard.Token.html +0 -72
- package/docs/types/shutingyard.tokenType.html +0 -77
- package/docs/variables/shutingyard.tokenConstant.html +0 -70
- 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,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
|
-
}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpressionMember = void 0;
|
|
4
|
-
const internals_1 = require("./internals");
|
|
5
|
-
class ExpressionMember {
|
|
6
|
-
constructor(...values) {
|
|
7
|
-
this._factors = values;
|
|
8
|
-
}
|
|
9
|
-
get factors() {
|
|
10
|
-
return this._factors;
|
|
11
|
-
}
|
|
12
|
-
set factors(value) {
|
|
13
|
-
this._factors = value;
|
|
14
|
-
}
|
|
15
|
-
get numerator() {
|
|
16
|
-
return this._factors.filter(factor => factor.power > 0);
|
|
17
|
-
}
|
|
18
|
-
get denominator() {
|
|
19
|
-
return this._factors.filter(factor => factor.power < 0);
|
|
20
|
-
}
|
|
21
|
-
get tex() {
|
|
22
|
-
return this.toString(true);
|
|
23
|
-
}
|
|
24
|
-
get display() {
|
|
25
|
-
return this.toString(false);
|
|
26
|
-
}
|
|
27
|
-
toString(asTex) {
|
|
28
|
-
if (asTex === undefined) {
|
|
29
|
-
asTex = true;
|
|
30
|
-
}
|
|
31
|
-
let outputArray = this.factors.map(x => {
|
|
32
|
-
return {
|
|
33
|
-
value: asTex ? x.tex : x.display,
|
|
34
|
-
valueWithoutParentheses: asTex ? x.makeTeX(1, 0) : x.makeDisplay(1, 0),
|
|
35
|
-
denominator: x.power < 0,
|
|
36
|
-
number: (x instanceof internals_1.ExpFactorNumber)
|
|
37
|
-
};
|
|
38
|
-
}), output = '';
|
|
39
|
-
while (outputArray.length > 0) {
|
|
40
|
-
let item = outputArray.shift();
|
|
41
|
-
if (item.denominator) {
|
|
42
|
-
if (asTex) {
|
|
43
|
-
output += `\\frac{1}{ ${item.valueWithoutParentheses} }`;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
output += `1/(${item.valueWithoutParentheses})`;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
if (outputArray.length > 0 && outputArray[0].denominator) {
|
|
51
|
-
let item2 = outputArray.shift();
|
|
52
|
-
if (asTex) {
|
|
53
|
-
output += `\\frac{ ${item.valueWithoutParentheses} }{ ${item2.valueWithoutParentheses} }`;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
output += `(${item.valueWithoutParentheses})/(${item2.valueWithoutParentheses})`;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
output += item.value;
|
|
61
|
-
// Check if we need to add the multiplication sign.
|
|
62
|
-
if (outputArray.length > 0) {
|
|
63
|
-
if (item.number && outputArray[0].number) {
|
|
64
|
-
if (outputArray.length > 1) {
|
|
65
|
-
if (!outputArray[1].denominator) {
|
|
66
|
-
output += asTex ? " \\cdot " : "*";
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
output += asTex ? " \\cdot " : "*";
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return output;
|
|
78
|
-
}
|
|
79
|
-
// opposed(): ExpressionMember {
|
|
80
|
-
// let firstMember = this.factors[0]
|
|
81
|
-
//
|
|
82
|
-
// if (firstMember === undefined) {
|
|
83
|
-
// return this
|
|
84
|
-
// }
|
|
85
|
-
//
|
|
86
|
-
// if (firstMember instanceof ExpFactorNumber) {
|
|
87
|
-
// if (firstMember.hasPower() || firstMember.hasRoot()) {
|
|
88
|
-
// this.factors.unshift(new ExpFactorNumber(-1))
|
|
89
|
-
// } else {
|
|
90
|
-
// firstMember.number = -firstMember.number
|
|
91
|
-
// }
|
|
92
|
-
// } else {
|
|
93
|
-
// this.factors.unshift(new ExpFactorNumber(-1))
|
|
94
|
-
// }
|
|
95
|
-
//
|
|
96
|
-
// return this
|
|
97
|
-
// }
|
|
98
|
-
add(value) {
|
|
99
|
-
this._factors.push(value);
|
|
100
|
-
return this;
|
|
101
|
-
}
|
|
102
|
-
addFactors(...values) {
|
|
103
|
-
for (let value of values) {
|
|
104
|
-
this._factors.push(value);
|
|
105
|
-
}
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
isZero() {
|
|
109
|
-
if (this._factors.length === 0) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
for (let factor of this._factors) {
|
|
113
|
-
if (factor.isZero()) {
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
hasVariable(variable) {
|
|
120
|
-
if (variable === undefined) {
|
|
121
|
-
return !this.isNumeric();
|
|
122
|
-
}
|
|
123
|
-
for (let factor of this._factors) {
|
|
124
|
-
if (factor.hasVariable(variable)) {
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
isNumeric() {
|
|
131
|
-
for (let factor of this._factors) {
|
|
132
|
-
if (factor instanceof internals_1.ExpFactorVariable) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Returns the "coefficient", ie a member with only numeric values factors.
|
|
140
|
-
*/
|
|
141
|
-
coefficient() {
|
|
142
|
-
let EM = new ExpressionMember();
|
|
143
|
-
for (let factor of this.factors) {
|
|
144
|
-
if (factor.isNumeric()) {
|
|
145
|
-
EM.add(factor);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return EM;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Returns a member with all factors containing a literal part.
|
|
152
|
-
*/
|
|
153
|
-
literal() {
|
|
154
|
-
let EM = new ExpressionMember();
|
|
155
|
-
for (let factor of this.factors) {
|
|
156
|
-
if (!factor.isNumeric()) {
|
|
157
|
-
EM.add(factor);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return EM;
|
|
161
|
-
}
|
|
162
|
-
similarTo(member) {
|
|
163
|
-
// TODO: identify two "similar" member, ie with the same literal parts.
|
|
164
|
-
return true;
|
|
165
|
-
}
|
|
166
|
-
reduce() {
|
|
167
|
-
// Merge all ExpFactorNumbers that are number
|
|
168
|
-
let numerator = new internals_1.ExpFactorNumber(1), denominator = new internals_1.ExpFactorNumber(1, -1), literal = [];
|
|
169
|
-
for (let factor of this.factors) {
|
|
170
|
-
// Reduce the factor
|
|
171
|
-
factor.reduce();
|
|
172
|
-
if (factor instanceof internals_1.ExpFactorNumber && factor.root === 1) {
|
|
173
|
-
if (factor.power > 0) {
|
|
174
|
-
numerator.number = numerator.number * (factor.number ** factor.power);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
denominator.number = denominator.number * (factor.number ** (-factor.power));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
literal.push(factor);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
let EM = new ExpressionMember();
|
|
185
|
-
// There is a numerator
|
|
186
|
-
if (numerator.number !== 1) {
|
|
187
|
-
EM.addFactors(numerator);
|
|
188
|
-
}
|
|
189
|
-
// No denominator.
|
|
190
|
-
if (denominator.number !== 1) {
|
|
191
|
-
EM.addFactors(denominator);
|
|
192
|
-
}
|
|
193
|
-
// Add the other factors
|
|
194
|
-
EM.addFactors(...literal);
|
|
195
|
-
return EM;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
exports.ExpressionMember = ExpressionMember;
|
|
199
|
-
//# sourceMappingURL=expressionMember.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressionMember.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionMember.ts"],"names":[],"mappings":"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"}
|