pimath 0.0.42 → 0.0.43

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 (57) hide show
  1. package/.eslintrc.js +23 -23
  2. package/dist/pi.js +327 -579
  3. package/dist/pi.js.map +1 -1
  4. package/dist/pi.min.js +1 -1
  5. package/dist/pi.min.js.map +1 -1
  6. package/docs/assets/highlight.css +78 -78
  7. package/docs/assets/icons.css +1043 -1043
  8. package/docs/assets/main.js +52 -52
  9. package/docs/assets/search.js +1 -1
  10. package/docs/assets/style.css +1388 -1388
  11. package/docs/classes/{algebra.Equation.html → Algebra.Equation.html} +25 -25
  12. package/docs/classes/algebra.Logicalset.html +4 -4
  13. package/docs/classes/algebra.Monom.html +113 -113
  14. package/docs/classes/algebra.Polynom.html +29 -29
  15. package/docs/classes/algebra.Rational.html +3 -3
  16. package/docs/classes/coefficients.Fraction.html +18 -18
  17. package/docs/classes/coefficients.Nthroot.html +2 -2
  18. package/docs/classes/geometry.Circle.html +2 -2
  19. package/docs/classes/geometry.Line.html +2 -2
  20. package/docs/classes/geometry.Triangle.html +16 -16
  21. package/docs/classes/numeric.Numeric.html +13 -13
  22. package/docs/classes/shutingyard.Shutingyard.html +17 -17
  23. package/docs/index.html +10 -10
  24. package/docs/modules/{algebra.html → Algebra.html} +0 -0
  25. package/docs/modules/{random.html → Random.html} +0 -0
  26. package/esm/index.d.ts +2 -2
  27. package/esm/index.js +2 -2
  28. package/esm/maths/algebra/equation.d.ts +2 -7
  29. package/esm/maths/algebra/equation.js +9 -52
  30. package/esm/maths/algebra/equation.js.map +1 -1
  31. package/esm/maths/algebra/polynom.d.ts +1 -4
  32. package/esm/maths/algebra/polynom.js +62 -120
  33. package/esm/maths/algebra/polynom.js.map +1 -1
  34. package/esm/maths/algebra/rational.d.ts +6 -16
  35. package/esm/maths/algebra/rational.js +30 -141
  36. package/esm/maths/algebra/rational.js.map +1 -1
  37. package/esm/maths/coefficients/fraction.d.ts +1 -3
  38. package/esm/maths/coefficients/fraction.js +5 -37
  39. package/esm/maths/coefficients/fraction.js.map +1 -1
  40. package/esm/maths/coefficients/{nthRoot.d.ts → nthroot.d.ts} +5 -5
  41. package/esm/maths/coefficients/{nthRoot.js → nthroot.js} +5 -5
  42. package/esm/maths/coefficients/{nthRoot.js.map → nthroot.js.map} +1 -1
  43. package/esm/maths/geometry/line.js +0 -8
  44. package/esm/maths/geometry/line.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/index.ts +2 -2
  47. package/src/maths/algebra/equation.ts +12 -61
  48. package/src/maths/algebra/polynom.ts +68 -128
  49. package/src/maths/algebra/rational.ts +98 -242
  50. package/src/maths/coefficients/fraction.ts +6 -44
  51. package/src/maths/coefficients/{nthRoot.ts → nthroot.ts} +5 -5
  52. package/src/maths/geometry/line.ts +1 -0
  53. package/tests/algebra/monom.test.ts +4 -1
  54. package/tests/coefficients/fraction.test.ts +1 -43
  55. package/tests/geometry/circle.test.ts +2 -4
  56. package/tests/algebra/equation.test.ts +0 -38
  57. package/tests/algebra/rationnal.test.ts +0 -68
package/dist/pi.js CHANGED
@@ -1,11 +1,11 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ var __webpack_modules__ = ({
4
-
5
- /***/ 607:
6
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7
-
8
- var __webpack_unused_export__;
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/ var __webpack_modules__ = ({
4
+
5
+ /***/ 607:
6
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7
+
8
+ var __webpack_unused_export__;
9
9
 
10
10
  __webpack_unused_export__ = ({ value: true });
11
11
  exports.l = void 0;
@@ -14,7 +14,7 @@ const numexp_1 = __webpack_require__(735);
14
14
  const shutingyard_1 = __webpack_require__(505);
15
15
  const random_1 = __webpack_require__(330);
16
16
  const fraction_1 = __webpack_require__(506);
17
- const nthRoot_1 = __webpack_require__(872);
17
+ const nthroot_1 = __webpack_require__(923);
18
18
  const monom_1 = __webpack_require__(937);
19
19
  const polynom_1 = __webpack_require__(38);
20
20
  const equation_1 = __webpack_require__(760);
@@ -33,7 +33,7 @@ exports.l = {
33
33
  Numeric: numeric_1.Numeric,
34
34
  NumExp: numexp_1.NumExp,
35
35
  Fraction: fraction_1.Fraction,
36
- Root: nthRoot_1.NthRoot,
36
+ Root: nthroot_1.Nthroot,
37
37
  Monom: monom_1.Monom,
38
38
  Polynom: polynom_1.Polynom,
39
39
  Equation: equation_1.Equation,
@@ -52,25 +52,20 @@ exports.l = {
52
52
  }
53
53
  };
54
54
  window.Pi = exports.l;
55
-
56
-
57
- /***/ }),
58
-
59
- /***/ 760:
60
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
61
-
55
+
56
+
57
+ /***/ }),
58
+
59
+ /***/ 760:
60
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
61
+
62
62
 
63
63
  Object.defineProperty(exports, "__esModule", ({ value: true }));
64
- exports.Equation = exports.PARTICULAR_SOLUTION = void 0;
64
+ exports.Equation = void 0;
65
65
  const polynom_1 = __webpack_require__(38);
66
66
  const numeric_1 = __webpack_require__(956);
67
67
  const fraction_1 = __webpack_require__(506);
68
- const nthRoot_1 = __webpack_require__(872);
69
- var PARTICULAR_SOLUTION;
70
- (function (PARTICULAR_SOLUTION) {
71
- PARTICULAR_SOLUTION["real"] = "\\mathbb{R}";
72
- PARTICULAR_SOLUTION["varnothing"] = "\\varnothing";
73
- })(PARTICULAR_SOLUTION = exports.PARTICULAR_SOLUTION || (exports.PARTICULAR_SOLUTION = {}));
68
+ const nthroot_1 = __webpack_require__(923);
74
69
  class Equation {
75
70
  /**
76
71
  * Create an Equation using two polynoms.
@@ -79,11 +74,8 @@ class Equation {
79
74
  */
80
75
  constructor(...equations) {
81
76
  // Undetermined texSolutions.
82
- this._varnothing = PARTICULAR_SOLUTION.varnothing;
83
- this._real = PARTICULAR_SOLUTION.real;
84
- this.hasVariable = (letter) => {
85
- return this.variables.includes(letter);
86
- };
77
+ this._varnothing = '\\varnothing';
78
+ this._real = '\\mathbb{R}';
87
79
  // ------------------------------------------
88
80
  // Creation / parsing functions
89
81
  // -----------------------------------------------
@@ -278,8 +270,6 @@ class Equation {
278
270
  default:
279
271
  this._solveDegree3plus();
280
272
  }
281
- // cleanup the solutions.
282
- this._solutions = Equation.makeSolutionsUnique(this._solutions);
283
273
  return this;
284
274
  };
285
275
  this.test = (values) => {
@@ -410,7 +400,7 @@ class Equation {
410
400
  }
411
401
  else {
412
402
  this._solutions = [{
413
- tex: v.tex,
403
+ tex: v.display,
414
404
  value: v.value,
415
405
  exact: v
416
406
  }];
@@ -470,7 +460,7 @@ class Equation {
470
460
  ];
471
461
  }
472
462
  else {
473
- nthDelta = new nthRoot_1.NthRoot(delta).reduce();
463
+ nthDelta = new nthroot_1.Nthroot(delta).reduce();
474
464
  if (nthDelta.hasRadical()) {
475
465
  // -b +- coeff\sqrt{radical}
476
466
  // -------------------------
@@ -644,27 +634,9 @@ class Equation {
644
634
  }
645
635
  return this._solutions;
646
636
  };
647
- this._solveDegree3plus = (letter) => {
648
- // Push everything to the left
649
- // factorize
650
- // solve each factors.
651
- let equ = this.clone().moveLeft();
652
- equ.left.factorize();
653
- this._solutions = [];
654
- equ.left.factors.forEach(factor => {
655
- if (factor.degree(letter).leq(2)) {
656
- let factorAsEquation = new Equation(factor, 0);
657
- factorAsEquation.solve();
658
- factorAsEquation.solutions.forEach(solution => {
659
- this._solutions.push(solution);
660
- });
661
- }
662
- else {
663
- console.log(factor.tex, ': cannot actually get the solution of this equation');
664
- }
665
- });
666
- // TODO: check equation resolution for more than degree 2
667
- // this._solutions = [{tex: 'solve x - not yet handled', value: NaN, exact: false}]; // ESLint remove system :(
637
+ this._solveDegree3plus = () => {
638
+ // TODO: try to resolve equations with a degree superior than 2.
639
+ this._solutions = [{ tex: 'solve x - not yet handled', value: NaN, exact: false }]; // ESLint remove system :(
668
640
  return this._solutions;
669
641
  };
670
642
  // Default equation
@@ -779,30 +751,15 @@ class Equation {
779
751
  set randomizeDefaults(value) {
780
752
  this._randomizeDefaults = value;
781
753
  }
782
- static makeSolutionsUnique(solutions, sorted) {
783
- let solutionAsTex = [], uniqueSolutions = solutions.filter(sol => {
784
- if (!solutionAsTex.includes(sol.tex)) {
785
- solutionAsTex.push(sol.tex);
786
- return true;
787
- }
788
- else {
789
- return false;
790
- }
791
- });
792
- if (sorted === true) {
793
- uniqueSolutions.sort((a, b) => a.value - b.value);
794
- }
795
- return uniqueSolutions;
796
- }
797
754
  }
798
755
  exports.Equation = Equation;
799
-
800
-
801
- /***/ }),
802
-
803
- /***/ 554:
804
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
805
-
756
+
757
+
758
+ /***/ }),
759
+
760
+ /***/ 554:
761
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
762
+
806
763
 
807
764
  Object.defineProperty(exports, "__esModule", ({ value: true }));
808
765
  exports.LinearSystem = void 0;
@@ -1063,13 +1020,13 @@ class LinearSystem {
1063
1020
  }
1064
1021
  }
1065
1022
  exports.LinearSystem = LinearSystem;
1066
-
1067
-
1068
- /***/ }),
1069
-
1070
- /***/ 236:
1071
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1072
-
1023
+
1024
+
1025
+ /***/ }),
1026
+
1027
+ /***/ 236:
1028
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1029
+
1073
1030
 
1074
1031
  /**
1075
1032
  * Polynom module contains everything necessary to handle polynoms.
@@ -1227,13 +1184,13 @@ class Logicalset {
1227
1184
  }
1228
1185
  }
1229
1186
  exports.Logicalset = Logicalset;
1230
-
1231
-
1232
- /***/ }),
1233
-
1234
- /***/ 937:
1235
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1236
-
1187
+
1188
+
1189
+ /***/ }),
1190
+
1191
+ /***/ 937:
1192
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1193
+
1237
1194
 
1238
1195
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1239
1196
  exports.Monom = void 0;
@@ -2069,13 +2026,13 @@ Monom.xmultiply = (...monoms) => {
2069
2026
  }
2070
2027
  return M;
2071
2028
  };
2072
-
2073
-
2074
- /***/ }),
2075
-
2076
- /***/ 38:
2077
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2078
-
2029
+
2030
+
2031
+ /***/ }),
2032
+
2033
+ /***/ 38:
2034
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2035
+
2079
2036
 
2080
2037
  /**
2081
2038
  * Polynom module contains everything necessary to handle polynoms.*
@@ -2086,7 +2043,6 @@ const monom_1 = __webpack_require__(937);
2086
2043
  const shutingyard_1 = __webpack_require__(505);
2087
2044
  const numeric_1 = __webpack_require__(956);
2088
2045
  const fraction_1 = __webpack_require__(506);
2089
- const equation_1 = __webpack_require__(760);
2090
2046
  /**
2091
2047
  * Polynom class can handle polynoms, reorder, resolve, ...
2092
2048
  * ```
@@ -2589,7 +2545,6 @@ class Polynom {
2589
2545
  P = P.euclidian(tempPolynom).quotient;
2590
2546
  }
2591
2547
  let securityLoop = P.degree().clone().multiply(2).value;
2592
- let result;
2593
2548
  // securityLoop = 0
2594
2549
  while (securityLoop >= 0) {
2595
2550
  securityLoop--;
@@ -2605,7 +2560,7 @@ class Polynom {
2605
2560
  for (let m1d of m1) {
2606
2561
  for (let m2d of m2) {
2607
2562
  // if(m1d.degree()===m2d.degree()){continue}
2608
- let dividerPolynom = new Polynom();
2563
+ let dividerPolynom = new Polynom(), result;
2609
2564
  dividerPolynom.monoms = [m1d.clone(), m2d.clone()];
2610
2565
  result = P.euclidian(dividerPolynom);
2611
2566
  if (result.reminder.isZero()) {
@@ -2623,103 +2578,72 @@ class Polynom {
2623
2578
  }
2624
2579
  }
2625
2580
  }
2626
- if (!P.isOne()) {
2627
- factors.push(P.clone());
2628
- }
2629
2581
  this.factors = factors;
2630
2582
  return factors;
2631
2583
  };
2632
2584
  // TODO: get zeroes for more than first degree and for more than natural degrees
2633
2585
  this.getZeroes = () => {
2634
- let equ = new equation_1.Equation(this.clone(), 0);
2635
- equ.solve();
2636
- return equ.solutions;
2637
- //
2638
- // const Z: Fraction[] = [];
2639
- //
2640
- // // ISolution: {tex: string, value: number, exact: boolean|Fraction|...}
2641
- //
2642
- // switch (this.degree().value) {
2643
- // case 0:
2644
- // if (this._monoms[0].coefficient.value === 0) {
2645
- // return [{
2646
- // tex: '\\mathbb{R}',
2647
- // value: NaN,
2648
- // exact: false
2649
- // }];
2650
- // } else {
2651
- // return [{
2652
- // tex: '\\varnothing',
2653
- // value: NaN,
2654
- // exact: false
2655
- // }];
2656
- // }
2657
- // case 1:
2658
- // // There is only one monoms,
2659
- // if (this._monoms.length === 1) {
2660
- // return [{
2661
- // tex: '0',
2662
- // value: 0,
2663
- // exact: new Fraction().zero()
2664
- // }];
2665
- // } else {
2666
- // const P = this.clone().reduce().reorder();
2667
- // const coeff = P.monoms[1].coefficient.opposed().divide(P.monoms[0].coefficient)
2668
- // return [{
2669
- // tex: coeff.tex,
2670
- // value: coeff.value,
2671
- // exact: coeff
2672
- // }];
2673
- // }
2674
- // // TODO: Determine the zeros of an equation of second degree.
2675
- // //case 2:
2676
- // default:
2677
- // // Make sure the polynom is factorized.
2678
- // if (this._factors.length === 0) {
2679
- // this.factorize()
2680
- // }
2681
- //
2682
- // let zeroes:Fraction[] = [], zeroesAsTex = [];
2683
- // for (let P of this._factors) {
2684
- // if (P.degree().greater(2)) {
2685
- // // TODO: get zeroes of polynom with a degree greater than 2.
2686
- //
2687
- // } else if (P.degree().value === 2) {
2688
- // let A = P.monomByDegree(2).coefficient,
2689
- // B = P.monomByDegree(1).coefficient,
2690
- // C = P.monomByDegree(0).coefficient,
2691
- // D = B.clone().pow(2).subtract(A.clone().multiply(C).multiply(4));
2692
- //
2693
- // if (D.value > 0) {
2694
- // /*console.log('Two zeroes for ', P.tex); */
2695
- // let x1 = (-(B.value) + Math.sqrt(D.value)) / (2 * A.value),
2696
- // x2 = (-(B.value) - Math.sqrt(D.value)) / (2 * A.value);
2697
- //
2698
- // zeroes.push(new Fraction(x1.toFixed(3)).reduce());
2699
- // zeroes.push(new Fraction(x2.toFixed(3)).reduce());
2700
- // } else if (D.value === 0) {
2701
- // /*console.log('One zero for ', P.tex); */
2702
- // } else {
2703
- // console.log('No zero for ', P.tex);
2704
- // }
2705
- // } else {
2706
- // for (let z of P.getZeroes()) {
2707
- // // Check if the zero is already in the list.
2708
- // // if (z === false || z === true) {
2709
- // // continue;
2710
- // // }
2711
- // if (zeroesAsTex.indexOf(z.frac) === -1) {
2712
- // zeroes.push(z);
2713
- // zeroesAsTex.push(z.frac);
2714
- // }
2715
- // }
2716
- // }
2717
- // }
2718
- //
2719
- //
2720
- // return zeroes;
2721
- // }
2722
- // return Z;
2586
+ const Z = [];
2587
+ switch (this.degree().value) {
2588
+ case 0:
2589
+ if (this._monoms[0].coefficient.value === 0) {
2590
+ return [true];
2591
+ }
2592
+ else {
2593
+ return [false];
2594
+ }
2595
+ case 1:
2596
+ // There is only one monoms,
2597
+ if (this._monoms.length === 1) {
2598
+ return [new fraction_1.Fraction().zero()];
2599
+ }
2600
+ else {
2601
+ const P = this.clone().reduce().reorder();
2602
+ return [P.monoms[1].coefficient.opposed().divide(P.monoms[0].coefficient)];
2603
+ }
2604
+ // TODO: Determine the zeros of an equation of second degree.
2605
+ //case 2:
2606
+ default:
2607
+ // Make sure the polynom is factorized.
2608
+ if (this._factors.length === 0) {
2609
+ this.factorize();
2610
+ }
2611
+ let zeroes = [], zeroesAsTex = [];
2612
+ for (let P of this._factors) {
2613
+ if (P.degree().greater(2)) {
2614
+ // TODO: Handle other polynom.
2615
+ }
2616
+ else if (P.degree().value === 2) {
2617
+ let A = P.monomByDegree(2).coefficient, B = P.monomByDegree(1).coefficient, C = P.monomByDegree(0).coefficient, D = B.clone().pow(2).subtract(A.clone().multiply(C).multiply(4));
2618
+ if (D.value > 0) {
2619
+ /*console.log('Two zeroes for ', P.tex); */
2620
+ let x1 = (-(B.value) + Math.sqrt(D.value)) / (2 * A.value), x2 = (-(B.value) - Math.sqrt(D.value)) / (2 * A.value);
2621
+ zeroes.push(new fraction_1.Fraction(x1.toFixed(3)).reduce());
2622
+ zeroes.push(new fraction_1.Fraction(x2.toFixed(3)).reduce());
2623
+ }
2624
+ else if (D.value === 0) {
2625
+ /*console.log('One zero for ', P.tex); */
2626
+ }
2627
+ else {
2628
+ console.log('No zero for ', P.tex);
2629
+ }
2630
+ }
2631
+ else {
2632
+ for (let z of P.getZeroes()) {
2633
+ // Check if the zero is already in the list.
2634
+ if (z === false || z === true) {
2635
+ continue;
2636
+ }
2637
+ if (zeroesAsTex.indexOf(z.frac) === -1) {
2638
+ zeroes.push(z);
2639
+ zeroesAsTex.push(z.frac);
2640
+ }
2641
+ }
2642
+ }
2643
+ }
2644
+ return zeroes;
2645
+ }
2646
+ return Z;
2723
2647
  };
2724
2648
  // TODO: analyse the next functions to determine if they are useful or not...
2725
2649
  this.monomByDegree = (degree, letter) => {
@@ -2812,28 +2736,6 @@ class Polynom {
2812
2736
  }
2813
2737
  return M;
2814
2738
  };
2815
- this.limitToInfinity = (letter) => {
2816
- const M = this.monomByDegree(undefined, letter), sign = M.coefficient.sign(), degree = M.degree(letter);
2817
- if (degree.isStrictlyPositive()) {
2818
- return sign === 1 ? (new fraction_1.Fraction()).infinite() : (new fraction_1.Fraction()).infinite().opposed();
2819
- }
2820
- else if (degree.isZero()) {
2821
- return M.coefficient;
2822
- }
2823
- // Any other cases
2824
- return (new fraction_1.Fraction()).zero();
2825
- };
2826
- this.limitToNegativeInfinity = (letter) => {
2827
- const M = this.monomByDegree(undefined, letter), sign = M.coefficient.sign(), degree = M.degree(letter);
2828
- if (degree.isStrictlyPositive()) {
2829
- return sign === -1 ? (new fraction_1.Fraction()).infinite() : (new fraction_1.Fraction()).infinite().opposed();
2830
- }
2831
- else if (degree.isZero()) {
2832
- return M.coefficient;
2833
- }
2834
- // Any other cases
2835
- return (new fraction_1.Fraction()).zero();
2836
- };
2837
2739
  this.genDisplay = (output, forceSign, wrapParentheses) => {
2838
2740
  let P = '';
2839
2741
  for (const k of this._monoms) {
@@ -3091,9 +2993,6 @@ class Polynom {
3091
2993
  }
3092
2994
  get texFactors() {
3093
2995
  this.factorize();
3094
- if (this.factors.length === 0) {
3095
- return this.tex;
3096
- }
3097
2996
  let tex = '';
3098
2997
  for (let f of this.factors) {
3099
2998
  if (f.monoms.length > 1) {
@@ -3273,13 +3172,13 @@ Polynom.addToken = (stack, element) => {
3273
3172
  break;
3274
3173
  }
3275
3174
  };
3276
-
3277
-
3278
- /***/ }),
3279
-
3280
- /***/ 107:
3281
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3282
-
3175
+
3176
+
3177
+ /***/ }),
3178
+
3179
+ /***/ 107:
3180
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3181
+
3283
3182
 
3284
3183
  /**
3285
3184
  * Rational polynom module contains everything necessary to handle rational polynoms.
@@ -3289,7 +3188,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
3289
3188
  exports.Rational = void 0;
3290
3189
  const polynom_1 = __webpack_require__(38);
3291
3190
  const fraction_1 = __webpack_require__(506);
3292
- const equation_1 = __webpack_require__(760);
3293
3191
  /**
3294
3192
  * Rational class can handle rational polynoms
3295
3193
  */
@@ -3307,15 +3205,18 @@ class Rational {
3307
3205
  };
3308
3206
  this.domain = () => {
3309
3207
  let zeroes = this._denominator.getZeroes();
3310
- if (zeroes.length === 0 || zeroes[0].tex === equation_1.PARTICULAR_SOLUTION.real) {
3311
- return equation_1.PARTICULAR_SOLUTION.real;
3208
+ if (zeroes.length === 0 || zeroes[0] === false) {
3209
+ return '\\mathbb{R}';
3312
3210
  }
3313
- else if (zeroes[0].tex === equation_1.PARTICULAR_SOLUTION.varnothing) {
3314
- return equation_1.PARTICULAR_SOLUTION.varnothing;
3211
+ else if (zeroes[0] === true) {
3212
+ return '\\varnothing';
3315
3213
  }
3316
3214
  else {
3317
- return '\\mathbb{R}\\setminus\\left\\{' +
3318
- zeroes.map(x => x.tex).join(';') + '\\right\\}';
3215
+ return '\\mathbb{R}\\setminus\\left{' +
3216
+ zeroes.map(x => {
3217
+ return (typeof x === 'boolean') ? '' : x.frac;
3218
+ })
3219
+ .join(';') + '\\right}';
3319
3220
  }
3320
3221
  };
3321
3222
  this.amplify = (P) => {
@@ -3323,12 +3224,6 @@ class Rational {
3323
3224
  this._denominator.multiply(P);
3324
3225
  return this;
3325
3226
  };
3326
- this.derivative = (letter) => {
3327
- let N = this._numerator.clone(), D = this._denominator.clone(), dN = N.clone().derivative(letter), dD = D.clone().derivative(letter);
3328
- this._numerator = dN.clone().multiply(D).subtract(N.clone().multiply(dD));
3329
- this._denominator = D.clone().pow(2);
3330
- return this;
3331
- };
3332
3227
  this.simplify = (P) => {
3333
3228
  let NumeratorEuclidien = this._numerator.euclidian(P);
3334
3229
  if (!NumeratorEuclidien.reminder.isZero()) {
@@ -3343,7 +3238,9 @@ class Rational {
3343
3238
  return this;
3344
3239
  };
3345
3240
  this.reduce = () => {
3241
+ console.log(this._numerator.tex);
3346
3242
  this._numerator.factorize();
3243
+ console.log(this._numerator.factors.map(x => x.tex));
3347
3244
  for (let f of this._numerator.factors) {
3348
3245
  this.simplify(f);
3349
3246
  }
@@ -3368,159 +3265,50 @@ class Rational {
3368
3265
  this.subtract = (R) => {
3369
3266
  return this.add(R.clone().opposed());
3370
3267
  };
3371
- this.limits = (value, offset, letter) => {
3268
+ this.limits = (value, letter) => {
3372
3269
  if (value === Infinity || value === -Infinity) {
3373
- let { quotient, reminder } = this._numerator.clone().euclidian(this._denominator);
3374
- // quotient is positive => it will be infinite.
3375
- if (quotient.degree(letter).isStrictlyPositive()) {
3376
- return value === Infinity ? quotient.limitToInfinity(letter) : quotient.limitToNegativeInfinity(letter);
3377
- // return quotient.monomByDegree(undefined, letter).coefficient.sign()===1?(new Fraction()).infinite():(new Fraction()).infinite().opposed()
3270
+ let N = this._numerator.monomByDegree(this._numerator.degree(letter), letter), D = this._denominator.monomByDegree(this._denominator.degree(letter), letter);
3271
+ N.divide(D);
3272
+ if (N.degree(letter).isStrictlyPositive()) {
3273
+ return N.coefficient.sign() * (Math.pow((value > 0 ? 1 : -1), N.degree(letter).value % 2)) === 1 ? Infinity : -Infinity;
3378
3274
  }
3379
- else {
3380
- return quotient.monomByDegree(undefined, letter).coefficient;
3381
- }
3382
- }
3383
- else {
3384
- let evalValues = {}, evalValuesOffset = {}, theLimit, theSign, FR = this.clone().reduce();
3385
- evalValues[letter === undefined ? 'x' : letter] = new fraction_1.Fraction(value);
3386
- if (offset !== 'above' && offset !== 'below') {
3387
- theLimit = FR._numerator.evaluate(evalValues)
3388
- .divide(FR._denominator.evaluate(evalValues));
3389
- return theLimit.isInfinity() ? theLimit.abs() : theLimit;
3275
+ if (N.degree(letter).isZero()) {
3276
+ return N.coefficient;
3390
3277
  }
3391
- else {
3392
- if (offset === 'above') {
3393
- evalValuesOffset[letter === undefined ? 'x' : letter] = (new fraction_1.Fraction(value)).add(0.000001);
3394
- }
3395
- else if (offset === 'below') {
3396
- evalValuesOffset[letter === undefined ? 'x' : letter] = (new fraction_1.Fraction(value)).subtract(0.000001);
3397
- }
3398
- theLimit = FR._numerator.evaluate(evalValues)
3399
- .divide(FR._denominator.evaluate(evalValues));
3400
- theSign = FR._numerator.evaluate(evalValuesOffset)
3401
- .divide(FR._denominator.evaluate(evalValuesOffset)).sign();
3402
- if (theLimit.isInfinity()) {
3403
- return theSign === 1 ? theLimit.abs() : theLimit.abs().opposed();
3404
- }
3405
- else {
3406
- return theLimit;
3407
- }
3278
+ if (N.degree(letter).isStrictlyPositive()) {
3279
+ return N.coefficient.sign() * (Math.pow(-1, N.degree(letter).value % 2)) === 1 ? 0 : -0;
3408
3280
  }
3409
3281
  }
3410
- };
3411
- this.makeTableOfSigns = () => {
3412
- // Factorize the numerator and the denominator
3413
- this._numerator.factorize();
3414
- this._denominator.factorize();
3415
- let zeroes = equation_1.Equation.makeSolutionsUnique([...this._numerator.getZeroes(), ...this._denominator.getZeroes()], true), NFactors = this._numerator.factors, DFactors = this._denominator.factors;
3416
- let tableOfSigns = [], result = [];
3417
- NFactors.forEach(factor => {
3418
- tableOfSigns.push(this._makeOneLineOfTableOfSigns(factor, zeroes, 'z'));
3419
- });
3420
- DFactors.forEach(factor => {
3421
- tableOfSigns.push(this._makeOneLineOfTableOfSigns(factor, zeroes, 'd'));
3422
- });
3423
- // Empty line
3424
- tableOfSigns.push([]);
3425
- // Add the final row as cumulative
3426
- let resultLine = tableOfSigns[0].map((x, index) => {
3427
- if (index === 0) {
3428
- return '';
3429
- }
3430
- if (index === tableOfSigns[0].length - 1) {
3431
- return '';
3432
- }
3433
- if (index % 2 === 0) {
3434
- return 't';
3435
- }
3436
- return '+';
3437
- });
3438
- for (let current of tableOfSigns) {
3439
- for (let i = 0; i < current.length; i++) {
3440
- if (i % 2 === 0) {
3441
- // t, z or d
3442
- if (resultLine[i] === 'd') {
3443
- continue;
3444
- }
3445
- if (current[i] !== 't') {
3446
- resultLine[i] = current[i];
3447
- }
3448
- }
3449
- else {
3450
- // + or -
3451
- if (current[i] === '-') {
3452
- resultLine[i] = resultLine[i] === '+' ? '-' : '+';
3453
- }
3454
- }
3455
- }
3282
+ else {
3283
+ return this._numerator.evaluate({ letter: new fraction_1.Fraction(value) }).divide(this._denominator.evaluate({ letter: new fraction_1.Fraction(value) }));
3456
3284
  }
3457
- // Add the variation line.
3458
- // TODO: add the variation line.
3459
- tableOfSigns.push(resultLine);
3460
- let tos = {
3461
- factors: [...NFactors, ...DFactors],
3462
- zeroes: zeroes,
3463
- signs: tableOfSigns,
3464
- tex: ''
3465
- };
3466
- this._makeTexFromTableOfSigns(tos);
3467
- return tos;
3468
- };
3469
- this._makeTexFromTableOfSigns = (tos) => {
3470
- let tex = `\\begin{tikzpicture}
3471
- \\tkzTabInit[lgt=3,espcl=2,deltacl=0]{/1.2,\\(${tos.factors.map(x => x.tex).join('\\)/1,\\(')}\\)/1,/.1,\\(f(x)\\)/1.2}{{\\scriptsize \\hspace{1cm} \\(-\\infty\\)},\\(${tos.zeroes.map(x => x.tex).join('\\),\\(')}\\),{\\scriptsize \\hspace{-1cm} \\(+\\infty\\)}}`;
3472
- tos.signs.forEach(list => {
3473
- tex += (`\n\\tkzTabLine{${list.join(',')}}`);
3474
- });
3475
- tex += `\n\\end{tikzpicture}`;
3476
- tos.tex = tex;
3477
- return tex;
3478
- };
3479
- this._makeOneLineOfTableOfSigns = (factor, zeroes, zeroSign) => {
3480
- let oneLine = [],
3481
- // TODO : check if there is no zero ?
3482
- currentZero = factor.getZeroes().map(x => x.tex);
3483
- // First +/- sign, before the first zero
3484
- oneLine.push('');
3485
- oneLine.push(factor.evaluate(zeroes[0].value - 1).sign() === 1 ? '+' : '-');
3486
- for (let i = 0; i < zeroes.length; i++) {
3487
- // Add the zero if it's the current one
3488
- oneLine.push(currentZero.includes(zeroes[i].tex) ? zeroSign : 't');
3489
- // + / - sign after the current zero
3490
- if (i < zeroes.length - 1) {
3491
- oneLine.push(factor.evaluate((zeroes[i].value + zeroes[i + 1].value) / 2).sign() === 1 ? '+' : '-');
3492
- }
3493
- else if (i === zeroes.length - 1) {
3494
- oneLine.push(factor.evaluate(zeroes[i].value + 1).sign() === 1 ? '+' : '-');
3495
- }
3496
- }
3497
- oneLine.push('');
3498
- return oneLine;
3499
3285
  };
3500
3286
  this._numerator = numerator ? numerator.clone() : new polynom_1.Polynom();
3501
3287
  this._denominator = denominator ? denominator.clone() : new polynom_1.Polynom();
3502
3288
  }
3503
- get numerator() {
3504
- return this._numerator;
3505
- }
3506
- get denominator() {
3507
- return this._denominator;
3508
- }
3509
3289
  get tex() {
3510
3290
  return `\\dfrac{ ${this._numerator.tex} }{ ${this._denominator.tex} }`;
3511
3291
  }
3512
3292
  get texFactors() {
3293
+ this._numerator.factorize();
3294
+ this._denominator.factorize();
3513
3295
  return `\\dfrac{ ${this._numerator.texFactors} }{ ${this._denominator.texFactors} }`;
3514
3296
  }
3297
+ get numerator() {
3298
+ return this._numerator;
3299
+ }
3300
+ get denominator() {
3301
+ return this._denominator;
3302
+ }
3515
3303
  }
3516
3304
  exports.Rational = Rational;
3517
-
3518
-
3519
- /***/ }),
3520
-
3521
- /***/ 506:
3522
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3523
-
3305
+
3306
+
3307
+ /***/ }),
3308
+
3309
+ /***/ 506:
3310
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3311
+
3524
3312
 
3525
3313
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3526
3314
  exports.Fraction = void 0;
@@ -3851,10 +3639,10 @@ class Fraction {
3851
3639
  return isNaN(this._numerator);
3852
3640
  };
3853
3641
  this.isInfinity = () => {
3854
- return Math.abs(this._numerator) === Infinity;
3642
+ return this._numerator === Infinity;
3855
3643
  };
3856
3644
  this.isFinite = () => {
3857
- return !this.isInfinity() && !this.isNaN();
3645
+ return !this.isInfinity();
3858
3646
  };
3859
3647
  this.isSquare = () => {
3860
3648
  return Math.sqrt(this._numerator) % 1 === 0 && Math.sqrt(this._denominator) % 1 === 0;
@@ -3899,6 +3687,9 @@ class Fraction {
3899
3687
  }
3900
3688
  return this;
3901
3689
  }
3690
+ get isFraction() {
3691
+ return true;
3692
+ }
3902
3693
  // ------------------------------------------
3903
3694
  // Getter and setter
3904
3695
  // ------------------------------------------
@@ -3919,9 +3710,6 @@ class Fraction {
3919
3710
  }
3920
3711
  // Display getter
3921
3712
  get tex() {
3922
- if (this.isInfinity()) {
3923
- return `${this.sign() === 1 ? '+' : '-'}\\infty`;
3924
- }
3925
3713
  if (this._denominator === 1) {
3926
3714
  return `${this._numerator}`;
3927
3715
  }
@@ -3972,52 +3760,20 @@ Fraction.min = (...fractions) => {
3972
3760
  }
3973
3761
  return M;
3974
3762
  };
3975
- Fraction.average = (...fractions) => {
3976
- let M = new Fraction().zero();
3977
- for (let f of fractions) {
3978
- M.add(f);
3979
- }
3980
- M.divide(fractions.length);
3981
- return M;
3982
- };
3983
- Fraction.unique = (fractions, sorted) => {
3984
- // TODO: make sure it's wokring -> test !
3985
- let unique = {}, distinct = [];
3986
- fractions.forEach(x => {
3987
- if (!unique[x.clone().reduce().tex]) {
3988
- distinct.push(x.clone());
3989
- unique[x.tex] = true;
3990
- }
3991
- });
3992
- if (sorted) {
3993
- return Fraction.sort(distinct);
3994
- }
3995
- else {
3996
- return distinct;
3997
- }
3998
- };
3999
- Fraction.sort = (fractions, reverse) => {
4000
- // Todo make sure it's the correct order, not reverse -> make a test
4001
- let sorted = fractions.sort((a, b) => a.value - b.value);
4002
- if (reverse) {
4003
- sorted.reverse();
4004
- }
4005
- return sorted;
4006
- };
4007
-
4008
-
4009
- /***/ }),
4010
-
4011
- /***/ 872:
4012
- /***/ ((__unused_webpack_module, exports) => {
4013
-
3763
+
3764
+
3765
+ /***/ }),
3766
+
3767
+ /***/ 923:
3768
+ /***/ ((__unused_webpack_module, exports) => {
3769
+
4014
3770
 
4015
3771
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4016
- exports.NthRoot = void 0;
3772
+ exports.Nthroot = void 0;
4017
3773
  /**
4018
- * NthRoot is something like "a+b\sqrt{3}
3774
+ * Nthroot is something like "a+b\sqrt{3}
4019
3775
  */
4020
- class NthRoot {
3776
+ class Nthroot {
4021
3777
  constructor(...values) {
4022
3778
  // ------------------------------------------
4023
3779
  // Creation / parsing functions
@@ -4123,14 +3879,14 @@ class NthRoot {
4123
3879
  return this._coefficient * Math.pow(this._radical, 1 / this._nth);
4124
3880
  }
4125
3881
  }
4126
- exports.NthRoot = NthRoot;
4127
-
4128
-
4129
- /***/ }),
4130
-
4131
- /***/ 735:
4132
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4133
-
3882
+ exports.Nthroot = Nthroot;
3883
+
3884
+
3885
+ /***/ }),
3886
+
3887
+ /***/ 735:
3888
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3889
+
4134
3890
 
4135
3891
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4136
3892
  exports.NumExp = void 0;
@@ -4285,13 +4041,13 @@ class NumExp {
4285
4041
  }
4286
4042
  }
4287
4043
  exports.NumExp = NumExp;
4288
-
4289
-
4290
- /***/ }),
4291
-
4292
- /***/ 75:
4293
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4294
-
4044
+
4045
+
4046
+ /***/ }),
4047
+
4048
+ /***/ 75:
4049
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4050
+
4295
4051
 
4296
4052
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4297
4053
  exports.PolynomExpProduct = exports.PolynomExpFactor = void 0;
@@ -4537,13 +4293,13 @@ class PolynomExpProduct {
4537
4293
  }
4538
4294
  }
4539
4295
  exports.PolynomExpProduct = PolynomExpProduct;
4540
-
4541
-
4542
- /***/ }),
4543
-
4544
- /***/ 699:
4545
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4546
-
4296
+
4297
+
4298
+ /***/ }),
4299
+
4300
+ /***/ 699:
4301
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4302
+
4547
4303
 
4548
4304
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4549
4305
  exports.Circle = void 0;
@@ -4850,13 +4606,13 @@ class Circle {
4850
4606
  }
4851
4607
  }
4852
4608
  exports.Circle = Circle;
4853
-
4854
-
4855
- /***/ }),
4856
-
4857
- /***/ 9:
4858
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4859
-
4609
+
4610
+
4611
+ /***/ }),
4612
+
4613
+ /***/ 9:
4614
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4615
+
4860
4616
 
4861
4617
  /**
4862
4618
  * This class works for 2d line in a plane.
@@ -4940,14 +4696,6 @@ class Line {
4940
4696
  return this.parseByPointAndVector(values[0], values[1]);
4941
4697
  }
4942
4698
  }
4943
- else if (values[0] instanceof point_1.Point && values[1] instanceof Line) {
4944
- if (values[2] === LinePropriety.Parallel || values[2] === null) {
4945
- return this.parseByPointAndLine(values[0], values[1], LinePropriety.Parallel);
4946
- }
4947
- else {
4948
- return this.parseByPointAndLine(values[0], values[1], LinePropriety.Perpendicular);
4949
- }
4950
- }
4951
4699
  }
4952
4700
  // TODO: Add the ability to create line from a normal vector
4953
4701
  console.log('Someting wrong happend while creating the line');
@@ -5261,13 +5009,13 @@ class Line {
5261
5009
  exports.Line = Line;
5262
5010
  Line.PERPENDICULAR = LinePropriety.Perpendicular;
5263
5011
  Line.PARALLEL = LinePropriety.Parallel;
5264
-
5265
-
5266
- /***/ }),
5267
-
5268
- /***/ 557:
5269
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5270
-
5012
+
5013
+
5014
+ /***/ }),
5015
+
5016
+ /***/ 557:
5017
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5018
+
5271
5019
 
5272
5020
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5273
5021
  exports.Point = void 0;
@@ -5431,13 +5179,13 @@ Point.pmatrix = (a, b, c) => {
5431
5179
  return `\\begin{pmatrix} ${a.tex ? a.tex : a} \\\\ ${b.tex ? b.tex : b} \\\\ ${c.tex ? c.tex : c} \\end{pmatrix}`;
5432
5180
  }
5433
5181
  };
5434
-
5435
-
5436
- /***/ }),
5437
-
5438
- /***/ 164:
5439
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5440
-
5182
+
5183
+
5184
+ /***/ }),
5185
+
5186
+ /***/ 164:
5187
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5188
+
5441
5189
 
5442
5190
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5443
5191
  exports.Triangle = void 0;
@@ -5706,13 +5454,13 @@ class Triangle {
5706
5454
  }
5707
5455
  }
5708
5456
  exports.Triangle = Triangle;
5709
-
5710
-
5711
- /***/ }),
5712
-
5713
- /***/ 586:
5714
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5715
-
5457
+
5458
+
5459
+ /***/ }),
5460
+
5461
+ /***/ 586:
5462
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5463
+
5716
5464
 
5717
5465
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5718
5466
  exports.Vector = void 0;
@@ -5890,13 +5638,13 @@ Vector.scalarProduct = (v1, v2) => {
5890
5638
  // TODO: Transform to fraction with nthroot.
5891
5639
  return v1.x.value * v2.x.value + v1.y.value * v2.y.value;
5892
5640
  };
5893
-
5894
-
5895
- /***/ }),
5896
-
5897
- /***/ 956:
5898
- /***/ ((__unused_webpack_module, exports) => {
5899
-
5641
+
5642
+
5643
+ /***/ }),
5644
+
5645
+ /***/ 956:
5646
+ /***/ ((__unused_webpack_module, exports) => {
5647
+
5900
5648
 
5901
5649
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5902
5650
  exports.Numeric = void 0;
@@ -6002,13 +5750,13 @@ class Numeric {
6002
5750
  }
6003
5751
  }
6004
5752
  exports.Numeric = Numeric;
6005
-
6006
-
6007
- /***/ }),
6008
-
6009
- /***/ 330:
6010
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6011
-
5753
+
5754
+
5755
+ /***/ }),
5756
+
5757
+ /***/ 330:
5758
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5759
+
6012
5760
 
6013
5761
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6014
5762
  if (k2 === undefined) k2 = k;
@@ -6070,13 +5818,13 @@ var Random;
6070
5818
  }
6071
5819
  Random.shuffle = shuffle;
6072
5820
  })(Random = exports.Random || (exports.Random = {}));
6073
-
6074
-
6075
- /***/ }),
6076
-
6077
- /***/ 373:
6078
- /***/ ((__unused_webpack_module, exports) => {
6079
-
5821
+
5822
+
5823
+ /***/ }),
5824
+
5825
+ /***/ 373:
5826
+ /***/ ((__unused_webpack_module, exports) => {
5827
+
6080
5828
 
6081
5829
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6082
5830
  exports.randomCore = void 0;
@@ -6098,13 +5846,13 @@ class randomCore {
6098
5846
  }
6099
5847
  }
6100
5848
  exports.randomCore = randomCore;
6101
-
6102
-
6103
- /***/ }),
6104
-
6105
- /***/ 754:
6106
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6107
-
5849
+
5850
+
5851
+ /***/ }),
5852
+
5853
+ /***/ 754:
5854
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5855
+
6108
5856
 
6109
5857
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6110
5858
  exports.rndFraction = void 0;
@@ -6144,13 +5892,13 @@ class rndFraction extends randomCore_1.randomCore {
6144
5892
  }
6145
5893
  }
6146
5894
  exports.rndFraction = rndFraction;
6147
-
6148
-
6149
- /***/ }),
6150
-
6151
- /***/ 140:
6152
- /***/ ((__unused_webpack_module, exports) => {
6153
-
5895
+
5896
+
5897
+ /***/ }),
5898
+
5899
+ /***/ 140:
5900
+ /***/ ((__unused_webpack_module, exports) => {
5901
+
6154
5902
 
6155
5903
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6156
5904
  exports.rndHelpers = void 0;
@@ -6219,13 +5967,13 @@ class rndHelpers {
6219
5967
  }
6220
5968
  }
6221
5969
  exports.rndHelpers = rndHelpers;
6222
-
6223
-
6224
- /***/ }),
6225
-
6226
- /***/ 793:
6227
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6228
-
5970
+
5971
+
5972
+ /***/ }),
5973
+
5974
+ /***/ 793:
5975
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5976
+
6229
5977
 
6230
5978
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6231
5979
  exports.rndMonom = void 0;
@@ -6278,13 +6026,13 @@ class rndMonom extends randomCore_1.randomCore {
6278
6026
  }
6279
6027
  }
6280
6028
  exports.rndMonom = rndMonom;
6281
-
6282
-
6283
- /***/ }),
6284
-
6285
- /***/ 22:
6286
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6287
-
6029
+
6030
+
6031
+ /***/ }),
6032
+
6033
+ /***/ 22:
6034
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6035
+
6288
6036
 
6289
6037
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6290
6038
  exports.rndPolynom = void 0;
@@ -6359,22 +6107,22 @@ class rndPolynom extends randomCore_1.randomCore {
6359
6107
  }
6360
6108
  }
6361
6109
  exports.rndPolynom = rndPolynom;
6362
-
6363
-
6364
- /***/ }),
6365
-
6366
- /***/ 230:
6367
- /***/ ((__unused_webpack_module, exports) => {
6368
-
6110
+
6111
+
6112
+ /***/ }),
6113
+
6114
+ /***/ 230:
6115
+ /***/ ((__unused_webpack_module, exports) => {
6116
+
6369
6117
 
6370
6118
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6371
-
6372
-
6373
- /***/ }),
6374
-
6375
- /***/ 505:
6376
- /***/ ((__unused_webpack_module, exports) => {
6377
-
6119
+
6120
+
6121
+ /***/ }),
6122
+
6123
+ /***/ 505:
6124
+ /***/ ((__unused_webpack_module, exports) => {
6125
+
6378
6126
 
6379
6127
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6380
6128
  exports.Shutingyard = exports.ShutingyardMode = exports.ShutingyardType = exports.tokenConstant = void 0;
@@ -6679,43 +6427,43 @@ class Shutingyard {
6679
6427
  }
6680
6428
  }
6681
6429
  exports.Shutingyard = Shutingyard;
6682
-
6683
-
6684
- /***/ })
6685
-
6686
- /******/ });
6687
- /************************************************************************/
6688
- /******/ // The module cache
6689
- /******/ var __webpack_module_cache__ = {};
6690
- /******/
6691
- /******/ // The require function
6692
- /******/ function __webpack_require__(moduleId) {
6693
- /******/ // Check if module is in cache
6694
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
6695
- /******/ if (cachedModule !== undefined) {
6696
- /******/ return cachedModule.exports;
6697
- /******/ }
6698
- /******/ // Create a new module (and put it into the cache)
6699
- /******/ var module = __webpack_module_cache__[moduleId] = {
6700
- /******/ // no module.id needed
6701
- /******/ // no module.loaded needed
6702
- /******/ exports: {}
6703
- /******/ };
6704
- /******/
6705
- /******/ // Execute the module function
6706
- /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
6707
- /******/
6708
- /******/ // Return the exports of the module
6709
- /******/ return module.exports;
6710
- /******/ }
6711
- /******/
6712
- /************************************************************************/
6713
- /******/
6714
- /******/ // startup
6715
- /******/ // Load entry module and return exports
6716
- /******/ // This entry module is referenced by other modules so it can't be inlined
6717
- /******/ var __webpack_exports__ = __webpack_require__(607);
6718
- /******/
6719
- /******/ })()
6720
- ;
6430
+
6431
+
6432
+ /***/ })
6433
+
6434
+ /******/ });
6435
+ /************************************************************************/
6436
+ /******/ // The module cache
6437
+ /******/ var __webpack_module_cache__ = {};
6438
+ /******/
6439
+ /******/ // The require function
6440
+ /******/ function __webpack_require__(moduleId) {
6441
+ /******/ // Check if module is in cache
6442
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
6443
+ /******/ if (cachedModule !== undefined) {
6444
+ /******/ return cachedModule.exports;
6445
+ /******/ }
6446
+ /******/ // Create a new module (and put it into the cache)
6447
+ /******/ var module = __webpack_module_cache__[moduleId] = {
6448
+ /******/ // no module.id needed
6449
+ /******/ // no module.loaded needed
6450
+ /******/ exports: {}
6451
+ /******/ };
6452
+ /******/
6453
+ /******/ // Execute the module function
6454
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
6455
+ /******/
6456
+ /******/ // Return the exports of the module
6457
+ /******/ return module.exports;
6458
+ /******/ }
6459
+ /******/
6460
+ /************************************************************************/
6461
+ /******/
6462
+ /******/ // startup
6463
+ /******/ // Load entry module and return exports
6464
+ /******/ // This entry module is referenced by other modules so it can't be inlined
6465
+ /******/ var __webpack_exports__ = __webpack_require__(607);
6466
+ /******/
6467
+ /******/ })()
6468
+ ;
6721
6469
  //# sourceMappingURL=pi.js.map