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
|
@@ -67,7 +67,15 @@ class Rational {
|
|
|
67
67
|
this.reduce = () => {
|
|
68
68
|
this._numerator.factorize();
|
|
69
69
|
for (let f of this._numerator.factors) {
|
|
70
|
-
|
|
70
|
+
if (f.degree().isZero()) {
|
|
71
|
+
// Do the simplify only if the factor can divide the denominator
|
|
72
|
+
if (this._denominator.commonMonom().coefficient.clone().divide(f.monomByDegree().coefficient).isNatural()) {
|
|
73
|
+
this.simplify(f);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.simplify(f);
|
|
78
|
+
}
|
|
71
79
|
}
|
|
72
80
|
return this;
|
|
73
81
|
};
|
|
@@ -173,6 +181,9 @@ class Rational {
|
|
|
173
181
|
get tex() {
|
|
174
182
|
return `\\frac{ ${this._numerator.tex} }{ ${this._denominator.tex} }`;
|
|
175
183
|
}
|
|
184
|
+
get display() {
|
|
185
|
+
return `(${this._numerator.display})/(${this._denominator.display})`;
|
|
186
|
+
}
|
|
176
187
|
get texFactors() {
|
|
177
188
|
return `\\frac{ ${this._numerator.texFactors} }{ ${this._denominator.texFactors} }`;
|
|
178
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rational.js","sourceRoot":"","sources":["../../../src/maths/algebra/rational.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAA8C;AAC9C,uDAAkD;AAElD,yCAA+C;AAC/C,yDAAoD;AAGpD;;GAEG;AACH,MAAa,QAAQ;IAKjB;;;;OAIG;IACH,YAAY,SAA4B,EAAE,WAA8B;
|
|
1
|
+
{"version":3,"file":"rational.js","sourceRoot":"","sources":["../../../src/maths/algebra/rational.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,6 +140,7 @@ class Triangle {
|
|
|
140
140
|
return new vector_1.Vector(this.getPointByName(ptName1), this.getPointByName(ptName2));
|
|
141
141
|
};
|
|
142
142
|
this._calculateRemarquableLines = () => {
|
|
143
|
+
const bA = this._calculateBisectors('A'), bB = this._calculateBisectors('B'), bC = this._calculateBisectors('C');
|
|
143
144
|
let remarquables = {
|
|
144
145
|
'medians': {
|
|
145
146
|
'A': new line_1.Line(this._A, this._middles.BC),
|
|
@@ -160,9 +161,15 @@ class Triangle {
|
|
|
160
161
|
'intersection': null
|
|
161
162
|
},
|
|
162
163
|
'bisectors': {
|
|
163
|
-
'A':
|
|
164
|
-
'B':
|
|
165
|
-
'C':
|
|
164
|
+
'A': bA.internal,
|
|
165
|
+
'B': bB.internal,
|
|
166
|
+
'C': bB.internal,
|
|
167
|
+
'intersection': null
|
|
168
|
+
},
|
|
169
|
+
externalBisectors: {
|
|
170
|
+
'A': bA.external,
|
|
171
|
+
'B': bB.external,
|
|
172
|
+
'C': bC.external,
|
|
166
173
|
'intersection': null
|
|
167
174
|
}
|
|
168
175
|
};
|
|
@@ -191,16 +198,16 @@ class Triangle {
|
|
|
191
198
|
let b1 = new line_1.Line(new equation_1.Equation(d1.equation.left.clone().multiply(d2.n.simplify().norm), d2.equation.left.clone().multiply(d1.n.simplify().norm)).reorder(true).simplify()), b2 = new line_1.Line(new equation_1.Equation(d1.equation.left.clone().multiply(d2.n.simplify().norm), d2.equation.left.clone().multiply(d1.n.simplify().norm).opposed()).reorder(true).simplify());
|
|
192
199
|
// Must determine which bisectors is in the triangle
|
|
193
200
|
if (pt === 'A') {
|
|
194
|
-
return b1.hitSegment(this.B, this.C) ? b1 : b2;
|
|
201
|
+
return b1.hitSegment(this.B, this.C) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
|
|
195
202
|
}
|
|
196
203
|
if (pt === 'B') {
|
|
197
|
-
return b1.hitSegment(this.A, this.C) ? b1 : b2;
|
|
204
|
+
return b1.hitSegment(this.A, this.C) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
|
|
198
205
|
}
|
|
199
206
|
if (pt === 'C') {
|
|
200
|
-
return b1.hitSegment(this.B, this.A) ? b1 : b2;
|
|
207
|
+
return b1.hitSegment(this.B, this.A) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
|
|
201
208
|
}
|
|
202
209
|
// Default returns the first bisector
|
|
203
|
-
return b1;
|
|
210
|
+
return { internal: b1, external: b2 };
|
|
204
211
|
};
|
|
205
212
|
if (values.length > 0) {
|
|
206
213
|
this.parse(...values);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triangle.js","sourceRoot":"","sources":["../../../src/maths/geometry/triangle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"triangle.js","sourceRoot":"","sources":["../../../src/maths/geometry/triangle.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,uDAAkD;AAClD,qCAAgC;AAChC,iCAA4B;AAC5B,kDAA6C;AAmC7C,MAAa,QAAQ;IAiBjB,YAAY,GAAG,MAAiB;QAiFhC,6CAA6C;QAC7C,+BAA+B;QAC/B,6CAA6C;QAE7C;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,GAAG,MAAW,EAAY,EAAE;YACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,mBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC,KAAK,CACb,IAAI,aAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EACrB,IAAI,aAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EACrB,IAAI,aAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAA;aACJ;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,iBAAiB;gBACjB,4GAA4G;gBAC5G,gBAAgB;gBAChB,yBAAyB;gBACzB,IAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,KAAG,CAAC,EAAE;oBAC3D,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,WAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;iBAChE;qBAAK,IAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAK,EAAE,EAAE,CAAC,CAAC,YAAY,WAAI,CAAC,CAAC,MAAM,KAAG,CAAC,EAAE;oBAC7D,sBAAsB;oBACtB,IAAI,CAAC,MAAM,GAAG;wBACV,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;wBACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;wBACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;qBAClB,CAAC;oBAEF,qFAAqF;oBACrF,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClD,IAAI,SAAS,CAAC,eAAe,EAAE;wBAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;qBACrC;yBAAM;wBACH,OAAO,IAAI,CAAC;qBACf;oBACD,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,SAAS,CAAC,eAAe,EAAE;wBAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;qBACrC;yBAAM;wBACH,OAAO,IAAI,CAAC;qBACf;oBACD,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,SAAS,CAAC,eAAe,EAAE;wBAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;qBACrC;yBAAM;wBACH,OAAO,IAAI,CAAC;qBACf;iBACJ;qBAAK;oBACF,6CAA6C;oBAC7C,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,aAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5D,OAAO,IAAI,CAAC,KAAK,CACb,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACpB,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACpB,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACvB,CAAA;qBACJ;oBAED,wBAAwB;oBACxB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAE5B,IAAI,CAAC,MAAM,GAAG;wBACV,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;wBAChC,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;wBAChC,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;qBACnC,CAAC;iBACL;aACJ;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;oBAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;iBAC5B;aACJ;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAED;;WAEG;QACH,UAAK,GAAG,GAAa,EAAE;YACnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,MAAM,GAAG;gBACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;aAC/B,CAAA;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAGD,6CAA6C;QAC7C,qCAAqC;QACrC,6CAA6C;QAE7C;;WAEG;QACK,oBAAe,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG;gBACZ,IAAI,EAAE,IAAI,aAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,EAAE,IAAI,aAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,EAAE,IAAI,aAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;aAC/C,CAAA;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC3D,CAAC,CAAA;QAGD;;;WAGG;QACK,mBAAc,GAAG,CAAC,MAAc,EAAS,EAAE;YAC/C,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;gBAC1B,KAAK,GAAG;oBACJ,OAAO,IAAI,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG;oBACJ,OAAO,IAAI,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG;oBACJ,OAAO,IAAI,CAAC,EAAE,CAAC;aACtB;YAED,gDAAgD;YAChD,OAAO,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,CAAA;QACD;;;;WAIG;QACK,eAAU,GAAG,CAAC,OAAe,EAAE,OAAe,EAAU,EAAE;YAC9D,OAAO,IAAI,eAAM,CACb,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAC5B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAC/B,CAAC;QACN,CAAC,CAAA;QAEO,+BAA0B,GAAG,GAAqB,EAAE;YACxD,MAAO,EAAE,GAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EACpC,EAAE,GAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EACjC,EAAE,GAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAErC,IAAI,YAAY,GAAqB;gBACjC,SAAS,EAAE;oBACP,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,cAAc,EAAE,IAAI;iBACvB;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBACvE,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBACvE,IAAI,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBACvE,cAAc,EAAE,IAAI;iBACvB;gBACD,SAAS,EAAE;oBACP,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7D,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7D,GAAG,EAAE,IAAI,WAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,eAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7D,cAAc,EAAE,IAAI;iBACvB;gBACD,WAAW,EAAE;oBACT,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,cAAc,EAAE,IAAI;iBACvB;gBACD,iBAAiB,EAAE;oBACf,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,cAAc,EAAE,IAAI;iBACvB;aACJ,CAAA;YAED,8FAA8F;YAC9F,YAAY,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACtG,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAC9G,YAAY,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACtG,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5G,uDAAuD;YACvD,OAAO,YAAY,CAAC;QACxB,CAAC,CAAA;QAEO,wBAAmB,GAAG,CAAC,EAAU,EAAsC,EAAE;YAC7E,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YAEhC,IAAG,EAAE,KAAG,GAAG,EAAC;gBACR,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;aAClB;iBAAK,IAAG,EAAE,KAAG,GAAG,EAAC;gBACd,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;aAClB;iBAAK,IAAG,EAAE,KAAG,GAAG,EAAC;gBACd,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;aAClB;YAED,IAAI,EAAE,GAAG,IAAI,WAAI,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,EACtK,EAAE,GAAG,IAAI,WAAI,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAErL,oDAAoD;YACpD,IAAG,EAAE,KAAG,GAAG,EAAC;gBACR,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;aAChG;YACD,IAAG,EAAE,KAAG,GAAG,EAAC;gBACR,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;aAChG;YACD,IAAG,EAAE,KAAG,GAAG,EAAC;gBACR,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;aAChG;YAED,qCAAqC;YACrC,OAAO,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAA;QACtC,CAAC,CAAA;QApTG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,qBAAqB;IACrB,6CAA6C;IAE7C,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;CAwOJ;AAxUD,4BAwUC"}
|
|
@@ -9,7 +9,7 @@ export declare namespace Random {
|
|
|
9
9
|
function polynom(config?: randomPolynomConfig): Polynom;
|
|
10
10
|
function monom(config?: randomMonomConfig): Monom;
|
|
11
11
|
function fraction(config?: randomCoefficientConfig): Fraction;
|
|
12
|
-
function number(from: number, to: number): number;
|
|
12
|
+
function number(from: number, to: number, exclude?: number[]): number;
|
|
13
13
|
function numberSym(max: number, allowZero?: boolean): number;
|
|
14
14
|
function prime(max: number): number;
|
|
15
15
|
function bool(percent?: number): boolean;
|
|
@@ -36,8 +36,8 @@ var Random;
|
|
|
36
36
|
return (new rndFraction_1.rndFraction(config)).generate();
|
|
37
37
|
}
|
|
38
38
|
Random.fraction = fraction;
|
|
39
|
-
function number(from, to) {
|
|
40
|
-
return rndHelpers_1.rndHelpers.randomInt(from, to);
|
|
39
|
+
function number(from, to, exclude) {
|
|
40
|
+
return rndHelpers_1.rndHelpers.randomInt(from, to, exclude);
|
|
41
41
|
}
|
|
42
42
|
Random.number = number;
|
|
43
43
|
function numberSym(max, allowZero) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/maths/randomization/random.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAQxC,+CAA0C;AAK1C,uDAAkD;AAElD,yDAAoD;AAEpD,6CAA0B;AAE1B,IAAiB,MAAM,CAmDtB;AAnDD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAY,EAAE,EAAU;
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/maths/randomization/random.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAQxC,+CAA0C;AAK1C,uDAAkD;AAElD,yDAAoD;AAEpD,6CAA0B;AAE1B,IAAiB,MAAM,CAmDtB;AAnDD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAY,EAAE,EAAU,EAAE,OAAkB;QAC/D,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAFe,aAAM,SAErB,CAAA;IAED,SAAgB,SAAS,CAAC,GAAW,EAAE,SAAmB;QACtD,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAFe,gBAAS,YAExB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAW;QAC7B,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,OAAgB;QACjC,OAAO,uBAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAU,EAAE,MAAe;QAC7C,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,GAAU;QAC3B,OAAO,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,OAAO,CAAC,GAAU;QAC9B,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,IAAiB,QAAQ,CASxB;IATD,WAAiB,QAAQ;QACrB,SAAgB,IAAI,CAAC,MAAiC;YAClD,OAAO,CAAC,IAAI,iCAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QACnD,CAAC;QAFe,aAAI,OAEnB,CAAA;QAED,SAAgB,KAAK,CAAC,MAAkC;YACpD,OAAO,CAAC,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpD,CAAC;QAFe,cAAK,QAEpB,CAAA;IAEL,CAAC,EATgB,QAAQ,GAAR,eAAQ,KAAR,eAAQ,QASxB;AACL,CAAC,EAnDgB,MAAM,sBAAN,MAAM,QAmDtB"}
|
|
@@ -9,7 +9,7 @@ export declare class rndHelpers {
|
|
|
9
9
|
* @param a (number) : From this value to the second value. If the second is ommited, this value is the max value.
|
|
10
10
|
* @param b (number) : To this value. If this is ommited.
|
|
11
11
|
*/
|
|
12
|
-
static randomInt(a: number, b?: number): number;
|
|
12
|
+
static randomInt(a: number, b?: number, exclude?: number[]): number;
|
|
13
13
|
/**
|
|
14
14
|
* Random integer between -max and max value.
|
|
15
15
|
* @param max (number) : determine the limits.
|
|
@@ -18,11 +18,32 @@ class rndHelpers {
|
|
|
18
18
|
* @param a (number) : From this value to the second value. If the second is ommited, this value is the max value.
|
|
19
19
|
* @param b (number) : To this value. If this is ommited.
|
|
20
20
|
*/
|
|
21
|
-
static randomInt(a, b) {
|
|
21
|
+
static randomInt(a, b, exclude) {
|
|
22
22
|
if (b === undefined) {
|
|
23
|
-
|
|
23
|
+
if (a >= 0) {
|
|
24
|
+
return this.randomInt(0, a);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return this.randomInt(a, 0);
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
|
-
|
|
30
|
+
// Same start and end values
|
|
31
|
+
if (a === b) {
|
|
32
|
+
return a;
|
|
33
|
+
}
|
|
34
|
+
// No exclusion
|
|
35
|
+
if (exclude === undefined) {
|
|
36
|
+
return Math.floor(Math.random() * (b - a + 1) + a);
|
|
37
|
+
}
|
|
38
|
+
// With exclusion
|
|
39
|
+
if (Math.abs(b - a) <= exclude.length) {
|
|
40
|
+
throw new Error('The number of excluded values is too high.');
|
|
41
|
+
}
|
|
42
|
+
let r = this.randomInt(a, b);
|
|
43
|
+
while (exclude.includes(r)) {
|
|
44
|
+
r = this.randomInt(a, b);
|
|
45
|
+
}
|
|
46
|
+
return r;
|
|
26
47
|
}
|
|
27
48
|
/**
|
|
28
49
|
* Random integer between -max and max value.
|
|
@@ -59,7 +80,7 @@ class rndHelpers {
|
|
|
59
80
|
if (arr.length === 0) {
|
|
60
81
|
return '';
|
|
61
82
|
}
|
|
62
|
-
return this.
|
|
83
|
+
return arr[this.randomInt(0, arr.length - 1)];
|
|
63
84
|
}
|
|
64
85
|
static shuffleArray(arr) {
|
|
65
86
|
// The Fisher-Yates algorithm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rndHelpers.js","sourceRoot":"","sources":["../../../src/maths/randomization/rndHelpers.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,wCAAmC;AAEnC,MAAa,UAAU;IAEnB;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"rndHelpers.js","sourceRoot":"","sources":["../../../src/maths/randomization/rndHelpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pimath",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.125",
|
|
4
4
|
"description": "A math library for teacher :)",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "mocha -r ts-node/register 'tests/**/*.test.ts'",
|
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/chai": "*",
|
|
19
19
|
"@types/mocha": "*",
|
|
20
|
-
"@types/node": "^20.
|
|
21
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
22
|
-
"@typescript-eslint/parser": "^6.
|
|
20
|
+
"@types/node": "^20.8.2",
|
|
21
|
+
"@typescript-eslint/eslint-plugin": "^6.7.4",
|
|
22
|
+
"@typescript-eslint/parser": "^6.7.4",
|
|
23
23
|
"chai": "*",
|
|
24
24
|
"mocha": "*",
|
|
25
|
-
"eslint": "^8.
|
|
25
|
+
"eslint": "^8.50.0",
|
|
26
26
|
"ts-loader": "^9.4.4",
|
|
27
27
|
"ts-node": "^10.9.1",
|
|
28
|
-
"typedoc": "^0.
|
|
29
|
-
"typescript": "^5.
|
|
28
|
+
"typedoc": "^0.25.1",
|
|
29
|
+
"typescript": "^5.2.2",
|
|
30
30
|
"webpack": "^5.88.2",
|
|
31
|
-
"webpack-bundle-analyzer": "^4.9.
|
|
31
|
+
"webpack-bundle-analyzer": "^4.9.1",
|
|
32
32
|
"webpack-cli": "^5.1.4"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -54,6 +54,10 @@ export class Rational {
|
|
|
54
54
|
return `\\frac{ ${this._numerator.tex} }{ ${this._denominator.tex} }`;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
get display(): string {
|
|
58
|
+
return `(${this._numerator.display})/(${this._denominator.display})`;
|
|
59
|
+
}
|
|
60
|
+
|
|
57
61
|
get texFactors(): string {
|
|
58
62
|
return `\\frac{ ${this._numerator.texFactors} }{ ${this._denominator.texFactors} }`
|
|
59
63
|
}
|
|
@@ -126,7 +130,15 @@ export class Rational {
|
|
|
126
130
|
reduce = (): Rational => {
|
|
127
131
|
this._numerator.factorize();
|
|
128
132
|
for (let f of this._numerator.factors) {
|
|
129
|
-
|
|
133
|
+
|
|
134
|
+
if(f.degree().isZero()){
|
|
135
|
+
// Do the simplify only if the factor can divide the denominator
|
|
136
|
+
if(this._denominator.commonMonom().coefficient.clone().divide(f.monomByDegree().coefficient).isNatural()){
|
|
137
|
+
this.simplify(f);
|
|
138
|
+
}
|
|
139
|
+
}else {
|
|
140
|
+
this.simplify(f);
|
|
141
|
+
}
|
|
130
142
|
}
|
|
131
143
|
|
|
132
144
|
return this;
|
|
@@ -28,6 +28,12 @@ export interface remarquableLines {
|
|
|
28
28
|
'B': Line,
|
|
29
29
|
'C': Line,
|
|
30
30
|
'intersection': Point
|
|
31
|
+
},
|
|
32
|
+
externalBisectors: {
|
|
33
|
+
'A': Line,
|
|
34
|
+
'B': Line,
|
|
35
|
+
'C': Line,
|
|
36
|
+
'intersection': Point
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
39
|
|
|
@@ -281,6 +287,10 @@ export class Triangle {
|
|
|
281
287
|
}
|
|
282
288
|
|
|
283
289
|
private _calculateRemarquableLines = (): remarquableLines => {
|
|
290
|
+
const bA= this._calculateBisectors('A'),
|
|
291
|
+
bB= this._calculateBisectors('B'),
|
|
292
|
+
bC= this._calculateBisectors('C')
|
|
293
|
+
|
|
284
294
|
let remarquables: remarquableLines = {
|
|
285
295
|
'medians': {
|
|
286
296
|
'A': new Line(this._A, this._middles.BC),
|
|
@@ -301,9 +311,15 @@ export class Triangle {
|
|
|
301
311
|
'intersection': null
|
|
302
312
|
},
|
|
303
313
|
'bisectors': {
|
|
304
|
-
'A':
|
|
305
|
-
'B':
|
|
306
|
-
'C':
|
|
314
|
+
'A': bA.internal,
|
|
315
|
+
'B': bB.internal,
|
|
316
|
+
'C': bB.internal,
|
|
317
|
+
'intersection': null
|
|
318
|
+
},
|
|
319
|
+
externalBisectors: {
|
|
320
|
+
'A': bA.external,
|
|
321
|
+
'B': bB.external,
|
|
322
|
+
'C': bC.external,
|
|
307
323
|
'intersection': null
|
|
308
324
|
}
|
|
309
325
|
}
|
|
@@ -318,7 +334,7 @@ export class Triangle {
|
|
|
318
334
|
return remarquables;
|
|
319
335
|
}
|
|
320
336
|
|
|
321
|
-
private _calculateBisectors = (pt: string): Line => {
|
|
337
|
+
private _calculateBisectors = (pt: string): { internal: Line, external: Line } => {
|
|
322
338
|
let tlines = this.lines, d1, d2;
|
|
323
339
|
|
|
324
340
|
if(pt==='A'){
|
|
@@ -337,16 +353,16 @@ export class Triangle {
|
|
|
337
353
|
|
|
338
354
|
// Must determine which bisectors is in the triangle
|
|
339
355
|
if(pt==='A'){
|
|
340
|
-
return b1.hitSegment(this.B, this.C)?b1:b2;
|
|
356
|
+
return b1.hitSegment(this.B, this.C)?{internal:b1, external: b2}:{internal:b2, external: b1};
|
|
341
357
|
}
|
|
342
358
|
if(pt==='B'){
|
|
343
|
-
return b1.hitSegment(this.A, this.C)?b1:b2;
|
|
359
|
+
return b1.hitSegment(this.A, this.C)?{internal:b1, external: b2}:{internal:b2, external: b1};
|
|
344
360
|
}
|
|
345
361
|
if(pt==='C'){
|
|
346
|
-
return b1.hitSegment(this.B, this.A)?b1:b2;
|
|
362
|
+
return b1.hitSegment(this.B, this.A)?{internal:b1, external: b2}:{internal:b2, external: b1};
|
|
347
363
|
}
|
|
348
364
|
|
|
349
365
|
// Default returns the first bisector
|
|
350
|
-
return b1
|
|
366
|
+
return {internal:b1, external: b2}
|
|
351
367
|
}
|
|
352
368
|
}
|
|
@@ -32,8 +32,8 @@ export namespace Random {
|
|
|
32
32
|
return (new rndFraction(config)).generate()
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export function number(from: number, to: number): number {
|
|
36
|
-
return rndHelpers.randomInt(from, to)
|
|
35
|
+
export function number(from: number, to: number, exclude?: number[]): number {
|
|
36
|
+
return rndHelpers.randomInt(from, to, exclude)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export function numberSym(max: number, allowZero?: boolean): number {
|
|
@@ -9,8 +9,8 @@ export class rndHelpers {
|
|
|
9
9
|
* Random boolean with a percent ratio
|
|
10
10
|
* @param percent
|
|
11
11
|
*/
|
|
12
|
-
static randomBool(percent:number=0.5):boolean{
|
|
13
|
-
return Math.random()<percent;
|
|
12
|
+
static randomBool(percent: number = 0.5): boolean {
|
|
13
|
+
return Math.random() < percent;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -18,10 +18,35 @@ export class rndHelpers {
|
|
|
18
18
|
* @param a (number) : From this value to the second value. If the second is ommited, this value is the max value.
|
|
19
19
|
* @param b (number) : To this value. If this is ommited.
|
|
20
20
|
*/
|
|
21
|
-
static randomInt(a:number, b?:number):number{
|
|
22
|
-
if(b===undefined){
|
|
21
|
+
static randomInt(a: number, b?: number, exclude?: number[]): number {
|
|
22
|
+
if (b === undefined) {
|
|
23
|
+
if (a >= 0) {
|
|
24
|
+
return this.randomInt(0, a);
|
|
25
|
+
} else {
|
|
26
|
+
return this.randomInt(a, 0);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Same start and end values
|
|
31
|
+
if (a === b) {
|
|
32
|
+
return a
|
|
33
|
+
}
|
|
23
34
|
|
|
24
|
-
|
|
35
|
+
// No exclusion
|
|
36
|
+
if (exclude === undefined) {
|
|
37
|
+
return Math.floor(Math.random() * (b - a + 1) + a);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// With exclusion
|
|
41
|
+
if (Math.abs(b - a) <= exclude.length) {
|
|
42
|
+
throw new Error('The number of excluded values is too high.')
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let r = this.randomInt(a, b)
|
|
46
|
+
while (exclude.includes(r)) {
|
|
47
|
+
r = this.randomInt(a, b)
|
|
48
|
+
}
|
|
49
|
+
return r
|
|
25
50
|
}
|
|
26
51
|
|
|
27
52
|
/**
|
|
@@ -29,35 +54,41 @@ export class rndHelpers {
|
|
|
29
54
|
* @param max (number) : determine the limits.
|
|
30
55
|
* @param zero (bool) : determine if zero is allowed or not.
|
|
31
56
|
*/
|
|
32
|
-
static randomIntSym(max:number, zero?:boolean):number{
|
|
33
|
-
if(zero===false){
|
|
34
|
-
return this.randomBool()?this.randomInt(1,max)
|
|
35
|
-
}else{
|
|
57
|
+
static randomIntSym(max: number, zero?: boolean): number {
|
|
58
|
+
if (zero === false) {
|
|
59
|
+
return this.randomBool() ? this.randomInt(1, max) : -this.randomInt(1, max);
|
|
60
|
+
} else {
|
|
36
61
|
return this.randomInt(-max, max);
|
|
37
62
|
}
|
|
38
63
|
}
|
|
39
64
|
|
|
40
65
|
static randomPrime(max: number): number {
|
|
41
66
|
let primes = Numeric.primes()
|
|
42
|
-
if(max!==undefined){
|
|
43
|
-
primes = primes.filter(x=>x<max)
|
|
67
|
+
if (max !== undefined) {
|
|
68
|
+
primes = primes.filter(x => x < max)
|
|
44
69
|
}
|
|
45
70
|
return this.randomItem(primes)
|
|
46
71
|
}
|
|
47
72
|
|
|
48
|
-
static randomArray(arr: any[], number?:number):any[]{
|
|
49
|
-
if(number===undefined){
|
|
73
|
+
static randomArray(arr: any[], number?: number): any[] {
|
|
74
|
+
if (number === undefined) {
|
|
75
|
+
number = 1
|
|
76
|
+
}
|
|
50
77
|
|
|
51
78
|
// Return a clone array
|
|
52
|
-
if(arr.length<=0){
|
|
79
|
+
if (arr.length <= 0) {
|
|
80
|
+
return Object.values(arr)
|
|
81
|
+
}
|
|
53
82
|
|
|
54
83
|
// Randomize the array and return the n first elements.
|
|
55
|
-
return rndHelpers.shuffleArray(arr).slice(0,number);
|
|
84
|
+
return rndHelpers.shuffleArray(arr).slice(0, number);
|
|
56
85
|
}
|
|
57
86
|
|
|
58
|
-
static randomItem(arr: any[]): any{
|
|
59
|
-
if(arr.length===0){
|
|
60
|
-
|
|
87
|
+
static randomItem(arr: any[]): any {
|
|
88
|
+
if (arr.length === 0) {
|
|
89
|
+
return ''
|
|
90
|
+
}
|
|
91
|
+
return arr[this.randomInt(0, arr.length - 1)]
|
|
61
92
|
}
|
|
62
93
|
|
|
63
94
|
static shuffleArray(arr: any[]): any[] {
|
|
@@ -56,4 +56,9 @@ describe('Rational tests', () => {
|
|
|
56
56
|
|
|
57
57
|
expect(P.plotFunction).to.be.equal("(245*x-490)/(6*x^(2)-19*x+15)")
|
|
58
58
|
});
|
|
59
|
+
|
|
60
|
+
it('should reduce withouth creating fraction', function () {
|
|
61
|
+
let P = new Rational('4(x+1)', '(x+1)(x-3)')
|
|
62
|
+
expect(P.reduce().display).to.be.equal('(4)/(x-3)')
|
|
63
|
+
});
|
|
59
64
|
})
|