pimath 0.0.42 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +23 -23
- package/dist/pi.js +327 -579
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/docs/assets/highlight.css +78 -78
- package/docs/assets/icons.css +1043 -1043
- package/docs/assets/main.js +52 -52
- package/docs/assets/search.js +1 -1
- package/docs/assets/style.css +1388 -1388
- package/docs/classes/{algebra.Equation.html → Algebra.Equation.html} +25 -25
- package/docs/classes/algebra.Logicalset.html +4 -4
- package/docs/classes/algebra.Monom.html +113 -113
- package/docs/classes/algebra.Polynom.html +29 -29
- package/docs/classes/algebra.Rational.html +3 -3
- package/docs/classes/coefficients.Fraction.html +18 -18
- package/docs/classes/coefficients.Nthroot.html +2 -2
- package/docs/classes/geometry.Circle.html +2 -2
- package/docs/classes/geometry.Line.html +2 -2
- package/docs/classes/geometry.Triangle.html +16 -16
- package/docs/classes/numeric.Numeric.html +13 -13
- package/docs/classes/shutingyard.Shutingyard.html +17 -17
- package/docs/index.html +10 -10
- package/docs/modules/{algebra.html → Algebra.html} +0 -0
- package/docs/modules/{random.html → Random.html} +0 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.js +2 -2
- package/esm/maths/algebra/equation.d.ts +2 -7
- package/esm/maths/algebra/equation.js +9 -52
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +1 -4
- package/esm/maths/algebra/polynom.js +62 -120
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/algebra/rational.d.ts +6 -16
- package/esm/maths/algebra/rational.js +30 -141
- package/esm/maths/algebra/rational.js.map +1 -1
- package/esm/maths/coefficients/fraction.d.ts +1 -3
- package/esm/maths/coefficients/fraction.js +5 -37
- package/esm/maths/coefficients/fraction.js.map +1 -1
- package/esm/maths/coefficients/{nthRoot.d.ts → nthroot.d.ts} +5 -5
- package/esm/maths/coefficients/{nthRoot.js → nthroot.js} +5 -5
- package/esm/maths/coefficients/{nthRoot.js.map → nthroot.js.map} +1 -1
- package/esm/maths/geometry/line.js +0 -8
- package/esm/maths/geometry/line.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/maths/algebra/equation.ts +12 -61
- package/src/maths/algebra/polynom.ts +68 -128
- package/src/maths/algebra/rational.ts +98 -242
- package/src/maths/coefficients/fraction.ts +6 -44
- package/src/maths/coefficients/{nthRoot.ts → nthroot.ts} +5 -5
- package/src/maths/geometry/line.ts +1 -0
- package/tests/algebra/monom.test.ts +4 -1
- package/tests/coefficients/fraction.test.ts +1 -43
- package/tests/geometry/circle.test.ts +2 -4
- package/tests/algebra/equation.test.ts +0 -38
- 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
|
|
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:
|
|
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 =
|
|
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
|
|
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 =
|
|
83
|
-
this._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.
|
|
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
|
|
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 = (
|
|
648
|
-
//
|
|
649
|
-
//
|
|
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
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
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]
|
|
3311
|
-
return
|
|
3208
|
+
if (zeroes.length === 0 || zeroes[0] === false) {
|
|
3209
|
+
return '\\mathbb{R}';
|
|
3312
3210
|
}
|
|
3313
|
-
else if (zeroes[0]
|
|
3314
|
-
return
|
|
3211
|
+
else if (zeroes[0] === true) {
|
|
3212
|
+
return '\\varnothing';
|
|
3315
3213
|
}
|
|
3316
3214
|
else {
|
|
3317
|
-
return '\\mathbb{R}\\setminus\\left
|
|
3318
|
-
zeroes.map(x =>
|
|
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,
|
|
3268
|
+
this.limits = (value, letter) => {
|
|
3372
3269
|
if (value === Infinity || value === -Infinity) {
|
|
3373
|
-
let
|
|
3374
|
-
|
|
3375
|
-
if (
|
|
3376
|
-
return value
|
|
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
|
-
|
|
3380
|
-
return
|
|
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
|
-
|
|
3392
|
-
|
|
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
|
-
|
|
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
|
|
3642
|
+
return this._numerator === Infinity;
|
|
3855
3643
|
};
|
|
3856
3644
|
this.isFinite = () => {
|
|
3857
|
-
return !this.isInfinity()
|
|
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
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
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.
|
|
3772
|
+
exports.Nthroot = void 0;
|
|
4017
3773
|
/**
|
|
4018
|
-
*
|
|
3774
|
+
* Nthroot is something like "a+b\sqrt{3}
|
|
4019
3775
|
*/
|
|
4020
|
-
class
|
|
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.
|
|
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
|