pimath 0.0.124 → 0.0.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) 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/dev/pimath.js +7940 -7930
  10. package/dev/pimath.js.map +1 -1
  11. package/dist/pimath.js +219 -227
  12. package/dist/pimath.js.map +1 -1
  13. package/dist/pimath.min.js +1 -1
  14. package/dist/pimath.min.js.map +1 -1
  15. package/docs/assets/main.js +59 -58
  16. package/docs/assets/navigation.js +1 -0
  17. package/docs/assets/search.js +1 -1
  18. package/docs/assets/style.css +1383 -1367
  19. package/docs/classes/Logicalset.Logicalset.html +217 -221
  20. package/docs/classes/Polynom.Rational.html +397 -391
  21. package/docs/classes/Vector-1.Vector.html +490 -494
  22. package/docs/classes/Vector.Point.html +337 -341
  23. package/docs/classes/algebra_equation.Equation.html +790 -796
  24. package/docs/classes/algebra_linearSystem.LinearSystem.html +404 -408
  25. package/docs/classes/algebra_monom.Monom.html +962 -967
  26. package/docs/classes/algebra_polynom.Polynom.html +1275 -1281
  27. package/docs/classes/coefficients_fraction.Fraction.html +934 -939
  28. package/docs/classes/geometry_circle.Circle.html +472 -476
  29. package/docs/classes/geometry_line.Line.html +774 -779
  30. package/docs/classes/geometry_triangle.Triangle.html +429 -429
  31. package/docs/classes/numeric.Numeric.html +265 -269
  32. package/docs/classes/shutingyard.Shutingyard.html +250 -259
  33. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +83 -89
  34. package/docs/enums/geometry_line.LinePropriety.html +97 -102
  35. package/docs/enums/shutingyard.ShutingyardMode.html +97 -106
  36. package/docs/enums/shutingyard.ShutingyardType.html +111 -120
  37. package/docs/index.html +63 -63
  38. package/docs/interfaces/algebra_equation.ISolution.html +105 -111
  39. package/docs/interfaces/algebra_polynom.IEuclidian.html +87 -93
  40. package/docs/interfaces/geometry_triangle.remarquableLines.html +163 -150
  41. package/docs/modules/Logicalset.html +65 -69
  42. package/docs/modules/Polynom.html +65 -69
  43. package/docs/modules/Vector-1.html +65 -69
  44. package/docs/modules/Vector.html +65 -69
  45. package/docs/modules/algebra_equation.html +69 -75
  46. package/docs/modules/algebra_linearSystem.html +61 -65
  47. package/docs/modules/algebra_monom.html +65 -70
  48. package/docs/modules/algebra_polynom.html +69 -75
  49. package/docs/modules/coefficients_fraction.html +65 -70
  50. package/docs/modules/geometry_circle.html +61 -65
  51. package/docs/modules/geometry_line.html +65 -70
  52. package/docs/modules/geometry_triangle.html +65 -70
  53. package/docs/modules/numeric.html +61 -65
  54. package/docs/modules/shutingyard.html +75 -84
  55. package/docs/types/algebra_monom.literalType.html +61 -66
  56. package/docs/types/algebra_polynom.PolynomParsingType.html +56 -62
  57. package/docs/types/coefficients_fraction.FractionParsingType.html +56 -61
  58. package/docs/types/shutingyard.Token.html +63 -72
  59. package/docs/types/shutingyard.tokenType.html +68 -77
  60. package/docs/variables/shutingyard.tokenConstant.html +61 -70
  61. package/esm/index.js +1 -1
  62. package/esm/index.js.map +1 -1
  63. package/esm/maths/algebra/monom.d.ts +19 -19
  64. package/esm/maths/algebra/monom.js +66 -66
  65. package/esm/maths/algebra/monom.js.map +1 -1
  66. package/esm/maths/algebra/polynom.d.ts +14 -14
  67. package/esm/maths/algebra/polynom.js +72 -50
  68. package/esm/maths/algebra/polynom.js.map +1 -1
  69. package/esm/maths/numeric.js +3 -48
  70. package/esm/maths/numeric.js.map +1 -1
  71. package/esm/maths/randomization/random.d.ts +1 -1
  72. package/esm/maths/randomization/random.js +2 -2
  73. package/esm/maths/randomization/random.js.map +1 -1
  74. package/esm/maths/randomization/rndHelpers.d.ts +1 -1
  75. package/esm/maths/randomization/rndHelpers.js +25 -4
  76. package/esm/maths/randomization/rndHelpers.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/index.ts +1 -1
  79. package/src/maths/algebra/monom.ts +138 -130
  80. package/src/maths/algebra/polynom.ts +107 -85
  81. package/src/maths/numeric.ts +61 -90
  82. package/src/maths/randomization/random.ts +2 -2
  83. package/src/maths/randomization/rndHelpers.ts +49 -18
  84. package/tests/algebra/linear.test.ts +1 -1
  85. package/tests/algebra/polynom.test.ts +152 -1
  86. package/tests/algebra/study.test.ts +1 -0
  87. package/tests/geometry/circle.test.ts +124 -25
  88. package/tests/geometry/line.test.ts +8 -17
  89. package/tests/numexp.test.ts +10 -2
  90. package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
  91. package/esm/maths/expressions/ExpressionTree.js +0 -150
  92. package/esm/maths/expressions/ExpressionTree.js.map +0 -1
  93. package/esm/maths/expressions/expression.d.ts +0 -27
  94. package/esm/maths/expressions/expression.js +0 -239
  95. package/esm/maths/expressions/expression.js.map +0 -1
  96. package/esm/maths/expressions/expressionFactor.d.ts +0 -36
  97. package/esm/maths/expressions/expressionFactor.js +0 -156
  98. package/esm/maths/expressions/expressionFactor.js.map +0 -1
  99. package/esm/maths/expressions/expressionMember.d.ts +0 -27
  100. package/esm/maths/expressions/expressionMember.js +0 -199
  101. package/esm/maths/expressions/expressionMember.js.map +0 -1
  102. package/esm/maths/expressions/expressionOperators.d.ts +0 -8
  103. package/esm/maths/expressions/expressionOperators.js +0 -42
  104. package/esm/maths/expressions/expressionOperators.js.map +0 -1
  105. package/esm/maths/expressions/expressionParser.d.ts +0 -14
  106. package/esm/maths/expressions/expressionParser.js +0 -259
  107. package/esm/maths/expressions/expressionParser.js.map +0 -1
  108. package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
  109. package/esm/maths/expressions/factors/ExpFactor.js +0 -34
  110. package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
  111. package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
  112. package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
  113. package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
  114. package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
  115. package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
  116. package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
  117. package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
  118. package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
  119. package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
  120. package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
  121. package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
  122. package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
  123. package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
  124. package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
  125. package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
  126. package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
  127. package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
  128. package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
  129. package/esm/maths/expressions/internals.d.ts +0 -12
  130. package/esm/maths/expressions/internals.js +0 -29
  131. package/esm/maths/expressions/internals.js.map +0 -1
  132. package/esm/maths/expressions/numexp.d.ts +0 -19
  133. package/esm/maths/expressions/numexp.js +0 -186
  134. package/esm/maths/expressions/numexp.js.map +0 -1
  135. package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
  136. package/esm/maths/expressions/polynomexp.bkp.js +0 -184
  137. package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
  138. package/esm/maths/expressions/polynomexp.d.ts +0 -52
  139. package/esm/maths/expressions/polynomexp.js +0 -246
  140. package/esm/maths/expressions/polynomexp.js.map +0 -1
@@ -15,8 +15,6 @@ class Monom {
15
15
  * @param value (optional) string The value that should be parse. Can be a Monom, a Fraction, a string or a number. If nothing is provided, it will return the trivial monom (0).
16
16
  */
17
17
  constructor(value) {
18
- // ------------------------------------------
19
- // Creation / parsing functions
20
18
  // -----------------------------------------
21
19
  /**
22
20
  * Parse a string to a monom. The string may include fraction.
@@ -84,36 +82,6 @@ class Monom {
84
82
  }
85
83
  }
86
84
  };
87
- this._shutingYardToReducedMonom = (inputStr) => {
88
- // Get the RPN array of the current expression
89
- const SY = new shutingyard_1.Shutingyard().parse(inputStr);
90
- const rpn = SY.rpn;
91
- let stack = [], m, pow, letter, q1, q2;
92
- if (rpn.length === 0) {
93
- this.zero();
94
- return this;
95
- }
96
- else if (rpn.length === 1) {
97
- const element = rpn[0];
98
- this.one();
99
- if (element.tokenType === 'coefficient') {
100
- this.coefficient = new fraction_1.Fraction(element.token);
101
- }
102
- else if (element.tokenType === 'variable') {
103
- this.setLetter(element.token, 1);
104
- }
105
- return this;
106
- }
107
- else {
108
- // Reset the monom
109
- for (const element of rpn) {
110
- this.addToken(stack, element);
111
- }
112
- }
113
- this.one();
114
- this.multiply(stack[0]);
115
- return this;
116
- };
117
85
  /**
118
86
  * Clone the current Monom.
119
87
  */
@@ -513,6 +481,9 @@ class Monom {
513
481
  }
514
482
  return M;
515
483
  };
484
+ // ----------------------------------------
485
+ // Static functions
486
+ // ----------------------------------------
516
487
  // TODO: The rest of the functions are not used or unnecessary ?
517
488
  /**
518
489
  * Determine if multiple monoms are similar
@@ -562,6 +533,36 @@ class Monom {
562
533
  }
563
534
  return this.coefficient.clone().divide(div.coefficient).isRelative();
564
535
  };
536
+ this._shutingYardToReducedMonom = (inputStr) => {
537
+ // Get the RPN array of the current expression
538
+ const SY = new shutingyard_1.Shutingyard().parse(inputStr);
539
+ const rpn = SY.rpn;
540
+ let stack = [], m, pow, letter, q1, q2;
541
+ if (rpn.length === 0) {
542
+ this.zero();
543
+ return this;
544
+ }
545
+ else if (rpn.length === 1) {
546
+ const element = rpn[0];
547
+ this.one();
548
+ if (element.tokenType === 'coefficient') {
549
+ this.coefficient = new fraction_1.Fraction(element.token);
550
+ }
551
+ else if (element.tokenType === 'variable') {
552
+ this.setLetter(element.token, 1);
553
+ }
554
+ return this;
555
+ }
556
+ else {
557
+ // Reset the monom
558
+ for (const element of rpn) {
559
+ this.addToken(stack, element);
560
+ }
561
+ }
562
+ this.one();
563
+ this.multiply(stack[0]);
564
+ return this;
565
+ };
565
566
  this.zero();
566
567
  if (value !== undefined) {
567
568
  // A string is given - try to parse the value.
@@ -570,8 +571,6 @@ class Monom {
570
571
  return this;
571
572
  }
572
573
  // ------------------------------------------
573
- // Getter and setter
574
- // ------------------------------------------
575
574
  /**
576
575
  * Get the coefficient \\(k\\) of the Monom \\(k\\cdot x^{n}\\)
577
576
  * @returns {Fraction}
@@ -579,6 +578,8 @@ class Monom {
579
578
  get coefficient() {
580
579
  return this._coefficient;
581
580
  }
581
+ // ------------------------------------------
582
+ // Getter and setter
582
583
  /**
583
584
  * Set the coefficient \\(k\\) value of the monom
584
585
  * @param {Fraction | number | string} F
@@ -593,6 +594,13 @@ class Monom {
593
594
  get literal() {
594
595
  return this._literal;
595
596
  }
597
+ /**
598
+ * Set the literal part of the monom. Must be a dictionary {x: Fraction, y: Fraction, ...}
599
+ * @param {literalType} L
600
+ */
601
+ set literal(L) {
602
+ this._literal = L;
603
+ }
596
604
  /**
597
605
  * Get the literal square roots of the Monom.
598
606
  * TODO: remove this getter ? Is it used and is it correct ?
@@ -610,13 +618,6 @@ class Monom {
610
618
  return this._literal;
611
619
  }
612
620
  }
613
- /**
614
- * Set the literal part of the monom. Must be a dictionary {x: Fraction, y: Fraction, ...}
615
- * @param {literalType} L
616
- */
617
- set literal(L) {
618
- this._literal = L;
619
- }
620
621
  /**
621
622
  * Set the literal part of the monom from a string
622
623
  * @param inputStr String like x^2y^3
@@ -737,28 +738,6 @@ class Monom {
737
738
  }
738
739
  return monomDividers.length === 0 ? [new Monom().one()] : monomDividers;
739
740
  }
740
- _getLiteralDividers(arr, letter) {
741
- let tmpList = [];
742
- // Be default, this.literal[letter] should be a rational number.
743
- for (let d = 0; d <= this.literal[letter].value; d++) {
744
- if (arr.length === 0) {
745
- let litt = {};
746
- litt[letter] = new fraction_1.Fraction(d);
747
- tmpList.push(litt);
748
- }
749
- else {
750
- for (let item of arr) {
751
- let litt = {};
752
- for (let currentLetter in item) {
753
- litt[currentLetter] = item[currentLetter];
754
- }
755
- litt[letter] = new fraction_1.Fraction(d);
756
- tmpList.push(litt);
757
- }
758
- }
759
- }
760
- return tmpList;
761
- }
762
741
  /**
763
742
  * Display the monom, forcing the '+' sign to appear
764
743
  */
@@ -857,11 +836,30 @@ class Monom {
857
836
  isOne() {
858
837
  return this._coefficient.value === 1 && this.variables.length === 0;
859
838
  }
839
+ _getLiteralDividers(arr, letter) {
840
+ let tmpList = [];
841
+ // Be default, this.literal[letter] should be a rational number.
842
+ for (let d = 0; d <= this.literal[letter].value; d++) {
843
+ if (arr.length === 0) {
844
+ let litt = {};
845
+ litt[letter] = new fraction_1.Fraction(d);
846
+ tmpList.push(litt);
847
+ }
848
+ else {
849
+ for (let item of arr) {
850
+ let litt = {};
851
+ for (let currentLetter in item) {
852
+ litt[currentLetter] = item[currentLetter];
853
+ }
854
+ litt[letter] = new fraction_1.Fraction(d);
855
+ tmpList.push(litt);
856
+ }
857
+ }
858
+ }
859
+ return tmpList;
860
+ }
860
861
  }
861
862
  exports.Monom = Monom;
862
- // ----------------------------------------
863
- // Static functions
864
- // ----------------------------------------
865
863
  /**
866
864
  * Get the least common multiple of monoms
867
865
  * @param monoms Array of monoms
@@ -895,6 +893,8 @@ Monom.lcm = (...monoms) => {
895
893
  }
896
894
  return M;
897
895
  };
896
+ // ------------------------------------------
897
+ // Creation / parsing functions
898
898
  /**
899
899
  * Multiply two monoms and return a NEW monom.
900
900
  * @param monoms
@@ -1 +1 @@
1
- {"version":3,"file":"monom.js","sourceRoot":"","sources":["../../../src/maths/algebra/monom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monom.js","sourceRoot":"","sources":["../../../src/maths/algebra/monom.ts"],"names":[],"mappings":"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"}
@@ -17,36 +17,36 @@ export interface IEuclidian {
17
17
  * ```
18
18
  */
19
19
  export declare class Polynom {
20
- private _dirty_factors;
21
- private _dirty_zeroes;
22
- private _euclidianCache;
23
- private _factors;
24
- private _monoms;
25
20
  private _rawString;
26
- private _texString;
27
- private _zeroes;
28
21
  /**
29
22
  *
30
23
  * @param {string} polynomString (optional) Default polynom to parse on class creation
31
24
  * @param values
32
25
  */
33
26
  constructor(polynomString?: PolynomParsingType, ...values: unknown[]);
27
+ private _dirty_factors;
28
+ get dirty_factors(): boolean;
29
+ set dirty_factors(value: boolean);
30
+ private _dirty_zeroes;
31
+ get dirty_zeroes(): boolean;
32
+ set dirty_zeroes(value: boolean);
33
+ private _euclidianCache;
34
34
  get euclidianCache(): {
35
35
  [p: string]: IEuclidian;
36
36
  };
37
37
  set euclidianCache(value: {
38
38
  [p: string]: IEuclidian;
39
39
  });
40
- get dirty_zeroes(): boolean;
41
- set dirty_zeroes(value: boolean);
42
- get dirty_factors(): boolean;
43
- set dirty_factors(value: boolean);
44
- get monoms(): Monom[];
45
- set monoms(M: Monom[]);
46
- get zeroes(): ISolution[];
40
+ private _factors;
47
41
  get factors(): Polynom[];
48
42
  set factors(value: Polynom[]);
43
+ private _monoms;
44
+ get monoms(): Monom[];
45
+ set monoms(M: Monom[]);
46
+ private _texString;
49
47
  get texString(): string;
48
+ private _zeroes;
49
+ get zeroes(): ISolution[];
50
50
  get texFactors(): string;
51
51
  get displayFactors(): string;
52
52
  get length(): number;
@@ -250,7 +250,7 @@ class Polynom {
250
250
  if (P.variables.length === 0) {
251
251
  let q = this.clone().divide(P);
252
252
  return {
253
- quotient: this.clone().divide(P),
253
+ quotient: this.clone().divide(P).reduce(),
254
254
  reminder: new Polynom().zero()
255
255
  };
256
256
  }
@@ -259,17 +259,19 @@ class Polynom {
259
259
  const degreeP = P.degree(letter);
260
260
  let newM;
261
261
  // Make the euclidian division of the two polynoms.
262
- let MaxIteration = this.degree(letter).clone().multiply(2);
263
- while (reminder.degree(letter).geq(degreeP) && MaxIteration.isPositive()) {
264
- MaxIteration.subtract(1);
262
+ let MaxIteration = this.degree(letter).value * 2;
263
+ while (reminder.degree(letter).geq(degreeP) && MaxIteration > 0) {
264
+ MaxIteration--;
265
265
  // Get the greatest monom divided by the max monom of the divider
266
266
  newM = reminder.monomByDegree(undefined, letter).clone().divide(maxMP);
267
- if (newM.isZero()) {
267
+ if (newM.isZero())
268
268
  break;
269
- }
270
269
  // Get the new quotient and reminder.
271
270
  quotient.add(newM);
272
271
  reminder.subtract(P.clone().multiply(newM));
272
+ // Check if the reminder is zero.
273
+ if (newM.degree(letter).isZero())
274
+ break;
273
275
  }
274
276
  quotient.reduce();
275
277
  reminder.reduce();
@@ -510,28 +512,52 @@ class Polynom {
510
512
  // -------------------------------------
511
513
  this.reduce = () => {
512
514
  // Reduce the polynom
513
- let values = [...this._monoms], vars = [...this.variables];
514
- this._monoms = [];
515
- let coeffs = values.filter(x => x.variables.length === 0);
516
- if (coeffs.length > 0) {
517
- this._monoms.push(coeffs.reduce((a, b) => a.add(b)));
518
- }
519
- // Build the new monoms
520
- for (let letter of vars) {
521
- // Monom with same letters, but might be of different degrees
522
- let M = values.filter(x => x.hasLetter(letter));
523
- while (M.length > 0) {
524
- // Take the first element
525
- const m = M.shift(), degree = m.degree(letter);
526
- for (let a of M.filter(x => x.degree(letter).isEqual(degree))) {
527
- m.add(a);
515
+ let values = this._monoms.map(x => x.clone()), vars = [...this.variables];
516
+ // Group the monoms by similarity
517
+ let i = 0;
518
+ while (i < this._monoms.length) {
519
+ for (let j = i + 1; j < this._monoms.length; j++) {
520
+ if (this._monoms[i].isSameAs(this._monoms[j])) {
521
+ this._monoms[i].add(this._monoms[j]);
522
+ this._monoms.splice(j, 1);
523
+ if (this._monoms[i].isZero()) {
524
+ this._monoms[i] = new monom_1.Monom().zero();
525
+ }
526
+ j--;
528
527
  }
529
- this._monoms.push(m);
530
- // Make the new array.
531
- M = M.filter(x => x.degree(letter).isNotEqual(degree));
532
528
  }
533
- // reduce the monom
529
+ i++;
534
530
  }
531
+ //
532
+ //
533
+ //
534
+ // let coeffs = values.filter(x => x.variables.length === 0)
535
+ //
536
+ // if (coeffs.length > 0) {
537
+ // this._monoms.push(coeffs.reduce((a, b) => a.add(b)))
538
+ // }
539
+ //
540
+ // // Build the new monoms
541
+ // for (let letter of vars) {
542
+ // // Monom with same letters, but might be of different degrees
543
+ // let M = values.filter(x => x.hasLetter(letter))
544
+ //
545
+ // while (M.length > 0) {
546
+ // // Take the first element
547
+ // const m = M.shift(), degree = m.degree(letter)
548
+ //
549
+ // for (let a of M.filter(x => x.degree(letter).isEqual(degree))) {
550
+ // m.add(a)
551
+ // }
552
+ //
553
+ // this._monoms.push(m)
554
+ //
555
+ // // Make the new array.
556
+ // M = M.filter(x => x.degree(letter).isNotEqual(degree))
557
+ // }
558
+ // // reduce the monom
559
+ //
560
+ // }
535
561
  // Remove all null monoms
536
562
  this._monoms = this._monoms.filter((m) => {
537
563
  return m.coefficient.value !== 0;
@@ -717,14 +743,10 @@ class Polynom {
717
743
  allDividers = allDividers.filter(x => {
718
744
  let pX = P.monoms[0], pC = P.monoms[P.monoms.length - 1], dX = x.monoms[0], dC = x.monoms[x.monoms.length - 1];
719
745
  // Check last item (degree zero)
720
- if (!pC.isDivisible(dC)) {
746
+ if (!pC.isDivisible(dC))
721
747
  return false;
722
- }
723
748
  // Check the first item (degree max)
724
- if (!pX.isDivisible(dX)) {
725
- return false;
726
- }
727
- return true;
749
+ return pX.isDivisible(dX);
728
750
  });
729
751
  }
730
752
  }
@@ -1081,18 +1103,6 @@ class Polynom {
1081
1103
  }
1082
1104
  return this;
1083
1105
  }
1084
- get euclidianCache() {
1085
- return this._euclidianCache;
1086
- }
1087
- set euclidianCache(value) {
1088
- this._euclidianCache = value;
1089
- }
1090
- get dirty_zeroes() {
1091
- return this._dirty_zeroes;
1092
- }
1093
- set dirty_zeroes(value) {
1094
- this._dirty_zeroes = value;
1095
- }
1096
1106
  // ------------------------------------------
1097
1107
  get dirty_factors() {
1098
1108
  return this._dirty_factors;
@@ -1100,15 +1110,17 @@ class Polynom {
1100
1110
  set dirty_factors(value) {
1101
1111
  this._dirty_factors = value;
1102
1112
  }
1103
- // ------------------------------------------
1104
- get monoms() {
1105
- return this._monoms;
1113
+ get dirty_zeroes() {
1114
+ return this._dirty_zeroes;
1106
1115
  }
1107
- set monoms(M) {
1108
- this._monoms = M;
1116
+ set dirty_zeroes(value) {
1117
+ this._dirty_zeroes = value;
1109
1118
  }
1110
- get zeroes() {
1111
- return this.getZeroes();
1119
+ get euclidianCache() {
1120
+ return this._euclidianCache;
1121
+ }
1122
+ set euclidianCache(value) {
1123
+ this._euclidianCache = value;
1112
1124
  }
1113
1125
  get factors() {
1114
1126
  return this.factorize();
@@ -1117,9 +1129,19 @@ class Polynom {
1117
1129
  this.mark_as_dirty();
1118
1130
  this._factors = value;
1119
1131
  }
1132
+ // ------------------------------------------
1133
+ get monoms() {
1134
+ return this._monoms;
1135
+ }
1136
+ set monoms(M) {
1137
+ this._monoms = M;
1138
+ }
1120
1139
  get texString() {
1121
1140
  return this._texString;
1122
1141
  }
1142
+ get zeroes() {
1143
+ return this.getZeroes();
1144
+ }
1123
1145
  get texFactors() {
1124
1146
  this.factorize();
1125
1147
  if (this.factors.length <= 1) {