math-exercises 2.2.67 → 2.2.68
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/math/calcul/fractions/fractionsOperations.d.ts +8 -0
- package/lib/exercises/math/calcul/fractions/fractionsOperations.d.ts.map +1 -0
- package/lib/exercises/math/calcul/fractions/fractionsOperations.js +85 -0
- package/lib/exercises/math/calcul/fractions/index.d.ts +1 -0
- package/lib/exercises/math/calcul/fractions/index.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/index.js +1 -0
- package/lib/exercises/math/derivation/derivative/rootFunctionDerivative.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/rootFunctionDerivative.js +11 -1
- package/lib/exercises/math/functions/affines/leadingCoefficient.d.ts.map +1 -1
- package/lib/exercises/math/functions/affines/leadingCoefficient.js +9 -16
- package/lib/exercises/math/geometry/cartesian/placeAbscissOnLine.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +1 -4
- package/lib/tree/nodes/algebraicNode.d.ts +1 -0
- package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.d.ts +1 -0
- package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.js +7 -0
- package/lib/tree/nodes/functions/arcSinNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arcSinNode.js +3 -0
- package/lib/tree/nodes/functions/arccosNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arccosNode.js +3 -0
- package/lib/tree/nodes/functions/arctanNode.d.ts +1 -0
- package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/arctanNode.js +3 -0
- package/lib/tree/nodes/functions/cosNode.d.ts +2 -0
- package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/cosNode.js +9 -1
- package/lib/tree/nodes/functions/expNode.d.ts +2 -0
- package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/expNode.js +10 -1
- package/lib/tree/nodes/functions/log10Node.d.ts +1 -0
- package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
- package/lib/tree/nodes/functions/log10Node.js +3 -0
- package/lib/tree/nodes/functions/logNode.d.ts +1 -0
- package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/logNode.js +3 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts +1 -0
- package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/oppositeNode.js +3 -0
- package/lib/tree/nodes/functions/sinNode.d.ts +2 -0
- package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sinNode.js +11 -1
- package/lib/tree/nodes/functions/sqrtNode.d.ts +1 -0
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sqrtNode.js +3 -0
- package/lib/tree/nodes/functions/tanNode.d.ts +2 -0
- package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/tanNode.js +9 -1
- package/lib/tree/nodes/geometry/degree.d.ts +1 -0
- package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/degree.js +3 -0
- package/lib/tree/nodes/geometry/lengthNode.d.ts +1 -0
- package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
- package/lib/tree/nodes/geometry/lengthNode.js +3 -0
- package/lib/tree/nodes/node.d.ts +1 -0
- package/lib/tree/nodes/node.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/constantNode.d.ts +2 -0
- package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/constantNode.js +10 -1
- package/lib/tree/nodes/numbers/infiniteNode.d.ts +0 -2
- package/lib/tree/nodes/numbers/infiniteNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/infiniteNode.js +1 -6
- package/lib/tree/nodes/numbers/numberNode.d.ts +1 -0
- package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
- package/lib/tree/nodes/numbers/numberNode.js +3 -0
- package/lib/tree/nodes/operators/addNode.d.ts +1 -0
- package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/addNode.js +3 -0
- package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts +1 -0
- package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/binomialCoefficientNode.js +3 -0
- package/lib/tree/nodes/operators/divideNode.d.ts +4 -1
- package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/divideNode.js +17 -2
- package/lib/tree/nodes/operators/fractionNode.d.ts +1 -0
- package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/fractionNode.js +3 -0
- package/lib/tree/nodes/operators/limitNode.d.ts +1 -0
- package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/limitNode.js +3 -0
- package/lib/tree/nodes/operators/multiplyNode.d.ts +1 -0
- package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/multiplyNode.js +10 -2
- package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +6 -0
- package/lib/tree/nodes/operators/substractNode.d.ts +4 -2
- package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/substractNode.js +9 -2
- package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
- package/lib/tree/nodes/sets/intervalNode.js +8 -8
- package/lib/tree/nodes/variables/variableNode.d.ts +1 -0
- package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
- package/lib/tree/nodes/variables/variableNode.js +7 -0
- package/package.json +1 -1
|
@@ -20,6 +20,10 @@ const substract = (a, b) => {
|
|
|
20
20
|
exports.substract = substract;
|
|
21
21
|
class SubstractNode {
|
|
22
22
|
constructor(leftChild, rightChild, opts) {
|
|
23
|
+
this.shuffle = () => {
|
|
24
|
+
if ((0, coinFlip_1.coinFlip)())
|
|
25
|
+
[this.leftChild, this.rightChild] = [this.rightChild, this.leftChild];
|
|
26
|
+
};
|
|
23
27
|
this.id = operatorNode_1.OperatorIds.substract;
|
|
24
28
|
this.leftChild = leftChild;
|
|
25
29
|
this.rightChild = rightChild;
|
|
@@ -33,8 +37,8 @@ class SubstractNode {
|
|
|
33
37
|
toIdentifiers() {
|
|
34
38
|
return {
|
|
35
39
|
id: node_1.NodeIds.substract,
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
leftChild: this.leftChild.toIdentifiers(),
|
|
41
|
+
rightChild: this.rightChild.toIdentifiers(),
|
|
38
42
|
};
|
|
39
43
|
}
|
|
40
44
|
toEquivalentNodes() {
|
|
@@ -88,5 +92,8 @@ class SubstractNode {
|
|
|
88
92
|
toDetailedEvaluation(vars) {
|
|
89
93
|
return new SubstractNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
|
|
90
94
|
}
|
|
95
|
+
derivative(varName) {
|
|
96
|
+
return (0, exports.substract)(this.leftChild.derivative(varName), this.rightChild.derivative(varName));
|
|
97
|
+
}
|
|
91
98
|
}
|
|
92
99
|
exports.SubstractNode = SubstractNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AACF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;gBAEf,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAWpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,QAAQ;IAIR,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAYxB,YAAY;IAkCZ,KAAK;IAWL,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ;CAGT"}
|
|
@@ -72,12 +72,12 @@ class IntervalNode {
|
|
|
72
72
|
return new IntervalNode(this.a, this.b, closure_1.Closure.rightReverse(this.closure));
|
|
73
73
|
}
|
|
74
74
|
toRandomDifferentClosure() {
|
|
75
|
-
if ((0,
|
|
75
|
+
if ((0, constantNode_1.isInfiniteNode)(this.a) && (0, constantNode_1.isInfiniteNode)(this.b))
|
|
76
76
|
return this;
|
|
77
77
|
let closure;
|
|
78
78
|
do {
|
|
79
|
-
const left = (0,
|
|
80
|
-
const right = (0,
|
|
79
|
+
const left = (0, constantNode_1.isInfiniteNode)(this.a) ? "]" : (0, random_1.random)(["[", "]"]);
|
|
80
|
+
const right = (0, constantNode_1.isInfiniteNode)(this.b)
|
|
81
81
|
? "["
|
|
82
82
|
: (0, random_1.random)(["[", "]"]);
|
|
83
83
|
closure = closure_1.Closure.fromBrackets(left, right);
|
|
@@ -85,12 +85,12 @@ class IntervalNode {
|
|
|
85
85
|
return new IntervalNode(this.a, this.b, closure);
|
|
86
86
|
}
|
|
87
87
|
toComplement() {
|
|
88
|
-
if ((0,
|
|
88
|
+
if ((0, constantNode_1.isInfiniteNode)(this.a) && (0, constantNode_1.isInfiniteNode)(this.b))
|
|
89
89
|
return this;
|
|
90
|
-
if ((0,
|
|
90
|
+
if ((0, constantNode_1.isInfiniteNode)(this.a)) {
|
|
91
91
|
return new IntervalNode(this.b, infiniteNode_1.PlusInfinityNode, this.closure === closure_1.ClosureType.OF ? closure_1.ClosureType.FO : closure_1.ClosureType.OO);
|
|
92
92
|
}
|
|
93
|
-
if ((0,
|
|
93
|
+
if ((0, constantNode_1.isInfiniteNode)(this.b)) {
|
|
94
94
|
return new IntervalNode(infiniteNode_1.MinusInfinityNode, this.a, this.closure === closure_1.ClosureType.FO ? closure_1.ClosureType.OO : closure_1.ClosureType.OF);
|
|
95
95
|
}
|
|
96
96
|
const aClosed = this.closure === closure_1.ClosureType.FO || this.closure === closure_1.ClosureType.FF;
|
|
@@ -127,11 +127,11 @@ class IntervalNode {
|
|
|
127
127
|
}
|
|
128
128
|
toText(isPlural, isFeminine) {
|
|
129
129
|
const conjugaison = isFeminine ? "e" : "" + isPlural ? "s" : "";
|
|
130
|
-
return (0,
|
|
130
|
+
return (0, constantNode_1.isInfiniteNode)(this.a)
|
|
131
131
|
? closure_1.Closure.isRightOpen(this.closure)
|
|
132
132
|
? `strictement inférieur${conjugaison} à $${this.b.toTex()}$`
|
|
133
133
|
: `inférieur${conjugaison} à $${this.b.toTex()}$`
|
|
134
|
-
: (0,
|
|
134
|
+
: (0, constantNode_1.isInfiniteNode)(this.b)
|
|
135
135
|
? closure_1.Closure.isLeftOpen(this.closure)
|
|
136
136
|
? `strictement supérieur${conjugaison} à $${this.a.toTex()}$`
|
|
137
137
|
: `supérieur${conjugaison} à $${this.a.toTex()}$`
|
|
@@ -19,5 +19,6 @@ export declare class VariableNode implements AlgebraicNode {
|
|
|
19
19
|
simplify(): this;
|
|
20
20
|
equals(node: AlgebraicNode): boolean;
|
|
21
21
|
toDetailedEvaluation(vars: Record<string, AlgebraicNode>): AlgebraicNode;
|
|
22
|
+
derivative(varName?: string | undefined): AlgebraicNode;
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=variableNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variableNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/variables/variableNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,WAAqB;IACzB,SAAS,EAAE,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;IAIxB,aAAa;;;;IAMb,KAAK,IAAI,MAAM;IAGf,YAAY,IAAI,MAAM;IAGtB,QAAQ;IAGR,cAAc;IAGd,iBAAiB;IAIjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAStC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;IAG1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"variableNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/variables/variableNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,WAAqB;IACzB,SAAS,EAAE,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;IAIxB,aAAa;;;;IAMb,KAAK,IAAI,MAAM;IAGf,YAAY,IAAI,MAAM;IAGtB,QAAQ;IAGR,cAAc;IAGd,iBAAiB;IAIjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAStC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;IAG1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAKxD,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa;CAKxD"}
|
|
@@ -53,5 +53,12 @@ class VariableNode {
|
|
|
53
53
|
throw Error("Detailed Evaluation variable non handled");
|
|
54
54
|
return vars[this.name];
|
|
55
55
|
}
|
|
56
|
+
derivative(varName) {
|
|
57
|
+
const variable = varName ?? "x";
|
|
58
|
+
if (this.name === variable)
|
|
59
|
+
return (1).toTree();
|
|
60
|
+
else
|
|
61
|
+
return (0).toTree();
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
exports.VariableNode = VariableNode;
|