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.
Files changed (132) 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 +53 -14
  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/algebra/rational.d.ts +1 -0
  14. package/esm/maths/algebra/rational.js +12 -1
  15. package/esm/maths/algebra/rational.js.map +1 -1
  16. package/esm/maths/geometry/triangle.d.ts +6 -0
  17. package/esm/maths/geometry/triangle.js +14 -7
  18. package/esm/maths/geometry/triangle.js.map +1 -1
  19. package/esm/maths/randomization/random.d.ts +1 -1
  20. package/esm/maths/randomization/random.js +2 -2
  21. package/esm/maths/randomization/random.js.map +1 -1
  22. package/esm/maths/randomization/rndHelpers.d.ts +1 -1
  23. package/esm/maths/randomization/rndHelpers.js +25 -4
  24. package/esm/maths/randomization/rndHelpers.js.map +1 -1
  25. package/package.json +8 -8
  26. package/src/maths/algebra/rational.ts +13 -1
  27. package/src/maths/geometry/triangle.ts +24 -8
  28. package/src/maths/randomization/random.ts +2 -2
  29. package/src/maths/randomization/rndHelpers.ts +49 -18
  30. package/tests/algebra/rationnal.test.ts +5 -0
  31. package/tests/geometry/circle.test.ts +125 -10
  32. package/tests/numexp.test.ts +15 -2
  33. package/dev/pimath.js +0 -7935
  34. package/dev/pimath.js.map +0 -1
  35. package/docs/.nojekyll +0 -1
  36. package/docs/assets/highlight.css +0 -78
  37. package/docs/assets/main.js +0 -58
  38. package/docs/assets/search.js +0 -1
  39. package/docs/assets/style.css +0 -1367
  40. package/docs/classes/Logicalset.Logicalset.html +0 -221
  41. package/docs/classes/Polynom.Rational.html +0 -391
  42. package/docs/classes/Vector-1.Vector.html +0 -494
  43. package/docs/classes/Vector.Point.html +0 -341
  44. package/docs/classes/algebra_equation.Equation.html +0 -796
  45. package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -408
  46. package/docs/classes/algebra_monom.Monom.html +0 -967
  47. package/docs/classes/algebra_polynom.Polynom.html +0 -1281
  48. package/docs/classes/coefficients_fraction.Fraction.html +0 -939
  49. package/docs/classes/geometry_circle.Circle.html +0 -476
  50. package/docs/classes/geometry_line.Line.html +0 -779
  51. package/docs/classes/geometry_triangle.Triangle.html +0 -429
  52. package/docs/classes/numeric.Numeric.html +0 -269
  53. package/docs/classes/shutingyard.Shutingyard.html +0 -259
  54. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -89
  55. package/docs/enums/geometry_line.LinePropriety.html +0 -102
  56. package/docs/enums/shutingyard.ShutingyardMode.html +0 -106
  57. package/docs/enums/shutingyard.ShutingyardType.html +0 -120
  58. package/docs/index.html +0 -63
  59. package/docs/interfaces/algebra_equation.ISolution.html +0 -111
  60. package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -93
  61. package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -150
  62. package/docs/modules/Logicalset.html +0 -69
  63. package/docs/modules/Polynom.html +0 -69
  64. package/docs/modules/Vector-1.html +0 -69
  65. package/docs/modules/Vector.html +0 -69
  66. package/docs/modules/algebra_equation.html +0 -75
  67. package/docs/modules/algebra_linearSystem.html +0 -65
  68. package/docs/modules/algebra_monom.html +0 -70
  69. package/docs/modules/algebra_polynom.html +0 -75
  70. package/docs/modules/coefficients_fraction.html +0 -70
  71. package/docs/modules/geometry_circle.html +0 -65
  72. package/docs/modules/geometry_line.html +0 -70
  73. package/docs/modules/geometry_triangle.html +0 -70
  74. package/docs/modules/numeric.html +0 -65
  75. package/docs/modules/shutingyard.html +0 -84
  76. package/docs/types/algebra_monom.literalType.html +0 -66
  77. package/docs/types/algebra_polynom.PolynomParsingType.html +0 -62
  78. package/docs/types/coefficients_fraction.FractionParsingType.html +0 -61
  79. package/docs/types/shutingyard.Token.html +0 -72
  80. package/docs/types/shutingyard.tokenType.html +0 -77
  81. package/docs/variables/shutingyard.tokenConstant.html +0 -70
  82. package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
  83. package/esm/maths/expressions/ExpressionTree.js +0 -150
  84. package/esm/maths/expressions/ExpressionTree.js.map +0 -1
  85. package/esm/maths/expressions/expression.d.ts +0 -27
  86. package/esm/maths/expressions/expression.js +0 -239
  87. package/esm/maths/expressions/expression.js.map +0 -1
  88. package/esm/maths/expressions/expressionFactor.d.ts +0 -36
  89. package/esm/maths/expressions/expressionFactor.js +0 -156
  90. package/esm/maths/expressions/expressionFactor.js.map +0 -1
  91. package/esm/maths/expressions/expressionMember.d.ts +0 -27
  92. package/esm/maths/expressions/expressionMember.js +0 -199
  93. package/esm/maths/expressions/expressionMember.js.map +0 -1
  94. package/esm/maths/expressions/expressionOperators.d.ts +0 -8
  95. package/esm/maths/expressions/expressionOperators.js +0 -42
  96. package/esm/maths/expressions/expressionOperators.js.map +0 -1
  97. package/esm/maths/expressions/expressionParser.d.ts +0 -14
  98. package/esm/maths/expressions/expressionParser.js +0 -259
  99. package/esm/maths/expressions/expressionParser.js.map +0 -1
  100. package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
  101. package/esm/maths/expressions/factors/ExpFactor.js +0 -34
  102. package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
  103. package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
  104. package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
  105. package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
  106. package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
  107. package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
  108. package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
  109. package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
  110. package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
  111. package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
  112. package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
  113. package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
  114. package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
  115. package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
  116. package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
  117. package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
  118. package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
  119. package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
  120. package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
  121. package/esm/maths/expressions/internals.d.ts +0 -12
  122. package/esm/maths/expressions/internals.js +0 -29
  123. package/esm/maths/expressions/internals.js.map +0 -1
  124. package/esm/maths/expressions/numexp.d.ts +0 -19
  125. package/esm/maths/expressions/numexp.js +0 -186
  126. package/esm/maths/expressions/numexp.js.map +0 -1
  127. package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
  128. package/esm/maths/expressions/polynomexp.bkp.js +0 -184
  129. package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
  130. package/esm/maths/expressions/polynomexp.d.ts +0 -52
  131. package/esm/maths/expressions/polynomexp.js +0 -246
  132. package/esm/maths/expressions/polynomexp.js.map +0 -1
@@ -23,6 +23,7 @@ export declare class Rational {
23
23
  get numerator(): Polynom;
24
24
  get denominator(): Polynom;
25
25
  get tex(): string;
26
+ get display(): string;
26
27
  get texFactors(): string;
27
28
  get plotFunction(): string;
28
29
  clone: () => Rational;
@@ -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
- this.simplify(f);
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":"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"}
1
+ {"version":3,"file":"rational.js","sourceRoot":"","sources":["../../../src/maths/algebra/rational.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,12 @@ export interface remarquableLines {
26
26
  'C': Line;
27
27
  'intersection': Point;
28
28
  };
29
+ externalBisectors: {
30
+ 'A': Line;
31
+ 'B': Line;
32
+ 'C': Line;
33
+ 'intersection': Point;
34
+ };
29
35
  }
30
36
  export declare class Triangle {
31
37
  private _A;
@@ -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': this._calculateBisectors('A'),
164
- 'B': this._calculateBisectors('B'),
165
- 'C': this._calculateBisectors('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":"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"}
@@ -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;QAC3C,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzC,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"}
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
- return this.randomInt(0, a);
23
+ if (a >= 0) {
24
+ return this.randomInt(0, a);
25
+ }
26
+ else {
27
+ return this.randomInt(a, 0);
28
+ }
24
29
  }
25
- return Math.floor(Math.random() * (b - a + 1) + a);
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.randomArray(arr, 1)[0];
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,UAAe,GAAG;QAChC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAC,OAAO,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,CAAQ,EAAE,CAAS;QAChC,IAAG,CAAC,KAAG,SAAS,EAAC;YAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;SAAC;QAE9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,GAAU,EAAE,IAAa;QACzC,IAAG,IAAI,KAAG,KAAK,EAAC;YACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAC,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC;SACzE;aAAI;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACpC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC1B,IAAI,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAG,GAAG,KAAG,SAAS,EAAC;YACf,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,GAAC,GAAG,CAAC,CAAA;SACnC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAU,EAAE,MAAc;QACzC,IAAG,MAAM,KAAG,SAAS,EAAC;YAAC,MAAM,GAAG,CAAC,CAAA;SAAC;QAElC,uBAAuB;QACvB,IAAG,GAAG,CAAC,MAAM,IAAE,CAAC,EAAC;YAAC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAAC;QAE5C,uDAAuD;QACvD,OAAO,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAU;QACxB,IAAG,GAAG,CAAC,MAAM,KAAG,CAAC,EAAC;YAAC,OAAO,EAAE,CAAA;SAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAU;QAC1B,6BAA6B;QAC7B,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrC,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC1B;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CAEJ;AAtED,gCAsEC"}
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.123",
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.4.4",
21
- "@typescript-eslint/eslint-plugin": "^6.1.0",
22
- "@typescript-eslint/parser": "^6.1.0",
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.45.0",
25
+ "eslint": "^8.50.0",
26
26
  "ts-loader": "^9.4.4",
27
27
  "ts-node": "^10.9.1",
28
- "typedoc": "^0.24.8",
29
- "typescript": "^5.1.6",
28
+ "typedoc": "^0.25.1",
29
+ "typescript": "^5.2.2",
30
30
  "webpack": "^5.88.2",
31
- "webpack-bundle-analyzer": "^4.9.0",
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
- this.simplify(f);
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': this._calculateBisectors('A'),
305
- 'B': this._calculateBisectors('B'),
306
- 'C': this._calculateBisectors('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){return this.randomInt(0,a);}
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
- return Math.floor(Math.random() * (b - a + 1) + a);
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):-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){number = 1}
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){return Object.values(arr)}
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){return ''}
60
- return this.randomArray(arr, 1)[0]
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
  })