math-exercises 2.0.7 → 2.0.10
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/lib/exercises/calcul/fractions/index.d.ts +1 -0
- package/lib/exercises/calcul/fractions/index.d.ts.map +1 -1
- package/lib/exercises/calcul/fractions/index.js +1 -0
- package/lib/exercises/calcul/fractions/periodicWritingToFraction.d.ts +9 -0
- package/lib/exercises/calcul/fractions/periodicWritingToFraction.d.ts.map +1 -0
- package/lib/exercises/calcul/fractions/periodicWritingToFraction.js +80 -0
- package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts.map +1 -1
- package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +2 -1
- package/lib/exercises/complex/argumentFromAlgebraicComplex.d.ts +6 -0
- package/lib/exercises/complex/argumentFromAlgebraicComplex.d.ts.map +1 -1
- package/lib/exercises/complex/argumentFromAlgebraicComplex.js +62 -51
- package/lib/exercises/complex/index.d.ts +1 -0
- package/lib/exercises/complex/index.d.ts.map +1 -1
- package/lib/exercises/complex/index.js +1 -0
- package/lib/exercises/functions/exponential/expEquation.d.ts +1 -0
- package/lib/exercises/functions/exponential/expEquation.d.ts.map +1 -1
- package/lib/exercises/functions/logarithm/index.d.ts +2 -0
- package/lib/exercises/functions/logarithm/index.d.ts.map +1 -1
- package/lib/exercises/functions/logarithm/index.js +2 -1
- package/lib/exercises/functions/logarithm/log10PowerSimplifying.d.ts.map +1 -1
- package/lib/exercises/functions/logarithm/log10PowerSimplifying.js +3 -2
- package/lib/exercises/functions/logarithm/log10Simplifying.d.ts +11 -0
- package/lib/exercises/functions/logarithm/log10Simplifying.d.ts.map +1 -0
- package/lib/exercises/functions/logarithm/log10Simplifying.js +97 -0
- package/lib/exercises/functions/logarithm/logEquation.d.ts.map +1 -1
- package/lib/exercises/functions/logarithm/logEquation.js +0 -1
- package/lib/exercises/functions/logarithm/logPowerEquation.d.ts +7 -1
- package/lib/exercises/functions/logarithm/logPowerEquation.d.ts.map +1 -1
- package/lib/exercises/functions/logarithm/logPowerEquation.js +47 -17
- package/lib/exercises/trigonometry/associatePoint.d.ts +7 -0
- package/lib/exercises/trigonometry/associatePoint.d.ts.map +1 -0
- package/lib/exercises/trigonometry/associatePoint.js +64 -0
- package/lib/exercises/trigonometry/index.d.ts +1 -0
- package/lib/exercises/trigonometry/index.d.ts.map +1 -1
- package/lib/exercises/trigonometry/index.js +1 -0
- package/lib/exercises/trigonometry/remarkableValues.d.ts +1 -1
- package/lib/exercises/trigonometry/remarkableValues.d.ts.map +1 -1
- package/lib/exercises/trigonometry/remarkableValues.js +9 -7
- package/lib/index.d.ts +22 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/math/numbers/decimals/decimal.d.ts +3 -0
- package/lib/math/numbers/decimals/decimal.d.ts.map +1 -1
- package/lib/math/numbers/decimals/decimal.js +8 -0
- package/lib/math/numbers/integer/integer.d.ts +1 -1
- package/lib/math/numbers/nombre.d.ts +1 -1
- package/lib/math/numbers/nombre.js +1 -1
- package/lib/math/numbers/reals/extendedRingElement.d.ts +2 -1
- package/lib/math/numbers/reals/extendedRingElement.d.ts.map +1 -1
- package/lib/math/polynomials/rationalFrac.d.ts +1 -1
- package/lib/math/polynomials/trinom.d.ts +2 -2
- package/lib/math/trigonometry/remarkableValue.d.ts +3 -10
- package/lib/math/trigonometry/remarkableValue.d.ts.map +1 -1
- package/lib/math/trigonometry/remarkableValue.js +5 -15
- package/lib/math/trigonometry/remarkableValues.d.ts +7 -1
- package/lib/math/trigonometry/remarkableValues.d.ts.map +1 -1
- package/lib/math/trigonometry/remarkableValues.js +63 -13
- package/lib/math/utils/arithmetic/gcd.js +1 -1
- package/lib/server.js +2 -7
- package/lib/tree/nodes/algebraicNode.d.ts +3 -0
- package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.d.ts +3 -1
- package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.js +5 -1
- package/lib/tree/nodes/functions/cosNode.d.ts +3 -1
- package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/cosNode.js +21 -0
- package/lib/tree/nodes/functions/expNode.d.ts +3 -1
- package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/expNode.js +4 -0
- package/lib/tree/nodes/functions/log10Node.d.ts +3 -1
- package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
- package/lib/tree/nodes/functions/log10Node.js +28 -0
- package/lib/tree/nodes/functions/logNode.d.ts +3 -1
- package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/logNode.js +32 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts +3 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/oppositeNode.js +7 -0
- package/lib/tree/nodes/functions/sinNode.d.ts +3 -1
- package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sinNode.js +21 -0
- package/lib/tree/nodes/functions/sqrtNode.d.ts +3 -0
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sqrtNode.js +41 -0
- package/lib/tree/nodes/geometry/lengthNode.d.ts +5 -1
- package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/lengthNode.js +12 -1
- package/lib/tree/nodes/node.d.ts +1 -0
- package/lib/tree/nodes/node.d.ts.map +1 -1
- package/lib/tree/nodes/node.js +14 -1
- package/lib/tree/nodes/numbers/constantNode.d.ts +3 -0
- package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/constantNode.js +7 -0
- package/lib/tree/nodes/numbers/numberNode.d.ts +3 -0
- package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/numberNode.js +7 -0
- package/lib/tree/nodes/operators/addNode.d.ts +3 -0
- package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/addNode.js +173 -0
- package/lib/tree/nodes/operators/divideNode.d.ts +3 -0
- package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/divideNode.js +12 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts +3 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +84 -0
- package/lib/tree/nodes/operators/multiplyNode.d.ts +5 -0
- package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/multiplyNode.js +126 -10
- package/lib/tree/nodes/operators/powerNode.d.ts +3 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +46 -0
- package/lib/tree/nodes/operators/substractNode.d.ts +3 -0
- package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/substractNode.js +12 -0
- package/lib/tree/nodes/variables/variableNode.d.ts +3 -0
- package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
- package/lib/tree/nodes/variables/variableNode.js +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.associatePoint = void 0;
|
|
4
|
+
const exercise_1 = require("../../exercises/exercise");
|
|
5
|
+
const getDistinctQuestions_1 = require("../../exercises/utils/getDistinctQuestions");
|
|
6
|
+
const remarkableValue_1 = require("../../math/trigonometry/remarkableValue");
|
|
7
|
+
const random_1 = require("../../utils/random");
|
|
8
|
+
const points = [
|
|
9
|
+
"I",
|
|
10
|
+
"A",
|
|
11
|
+
"B",
|
|
12
|
+
"C",
|
|
13
|
+
"J",
|
|
14
|
+
"D",
|
|
15
|
+
"E",
|
|
16
|
+
"F",
|
|
17
|
+
"G",
|
|
18
|
+
"H",
|
|
19
|
+
"K",
|
|
20
|
+
"L",
|
|
21
|
+
"M",
|
|
22
|
+
"N",
|
|
23
|
+
"P",
|
|
24
|
+
"Q",
|
|
25
|
+
];
|
|
26
|
+
const getAssociatePointQuestion = () => {
|
|
27
|
+
const remarkableValue = remarkableValue_1.RemarkableValueConstructor.simplifiable();
|
|
28
|
+
const answer = remarkableValue.point;
|
|
29
|
+
const question = {
|
|
30
|
+
answer,
|
|
31
|
+
instruction: `À quel point du cercle trigonométrique ci-dessous le réel $${remarkableValue.angle.toTex()}$ est-il associé ?
|
|
32
|
+

|
|
33
|
+
`,
|
|
34
|
+
keys: points,
|
|
35
|
+
answerFormat: "tex",
|
|
36
|
+
identifiers: { angleValue: remarkableValue.mainAngle.evaluate({}) },
|
|
37
|
+
};
|
|
38
|
+
return question;
|
|
39
|
+
};
|
|
40
|
+
const getPropositions = (n, { answer, angleValue }) => {
|
|
41
|
+
const propositions = [];
|
|
42
|
+
(0, exercise_1.addValidProp)(propositions, answer);
|
|
43
|
+
while (propositions.length < n) {
|
|
44
|
+
const rand = (0, random_1.random)(points);
|
|
45
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, rand);
|
|
46
|
+
}
|
|
47
|
+
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
48
|
+
};
|
|
49
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
50
|
+
return answer === ans;
|
|
51
|
+
};
|
|
52
|
+
exports.associatePoint = {
|
|
53
|
+
id: "associatePoint",
|
|
54
|
+
connector: "=",
|
|
55
|
+
label: "Associer un réel à un point du cercle trigonométrique",
|
|
56
|
+
levels: ["1reSpé", "TermSpé"],
|
|
57
|
+
isSingleStep: true,
|
|
58
|
+
sections: ["Trigonométrie"],
|
|
59
|
+
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAssociatePointQuestion, nb),
|
|
60
|
+
qcmTimer: 60,
|
|
61
|
+
freeTimer: 60,
|
|
62
|
+
getPropositions,
|
|
63
|
+
isAnswerValid,
|
|
64
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
|
|
@@ -19,3 +19,4 @@ __exportStar(require("./remarkableValues"), exports);
|
|
|
19
19
|
__exportStar(require("./trigonometry"), exports);
|
|
20
20
|
__exportStar(require("./trigonometryAngleCalcul"), exports);
|
|
21
21
|
__exportStar(require("./trigonometrySideCalcul"), exports);
|
|
22
|
+
__exportStar(require("./associatePoint"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/exercises/trigonometry/remarkableValues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/exercises/trigonometry/remarkableValues.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,YAAY,EAQb,MAAM,aAAa,CAAC;AAerB,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAyCF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,WAAW,CAY9D,CAAC"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.remarkableValuesExercise = void 0;
|
|
4
4
|
const remarkableValue_1 = require("../../math/trigonometry/remarkableValue");
|
|
5
5
|
const remarkableValues_1 = require("../../math/trigonometry/remarkableValues");
|
|
6
|
+
const cosNode_1 = require("../../tree/nodes/functions/cosNode");
|
|
7
|
+
const sinNode_1 = require("../../tree/nodes/functions/sinNode");
|
|
6
8
|
const coinFlip_1 = require("../../utils/coinFlip");
|
|
7
9
|
const random_1 = require("../../utils/random");
|
|
8
10
|
const shuffle_1 = require("../../utils/shuffle");
|
|
@@ -22,21 +24,21 @@ const values = [
|
|
|
22
24
|
const getRemarkableValues = () => {
|
|
23
25
|
const isCos = (0, coinFlip_1.coinFlip)();
|
|
24
26
|
const remarkableValue = remarkableValue_1.RemarkableValueConstructor.simplifiable();
|
|
25
|
-
const
|
|
27
|
+
const mainValue = remarkableValue.mainAngle.evaluate({});
|
|
28
|
+
// const valueIndex = remarkableValue.index;
|
|
26
29
|
const answer = isCos
|
|
27
30
|
? remarkableValue.cos.toTex()
|
|
28
31
|
: remarkableValue.sin.toTex();
|
|
29
|
-
(0, shuffle_1.shuffle)(values);
|
|
30
32
|
const statement = isCos
|
|
31
|
-
?
|
|
32
|
-
:
|
|
33
|
+
? new cosNode_1.CosNode(remarkableValue.angle).toTex()
|
|
34
|
+
: new sinNode_1.SinNode(remarkableValue.angle).toTex();
|
|
33
35
|
const question = {
|
|
34
36
|
instruction: `Donner la valeur exacte de : $${statement}$`,
|
|
35
37
|
startStatement: statement,
|
|
36
38
|
answer: answer,
|
|
37
39
|
keys: ["pi", "cos", "sin"],
|
|
38
40
|
answerFormat: "tex",
|
|
39
|
-
identifiers: { isCos,
|
|
41
|
+
identifiers: { isCos, mainValue },
|
|
40
42
|
};
|
|
41
43
|
return question;
|
|
42
44
|
};
|
|
@@ -49,8 +51,8 @@ const getPropositions = (n, { answer }) => {
|
|
|
49
51
|
}
|
|
50
52
|
return (0, shuffle_1.shuffle)(propositions);
|
|
51
53
|
};
|
|
52
|
-
const isAnswerValid = (ans, {
|
|
53
|
-
const remarkableValue = remarkableValues_1.remarkableTrigoValues
|
|
54
|
+
const isAnswerValid = (ans, { mainValue, isCos }) => {
|
|
55
|
+
const remarkableValue = remarkableValues_1.remarkableTrigoValues.find((point) => point.angle.evaluate({}) === mainValue);
|
|
54
56
|
const answer = isCos ? remarkableValue.cos : remarkableValue.sin;
|
|
55
57
|
const texs = answer.toAllValidTexs({ allowFractionToDecimal: true });
|
|
56
58
|
return texs.includes(ans);
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
2
|
-
|
|
2
|
+
chosenNumbers: number[];
|
|
3
3
|
}> | import("./exercises/exercise").MathExercise<{
|
|
4
4
|
numbers: number[];
|
|
5
5
|
}> | import("./exercises/exercise").MathExercise<{
|
|
6
|
-
|
|
6
|
+
numbers: number[];
|
|
7
7
|
}> | import("./exercises/exercise").MathExercise<{
|
|
8
8
|
dividend: number;
|
|
9
9
|
divisor: number;
|
|
@@ -35,6 +35,10 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
|
35
35
|
}> | import("./exercises/exercise").MathExercise<{
|
|
36
36
|
num: number;
|
|
37
37
|
denum: number;
|
|
38
|
+
}> | import("./exercises/exercise").MathExercise<{
|
|
39
|
+
num: number;
|
|
40
|
+
denum: number;
|
|
41
|
+
leadingPart: number;
|
|
38
42
|
}> | import("./exercises/exercise").MathExercise<{
|
|
39
43
|
numbers: number[];
|
|
40
44
|
}> | import("./exercises/exercise").MathExercise<{
|
|
@@ -208,6 +212,8 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
|
208
212
|
re: number;
|
|
209
213
|
im: number;
|
|
210
214
|
isRe: boolean;
|
|
215
|
+
}> | import("./exercises/exercise").MathExercise<{
|
|
216
|
+
arg: number;
|
|
211
217
|
}> | import("./exercises/exercise").MathExercise<{
|
|
212
218
|
randomUnitIndex: number;
|
|
213
219
|
randomUnitInstructionIndex: number;
|
|
@@ -417,6 +423,17 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
|
417
423
|
b: number;
|
|
418
424
|
}> | import("./exercises/exercise").MathExercise<{
|
|
419
425
|
tenthPower: number;
|
|
426
|
+
}> | import("./exercises/exercise").MathExercise<{
|
|
427
|
+
a: number;
|
|
428
|
+
powered: number;
|
|
429
|
+
c: number;
|
|
430
|
+
k: number;
|
|
431
|
+
isLog10: boolean;
|
|
432
|
+
}> | import("./exercises/exercise").MathExercise<{
|
|
433
|
+
nb: number;
|
|
434
|
+
powers: number[];
|
|
435
|
+
signs: number[];
|
|
436
|
+
isLog10: boolean;
|
|
420
437
|
}> | import("./exercises/exercise").MathExercise<{
|
|
421
438
|
coin: boolean;
|
|
422
439
|
radius: number;
|
|
@@ -691,7 +708,7 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
|
691
708
|
valueIndex: number;
|
|
692
709
|
isCos: boolean;
|
|
693
710
|
}> | import("./exercises/exercise").MathExercise<{
|
|
694
|
-
|
|
711
|
+
mainValue: number;
|
|
695
712
|
isCos: boolean;
|
|
696
713
|
}> | import("./exercises/exercise").MathExercise<{
|
|
697
714
|
sideA: string;
|
|
@@ -708,6 +725,8 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
|
|
|
708
725
|
randAngle: number;
|
|
709
726
|
randSide: number;
|
|
710
727
|
randSideQuestion: number;
|
|
728
|
+
}> | import("./exercises/exercise").MathExercise<{
|
|
729
|
+
angleValue: number;
|
|
711
730
|
}>)[];
|
|
712
731
|
export { mathExercises };
|
|
713
732
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqCA,QAAA,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqCA,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { NumberNode } from "../../../tree/nodes/numbers/numberNode";
|
|
2
2
|
import { MultiplyNode } from "../../../tree/nodes/operators/multiplyNode";
|
|
3
|
+
import { Integer } from "../integer/integer";
|
|
3
4
|
import { Nombre, NumberType } from "../nombre";
|
|
5
|
+
import { Rational } from "../rationals/rational";
|
|
4
6
|
export declare abstract class DecimalConstructor {
|
|
5
7
|
static randomFracPart(precision: number, leadingZeros?: number): string;
|
|
6
8
|
static random(min: number, max: number, precision?: number): Decimal;
|
|
@@ -24,6 +26,7 @@ export declare class Decimal implements Nombre {
|
|
|
24
26
|
multiplyByPowerOfTen(power: number): Decimal;
|
|
25
27
|
toScientificPart(): NumberNode;
|
|
26
28
|
toScientificNotation(): NumberNode | MultiplyNode;
|
|
29
|
+
toRational(): Rational | Integer;
|
|
27
30
|
toTree(): NumberNode;
|
|
28
31
|
}
|
|
29
32
|
//# sourceMappingURL=decimal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/decimals/decimal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/decimals/decimal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,8BAAsB,kBAAkB;IACtC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,MAAM;IAW1E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAMpE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAK/D,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;CAMrD;AAED,qBAAa,OAAQ,YAAW,MAAM;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,aAAsB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;gBACR,KAAK,EAAE,MAAM;IASzB;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAsEhC,oBAAoB,CAAC,KAAK,EAAE,MAAM;IA4BlC,gBAAgB;IAgBhB,oBAAoB;IAmBpB,UAAU;IAMV,MAAM;CAGP"}
|
|
@@ -7,6 +7,7 @@ const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
|
7
7
|
const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
|
|
8
8
|
const integer_1 = require("../integer/integer");
|
|
9
9
|
const nombre_1 = require("../nombre");
|
|
10
|
+
const rational_1 = require("../rationals/rational");
|
|
10
11
|
class DecimalConstructor {
|
|
11
12
|
static randomFracPart(precision, leadingZeros = 0) {
|
|
12
13
|
let decimals = "";
|
|
@@ -27,6 +28,8 @@ class DecimalConstructor {
|
|
|
27
28
|
return DecimalConstructor.fromParts(int, decimals);
|
|
28
29
|
}
|
|
29
30
|
static fromParts(intPart, decimalPart) {
|
|
31
|
+
if (decimalPart.length === 0)
|
|
32
|
+
return new Decimal(Number("" + intPart));
|
|
30
33
|
return new Decimal(Number("" + intPart + "." + decimalPart));
|
|
31
34
|
}
|
|
32
35
|
//returns X.YYYY where X € [0, 9] and first Y is not zero if X is zero
|
|
@@ -127,6 +130,8 @@ class Decimal {
|
|
|
127
130
|
return DecimalConstructor.fromParts(newIntPart, newFracPart);
|
|
128
131
|
}
|
|
129
132
|
multiplyByPowerOfTen(power) {
|
|
133
|
+
if (power === 0)
|
|
134
|
+
return this;
|
|
130
135
|
let newIntPart = "", newFracPart = "";
|
|
131
136
|
if (power > -1) {
|
|
132
137
|
newIntPart = this.intPart + "";
|
|
@@ -180,6 +185,9 @@ class Decimal {
|
|
|
180
185
|
return new multiplyNode_1.MultiplyNode(decNode, new numberNode_1.NumberNode(10));
|
|
181
186
|
return new multiplyNode_1.MultiplyNode(decNode, new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(power)));
|
|
182
187
|
}
|
|
188
|
+
toRational() {
|
|
189
|
+
return new rational_1.Rational(this.multiplyByPowerOfTen(this.precision).value, 10 ** this.precision).simplify();
|
|
190
|
+
}
|
|
183
191
|
toTree() {
|
|
184
192
|
return new numberNode_1.NumberNode(this.value);
|
|
185
193
|
}
|
|
@@ -16,6 +16,6 @@ export declare class Integer implements Nombre {
|
|
|
16
16
|
divide(nb: Nombre): Nombre;
|
|
17
17
|
multiply(nb: Nombre): Rational | Integer;
|
|
18
18
|
opposite(): Integer;
|
|
19
|
-
add(nb: Nombre):
|
|
19
|
+
add(nb: Nombre): Integer | Nombre;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=integer.d.ts.map
|
|
@@ -14,6 +14,6 @@ export interface Nombre {
|
|
|
14
14
|
toTree: (opts?: NodeOptions) => AlgebraicNode;
|
|
15
15
|
}
|
|
16
16
|
export declare abstract class NombreConstructor {
|
|
17
|
-
static random(): import("./
|
|
17
|
+
static random(): import("./rationals/rational").Rational | Integer | import("./decimals/decimal").Decimal | import("./reals/real").Real;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=nombre.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NumberNode } from '../../../tree/nodes/numbers/numberNode';
|
|
2
|
+
import { MultiplyNode } from '../../../tree/nodes/operators/multiplyNode';
|
|
2
3
|
import { SubstractNode } from '../../../tree/nodes/operators/substractNode';
|
|
3
4
|
import { Nombre } from '../nombre';
|
|
4
5
|
/**
|
|
@@ -10,6 +11,6 @@ export declare class ExtendedRingElement {
|
|
|
10
11
|
b: number;
|
|
11
12
|
algebraicElement: Nombre;
|
|
12
13
|
constructor(a: number, b: number, algebraicElement: Nombre);
|
|
13
|
-
toTree(): import("../../../tree/nodes/algebraicNode").AlgebraicNode | NumberNode | SubstractNode;
|
|
14
|
+
toTree(): import("../../../tree/nodes/algebraicNode").AlgebraicNode | NumberNode | MultiplyNode | SubstractNode;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=extendedRingElement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendedRingElement.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/reals/extendedRingElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"extendedRingElement.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/reals/extendedRingElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;GAGG;AACH,qBAAa,mBAAmB;IAM9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;gBACb,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAM1D,MAAM;CAeP"}
|
|
@@ -7,6 +7,6 @@ export declare class RationalFrac {
|
|
|
7
7
|
denum: Polynomial;
|
|
8
8
|
constructor(num: Polynomial, denum: Polynomial);
|
|
9
9
|
toTree(): FractionNode;
|
|
10
|
-
simplify():
|
|
10
|
+
simplify(): Rational | Integer | RationalFrac;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=rationalFrac.d.ts.map
|
|
@@ -27,8 +27,8 @@ export declare class Trinom extends Polynomial {
|
|
|
27
27
|
getAlphaNode(): NumberNode | FractionNode | OppositeNode;
|
|
28
28
|
getBeta(): number;
|
|
29
29
|
getBetaNode(): NumberNode | FractionNode | OppositeNode;
|
|
30
|
-
getFactorizedForm(): AlgebraicNode;
|
|
31
|
-
getCanonicalForm():
|
|
30
|
+
getFactorizedForm(): AlgebraicNode | MultiplyNode;
|
|
31
|
+
getCanonicalForm(): MultiplyNode | AddNode;
|
|
32
32
|
getSommet(): Point;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=trinom.d.ts.map
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { Rational } from "../numbers/rationals/rational";
|
|
4
|
-
export interface RemarkableValue {
|
|
5
|
-
angleValue: Integer | Rational;
|
|
6
|
-
angle: Node;
|
|
7
|
-
cos: Node;
|
|
8
|
-
sin: Node;
|
|
9
|
-
}
|
|
1
|
+
import { AlgebraicNode } from "../../tree/nodes/algebraicNode";
|
|
2
|
+
import { RemarkableValue } from "./remarkableValues";
|
|
10
3
|
export declare abstract class RemarkableValueConstructor {
|
|
11
4
|
static mainInterval: () => RemarkableValue;
|
|
12
5
|
static simplifiable: () => RemarkableValue & {
|
|
13
|
-
|
|
6
|
+
mainAngle: AlgebraicNode;
|
|
14
7
|
};
|
|
15
8
|
}
|
|
16
9
|
//# sourceMappingURL=remarkableValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remarkableValue.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"remarkableValue.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAa/D,OAAO,EAAE,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAE5E,8BAAsB,0BAA0B;IAC9C,MAAM,CAAC,YAAY,QAAO,eAAe,CAGvC;IACF,MAAM,CAAC,YAAY,QAAO,eAAe,GAAG;QAC1C,SAAS,EAAE,aAAa,CAAC;KAC1B,CAeC;CACH"}
|
|
@@ -3,12 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RemarkableValueConstructor = void 0;
|
|
4
4
|
const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
5
5
|
const piNode_1 = require("../../tree/nodes/numbers/piNode");
|
|
6
|
-
const
|
|
6
|
+
const addNode_1 = require("../../tree/nodes/operators/addNode");
|
|
7
7
|
const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
|
|
8
8
|
const random_1 = require("../../utils/random");
|
|
9
|
-
const integer_1 = require("../numbers/integer/integer");
|
|
10
|
-
const nombre_1 = require("../numbers/nombre");
|
|
11
|
-
const rational_1 = require("../numbers/rationals/rational");
|
|
12
9
|
const randint_1 = require("../utils/random/randint");
|
|
13
10
|
const remarkableValues_1 = require("./remarkableValues");
|
|
14
11
|
class RemarkableValueConstructor {
|
|
@@ -17,24 +14,17 @@ exports.RemarkableValueConstructor = RemarkableValueConstructor;
|
|
|
17
14
|
RemarkableValueConstructor.mainInterval = () => {
|
|
18
15
|
const randValue = (0, random_1.random)(remarkableValues_1.remarkableTrigoValues);
|
|
19
16
|
return randValue;
|
|
20
|
-
// return new RemarkableValue(randValue.angle, randValue.cos, randValue.sin);
|
|
21
17
|
};
|
|
22
18
|
RemarkableValueConstructor.simplifiable = () => {
|
|
23
19
|
const index = (0, randint_1.randint)(0, remarkableValues_1.remarkableTrigoValues.length);
|
|
24
20
|
const randValue = remarkableValues_1.remarkableTrigoValues[index];
|
|
25
|
-
const isInt = randValue.angleValue.type === nombre_1.NumberType.Integer;
|
|
26
21
|
const toAdd = (0, randint_1.randint)(-3, 4) * 2;
|
|
27
|
-
const newRadian =
|
|
28
|
-
? new integer_1.Integer(randValue.angleValue.value + toAdd)
|
|
29
|
-
: new rational_1.Rational(randValue.angleValue.num, randValue.angleValue.denum).add(new integer_1.Integer(toAdd));
|
|
30
|
-
const newAngle = isInt
|
|
31
|
-
? new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(newRadian.value), piNode_1.PiNode)
|
|
32
|
-
: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(newRadian.num), piNode_1.PiNode), new numberNode_1.NumberNode(newRadian.denum));
|
|
22
|
+
const newRadian = new addNode_1.AddNode(randValue.angle, new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(toAdd), piNode_1.PiNode)).simplify();
|
|
33
23
|
return {
|
|
34
|
-
|
|
35
|
-
angle:
|
|
24
|
+
mainAngle: randValue.angle,
|
|
25
|
+
angle: newRadian,
|
|
36
26
|
cos: randValue.cos,
|
|
37
27
|
sin: randValue.sin,
|
|
38
|
-
|
|
28
|
+
point: randValue.point,
|
|
39
29
|
};
|
|
40
30
|
};
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AlgebraicNode } from "../../tree/nodes/algebraicNode";
|
|
2
|
+
export interface RemarkableValue {
|
|
3
|
+
angle: AlgebraicNode;
|
|
4
|
+
cos: AlgebraicNode;
|
|
5
|
+
sin: AlgebraicNode;
|
|
6
|
+
point: string;
|
|
7
|
+
}
|
|
2
8
|
export declare const remarkableTrigoValues: RemarkableValue[];
|
|
3
9
|
//# sourceMappingURL=remarkableValues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remarkableValues.d.ts","sourceRoot":"","sources":["../../../src/math/trigonometry/remarkableValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAW/D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,eAAO,MAAM,qBAAqB,EAAE,eAAe,EA2KlD,CAAC"}
|
|
@@ -7,61 +7,111 @@ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
|
|
|
7
7
|
const piNode_1 = require("../../tree/nodes/numbers/piNode");
|
|
8
8
|
const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
|
|
9
9
|
const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
|
|
10
|
-
const integer_1 = require("../numbers/integer/integer");
|
|
11
|
-
const rational_1 = require("../numbers/rationals/rational");
|
|
12
10
|
exports.remarkableTrigoValues = [
|
|
13
11
|
{
|
|
14
|
-
angleValue:
|
|
12
|
+
// angleValue: 0,
|
|
15
13
|
angle: new numberNode_1.NumberNode(0),
|
|
16
14
|
cos: new numberNode_1.NumberNode(1),
|
|
17
15
|
sin: new numberNode_1.NumberNode(0),
|
|
16
|
+
point: "I",
|
|
18
17
|
},
|
|
19
18
|
{
|
|
20
|
-
angleValue:
|
|
19
|
+
// angleValue: Math.PI / 6,
|
|
21
20
|
angle: new fractionNode_1.FractionNode(piNode_1.PiNode, new numberNode_1.NumberNode(6)),
|
|
22
21
|
cos: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2)),
|
|
23
22
|
sin: new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2)),
|
|
23
|
+
point: "A",
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
angleValue:
|
|
26
|
+
// angleValue: Math.PI / 4,
|
|
27
27
|
angle: new fractionNode_1.FractionNode(piNode_1.PiNode, new numberNode_1.NumberNode(4)),
|
|
28
28
|
cos: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2)),
|
|
29
29
|
sin: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2)),
|
|
30
|
+
point: "B",
|
|
30
31
|
},
|
|
31
32
|
{
|
|
32
|
-
angleValue:
|
|
33
|
+
// angleValue: Math.PI / 3,
|
|
33
34
|
angle: new fractionNode_1.FractionNode(piNode_1.PiNode, new numberNode_1.NumberNode(3)),
|
|
34
35
|
cos: new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2)),
|
|
35
36
|
sin: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2)),
|
|
37
|
+
point: "C",
|
|
36
38
|
},
|
|
37
39
|
{
|
|
38
|
-
angleValue:
|
|
40
|
+
// angleValue: Math.PI / 2,
|
|
39
41
|
angle: new fractionNode_1.FractionNode(piNode_1.PiNode, new numberNode_1.NumberNode(2)),
|
|
40
42
|
cos: new numberNode_1.NumberNode(0),
|
|
41
43
|
sin: new numberNode_1.NumberNode(1),
|
|
44
|
+
point: "J",
|
|
42
45
|
},
|
|
43
46
|
{
|
|
44
|
-
angleValue:
|
|
47
|
+
// angleValue: (Math.PI * 2) / 3,
|
|
45
48
|
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(2), piNode_1.PiNode), new numberNode_1.NumberNode(3)),
|
|
46
49
|
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2))),
|
|
47
50
|
sin: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2)),
|
|
51
|
+
point: "D",
|
|
48
52
|
},
|
|
49
53
|
{
|
|
50
|
-
angleValue:
|
|
54
|
+
// angleValue: (Math.PI * 3) / 4,
|
|
51
55
|
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(3), piNode_1.PiNode), new numberNode_1.NumberNode(4)),
|
|
52
56
|
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2))),
|
|
53
57
|
sin: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2)),
|
|
58
|
+
point: "E",
|
|
54
59
|
},
|
|
55
60
|
{
|
|
56
|
-
angleValue:
|
|
61
|
+
// angleValue: (Math.PI * 5) / 6,
|
|
57
62
|
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(5), piNode_1.PiNode), new numberNode_1.NumberNode(6)),
|
|
58
|
-
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(
|
|
59
|
-
sin: new
|
|
63
|
+
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2))),
|
|
64
|
+
sin: new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2)),
|
|
65
|
+
point: "F",
|
|
60
66
|
},
|
|
61
67
|
{
|
|
62
|
-
angleValue:
|
|
68
|
+
// angleValue: Math.PI,
|
|
69
|
+
//
|
|
63
70
|
angle: piNode_1.PiNode,
|
|
64
71
|
cos: new numberNode_1.NumberNode(-1),
|
|
65
72
|
sin: new numberNode_1.NumberNode(0),
|
|
73
|
+
point: "G",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(7), piNode_1.PiNode), new numberNode_1.NumberNode(6)),
|
|
77
|
+
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2))),
|
|
78
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2))),
|
|
79
|
+
point: "H",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(5), piNode_1.PiNode), new numberNode_1.NumberNode(4)),
|
|
83
|
+
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2))),
|
|
84
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2))),
|
|
85
|
+
point: "K",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(7), piNode_1.PiNode), new numberNode_1.NumberNode(3)),
|
|
89
|
+
cos: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2))),
|
|
90
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2))),
|
|
91
|
+
point: "L",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(3), piNode_1.PiNode), new numberNode_1.NumberNode(2)),
|
|
95
|
+
cos: new numberNode_1.NumberNode(0),
|
|
96
|
+
sin: new numberNode_1.NumberNode(-1),
|
|
97
|
+
point: "M",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(5), piNode_1.PiNode), new numberNode_1.NumberNode(3)),
|
|
101
|
+
cos: new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2)),
|
|
102
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2))),
|
|
103
|
+
point: "N",
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(7), piNode_1.PiNode), new numberNode_1.NumberNode(4)),
|
|
107
|
+
cos: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2)),
|
|
108
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(2)), new numberNode_1.NumberNode(2))),
|
|
109
|
+
point: "P",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
angle: new fractionNode_1.FractionNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(11), piNode_1.PiNode), new numberNode_1.NumberNode(6)),
|
|
113
|
+
cos: new fractionNode_1.FractionNode(new sqrtNode_1.SqrtNode(new numberNode_1.NumberNode(3)), new numberNode_1.NumberNode(2)),
|
|
114
|
+
sin: new oppositeNode_1.OppositeNode(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(1), new numberNode_1.NumberNode(2))),
|
|
115
|
+
point: "Q",
|
|
66
116
|
},
|
|
67
117
|
];
|
package/lib/server.js
CHANGED
|
@@ -35,22 +35,17 @@ const express_1 = __importDefault(require("express"));
|
|
|
35
35
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
36
36
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
37
37
|
const cors_1 = __importDefault(require("cors"));
|
|
38
|
-
const multiplyNode_1 = require("./tree/nodes/operators/multiplyNode");
|
|
39
|
-
const numberNode_1 = require("./tree/nodes/numbers/numberNode");
|
|
40
|
-
const addNode_1 = require("./tree/nodes/operators/addNode");
|
|
41
|
-
const powerNode_1 = require("./tree/nodes/operators/powerNode");
|
|
42
38
|
const jsonParser = body_parser_1.default.json();
|
|
43
39
|
const allExercises = [...exercises];
|
|
44
40
|
const runServer = () => {
|
|
45
41
|
dotenv_1.default.config();
|
|
46
42
|
const app = (0, express_1.default)();
|
|
47
43
|
app.use((0, cors_1.default)());
|
|
48
|
-
console.log(exercises.length);
|
|
44
|
+
console.log(exercises.length + " exercices");
|
|
45
|
+
console.log(exercises.filter((exo) => exo.isSingleStep).length);
|
|
49
46
|
app.get("/", (req, res) => {
|
|
50
47
|
res.json(allExercises);
|
|
51
48
|
});
|
|
52
|
-
const tree = new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(3), new addNode_1.AddNode(new powerNode_1.SquareNode(new numberNode_1.NumberNode(4)), new powerNode_1.PowerNode(new numberNode_1.NumberNode(2), new numberNode_1.NumberNode(3))));
|
|
53
|
-
console.log(tree.evaluate({}));
|
|
54
49
|
app.get("/exo", (req, res) => {
|
|
55
50
|
const exoId = req.query.exoId;
|
|
56
51
|
const exoIndex = allExercises.findIndex((exo) => exo.id == exoId);
|
|
@@ -2,5 +2,8 @@ import { Node, NodeOptions } from "./node";
|
|
|
2
2
|
export interface AlgebraicNode extends Node {
|
|
3
3
|
evaluate: (vars: Record<string, number>) => number;
|
|
4
4
|
toEquivalentNodes: (opts?: NodeOptions) => AlgebraicNode[];
|
|
5
|
+
simplify: () => AlgebraicNode;
|
|
6
|
+
equals: (node: AlgebraicNode) => boolean;
|
|
7
|
+
isNumeric: boolean;
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=algebraicNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,aAAc,SAAQ,IAAI;IAEzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,aAAc,SAAQ,IAAI;IAEzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;IAC3D,QAAQ,EAAE,MAAM,aAAa,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}
|