math-exercises 2.0.6 → 2.0.7

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.
Files changed (77) hide show
  1. package/lib/exercises/calculLitteral/equation/index.d.ts +0 -2
  2. package/lib/exercises/calculLitteral/equation/index.d.ts.map +1 -1
  3. package/lib/exercises/calculLitteral/equation/index.js +0 -2
  4. package/lib/exercises/calculLitteral/simplifying/index.d.ts +0 -2
  5. package/lib/exercises/calculLitteral/simplifying/index.d.ts.map +1 -1
  6. package/lib/exercises/calculLitteral/simplifying/index.js +0 -2
  7. package/lib/exercises/exercise.d.ts +1 -1
  8. package/lib/exercises/exercise.d.ts.map +1 -1
  9. package/lib/exercises/functions/basics/graphicEquation.d.ts +8 -0
  10. package/lib/exercises/functions/basics/graphicEquation.d.ts.map +1 -0
  11. package/lib/exercises/functions/basics/graphicEquation.js +109 -0
  12. package/lib/exercises/functions/basics/graphicInequation.d.ts +16 -0
  13. package/lib/exercises/functions/basics/graphicInequation.d.ts.map +1 -0
  14. package/lib/exercises/functions/basics/graphicInequation.js +147 -0
  15. package/lib/exercises/functions/basics/index.d.ts +2 -0
  16. package/lib/exercises/functions/basics/index.d.ts.map +1 -1
  17. package/lib/exercises/functions/basics/index.js +2 -0
  18. package/lib/exercises/functions/exponential/expEquation.d.ts +8 -0
  19. package/lib/exercises/functions/exponential/expEquation.d.ts.map +1 -0
  20. package/lib/exercises/functions/exponential/expEquation.js +75 -0
  21. package/lib/exercises/functions/exponential/expSimplifiying.d.ts +10 -0
  22. package/lib/exercises/functions/exponential/expSimplifiying.d.ts.map +1 -0
  23. package/lib/exercises/functions/exponential/expSimplifiying.js +116 -0
  24. package/lib/exercises/functions/exponential/index.d.ts +3 -0
  25. package/lib/exercises/functions/exponential/index.d.ts.map +1 -0
  26. package/lib/exercises/functions/exponential/index.js +18 -0
  27. package/lib/exercises/functions/index.d.ts +2 -0
  28. package/lib/exercises/functions/index.d.ts.map +1 -1
  29. package/lib/exercises/functions/index.js +2 -0
  30. package/lib/exercises/functions/logarithm/index.d.ts +4 -0
  31. package/lib/exercises/functions/logarithm/index.d.ts.map +1 -0
  32. package/lib/exercises/functions/logarithm/index.js +20 -0
  33. package/lib/exercises/functions/logarithm/log10PowerSimplifying.d.ts +7 -0
  34. package/lib/exercises/functions/logarithm/log10PowerSimplifying.d.ts.map +1 -0
  35. package/lib/exercises/functions/logarithm/log10PowerSimplifying.js +53 -0
  36. package/lib/exercises/functions/logarithm/logEquation.d.ts +9 -0
  37. package/lib/exercises/functions/logarithm/logEquation.d.ts.map +1 -0
  38. package/lib/exercises/functions/logarithm/logEquation.js +74 -0
  39. package/lib/exercises/functions/logarithm/logPowerEquation.d.ts +6 -0
  40. package/lib/exercises/functions/logarithm/logPowerEquation.d.ts.map +1 -0
  41. package/lib/exercises/functions/logarithm/logPowerEquation.js +73 -0
  42. package/lib/exercises/functions/logarithm/logSimplifiying.d.ts +9 -0
  43. package/lib/exercises/functions/logarithm/logSimplifiying.d.ts.map +1 -0
  44. package/lib/exercises/functions/logarithm/logSimplifiying.js +77 -0
  45. package/lib/exercises/sets/intervals/inequalityToInterval.d.ts.map +1 -1
  46. package/lib/index.d.ts +32 -17
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/math/complex/complex.d.ts +1 -1
  49. package/lib/math/numbers/logarithms/ln.d.ts +12 -0
  50. package/lib/math/numbers/logarithms/ln.d.ts.map +1 -0
  51. package/lib/math/numbers/logarithms/ln.js +18 -0
  52. package/lib/tree/nodes/functions/functionNode.d.ts +3 -2
  53. package/lib/tree/nodes/functions/functionNode.d.ts.map +1 -1
  54. package/lib/tree/nodes/functions/functionNode.js +3 -2
  55. package/lib/tree/nodes/functions/log10Node.d.ts +18 -0
  56. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -0
  57. package/lib/tree/nodes/functions/log10Node.js +54 -0
  58. package/lib/tree/nodes/functions/logNode.js +1 -1
  59. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +3 -2
  60. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  61. package/lib/tree/nodes/inequations/inequationSolutionNode.js +15 -6
  62. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  63. package/lib/tree/nodes/operators/addNode.js +2 -0
  64. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  65. package/lib/tree/nodes/sets/discreteSetNode.d.ts +3 -1
  66. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  67. package/lib/tree/nodes/sets/discreteSetNode.js +7 -1
  68. package/lib/tree/nodes/sets/intervalNode.d.ts +3 -1
  69. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  70. package/lib/tree/nodes/sets/intervalNode.js +7 -1
  71. package/lib/tree/nodes/sets/setNode.d.ts +9 -1
  72. package/lib/tree/nodes/sets/setNode.d.ts.map +1 -1
  73. package/lib/tree/nodes/sets/setNode.js +12 -0
  74. package/lib/tree/nodes/sets/unionIntervalNode.d.ts +3 -1
  75. package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
  76. package/lib/tree/nodes/sets/unionIntervalNode.js +7 -1
  77. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exercises/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -20,3 +20,5 @@ __exportStar(require("./basics"), exports);
20
20
  __exportStar(require("./cube"), exports);
21
21
  __exportStar(require("./rationalFraction"), exports);
22
22
  __exportStar(require("./trinoms"), exports);
23
+ __exportStar(require("./exponential"), exports);
24
+ __exportStar(require("./logarithm"), exports);
@@ -0,0 +1,4 @@
1
+ export * from "./logEquation";
2
+ export * from "./logSimplifiying";
3
+ export * from "./log10PowerSimplifying";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./logEquation"), exports);
18
+ __exportStar(require("./logSimplifiying"), exports);
19
+ __exportStar(require("./log10PowerSimplifying"), exports);
20
+ // export * from "./logPowerEquation";
@@ -0,0 +1,7 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ tenthPower: number;
4
+ };
5
+ export declare const log10PowerSimplifying: MathExercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=log10PowerSimplifying.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log10PowerSimplifying.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/log10PowerSimplifying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAqCF,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,WAAW,CAa3D,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.log10PowerSimplifying = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const decimal_1 = require("../../../math/numbers/decimals/decimal");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const log10Node_1 = require("../../../tree/nodes/functions/log10Node");
9
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
10
+ const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
11
+ const probaFlip_1 = require("../../../utils/probaFlip");
12
+ const getLog10PowerSimplifyingQuestion = () => {
13
+ const tenthPower = (0, randint_1.randint)(-5, 6, [0]);
14
+ const shouldEvaluate = (0, probaFlip_1.probaFlip)(0.7);
15
+ const nb = shouldEvaluate
16
+ ? new decimal_1.Decimal(1).multiplyByPowerOfTen(tenthPower).toTree()
17
+ : new powerNode_1.PowerNode(new numberNode_1.NumberNode(10), new numberNode_1.NumberNode(tenthPower));
18
+ const answer = tenthPower + "";
19
+ const question = {
20
+ answer,
21
+ instruction: `Calculer : $${new log10Node_1.Log10Node(nb).toTex()}$`,
22
+ keys: [],
23
+ answerFormat: "tex",
24
+ identifiers: { tenthPower },
25
+ };
26
+ return question;
27
+ };
28
+ const getPropositions = (n, { answer, tenthPower }) => {
29
+ const propositions = [];
30
+ (0, exercise_1.addValidProp)(propositions, answer);
31
+ (0, exercise_1.tryToAddWrongProp)(propositions, "10");
32
+ (0, exercise_1.tryToAddWrongProp)(propositions, tenthPower + 1 + "");
33
+ (0, exercise_1.tryToAddWrongProp)(propositions, tenthPower + 2 + "");
34
+ (0, exercise_1.tryToAddWrongProp)(propositions, tenthPower - 1 + "");
35
+ (0, exercise_1.tryToAddWrongProp)(propositions, tenthPower - 2 + "");
36
+ return (0, exercise_1.shuffleProps)(propositions, n);
37
+ };
38
+ const isAnswerValid = (ans, { answer, tenthPower }) => {
39
+ return ans === answer;
40
+ };
41
+ exports.log10PowerSimplifying = {
42
+ id: "log10PowerSimplifying",
43
+ connector: "=",
44
+ label: "Calculer un logarithme décimal",
45
+ levels: ["TermTech", "MathComp"],
46
+ isSingleStep: true,
47
+ sections: ["Logarithme décimal", "Puissances"],
48
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getLog10PowerSimplifyingQuestion, nb),
49
+ qcmTimer: 60,
50
+ freeTimer: 60,
51
+ getPropositions,
52
+ isAnswerValid,
53
+ };
@@ -0,0 +1,9 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ /**aln(x)=k */
3
+ type Identifiers = {
4
+ a: number;
5
+ k: number;
6
+ };
7
+ export declare const logEquation: MathExercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=logEquation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logEquation.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/logEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAQb,MAAM,0BAA0B,CAAC;AAclC,cAAc;AACd,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqEF,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,WAAW,CAYjD,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logEquation = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const rational_1 = require("../../../math/numbers/rationals/rational");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const equationSolutionNode_1 = require("../../../tree/nodes/equations/equationSolutionNode");
9
+ const expNode_1 = require("../../../tree/nodes/functions/expNode");
10
+ const logNode_1 = require("../../../tree/nodes/functions/logNode");
11
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
12
+ const equalNode_1 = require("../../../tree/nodes/equations/equalNode");
13
+ const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
14
+ const discreteSetNode_1 = require("../../../tree/nodes/sets/discreteSetNode");
15
+ const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
16
+ const shuffle_1 = require("../../../utils/shuffle");
17
+ const getLnEquation = () => {
18
+ const a = (0, randint_1.randint)(-9, 20, [0]);
19
+ const k = (0, randint_1.randint)(-9, 20, [0]);
20
+ const equation = new equalNode_1.EqualNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new logNode_1.LogNode(new variableNode_1.VariableNode("x"))), new numberNode_1.NumberNode(k));
21
+ const answer = new equationSolutionNode_1.EquationSolutionNode(new discreteSetNode_1.DiscreteSetNode([new expNode_1.ExpNode(new rational_1.Rational(k, a).simplify().toTree())])).toTex();
22
+ const question = {
23
+ instruction: `Résoudre l'équation $${equation.toTex()}$.`,
24
+ answer,
25
+ keys: [
26
+ "x",
27
+ "equal",
28
+ "ln",
29
+ "e",
30
+ "epower",
31
+ "exp",
32
+ "lbrace",
33
+ "S",
34
+ "semicolon",
35
+ "rbrace",
36
+ ],
37
+ answerFormat: "tex",
38
+ identifiers: { a, k },
39
+ };
40
+ return question;
41
+ };
42
+ const getPropositions = (n, { answer }) => {
43
+ const propositions = [];
44
+ (0, exercise_1.addValidProp)(propositions, answer);
45
+ while (propositions.length < n) {
46
+ const randomA = (0, randint_1.randint)(1, 10);
47
+ const randomK = (0, randint_1.randint)(1, 20);
48
+ (0, exercise_1.tryToAddWrongProp)(propositions, new equationSolutionNode_1.EquationSolutionNode(new discreteSetNode_1.DiscreteSetNode([
49
+ new expNode_1.ExpNode(new rational_1.Rational(randomK, randomA).simplify().toTree()),
50
+ ])).toTex());
51
+ }
52
+ return (0, shuffle_1.shuffle)(propositions);
53
+ };
54
+ const isAnswerValid = (ans, { a, k }) => {
55
+ const answer = new equationSolutionNode_1.EquationSolutionNode(new discreteSetNode_1.DiscreteSetNode([
56
+ new expNode_1.ExpNode(new rational_1.Rational(k, a).simplify().toTree({ allowFractionToDecimal: true })),
57
+ ]));
58
+ const texs = answer.toAllValidTexs();
59
+ console.log(texs);
60
+ return texs.includes(ans);
61
+ };
62
+ exports.logEquation = {
63
+ id: "logEquation",
64
+ connector: "=",
65
+ label: "Résoudre des équations de type $a \\times \\ln(x) = k$",
66
+ levels: ["1reSpé", "TermSpé", "MathComp"],
67
+ sections: ["Logarithme népérien", "Exponentielle"],
68
+ isSingleStep: false,
69
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getLnEquation, nb),
70
+ getPropositions,
71
+ qcmTimer: 60,
72
+ freeTimer: 60,
73
+ isAnswerValid,
74
+ };
@@ -0,0 +1,6 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ type Identifiers = {};
3
+ export declare const logPowerEquation: MathExercise<Identifiers>;
4
+ export declare const log10PowerEquation: MathExercise<Identifiers>;
5
+ export {};
6
+ //# sourceMappingURL=logPowerEquation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logPowerEquation.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/logPowerEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAclC,KAAK,WAAW,GAAG,EAAE,CAAC;AAkDtB,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,WAAW,CAatD,CAAC;AACF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,WAAW,CAgBxD,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.log10PowerEquation = exports.logPowerEquation = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const equalNode_1 = require("../../../tree/nodes/equations/equalNode");
8
+ const equationSolutionNode_1 = require("../../../tree/nodes/equations/equationSolutionNode");
9
+ const log10Node_1 = require("../../../tree/nodes/functions/log10Node");
10
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
11
+ const addNode_1 = require("../../../tree/nodes/operators/addNode");
12
+ const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
13
+ const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
14
+ const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
15
+ const discreteSetNode_1 = require("../../../tree/nodes/sets/discreteSetNode");
16
+ const variableNode_1 = require("../../../tree/nodes/variables/variableNode");
17
+ /**a*b^x+c=d */
18
+ const getLogPowerEquationQuestion = (opts) => {
19
+ const powered = (0, randint_1.randint)(2, 8);
20
+ const a = (0, randint_1.randint)(1, 10);
21
+ const c = (0, randint_1.randint)(-5, 5);
22
+ const k = (0, randint_1.randint)(5, 15, [powered, 10]);
23
+ const d = k * a + c;
24
+ const xNode = new variableNode_1.VariableNode("x");
25
+ const poweredNode = new numberNode_1.NumberNode(powered);
26
+ const answer = new equationSolutionNode_1.EquationSolutionNode(new discreteSetNode_1.DiscreteSetNode([
27
+ new fractionNode_1.FractionNode(new log10Node_1.Log10Node(new numberNode_1.NumberNode(k)), new log10Node_1.Log10Node(poweredNode)),
28
+ ])).toTex();
29
+ const equation = new equalNode_1.EqualNode(new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(a), new powerNode_1.PowerNode(poweredNode, xNode)), new numberNode_1.NumberNode(c)), new numberNode_1.NumberNode(d));
30
+ const question = {
31
+ answer,
32
+ instruction: `Résoudre : $${equation.toTex()}$`,
33
+ keys: ["log", "x", "equal", "lbrace", "semicolon", "rbrace"],
34
+ answerFormat: "tex",
35
+ identifiers: {},
36
+ };
37
+ return question;
38
+ };
39
+ const getPropositions = (n, { answer }) => {
40
+ const propositions = [];
41
+ (0, exercise_1.addValidProp)(propositions, answer);
42
+ while (propositions.length < n) { }
43
+ return (0, exercise_1.shuffleProps)(propositions, n);
44
+ };
45
+ const isAnswerValid = (ans, { answer }) => {
46
+ return true;
47
+ };
48
+ exports.logPowerEquation = {
49
+ id: "logPowerEquation",
50
+ connector: "\\iff",
51
+ label: "",
52
+ levels: [],
53
+ isSingleStep: true,
54
+ sections: [],
55
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getLogPowerEquationQuestion, nb),
56
+ qcmTimer: 60,
57
+ freeTimer: 60,
58
+ getPropositions,
59
+ isAnswerValid,
60
+ };
61
+ exports.log10PowerEquation = {
62
+ id: "log10PowerEquation",
63
+ connector: "\\iff",
64
+ label: "",
65
+ levels: [],
66
+ isSingleStep: true,
67
+ sections: [],
68
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getLogPowerEquationQuestion({ isLog10: true }), nb),
69
+ qcmTimer: 60,
70
+ freeTimer: 60,
71
+ getPropositions,
72
+ isAnswerValid,
73
+ };
@@ -0,0 +1,9 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ pm: number;
4
+ a: number;
5
+ b: number;
6
+ };
7
+ export declare const logSimplifiying: MathExercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=logSimplifiying.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logSimplifiying.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/logSimplifiying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAQb,MAAM,0BAA0B,CAAC;AAYlC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqEF,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,WAAW,CAYrD,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logSimplifiying = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const rational_1 = require("../../../math/numbers/rationals/rational");
7
+ const randint_1 = require("../../../math/utils/random/randint");
8
+ const logNode_1 = require("../../../tree/nodes/functions/logNode");
9
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
10
+ const addNode_1 = require("../../../tree/nodes/operators/addNode");
11
+ const substractNode_1 = require("../../../tree/nodes/operators/substractNode");
12
+ const coinFlip_1 = require("../../../utils/coinFlip");
13
+ const shuffle_1 = require("../../../utils/shuffle");
14
+ const getExpSimplifiying = () => {
15
+ let expression;
16
+ let simplifiedExpression;
17
+ let pm = (0, coinFlip_1.coinFlip)() ? 1 : -1;
18
+ const a = (0, randint_1.randint)(1, 10);
19
+ let b;
20
+ do {
21
+ b = (0, randint_1.randint)(1, 10);
22
+ } while (pm === -1 && a === b);
23
+ const opts = { allowLnOfOne: true };
24
+ if (pm === 1) {
25
+ expression = new addNode_1.AddNode(new logNode_1.LogNode(new numberNode_1.NumberNode(a), opts), new logNode_1.LogNode(new numberNode_1.NumberNode(b), opts));
26
+ simplifiedExpression = new logNode_1.LogNode(new numberNode_1.NumberNode(a * b));
27
+ }
28
+ else {
29
+ expression = new substractNode_1.SubstractNode(new logNode_1.LogNode(new numberNode_1.NumberNode(a), opts), new logNode_1.LogNode(new numberNode_1.NumberNode(b), opts));
30
+ simplifiedExpression = new logNode_1.LogNode(new rational_1.Rational(a, b).simplify().toTree());
31
+ }
32
+ const answer = simplifiedExpression.toTex();
33
+ const question = {
34
+ instruction: `Simplifier l'expression suivante : $${expression.toTex()}$.`,
35
+ answer,
36
+ keys: ["ln"],
37
+ answerFormat: "tex",
38
+ identifiers: { pm, a, b },
39
+ };
40
+ return question;
41
+ };
42
+ const getPropositions = (n, { answer, pm }) => {
43
+ const propositions = [];
44
+ (0, exercise_1.addValidProp)(propositions, answer);
45
+ while (propositions.length < n) {
46
+ const a = (0, randint_1.randint)(1, 10);
47
+ const b = (0, randint_1.randint)(1, 10);
48
+ (0, exercise_1.tryToAddWrongProp)(propositions, pm > 0
49
+ ? new logNode_1.LogNode(new numberNode_1.NumberNode(a * b)).toTex()
50
+ : new logNode_1.LogNode(new rational_1.Rational(a, b).simplify().toTree()).toTex());
51
+ }
52
+ return (0, shuffle_1.shuffle)(propositions);
53
+ };
54
+ const isAnswerValid = (ans, { a, b, pm }) => {
55
+ let answer;
56
+ if (pm === 1) {
57
+ answer = new logNode_1.LogNode(new numberNode_1.NumberNode(a * b));
58
+ }
59
+ else {
60
+ answer = new logNode_1.LogNode(new rational_1.Rational(a, b).simplify().toTree({ allowFractionToDecimal: true }));
61
+ }
62
+ const texs = answer.toAllValidTexs();
63
+ return texs.includes(ans);
64
+ };
65
+ exports.logSimplifiying = {
66
+ id: "logSimplifiying",
67
+ connector: "\\iff",
68
+ label: "Simplifier des expressions avec $\\ln$",
69
+ levels: ["1reSpé", "TermSpé", "MathComp"],
70
+ sections: ["Logarithme népérien"],
71
+ isSingleStep: false,
72
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExpSimplifiying, nb),
73
+ qcmTimer: 60,
74
+ freeTimer: 60,
75
+ getPropositions,
76
+ isAnswerValid,
77
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../src/exercises/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAQb,MAAM,0BAA0B,CAAC;AAkBlC,KAAK,WAAW,GAAG;IACjB,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmKF,eAAO,MAAM,oBAAoB,EAAE,YAAY,CAAC,WAAW,CAa1D,CAAC"}
1
+ {"version":3,"file":"inequalityToInterval.d.ts","sourceRoot":"","sources":["../../../../src/exercises/sets/intervals/inequalityToInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAQb,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmKF,eAAO,MAAM,oBAAoB,EAAE,YAAY,CAAC,WAAW,CAa1D,CAAC"}
package/lib/index.d.ts CHANGED
@@ -2,14 +2,14 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
2
2
  numbers: number[];
3
3
  }> | import("./exercises/exercise").MathExercise<{
4
4
  numbers: number[];
5
+ }> | import("./exercises/exercise").MathExercise<{
6
+ chosenNumbers: number[];
5
7
  }> | import("./exercises/exercise").MathExercise<{
6
8
  dividend: number;
7
9
  divisor: number;
8
10
  quotient: number;
9
11
  remainder: number;
10
12
  }> | import("./exercises/exercise").MathExercise<{}> | import("./exercises/exercise").MathExercise<{
11
- chosenNumbers: number[];
12
- }> | import("./exercises/exercise").MathExercise<{
13
13
  integerFirst: boolean;
14
14
  integer: number;
15
15
  rational: [number, number];
@@ -110,9 +110,6 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
110
110
  b: number;
111
111
  c: number;
112
112
  d: number;
113
- }> | import("./exercises/exercise").MathExercise<{
114
- a: number;
115
- k: number;
116
113
  }> | import("./exercises/exercise").MathExercise<{
117
114
  a: number;
118
115
  b: number;
@@ -121,9 +118,6 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
121
118
  b: number;
122
119
  c: number;
123
120
  d: number;
124
- }> | import("./exercises/exercise").MathExercise<{
125
- a: number;
126
- k: number;
127
121
  }> | import("./exercises/exercise").MathExercise<{
128
122
  a: number;
129
123
  b: number;
@@ -166,15 +160,6 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
166
160
  poly1: number[];
167
161
  poly2: number[];
168
162
  xValue: number;
169
- }> | import("./exercises/exercise").MathExercise<{
170
- random: number;
171
- a?: number | undefined;
172
- uCoeffs: number[];
173
- vCoeffs: number[];
174
- }> | import("./exercises/exercise").MathExercise<{
175
- pm: number;
176
- a: number;
177
- b: number;
178
163
  }> | import("./exercises/exercise").MathExercise<{
179
164
  rand: number;
180
165
  polynome1Coeffs: number[];
@@ -355,6 +340,19 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
355
340
  affineCoeffs?: number[] | undefined;
356
341
  trinomCoeffs?: number[] | undefined;
357
342
  isAffine: boolean;
343
+ }> | import("./exercises/exercise").MathExercise<{
344
+ yValue: number;
345
+ splinePoints: [number, number][];
346
+ }> | import("./exercises/exercise").MathExercise<{
347
+ yValue: number;
348
+ splinePoints: [number, number][];
349
+ isStrict: boolean;
350
+ isAskingSup: boolean;
351
+ intervals: {
352
+ a: number;
353
+ b: number;
354
+ closure: import("./tree/nodes/sets/intervalNode").ClosureType;
355
+ }[];
358
356
  }> | import("./exercises/exercise").MathExercise<{
359
357
  k: number;
360
358
  }> | import("./exercises/exercise").MathExercise<{
@@ -402,6 +400,23 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
402
400
  a: number;
403
401
  b: number;
404
402
  c: number;
403
+ }> | import("./exercises/exercise").MathExercise<{
404
+ a: number;
405
+ k: number;
406
+ }> | import("./exercises/exercise").MathExercise<{
407
+ random: number;
408
+ a?: number | undefined;
409
+ uCoeffs: number[];
410
+ vCoeffs: number[];
411
+ }> | import("./exercises/exercise").MathExercise<{
412
+ a: number;
413
+ k: number;
414
+ }> | import("./exercises/exercise").MathExercise<{
415
+ pm: number;
416
+ a: number;
417
+ b: number;
418
+ }> | import("./exercises/exercise").MathExercise<{
419
+ tenthPower: number;
405
420
  }> | import("./exercises/exercise").MathExercise<{
406
421
  coin: boolean;
407
422
  radius: number;
@@ -1 +1 @@
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
+ {"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"}
@@ -18,7 +18,7 @@ export declare class Complex {
18
18
  times(n: number): Complex;
19
19
  opposite(): Complex;
20
20
  conjugate(): Complex;
21
- toArgumentTree(): NumberNode | FractionNode | OppositeNode | import("../../tree/nodes/numbers/constantNode").ConstantNode | undefined;
21
+ toArgumentTree(): NumberNode | import("../../tree/nodes/numbers/constantNode").ConstantNode | FractionNode | OppositeNode | undefined;
22
22
  toModuleTree(): import("../../tree/nodes/algebraicNode").AlgebraicNode;
23
23
  toTree(): ComplexNode;
24
24
  }
@@ -0,0 +1,12 @@
1
+ import { LogNode } from "../../../tree/nodes/functions/logNode";
2
+ import { Nombre, NumberType } from "../nombre";
3
+ export declare class Ln implements Nombre {
4
+ value: number;
5
+ tex: string;
6
+ type: NumberType;
7
+ operand: Nombre;
8
+ constructor(operand: Nombre);
9
+ toTree(): LogNode;
10
+ simplify(): void;
11
+ }
12
+ //# sourceMappingURL=ln.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ln.d.ts","sourceRoot":"","sources":["../../../../src/math/numbers/logarithms/ln.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,qBAAa,EAAG,YAAW,MAAM;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBACJ,OAAO,EAAE,MAAM;IAM3B,MAAM;IAGN,QAAQ;CACT"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ln = void 0;
4
+ const logNode_1 = require("../../../tree/nodes/functions/logNode");
5
+ const nombre_1 = require("../nombre");
6
+ class Ln {
7
+ constructor(operand) {
8
+ this.type = nombre_1.NumberType.Real;
9
+ this.value = Math.log(operand.value);
10
+ this.tex = `\\ln(${operand})`;
11
+ this.operand = operand;
12
+ }
13
+ toTree() {
14
+ return new logNode_1.LogNode(this.operand.toTree());
15
+ }
16
+ simplify() { }
17
+ }
18
+ exports.Ln = Ln;
@@ -7,8 +7,9 @@ export declare enum FunctionsIds {
7
7
  cos = 2,
8
8
  sin = 3,
9
9
  log = 4,
10
- exp = 5,
11
- abs = 6
10
+ log10 = 5,
11
+ exp = 6,
12
+ abs = 7
12
13
  }
13
14
  export interface FunctionNode extends AlgebraicNode {
14
15
  id: FunctionsIds;
@@ -1 +1 @@
1
- {"version":3,"file":"functionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/functionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAY,MAAM,SAAS,CAAC;AAEzC,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,oBAAY,YAAY;IACtB,QAAQ,IAAA;IACR,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;CACJ;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CAOtB"}
1
+ {"version":3,"file":"functionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/functionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAY,MAAM,SAAS,CAAC;AAEzC,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,oBAAY,YAAY;IACtB,QAAQ,IAAA;IACR,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,KAAK,IAAA;IACL,GAAG,IAAA;IACH,GAAG,IAAA;CACJ;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CAOtB"}
@@ -13,6 +13,7 @@ var FunctionsIds;
13
13
  FunctionsIds[FunctionsIds["cos"] = 2] = "cos";
14
14
  FunctionsIds[FunctionsIds["sin"] = 3] = "sin";
15
15
  FunctionsIds[FunctionsIds["log"] = 4] = "log";
16
- FunctionsIds[FunctionsIds["exp"] = 5] = "exp";
17
- FunctionsIds[FunctionsIds["abs"] = 6] = "abs";
16
+ FunctionsIds[FunctionsIds["log10"] = 5] = "log10";
17
+ FunctionsIds[FunctionsIds["exp"] = 6] = "exp";
18
+ FunctionsIds[FunctionsIds["abs"] = 7] = "abs";
18
19
  })(FunctionsIds || (exports.FunctionsIds = FunctionsIds = {}));
@@ -0,0 +1,18 @@
1
+ import { Node, NodeOptions, NodeType } from "../node";
2
+ import { FunctionNode, FunctionsIds } from "./functionNode";
3
+ import { AlgebraicNode } from "../algebraicNode";
4
+ export declare function isLog10Node(a: Node): a is Log10Node;
5
+ export declare class Log10Node implements FunctionNode {
6
+ id: FunctionsIds;
7
+ child: AlgebraicNode;
8
+ type: NodeType;
9
+ opts?: NodeOptions;
10
+ constructor(child: AlgebraicNode, opts?: NodeOptions);
11
+ toMathString(): string;
12
+ toTex(): string;
13
+ toEquivalentNodes(): AlgebraicNode[];
14
+ toAllValidTexs(): string[];
15
+ simplify(): Node;
16
+ evaluate(vars: Record<string, number>): number;
17
+ }
18
+ //# sourceMappingURL=log10Node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log10Node.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/log10Node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AACD,qBAAa,SAAU,YAAW,YAAY;IAC5C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,IAAI;IAGhB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGtC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Log10Node = exports.isLog10Node = void 0;
4
+ // import { log } from "mathjs";
5
+ const node_1 = require("../node");
6
+ const functionNode_1 = require("./functionNode");
7
+ const absNode_1 = require("./absNode");
8
+ function isLog10Node(a) {
9
+ return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.log10;
10
+ }
11
+ exports.isLog10Node = isLog10Node;
12
+ class Log10Node {
13
+ constructor(child, opts) {
14
+ this.id = functionNode_1.FunctionsIds.log10;
15
+ this.child = child;
16
+ this.type = node_1.NodeType.function;
17
+ this.opts = opts;
18
+ }
19
+ toMathString() {
20
+ return `log_{10}(${this.child.toMathString()})`;
21
+ }
22
+ toTex() {
23
+ const tex = this.child.toTex();
24
+ if (!this.opts?.allowLnOfOne && tex === "1") {
25
+ return "0";
26
+ }
27
+ const shouldntUseBrackets = (0, absNode_1.isAbsNode)(this.child);
28
+ if (shouldntUseBrackets)
29
+ return `\\log${tex}`;
30
+ else
31
+ return `\\log\\left(${tex}\\right)`;
32
+ }
33
+ // toMathjs() {
34
+ // return log(this.child.toMathjs());
35
+ // }
36
+ toEquivalentNodes() {
37
+ const res = [];
38
+ const childNodes = this.child.toEquivalentNodes();
39
+ childNodes.forEach((childNode) => {
40
+ res.push(new Log10Node(childNode));
41
+ });
42
+ return res;
43
+ }
44
+ toAllValidTexs() {
45
+ return this.toEquivalentNodes().map((node) => node.toTex());
46
+ }
47
+ simplify() {
48
+ return this;
49
+ }
50
+ evaluate(vars) {
51
+ return Math.log10(this.child.evaluate(vars));
52
+ }
53
+ }
54
+ exports.Log10Node = Log10Node;