pimath 0.0.124 → 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.
Files changed (123) hide show
  1. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  2. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +192 -0
  3. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
  4. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +4 -0
  5. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +2404 -0
  6. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +4 -0
  7. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +1362 -0
  8. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +4 -0
  9. package/dist/pimath.js +27 -6
  10. package/dist/pimath.js.map +1 -1
  11. package/dist/pimath.min.js +1 -1
  12. package/dist/pimath.min.js.map +1 -1
  13. package/esm/maths/randomization/random.d.ts +1 -1
  14. package/esm/maths/randomization/random.js +2 -2
  15. package/esm/maths/randomization/random.js.map +1 -1
  16. package/esm/maths/randomization/rndHelpers.d.ts +1 -1
  17. package/esm/maths/randomization/rndHelpers.js +25 -4
  18. package/esm/maths/randomization/rndHelpers.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/maths/randomization/random.ts +2 -2
  21. package/src/maths/randomization/rndHelpers.ts +49 -18
  22. package/tests/geometry/circle.test.ts +125 -10
  23. package/tests/numexp.test.ts +10 -2
  24. package/dev/pimath.js +0 -7935
  25. package/dev/pimath.js.map +0 -1
  26. package/docs/.nojekyll +0 -1
  27. package/docs/assets/highlight.css +0 -78
  28. package/docs/assets/main.js +0 -58
  29. package/docs/assets/search.js +0 -1
  30. package/docs/assets/style.css +0 -1367
  31. package/docs/classes/Logicalset.Logicalset.html +0 -221
  32. package/docs/classes/Polynom.Rational.html +0 -391
  33. package/docs/classes/Vector-1.Vector.html +0 -494
  34. package/docs/classes/Vector.Point.html +0 -341
  35. package/docs/classes/algebra_equation.Equation.html +0 -796
  36. package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -408
  37. package/docs/classes/algebra_monom.Monom.html +0 -967
  38. package/docs/classes/algebra_polynom.Polynom.html +0 -1281
  39. package/docs/classes/coefficients_fraction.Fraction.html +0 -939
  40. package/docs/classes/geometry_circle.Circle.html +0 -476
  41. package/docs/classes/geometry_line.Line.html +0 -779
  42. package/docs/classes/geometry_triangle.Triangle.html +0 -429
  43. package/docs/classes/numeric.Numeric.html +0 -269
  44. package/docs/classes/shutingyard.Shutingyard.html +0 -259
  45. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -89
  46. package/docs/enums/geometry_line.LinePropriety.html +0 -102
  47. package/docs/enums/shutingyard.ShutingyardMode.html +0 -106
  48. package/docs/enums/shutingyard.ShutingyardType.html +0 -120
  49. package/docs/index.html +0 -63
  50. package/docs/interfaces/algebra_equation.ISolution.html +0 -111
  51. package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -93
  52. package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -150
  53. package/docs/modules/Logicalset.html +0 -69
  54. package/docs/modules/Polynom.html +0 -69
  55. package/docs/modules/Vector-1.html +0 -69
  56. package/docs/modules/Vector.html +0 -69
  57. package/docs/modules/algebra_equation.html +0 -75
  58. package/docs/modules/algebra_linearSystem.html +0 -65
  59. package/docs/modules/algebra_monom.html +0 -70
  60. package/docs/modules/algebra_polynom.html +0 -75
  61. package/docs/modules/coefficients_fraction.html +0 -70
  62. package/docs/modules/geometry_circle.html +0 -65
  63. package/docs/modules/geometry_line.html +0 -70
  64. package/docs/modules/geometry_triangle.html +0 -70
  65. package/docs/modules/numeric.html +0 -65
  66. package/docs/modules/shutingyard.html +0 -84
  67. package/docs/types/algebra_monom.literalType.html +0 -66
  68. package/docs/types/algebra_polynom.PolynomParsingType.html +0 -62
  69. package/docs/types/coefficients_fraction.FractionParsingType.html +0 -61
  70. package/docs/types/shutingyard.Token.html +0 -72
  71. package/docs/types/shutingyard.tokenType.html +0 -77
  72. package/docs/variables/shutingyard.tokenConstant.html +0 -70
  73. package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
  74. package/esm/maths/expressions/ExpressionTree.js +0 -150
  75. package/esm/maths/expressions/ExpressionTree.js.map +0 -1
  76. package/esm/maths/expressions/expression.d.ts +0 -27
  77. package/esm/maths/expressions/expression.js +0 -239
  78. package/esm/maths/expressions/expression.js.map +0 -1
  79. package/esm/maths/expressions/expressionFactor.d.ts +0 -36
  80. package/esm/maths/expressions/expressionFactor.js +0 -156
  81. package/esm/maths/expressions/expressionFactor.js.map +0 -1
  82. package/esm/maths/expressions/expressionMember.d.ts +0 -27
  83. package/esm/maths/expressions/expressionMember.js +0 -199
  84. package/esm/maths/expressions/expressionMember.js.map +0 -1
  85. package/esm/maths/expressions/expressionOperators.d.ts +0 -8
  86. package/esm/maths/expressions/expressionOperators.js +0 -42
  87. package/esm/maths/expressions/expressionOperators.js.map +0 -1
  88. package/esm/maths/expressions/expressionParser.d.ts +0 -14
  89. package/esm/maths/expressions/expressionParser.js +0 -259
  90. package/esm/maths/expressions/expressionParser.js.map +0 -1
  91. package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
  92. package/esm/maths/expressions/factors/ExpFactor.js +0 -34
  93. package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
  94. package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
  95. package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
  96. package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
  97. package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
  98. package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
  99. package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
  100. package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
  101. package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
  102. package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
  103. package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
  104. package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
  105. package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
  106. package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
  107. package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
  108. package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
  109. package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
  110. package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
  111. package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
  112. package/esm/maths/expressions/internals.d.ts +0 -12
  113. package/esm/maths/expressions/internals.js +0 -29
  114. package/esm/maths/expressions/internals.js.map +0 -1
  115. package/esm/maths/expressions/numexp.d.ts +0 -19
  116. package/esm/maths/expressions/numexp.js +0 -186
  117. package/esm/maths/expressions/numexp.js.map +0 -1
  118. package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
  119. package/esm/maths/expressions/polynomexp.bkp.js +0 -184
  120. package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
  121. package/esm/maths/expressions/polynomexp.d.ts +0 -52
  122. package/esm/maths/expressions/polynomexp.js +0 -246
  123. package/esm/maths/expressions/polynomexp.js.map +0 -1
@@ -1,52 +0,0 @@
1
- import { Polynom, PolynomParsingType } from "../algebra/polynom";
2
- import { Fraction, FractionParsingType } from "../coefficients/fraction";
3
- type PolynomExpMathFunctionType = {
4
- name: string;
5
- fn: Function;
6
- tex: string;
7
- };
8
- export declare class PolynomExpFactor {
9
- constructor(polynom: PolynomParsingType, degree?: FractionParsingType, mathFunction?: PolynomExpMathFunctionType);
10
- private _forceParenthesis;
11
- get forceParenthesis(): boolean;
12
- set forceParenthesis(value: boolean);
13
- private _fn;
14
- get fn(): PolynomExpMathFunctionType;
15
- set fn(value: PolynomExpMathFunctionType);
16
- private _powerAsInteger;
17
- get powerAsInteger(): boolean;
18
- set powerAsInteger(value: boolean);
19
- private _polynom;
20
- get polynom(): Polynom;
21
- set polynom(value: Polynom);
22
- private _degree;
23
- get degree(): Fraction;
24
- set degree(value: Fraction);
25
- get tex(): string;
26
- get isCoefficient(): boolean;
27
- get firstCoefficient(): Fraction;
28
- private get _texDegree();
29
- setForceParenthesis(value?: boolean): PolynomExpFactor;
30
- derivative(letter?: string): PolynomExpProduct;
31
- }
32
- export declare class PolynomExpProduct {
33
- constructor(...values: PolynomExpFactor[]);
34
- private _fn;
35
- get fn(): PolynomExpMathFunctionType;
36
- set fn(value: PolynomExpMathFunctionType);
37
- private _factors;
38
- get factors(): PolynomExpFactor[];
39
- set factors(value: PolynomExpFactor[]);
40
- private _positive;
41
- get positive(): boolean;
42
- set positive(value: boolean);
43
- private _asPositiveDegree;
44
- get asPositiveDegree(): boolean;
45
- set asPositiveDegree(value: boolean);
46
- get tex(): string;
47
- reduce(): PolynomExpProduct;
48
- integrate(letter?: string): PolynomExpProduct;
49
- applyMathFunction(mathFn: PolynomExpMathFunctionType): PolynomExpProduct;
50
- private _integrateWithInternalDerivative;
51
- }
52
- export {};
@@ -1,246 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PolynomExpProduct = exports.PolynomExpFactor = void 0;
4
- const polynom_1 = require("../algebra/polynom");
5
- const fraction_1 = require("../coefficients/fraction");
6
- class PolynomExpFactor {
7
- constructor(polynom, degree, mathFunction) {
8
- this._polynom = new polynom_1.Polynom(polynom);
9
- this._degree = new fraction_1.Fraction(degree === undefined ? 1 : degree);
10
- this._fn = mathFunction;
11
- this._powerAsInteger = true;
12
- this._forceParenthesis = true;
13
- }
14
- get forceParenthesis() {
15
- return this._forceParenthesis;
16
- }
17
- set forceParenthesis(value) {
18
- this._forceParenthesis = value;
19
- }
20
- get fn() {
21
- return this._fn;
22
- }
23
- set fn(value) {
24
- this._fn = value;
25
- }
26
- get powerAsInteger() {
27
- return this._powerAsInteger;
28
- }
29
- set powerAsInteger(value) {
30
- this._powerAsInteger = value;
31
- }
32
- get polynom() {
33
- return this._polynom;
34
- }
35
- set polynom(value) {
36
- this._polynom = value;
37
- }
38
- get degree() {
39
- return this._degree;
40
- }
41
- set degree(value) {
42
- this._degree = value;
43
- }
44
- get tex() {
45
- let tex;
46
- if (this._degree.isOne() && (this._fn !== undefined || !this._forceParenthesis)) {
47
- // If degree is one, no need to add the parenthesis.
48
- tex = this._polynom.tex;
49
- }
50
- else {
51
- // the degree is not one, add the parenthesis.
52
- if (this._powerAsInteger && !this._degree.isRelative()) {
53
- // the degree is a fraction and we want natural powers => use sqrt.
54
- tex = `\\sqrt${this._degree.denominator !== 2 ? `[ ${this._degree.denominator} ]` : ''}{ ${this._polynom.tex} }^{ ${this._degree.numerator} }`;
55
- }
56
- else if (this.isCoefficient && this.firstCoefficient.isNatural()) {
57
- // the value is a natural number (eg 3, 7, ...)
58
- tex = this._polynom.tex + this._texDegree;
59
- }
60
- else {
61
- // In any other case, add the parenthesis by default
62
- tex = `\\left( ${this._polynom.tex} \\right)${this._texDegree}`;
63
- }
64
- }
65
- if (this._fn !== undefined && this._fn.tex !== undefined) {
66
- tex = `${this._fn.tex}\\left( ${tex} \\right)`;
67
- }
68
- return tex;
69
- }
70
- get isCoefficient() {
71
- // TODO: Maybe reduce the coefficient if it isn't of degree one.
72
- return this._polynom.degree().isZero();
73
- }
74
- get firstCoefficient() {
75
- return this._polynom.monomByDegree().coefficient;
76
- }
77
- get _texDegree() {
78
- if (this._degree.isOne()) {
79
- return '';
80
- }
81
- else {
82
- return `^{ ${this._degree.tfrac} }`;
83
- }
84
- }
85
- setForceParenthesis(value) {
86
- this._forceParenthesis = value === undefined || value;
87
- return this;
88
- }
89
- derivative(letter) {
90
- if (this._degree.isOne()) {
91
- return new PolynomExpProduct(new PolynomExpFactor(this._polynom.clone().derivative(letter)));
92
- }
93
- else {
94
- return new PolynomExpProduct(new PolynomExpFactor(this._degree.clone()), new PolynomExpFactor(this._polynom.clone().derivative(letter)), new PolynomExpFactor(this._polynom.clone(), this._degree.clone().subtract(1)));
95
- }
96
- }
97
- }
98
- exports.PolynomExpFactor = PolynomExpFactor;
99
- class PolynomExpProduct {
100
- constructor(...values) {
101
- this._factors = values || [];
102
- this._positive = true;
103
- this._asPositiveDegree = true;
104
- }
105
- get fn() {
106
- return this._fn;
107
- }
108
- set fn(value) {
109
- this._fn = value;
110
- }
111
- get factors() {
112
- return this._factors;
113
- }
114
- set factors(value) {
115
- this._factors = value;
116
- }
117
- get positive() {
118
- return this._positive;
119
- }
120
- set positive(value) {
121
- this._positive = value;
122
- }
123
- get asPositiveDegree() {
124
- return this._asPositiveDegree;
125
- }
126
- set asPositiveDegree(value) {
127
- this._asPositiveDegree = value;
128
- }
129
- get tex() {
130
- let parenthesis = this._factors.length > 1;
131
- // Default value
132
- let tex = this._factors.map(factor => factor.setForceParenthesis(parenthesis).tex).join(' \\cdot ');
133
- // Change the value in some cases...
134
- if (this._asPositiveDegree) {
135
- const numerators = this._factors.filter(x => x.degree.isPositive()), denominators = this._factors.filter(x => x.degree.isNegative());
136
- let numeratorsAsTex, denominatorsAsTex;
137
- if (denominators.length > 0) {
138
- if (numerators.length === 0) {
139
- numeratorsAsTex = [1];
140
- }
141
- else if (numerators.length === 1) {
142
- numeratorsAsTex = [numerators[0].setForceParenthesis(false).tex];
143
- }
144
- else {
145
- parenthesis = numerators.length > 1;
146
- numeratorsAsTex = numerators.map(factor => factor.setForceParenthesis(parenthesis).tex);
147
- }
148
- // Change all denominators degrees to positive.
149
- denominators.map(x => x.degree.opposed());
150
- if (denominators.length === 1) {
151
- denominatorsAsTex = [denominators[0].setForceParenthesis(false).tex];
152
- }
153
- else {
154
- parenthesis = denominators.length > 1;
155
- denominatorsAsTex = denominators.map(factor => factor.setForceParenthesis(parenthesis).tex);
156
- }
157
- // restore all degrees to negative again.
158
- denominators.map(x => x.degree.opposed());
159
- tex = `\\frac{ ${numeratorsAsTex.join(' \\cdot ')} }{ ${denominatorsAsTex.join(' \\cdot ')} }`;
160
- }
161
- }
162
- // Apply the modification
163
- if (this._fn !== undefined && this._fn.name !== undefined && this._fn.name !== '') {
164
- tex = `${this._fn.tex}\\left( ${tex} \\right)`;
165
- }
166
- return tex;
167
- }
168
- reduce() {
169
- let coefficients = this._factors.filter(factor => factor.isCoefficient), polynoms = this._factors.filter(factor => !factor.isCoefficient);
170
- let result = new fraction_1.Fraction().one();
171
- if (coefficients.length > 1) {
172
- for (const factor of coefficients) {
173
- if (factor.degree.isPositive()) {
174
- result.multiply(factor.polynom.monoms[0].coefficient.pow(factor.degree));
175
- }
176
- else {
177
- result.divide(factor.polynom.monoms[0].coefficient.pow(factor.degree.clone().abs()));
178
- }
179
- }
180
- }
181
- else if (coefficients.length === 1) {
182
- result = coefficients[0].polynom.monoms[0].coefficient;
183
- }
184
- if (result.isOne()) {
185
- this._factors = [...polynoms];
186
- }
187
- else if (!result.isRelative()) {
188
- this._factors = [
189
- new PolynomExpFactor(result.numerator),
190
- new PolynomExpFactor(result.denominator, -1),
191
- ...polynoms
192
- ];
193
- }
194
- else {
195
- this._factors = [
196
- new PolynomExpFactor(result),
197
- ...polynoms
198
- ];
199
- }
200
- return this;
201
- }
202
- integrate(letter) {
203
- // Handle this kind of case:
204
- // A * f' * F^n
205
- // A * f' / F^n, n != 1
206
- // A * f_1 * f_2 * f_3, where (f_1 * f_2)' = f_3
207
- if (this._factors.length === 2) {
208
- // Check polynoms degree: one must of one degree less than the other.
209
- let d1 = this._factors[0].polynom.degree(letter).value, d2 = this._factors[1].polynom.degree(letter).value;
210
- if (d1 === d2 + 1) {
211
- return this._integrateWithInternalDerivative(this._factors[0], this._factors[1], letter);
212
- }
213
- else if (d1 + 1 === d2) {
214
- return this._integrateWithInternalDerivative(this._factors[1], this._factors[0], letter);
215
- }
216
- }
217
- return;
218
- }
219
- applyMathFunction(mathFn) {
220
- this._fn = mathFn;
221
- return this;
222
- }
223
- _integrateWithInternalDerivative(P, Pinternal, letter) {
224
- // Get the internal derivative
225
- let internalDerivative = P.polynom.clone().derivative(letter);
226
- // Get the factor.
227
- let { quotient, reminder } = Pinternal.polynom.clone().euclidian(internalDerivative);
228
- if (reminder.isZero() && quotient.degree(letter).isZero()) {
229
- // All the conditions are done. Actual situation is
230
- // (4x-10)(x^2-5x+7)^9
231
- // P1 = (x^2-5x+7), P2 = (2x-5)
232
- // => 1/10 * quotient * (x^2-5x+7)^10
233
- if (P.degree.isEqual(-1)) {
234
- return (new PolynomExpProduct(new PolynomExpFactor(quotient, 1), new PolynomExpFactor(P.polynom.clone(), 1, {
235
- name: 'ln', tex: '\\ln', fn: (x) => Math.log(x)
236
- })));
237
- }
238
- else {
239
- return new PolynomExpProduct(new PolynomExpFactor(P.degree.clone().add(1).invert(), 1), new PolynomExpFactor(quotient, 1), new PolynomExpFactor(P.polynom.clone(), P.degree.clone().add(1)));
240
- }
241
- }
242
- return;
243
- }
244
- }
245
- exports.PolynomExpProduct = PolynomExpProduct;
246
- //# sourceMappingURL=polynomexp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polynomexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/polynomexp.ts"],"names":[],"mappings":"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"}