pimath 0.0.14 → 0.0.18
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/dev/index.html +37 -3
- package/dev/pi.js +901 -721
- package/dev/pi.js.map +1 -1
- package/dist/pi.js +1 -1
- package/dist/pi.js.map +1 -1
- package/esm/main.js +24 -22
- package/esm/main.js.map +1 -1
- package/esm/maths/algebra/equation.d.ts +2 -1
- package/esm/maths/algebra/equation.js +29 -25
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/algebra/index.d.ts +0 -20
- package/esm/maths/algebra/index.js +18 -33
- package/esm/maths/algebra/index.js.map +1 -1
- package/esm/maths/algebra/linearSystem.d.ts +1 -1
- package/esm/maths/algebra/linearSystem.js +19 -15
- package/esm/maths/algebra/linearSystem.js.map +1 -1
- package/esm/maths/algebra/logicalset.js +7 -3
- package/esm/maths/algebra/logicalset.js.map +1 -1
- package/esm/maths/algebra/monom.d.ts +15 -18
- package/esm/maths/algebra/monom.js +182 -84
- package/esm/maths/algebra/monom.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +6 -27
- package/esm/maths/algebra/polynom.js +62 -218
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/algebra/rational.js +15 -10
- package/esm/maths/algebra/rational.js.map +1 -1
- package/esm/maths/coefficients/fraction.d.ts +20 -10
- package/esm/maths/coefficients/fraction.js +83 -15
- package/esm/maths/coefficients/fraction.js.map +1 -1
- package/esm/maths/coefficients/index.js +14 -2
- package/esm/maths/coefficients/index.js.map +1 -1
- package/esm/maths/coefficients/nthroot.js +5 -1
- package/esm/maths/coefficients/nthroot.js.map +1 -1
- package/esm/maths/geometry/circle.d.ts +12 -0
- package/esm/maths/geometry/circle.js +79 -13
- package/esm/maths/geometry/circle.js.map +1 -1
- package/esm/maths/geometry/index.d.ts +0 -17
- package/esm/maths/geometry/index.js +17 -28
- package/esm/maths/geometry/index.js.map +1 -1
- package/esm/maths/geometry/line.d.ts +18 -4
- package/esm/maths/geometry/line.js +109 -49
- package/esm/maths/geometry/line.js.map +1 -1
- package/esm/maths/geometry/point.d.ts +1 -0
- package/esm/maths/geometry/point.js +22 -12
- package/esm/maths/geometry/point.js.map +1 -1
- package/esm/maths/geometry/triangle.js +31 -27
- package/esm/maths/geometry/triangle.js.map +1 -1
- package/esm/maths/geometry/vector.d.ts +0 -1
- package/esm/maths/geometry/vector.js +22 -21
- package/esm/maths/geometry/vector.js.map +1 -1
- package/esm/maths/numeric.js +5 -1
- package/esm/maths/numeric.js.map +1 -1
- package/esm/maths/random/index.d.ts +3 -1
- package/esm/maths/random/index.js +32 -14
- package/esm/maths/random/index.js.map +1 -1
- package/esm/maths/random/randomCore.js +5 -1
- package/esm/maths/random/randomCore.js.map +1 -1
- package/esm/maths/random/rndFraction.d.ts +9 -0
- package/esm/maths/random/rndFraction.js +30 -0
- package/esm/maths/random/rndFraction.js.map +1 -0
- package/esm/maths/random/rndHelpers.js +5 -1
- package/esm/maths/random/rndHelpers.js.map +1 -1
- package/esm/maths/random/rndMonom.d.ts +2 -2
- package/esm/maths/random/rndMonom.js +15 -8
- package/esm/maths/random/rndMonom.js.map +1 -1
- package/esm/maths/random/rndPolynom.d.ts +1 -1
- package/esm/maths/random/rndPolynom.js +22 -10
- package/esm/maths/random/rndPolynom.js.map +1 -1
- package/esm/maths/random/rndTypes.d.ts +5 -0
- package/esm/maths/random/rndTypes.js +2 -1
- package/esm/maths/shutingyard.js +5 -1
- package/esm/maths/shutingyard.js.map +1 -1
- package/package.json +5 -5
- package/src/maths/algebra/equation.ts +8 -7
- package/src/maths/algebra/index.ts +1 -17
- package/src/maths/algebra/linearSystem.ts +3 -3
- package/src/maths/algebra/monom.ts +764 -612
- package/src/maths/algebra/monom_bck.backup +746 -0
- package/src/maths/algebra/polynom.ts +977 -1176
- package/src/maths/algebra/rational.ts +6 -6
- package/src/maths/coefficients/fraction.ts +98 -27
- package/src/maths/geometry/circle.ts +106 -19
- package/src/maths/geometry/index.ts +0 -14
- package/src/maths/geometry/line.ts +145 -58
- package/src/maths/geometry/point.ts +9 -0
- package/src/maths/geometry/vector.ts +1 -5
- package/src/maths/random/index.ts +7 -1
- package/src/maths/random/rndFraction.ts +37 -0
- package/src/maths/random/rndMonom.ts +6 -3
- package/src/maths/random/rndPolynom.ts +15 -5
- package/src/maths/random/rndTypes.ts +5 -0
- package/src/maths/shutingyard.ts +2 -0
- package/tests/algebra/monom.test.ts +47 -8
- package/tests/algebra/polynom.test.ts +13 -22
- package/tests/coefficients/fraction.test.ts +35 -38
- package/tests/shutingyard.test.ts +0 -1
- package/tsconfig.json +2 -2
- package/tsconfig.testing.json +28 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rndMonom = void 0;
|
|
4
|
+
const randomCore_1 = require("./randomCore");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
const monom_1 = require("../algebra/monom");
|
|
7
|
+
class rndMonom extends randomCore_1.randomCore {
|
|
5
8
|
constructor(userConfig) {
|
|
6
9
|
super();
|
|
7
10
|
this._defaultConfig = {
|
|
@@ -13,15 +16,18 @@ export class rndMonom extends randomCore {
|
|
|
13
16
|
this._config = this.mergeConfig(userConfig, this._defaultConfig);
|
|
14
17
|
}
|
|
15
18
|
generate = () => {
|
|
16
|
-
let M = new Monom();
|
|
17
|
-
M.coefficient
|
|
19
|
+
let M = new monom_1.Monom();
|
|
20
|
+
M.coefficient = index_1.Random.fraction({
|
|
21
|
+
zero: this._config.zero,
|
|
22
|
+
reduced: true
|
|
23
|
+
});
|
|
18
24
|
if (this._config.letters.length > 1) {
|
|
19
25
|
for (let L of this._config.letters.split('')) {
|
|
20
26
|
M.setLetter(L, 0);
|
|
21
27
|
}
|
|
22
28
|
for (let i = 0; i < this._config.degree; i++) {
|
|
23
|
-
const L = Random.item(this._config.letters.split(""));
|
|
24
|
-
M.setLetter(L, M.degree(L)
|
|
29
|
+
const L = index_1.Random.item(this._config.letters.split(""));
|
|
30
|
+
M.setLetter(L, M.degree(L).clone().add(1));
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
else {
|
|
@@ -30,4 +36,5 @@ export class rndMonom extends randomCore {
|
|
|
30
36
|
return M;
|
|
31
37
|
};
|
|
32
38
|
}
|
|
39
|
+
exports.rndMonom = rndMonom;
|
|
33
40
|
//# sourceMappingURL=rndMonom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rndMonom.js","sourceRoot":"","sources":["../../../src/maths/random/rndMonom.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"rndMonom.js","sourceRoot":"","sources":["../../../src/maths/random/rndMonom.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,mCAA+B;AAC/B,4CAAuC;AAKnC,MAAa,QAAS,SAAQ,uBAAU;IAIpC,YAAY,UAA8B;QACtC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG;YAClB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;SACd,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAU,EAAE;QAEnB,IAAI,CAAC,GAAG,IAAI,aAAK,EAAE,CAAA;QAGnB,CAAC,CAAC,WAAW,GAAG,cAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI;SAChB,CAAC,CAAA;QAGF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAEjC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1C,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,CAAC,GAAG,cAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrD,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACJ;aAAM;YACH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SACzD;QAED,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;CACJ;AA3CD,4BA2CC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomCore } from "./randomCore";
|
|
2
2
|
import { randomPolynomConfig } from "./rndTypes";
|
|
3
|
-
import { Polynom } from "../algebra
|
|
3
|
+
import { Polynom } from "../algebra";
|
|
4
4
|
export declare class rndPolynom extends randomCore {
|
|
5
5
|
protected _config: randomPolynomConfig;
|
|
6
6
|
protected _defaultConfig: randomPolynomConfig;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rndPolynom = void 0;
|
|
4
|
+
const randomCore_1 = require("./randomCore");
|
|
5
|
+
const rndMonom_1 = require("./rndMonom");
|
|
6
|
+
const index_1 = require("./index");
|
|
7
|
+
const algebra_1 = require("../algebra");
|
|
8
|
+
class rndPolynom extends randomCore_1.randomCore {
|
|
6
9
|
constructor(userConfig) {
|
|
7
10
|
super();
|
|
8
11
|
this._defaultConfig = {
|
|
@@ -18,9 +21,12 @@ export class rndPolynom extends randomCore {
|
|
|
18
21
|
this._config = this.mergeConfig(userConfig, this._defaultConfig);
|
|
19
22
|
}
|
|
20
23
|
generate = () => {
|
|
21
|
-
|
|
24
|
+
if (this._config.factorable && this._config.degree > 1) {
|
|
25
|
+
return this.factorable();
|
|
26
|
+
}
|
|
27
|
+
let P = new algebra_1.Polynom().empty(), M;
|
|
22
28
|
for (let i = this._config.degree; i >= 0; i--) {
|
|
23
|
-
M = new rndMonom({
|
|
29
|
+
M = new rndMonom_1.rndMonom({
|
|
24
30
|
letters: this._config.letters,
|
|
25
31
|
degree: i,
|
|
26
32
|
fraction: this._config.fraction,
|
|
@@ -32,14 +38,20 @@ export class rndPolynom extends randomCore {
|
|
|
32
38
|
P.add(M);
|
|
33
39
|
}
|
|
34
40
|
if (this._config.numberOfMonoms > 0 && this._config.numberOfMonoms < P.length) {
|
|
35
|
-
|
|
36
|
-
P.monoms = Random.array(P.monoms, this._config.numberOfMonoms);
|
|
41
|
+
P.monoms = index_1.Random.array(P.monoms, this._config.numberOfMonoms);
|
|
37
42
|
}
|
|
38
43
|
return P;
|
|
39
44
|
};
|
|
40
45
|
factorable = () => {
|
|
41
|
-
let P = new Polynom();
|
|
46
|
+
let P = new algebra_1.Polynom().one();
|
|
47
|
+
let _factorableConfig = { ...this._config };
|
|
48
|
+
_factorableConfig.degree = 1;
|
|
49
|
+
_factorableConfig.factorable = false;
|
|
50
|
+
for (let i = 0; i < this._config.degree; i++) {
|
|
51
|
+
P.multiply(index_1.Random.polynom(_factorableConfig));
|
|
52
|
+
}
|
|
42
53
|
return P;
|
|
43
54
|
};
|
|
44
55
|
}
|
|
56
|
+
exports.rndPolynom = rndPolynom;
|
|
45
57
|
//# sourceMappingURL=rndPolynom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rndPolynom.js","sourceRoot":"","sources":["../../../src/maths/random/rndPolynom.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"rndPolynom.js","sourceRoot":"","sources":["../../../src/maths/random/rndPolynom.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,yCAAoC;AACpC,mCAA+B;AAC/B,wCAAmC;AAMnC,MAAa,UAAW,SAAQ,uBAAU;IAItC,YAAY,UAAgC;QACxC,KAAK,EAAE,CAAC;QAGR,IAAI,CAAC,cAAc,GAAG;YAClB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,CAAC;SACpB,CAAA;QAGD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED,QAAQ,GAAG,GAAY,EAAE;QACrB,IAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAC,CAAC,EAAC;YAChD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;SAC3B;QAGD,IAAI,CAAC,GAAG,IAAI,iBAAO,EAAE,CAAC,KAAK,EAAE,EACzB,CAAQ,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAE3C,CAAC,GAAG,IAAI,mBAAQ,CAAC;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;aAC1E,CAAC,CAAC,QAAQ,EAAE,CAAA;YAGb,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChD,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;aACtB;YAGD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACX;QAGD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE;YAC3E,CAAC,CAAC,MAAM,GAAG,cAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;SACjE;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;IAED,UAAU,GAAG,GAAY,EAAE;QACvB,IAAI,CAAC,GAAG,IAAI,iBAAO,EAAE,CAAC,GAAG,EAAE,CAAA;QAE3B,IAAI,iBAAiB,GAAG,EAAC,GAAG,IAAI,CAAC,OAAO,EAAC,CAAA;QACzC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAA;QAEpC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,cAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;SAChD;QAED,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;CACJ;AArED,gCAqEC"}
|
package/esm/maths/shutingyard.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Shutingyard = void 0;
|
|
4
|
+
class Shutingyard {
|
|
2
5
|
_rpn = [];
|
|
3
6
|
_mode;
|
|
4
7
|
_tokenConfig;
|
|
@@ -227,4 +230,5 @@ export class Shutingyard {
|
|
|
227
230
|
return this._rpn;
|
|
228
231
|
}
|
|
229
232
|
}
|
|
233
|
+
exports.Shutingyard = Shutingyard;
|
|
230
234
|
//# sourceMappingURL=shutingyard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutingyard.js","sourceRoot":"","sources":["../../src/maths/shutingyard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shutingyard.js","sourceRoot":"","sources":["../../src/maths/shutingyard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pimath",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "A math library for teacher :)",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "mocha -r ts-node/register 'tests/**/*.test.ts'",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"author": "Basil Gass",
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@types/chai": "
|
|
19
|
-
"@types/mocha": "
|
|
18
|
+
"@types/chai": "*",
|
|
19
|
+
"@types/mocha": "*",
|
|
20
20
|
"@typescript-eslint/eslint-plugin": "^5.3.1",
|
|
21
21
|
"@typescript-eslint/parser": "^5.3.1",
|
|
22
|
-
"chai": "
|
|
22
|
+
"chai": "*",
|
|
23
|
+
"mocha": "*",
|
|
23
24
|
"eslint": "^8.2.0",
|
|
24
|
-
"mocha": "^9.1.3",
|
|
25
25
|
"ts-loader": "^9.2.6",
|
|
26
26
|
"ts-node": "^10.4.0",
|
|
27
27
|
"typedoc": "^0.22.9",
|
|
@@ -37,8 +37,8 @@ export class Equation {
|
|
|
37
37
|
this.parse(equations[0]);
|
|
38
38
|
}
|
|
39
39
|
} else if (equations.length === 2) {
|
|
40
|
-
this.left = equations[0]
|
|
41
|
-
this.right = equations[1]
|
|
40
|
+
this.left = (equations[0] instanceof Polynom) ? equations[0].clone() : new Polynom(equations[0]);
|
|
41
|
+
this.right = (equations[1] instanceof Polynom) ? equations[1].clone() : new Polynom(equations[1]);
|
|
42
42
|
} else {
|
|
43
43
|
// Return default empty equation
|
|
44
44
|
return this;
|
|
@@ -282,7 +282,7 @@ export class Equation {
|
|
|
282
282
|
}
|
|
283
283
|
let mMove: Monom;
|
|
284
284
|
for (let m of this._left.monoms) {
|
|
285
|
-
if (m.degree()
|
|
285
|
+
if (m.degree().isZero()) {
|
|
286
286
|
mMove = m.clone();
|
|
287
287
|
this._left.subtract(mMove);
|
|
288
288
|
this._right.subtract(mMove);
|
|
@@ -313,7 +313,7 @@ export class Equation {
|
|
|
313
313
|
|
|
314
314
|
// Both part of the equations must be of the first degree.
|
|
315
315
|
//TODO: handle equations of degree two or more ?
|
|
316
|
-
if (this.degree(letter)
|
|
316
|
+
if (!this.degree(letter).isOne()) {
|
|
317
317
|
return false;
|
|
318
318
|
}
|
|
319
319
|
|
|
@@ -406,8 +406,8 @@ export class Equation {
|
|
|
406
406
|
* Get the degree of the equation
|
|
407
407
|
* @param letter
|
|
408
408
|
*/
|
|
409
|
-
degree = (letter?: string):
|
|
410
|
-
return
|
|
409
|
+
degree = (letter?: string): Fraction => {
|
|
410
|
+
return Fraction.max(this._left.degree(letter), this._right.degree(letter));
|
|
411
411
|
};
|
|
412
412
|
|
|
413
413
|
/**
|
|
@@ -431,9 +431,10 @@ export class Equation {
|
|
|
431
431
|
|
|
432
432
|
// TODO: this._polynom could be removed.
|
|
433
433
|
// TODO: consolidate solving equations (inequations vs equations)
|
|
434
|
+
// TODO: work with not natural degrees ?
|
|
434
435
|
this._polynom = this._left.clone().subtract(this._right);
|
|
435
436
|
|
|
436
|
-
switch (this._polynom.degree(letter)) {
|
|
437
|
+
switch (this._polynom.degree(letter).value) {
|
|
437
438
|
case 0:
|
|
438
439
|
case 1:
|
|
439
440
|
this._solveDegree1(letter);
|
|
@@ -3,20 +3,4 @@ export * from "./linearSystem"
|
|
|
3
3
|
export * from "./logicalset"
|
|
4
4
|
export * from "./monom"
|
|
5
5
|
export * from "./polynom"
|
|
6
|
-
export * from "./rational"
|
|
7
|
-
|
|
8
|
-
import {Polynom as _Polynom} from "./polynom";
|
|
9
|
-
import {Monom as _Monom} from "./monom";
|
|
10
|
-
import {LinearSystem as _LinearSystem} from "./linearSystem";
|
|
11
|
-
import {Equation as _Equation} from "./equation";
|
|
12
|
-
import {Logicalset as _LogicalSet} from "./logicalset"
|
|
13
|
-
import {Rational as _Rational} from "./rational";
|
|
14
|
-
|
|
15
|
-
export namespace Algebra {
|
|
16
|
-
export class Polynom extends _Polynom{}
|
|
17
|
-
export class Monom extends _Monom{}
|
|
18
|
-
export class LinearSystem extends _LinearSystem{}
|
|
19
|
-
export class Equation extends _Equation{}
|
|
20
|
-
export class LogicalSet extends _LogicalSet{}
|
|
21
|
-
export class Rational extends _Rational{}
|
|
22
|
-
}
|
|
6
|
+
export * from "./rational"
|
|
@@ -21,7 +21,7 @@ import {Random} from "../random";
|
|
|
21
21
|
return this;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
get
|
|
24
|
+
get isLinearSystem() {
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -52,7 +52,7 @@ import {Random} from "../random";
|
|
|
52
52
|
return false;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//
|
|
55
|
+
//TODO: Must check if two equations isn't a linear combination of the others ?
|
|
56
56
|
|
|
57
57
|
return true;
|
|
58
58
|
}
|
|
@@ -92,7 +92,7 @@ import {Random} from "../random";
|
|
|
92
92
|
// Add the equal sign
|
|
93
93
|
equStr.push('=');
|
|
94
94
|
|
|
95
|
-
// Add the right hand part of the equation (should be only a number, because it has been
|
|
95
|
+
// Add the right hand part of the equation (should be only a number, because it has been reordered)
|
|
96
96
|
equStr.push(equ.right.tex);
|
|
97
97
|
|
|
98
98
|
// Add to the list.
|