pimath 0.0.52 → 0.0.53
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/dist/pi.js +20 -18
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/esm/maths/algebra/equation.js +10 -10
- package/esm/maths/algebra/equation.js.map +10 -1
- package/esm/maths/algebra/linearSystem.js +1 -1
- package/esm/maths/algebra/linearSystem.js.map +10 -1
- package/esm/maths/algebra/monom.js +2 -2
- package/esm/maths/algebra/monom.js.map +10 -1
- package/esm/maths/algebra/rational.js +3 -5
- package/esm/maths/algebra/rational.js.map +10 -1
- package/esm/maths/expressions/polynomexp.bkp.js +2 -3
- package/esm/maths/expressions/polynomexp.bkp.js.map +10 -1
- package/esm/maths/expressions/polynomexp.js +3 -3
- package/esm/maths/expressions/polynomexp.js.map +10 -1
- package/esm/maths/geometry/point.js +1 -1
- package/esm/maths/geometry/point.js.map +10 -1
- package/esm/maths/randomization/random.js +9 -1
- package/esm/maths/randomization/random.js.map +10 -1
- package/package.json +1 -1
- package/src/maths/algebra/equation.ts +7 -7
- package/src/maths/algebra/linearSystem.ts +1 -1
- package/src/maths/algebra/monom.ts +3 -4
- package/src/maths/algebra/rational.ts +4 -3
- package/src/maths/expressions/polynomexp.bkp.ts +1 -2
- package/src/maths/expressions/polynomexp.ts +1 -1
- package/src/maths/geometry/point.ts +1 -1
- package/tests/algebra/equation.test.ts +2 -4
- package/tests/algebra/monom.test.ts +1 -1
- package/tests/algebra/polynom.test.ts +2 -2
- package/tests/algebra/rationnal.test.ts +34 -1
|
@@ -1 +1,10 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "point.js",
|
|
4
|
+
"sourceRoot": "",
|
|
5
|
+
"sources": [
|
|
6
|
+
"../../../src/maths/geometry/point.ts"
|
|
7
|
+
],
|
|
8
|
+
"names": [],
|
|
9
|
+
"mappings": "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"
|
|
10
|
+
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = {
|
|
7
|
+
enumerable: true, get: function () {
|
|
8
|
+
return m[k];
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
5
13
|
}) : (function(o, m, k, k2) {
|
|
6
14
|
if (k2 === undefined) k2 = k;
|
|
7
15
|
o[k2] = m[k];
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "random.js",
|
|
4
|
+
"sourceRoot": "",
|
|
5
|
+
"sources": [
|
|
6
|
+
"../../../src/maths/randomization/random.ts"
|
|
7
|
+
],
|
|
8
|
+
"names": [],
|
|
9
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAExC,+CAA0C;AAK1C,6CAA0B;AAE1B,IAAiB,MAAM,CAoCtB;AApCD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAY,EAAE,EAAU;QAC3C,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAFe,aAAM,SAErB,CAAA;IAED,SAAgB,SAAS,CAAC,GAAW,EAAE,SAAmB;QACtD,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAFe,gBAAS,YAExB,CAAA;IAED,SAAgB,IAAI,CAAC,OAAgB;QACjC,OAAO,uBAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAU,EAAE,MAAe;QAC7C,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,GAAU;QAC3B,OAAO,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,OAAO,CAAC,GAAU;QAC9B,uBAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAFe,cAAO,UAEtB,CAAA;AACL,CAAC,EApCgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAoCtB"
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -652,12 +652,12 @@ export class Equation {
|
|
|
652
652
|
} else {
|
|
653
653
|
this._solutions = [
|
|
654
654
|
{
|
|
655
|
-
tex: `\\
|
|
655
|
+
tex: `\\frac{${-b / gcd} - ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
656
656
|
value: realX1,
|
|
657
657
|
exact: false
|
|
658
658
|
},
|
|
659
659
|
{
|
|
660
|
-
tex: `\\
|
|
660
|
+
tex: `\\frac{${-b / gcd} + ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
661
661
|
value: realX2,
|
|
662
662
|
exact: false
|
|
663
663
|
},
|
|
@@ -680,12 +680,12 @@ export class Equation {
|
|
|
680
680
|
} else {
|
|
681
681
|
this._solutions = [
|
|
682
682
|
{
|
|
683
|
-
tex: `\\
|
|
683
|
+
tex: `\\frac{- ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
684
684
|
value: realX1,
|
|
685
685
|
exact: false
|
|
686
686
|
},
|
|
687
687
|
{
|
|
688
|
-
tex: `\\
|
|
688
|
+
tex: `\\frac{${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
689
689
|
value: realX2,
|
|
690
690
|
exact: false
|
|
691
691
|
},
|
|
@@ -698,12 +698,12 @@ export class Equation {
|
|
|
698
698
|
S2 = new Fraction(-b + nthDelta.coefficient, 2 * a).reduce()
|
|
699
699
|
this._solutions = [
|
|
700
700
|
{
|
|
701
|
-
tex: S1.
|
|
701
|
+
tex: S1.frac,
|
|
702
702
|
value: realX1,
|
|
703
703
|
exact: S1
|
|
704
704
|
},
|
|
705
705
|
{
|
|
706
|
-
tex: S2.
|
|
706
|
+
tex: S2.frac,
|
|
707
707
|
value: realX2,
|
|
708
708
|
exact: S2
|
|
709
709
|
}
|
|
@@ -714,7 +714,7 @@ export class Equation {
|
|
|
714
714
|
} else if (delta === 0) {
|
|
715
715
|
const sol = new Fraction(-b, 2 * a).reduce()
|
|
716
716
|
this._solutions = [{
|
|
717
|
-
tex: sol.
|
|
717
|
+
tex: sol.frac,
|
|
718
718
|
value: sol.value,
|
|
719
719
|
exact: sol
|
|
720
720
|
}];
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* Monom class
|
|
3
3
|
*/
|
|
4
4
|
import {Numeric} from "../numeric";
|
|
5
|
-
import {Shutingyard, ShutingyardType, Token
|
|
6
|
-
import {log} from "util";
|
|
5
|
+
import {Shutingyard, ShutingyardType, Token} from "../shutingyard";
|
|
7
6
|
import {Fraction} from "../coefficients/fraction";
|
|
8
7
|
|
|
9
8
|
export type literalType = {
|
|
@@ -273,7 +272,7 @@ export class Monom {
|
|
|
273
272
|
if (L === '') {
|
|
274
273
|
// No setLetter - means it's only a number !
|
|
275
274
|
if (this._coefficient.value != 0) {
|
|
276
|
-
return `${this._coefficient.
|
|
275
|
+
return `${this._coefficient.frac}`;
|
|
277
276
|
} else {
|
|
278
277
|
return '0';
|
|
279
278
|
}
|
|
@@ -285,7 +284,7 @@ export class Monom {
|
|
|
285
284
|
} else if (this._coefficient.value === 0) {
|
|
286
285
|
return '0';
|
|
287
286
|
} else {
|
|
288
|
-
return `${this._coefficient.
|
|
287
|
+
return `${this._coefficient.frac}${L}`;
|
|
289
288
|
}
|
|
290
289
|
}
|
|
291
290
|
}
|
|
@@ -37,11 +37,11 @@ export class Rational {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
get tex(): string {
|
|
40
|
-
return `\\
|
|
40
|
+
return `\\frac{ ${this._numerator.tex} }{ ${this._denominator.tex} }`;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
get texFactors(): string {
|
|
44
|
-
return `\\
|
|
44
|
+
return `\\frac{ ${this._numerator.texFactors} }{ ${this._denominator.texFactors} }`
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
clone = (): Rational => {
|
|
@@ -265,9 +265,9 @@ export class Rational {
|
|
|
265
265
|
}
|
|
266
266
|
private _makeOneLineOfTableOfSigns = (factor: Polynom, zeroes: ISolution[], zeroSign: string): string[] => {
|
|
267
267
|
let oneLine: string[] = [],
|
|
268
|
-
// TODO : check if there is no zero ?
|
|
269
268
|
currentZero = factor.getZeroes().map(x=>x.tex)
|
|
270
269
|
|
|
270
|
+
|
|
271
271
|
// First +/- sign, before the first zero
|
|
272
272
|
oneLine.push('')
|
|
273
273
|
oneLine.push(factor.evaluate(zeroes[0].value - 1).sign() === 1 ? '+' : '-')
|
|
@@ -284,6 +284,7 @@ export class Rational {
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
}
|
|
287
|
+
|
|
287
288
|
oneLine.push('')
|
|
288
289
|
|
|
289
290
|
return oneLine
|
|
@@ -57,9 +57,8 @@ export class PolynomExpFactor {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
console.log(numerators.length)
|
|
61
60
|
if (denominators.length > 0) {
|
|
62
|
-
return `\\
|
|
61
|
+
return `\\frac{ ${numerators.length > 0 ? numerators.join('') : 1} }{ ${denominators.join('')} }`
|
|
63
62
|
} else {
|
|
64
63
|
return numerators.join('')
|
|
65
64
|
}
|
|
@@ -207,7 +207,7 @@ export class PolynomExpProduct {
|
|
|
207
207
|
// restore all degrees to negative again.
|
|
208
208
|
denominators.map(x => x.degree.opposed())
|
|
209
209
|
|
|
210
|
-
tex = `\\
|
|
210
|
+
tex = `\\frac{ ${numeratorsAsTex.join(' \\cdot ')} }{ ${denominatorsAsTex.join(' \\cdot ')} }`
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -181,7 +181,7 @@ export class Point {
|
|
|
181
181
|
|
|
182
182
|
value = V.norm
|
|
183
183
|
fraction = V.normSquare.sqrt()
|
|
184
|
-
tex = V.normSquare.isSquare()?fraction.tex
|
|
184
|
+
tex = V.normSquare.isSquare() ? fraction.tex : `\\sqrt{\\frac{ ${V.normSquare.numerator} }{ ${V.normSquare.denominator} }}`
|
|
185
185
|
}
|
|
186
186
|
return { value, fraction, tex }
|
|
187
187
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import {describe} from "mocha";
|
|
2
|
-
import {Rational} from "../../src/maths/algebra/rational";
|
|
3
|
-
import {Polynom} from "../../src/maths/algebra/polynom";
|
|
4
2
|
import {expect} from "chai";
|
|
5
3
|
import {Equation} from "../../src/maths/algebra/equation";
|
|
6
4
|
|
|
@@ -31,8 +29,8 @@ describe('Equations tests', () => {
|
|
|
31
29
|
let E6 = new Equation('5x^2+7x-31', 0)
|
|
32
30
|
E6.solve()
|
|
33
31
|
expect(E6.solutions.map(x=>x.tex)).to.have.all.members([
|
|
34
|
-
'\\
|
|
35
|
-
'\\
|
|
32
|
+
'\\frac{-7 - \\sqrt{669} }{ 10 }',
|
|
33
|
+
'\\frac{-7 + \\sqrt{669} }{ 10 }'
|
|
36
34
|
] )
|
|
37
35
|
})
|
|
38
36
|
})
|
|
@@ -76,6 +76,6 @@ describe('Monom with fraction power', () => {
|
|
|
76
76
|
console.log(M.tex)
|
|
77
77
|
|
|
78
78
|
// TODO: Problem while displaying numerical expression
|
|
79
|
-
expect(M.tex).to.be.equal('-\\
|
|
79
|
+
expect(M.tex).to.be.equal('-\\frac{ 7 }{ 5 }x^{\\tfrac{ 22 }{ 15 }}')
|
|
80
80
|
})
|
|
81
81
|
})
|
|
@@ -15,7 +15,7 @@ describe('Polynom tests', () => {
|
|
|
15
15
|
const P = new Polynom('-3/5x-2')
|
|
16
16
|
|
|
17
17
|
console.log(P.tex)
|
|
18
|
-
expect(P.tex).to.be.equal('-\\
|
|
18
|
+
expect(P.tex).to.be.equal('-\\frac{ 3 }{ 5 }x-2')
|
|
19
19
|
})
|
|
20
20
|
|
|
21
21
|
it('Tex display', () => {
|
|
@@ -83,7 +83,7 @@ describe('Polynom parsing with rational power', () => {
|
|
|
83
83
|
it('should parse with rational powers', () => {
|
|
84
84
|
const P = new Polynom('3x^(2/3)-5x+5/3');
|
|
85
85
|
|
|
86
|
-
expect(P.tex).to.be.equal('3x^{\\tfrac{ 2 }{ 3 }}-5x+\\
|
|
86
|
+
expect(P.tex).to.be.equal('3x^{\\tfrac{ 2 }{ 3 }}-5x+\\frac{ 5 }{ 3 }')
|
|
87
87
|
})
|
|
88
88
|
})
|
|
89
89
|
|
|
@@ -42,7 +42,6 @@ describe('Rational tests', () => {
|
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
it('should make a table of signs', function () {
|
|
45
|
-
|
|
46
45
|
const FR = new Rational(
|
|
47
46
|
new Polynom('(x-2)'),
|
|
48
47
|
new Polynom('(x+2)')
|
|
@@ -50,6 +49,40 @@ describe('Rational tests', () => {
|
|
|
50
49
|
let tos = FR.makeTableOfSigns()
|
|
51
50
|
expect(tos.zeroes.map(x => x.tex)).to.have.all.members(['-2', '2'])
|
|
52
51
|
expect(tos.signs).to.be.eql([['', '-', 't', '-', 'z', '+', ''], ['', '-', 'd', '+', 't', '+', ''], [], ['', '+', 'd', '-', 'z', '+', '']])
|
|
52
|
+
|
|
53
|
+
const FR2 = new Rational(
|
|
54
|
+
new Polynom('6x^2+7x-20'),
|
|
55
|
+
new Polynom('x^2-16')
|
|
56
|
+
)
|
|
57
|
+
let tos2 = FR2.makeTableOfSigns()
|
|
58
|
+
expect(tos2.signs).to.be.eql([
|
|
59
|
+
[
|
|
60
|
+
'', '-', 't', '-',
|
|
61
|
+
'z', '+', 't', '+',
|
|
62
|
+
't', '+', ''
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
'', '-', 't', '-',
|
|
66
|
+
't', '-', 'z', '+',
|
|
67
|
+
't', '+', ''
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
'', '-', 'd', '+',
|
|
71
|
+
't', '+', 't', '+',
|
|
72
|
+
't', '+', ''
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'', '-', 't', '-',
|
|
76
|
+
't', '-', 't', '-',
|
|
77
|
+
'd', '+', ''
|
|
78
|
+
],
|
|
79
|
+
[],
|
|
80
|
+
[
|
|
81
|
+
'', '+', 'd', '-',
|
|
82
|
+
'z', '+', 'z', '-',
|
|
83
|
+
'd', '+', ''
|
|
84
|
+
]
|
|
85
|
+
])
|
|
53
86
|
});
|
|
54
87
|
|
|
55
88
|
it('should calculate the derivative', function () {
|