math-exercises 2.0.34 → 2.0.35

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 (97) hide show
  1. package/lib/exercises/calculLitteral/simplifying/distributeAndSimplify.d.ts +14 -0
  2. package/lib/exercises/calculLitteral/simplifying/distributeAndSimplify.d.ts.map +1 -0
  3. package/lib/exercises/calculLitteral/simplifying/distributeAndSimplify.js +67 -0
  4. package/lib/exercises/calculLitteral/simplifying/index.d.ts +1 -0
  5. package/lib/exercises/calculLitteral/simplifying/index.d.ts.map +1 -1
  6. package/lib/exercises/calculLitteral/simplifying/index.js +1 -0
  7. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrder.d.ts +10 -0
  8. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrder.d.ts.map +1 -0
  9. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrder.js +101 -0
  10. package/lib/exercises/equaDiff/index.d.ts +1 -0
  11. package/lib/exercises/equaDiff/index.d.ts.map +1 -1
  12. package/lib/exercises/equaDiff/index.js +1 -0
  13. package/lib/exercises/exercise.d.ts +1 -0
  14. package/lib/exercises/exercise.d.ts.map +1 -1
  15. package/lib/exercises/functions/trinoms/factorizedFormFromRoots.d.ts +8 -0
  16. package/lib/exercises/functions/trinoms/factorizedFormFromRoots.d.ts.map +1 -0
  17. package/lib/exercises/functions/trinoms/factorizedFormFromRoots.js +67 -0
  18. package/lib/exercises/functions/trinoms/index.d.ts +3 -0
  19. package/lib/exercises/functions/trinoms/index.d.ts.map +1 -1
  20. package/lib/exercises/functions/trinoms/index.js +3 -0
  21. package/lib/exercises/functions/trinoms/rootsReading.d.ts +9 -0
  22. package/lib/exercises/functions/trinoms/rootsReading.d.ts.map +1 -0
  23. package/lib/exercises/functions/trinoms/rootsReading.js +67 -0
  24. package/lib/exercises/functions/trinoms/summitReading.d.ts +9 -0
  25. package/lib/exercises/functions/trinoms/summitReading.d.ts.map +1 -0
  26. package/lib/exercises/functions/trinoms/summitReading.js +59 -0
  27. package/lib/exercises/geometry/vectors/equalCaracteristicFromGraph.d.ts +9 -0
  28. package/lib/exercises/geometry/vectors/equalCaracteristicFromGraph.d.ts.map +1 -0
  29. package/lib/exercises/geometry/vectors/equalCaracteristicFromGraph.js +194 -0
  30. package/lib/exercises/geometry/vectors/index.d.ts +1 -0
  31. package/lib/exercises/geometry/vectors/index.d.ts.map +1 -1
  32. package/lib/exercises/geometry/vectors/index.js +1 -0
  33. package/lib/exercises/matrices/index.d.ts +1 -0
  34. package/lib/exercises/matrices/index.d.ts.map +1 -1
  35. package/lib/exercises/matrices/index.js +1 -0
  36. package/lib/exercises/matrices/productCell.d.ts +10 -0
  37. package/lib/exercises/matrices/productCell.d.ts.map +1 -0
  38. package/lib/exercises/matrices/productCell.js +57 -0
  39. package/lib/exercises/probaStat/index.d.ts +3 -0
  40. package/lib/exercises/probaStat/index.d.ts.map +1 -1
  41. package/lib/exercises/probaStat/index.js +3 -0
  42. package/lib/exercises/probaStat/issuesCountingForCards.d.ts +7 -0
  43. package/lib/exercises/probaStat/issuesCountingForCards.d.ts.map +1 -0
  44. package/lib/exercises/probaStat/issuesCountingForCards.js +78 -0
  45. package/lib/exercises/probaStat/probaFromTableNoContext.d.ts +13 -0
  46. package/lib/exercises/probaStat/probaFromTableNoContext.d.ts.map +1 -0
  47. package/lib/exercises/probaStat/probaFromTableNoContext.js +115 -0
  48. package/lib/exercises/probaStat/probaFromTableWithContext.d.ts +13 -0
  49. package/lib/exercises/probaStat/probaFromTableWithContext.d.ts.map +1 -0
  50. package/lib/exercises/probaStat/probaFromTableWithContext.js +121 -0
  51. package/lib/exercises/python/index.d.ts +1 -0
  52. package/lib/exercises/python/index.d.ts.map +1 -0
  53. package/lib/exercises/python/index.js +1 -0
  54. package/lib/exercises/sequences/arithmetic/index.d.ts +4 -0
  55. package/lib/exercises/sequences/arithmetic/index.d.ts.map +1 -1
  56. package/lib/exercises/sequences/arithmetic/index.js +4 -0
  57. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts +8 -0
  58. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts.map +1 -0
  59. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +71 -0
  60. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts +8 -0
  61. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -0
  62. package/lib/exercises/sequences/arithmetic/recognizeArithmeticFromGraph.js +87 -0
  63. package/lib/exercises/sequences/arithmetic/recognizeReasonFromFirstTerms.d.ts +8 -0
  64. package/lib/exercises/sequences/arithmetic/recognizeReasonFromFirstTerms.d.ts.map +1 -0
  65. package/lib/exercises/sequences/arithmetic/recognizeReasonFromFirstTerms.js +44 -0
  66. package/lib/exercises/sequences/arithmetic/recognizeReasonFromGraph.d.ts +8 -0
  67. package/lib/exercises/sequences/arithmetic/recognizeReasonFromGraph.d.ts.map +1 -0
  68. package/lib/exercises/sequences/arithmetic/recognizeReasonFromGraph.js +58 -0
  69. package/lib/exercises/utils/getDistinctQuestions.d.ts.map +1 -1
  70. package/lib/exercises/utils/getDistinctQuestions.js +1 -0
  71. package/lib/geogebra/geogebraConstructor.d.ts +2 -0
  72. package/lib/geogebra/geogebraConstructor.d.ts.map +1 -1
  73. package/lib/geogebra/geogebraConstructor.js +2 -0
  74. package/lib/index.d.ts +64 -0
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/math/geometry/point.d.ts +1 -0
  77. package/lib/math/geometry/point.d.ts.map +1 -1
  78. package/lib/math/geometry/point.js +3 -0
  79. package/lib/math/polynomials/trinom.d.ts +2 -0
  80. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  81. package/lib/math/polynomials/trinom.js +29 -0
  82. package/lib/math/utils/random/randTupleInt.d.ts +1 -1
  83. package/lib/math/utils/random/randTupleInt.js +1 -1
  84. package/lib/math/utils/random/randfloat.d.ts +5 -0
  85. package/lib/math/utils/random/randfloat.d.ts.map +1 -0
  86. package/lib/math/utils/random/randfloat.js +18 -0
  87. package/lib/math/utils/sum.d.ts +8 -0
  88. package/lib/math/utils/sum.d.ts.map +1 -0
  89. package/lib/math/utils/sum.js +17 -0
  90. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  91. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  92. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  93. package/lib/tree/nodes/operators/powerNode.js +3 -1
  94. package/lib/utils/doWhile.d.ts +2 -0
  95. package/lib/utils/doWhile.d.ts.map +1 -0
  96. package/lib/utils/doWhile.js +11 -0
  97. package/package.json +1 -1
@@ -17,5 +17,6 @@ export declare class Point {
17
17
  distanceTo(B: Point): number;
18
18
  equals(B: Point): boolean;
19
19
  isAligned(B: Point, C: Point): boolean;
20
+ toGGBCommand(): string;
20
21
  }
21
22
  //# sourceMappingURL=point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/point.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAMlC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;CAevC;AAED,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;gBACL,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa;IAM5D,KAAK,IAAI,MAAM;IAIf,eAAe,IAAI,MAAM;IAGzB,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,MAAM;IAMpB,UAAU,IAAI,MAAM;IAMpB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,KAAK;IAiBrC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;IAM5B,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO;IAGzB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;CAK7B"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/point.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAMlC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;CAevC;AAED,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;gBACL,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa;IAM5D,KAAK,IAAI,MAAM;IAIf,eAAe,IAAI,MAAM;IAGzB,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,MAAM;IAMpB,UAAU,IAAI,MAAM;IAMpB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,KAAK;IAiBrC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;IAM5B,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO;IAGzB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;IAM5B,YAAY;CAKb"}
@@ -78,5 +78,8 @@ class Point {
78
78
  const AC = vector_1.VectorConstructor.fromPoints(this, C);
79
79
  return AB.isColinear(AC);
80
80
  }
81
+ toGGBCommand() {
82
+ return `${this.name} = (${this.x.toMathString()}, ${this.y.toMathString()})`;
83
+ }
81
84
  }
82
85
  exports.Point = Point;
@@ -47,6 +47,7 @@ export declare abstract class TrinomConstructor {
47
47
  max?: number;
48
48
  excludes?: number[];
49
49
  }): Trinom;
50
+ static randomNiceRoots(nbOfRoots?: number): Trinom;
50
51
  }
51
52
  export declare class Trinom extends Polynomial {
52
53
  a: number;
@@ -66,5 +67,6 @@ export declare class Trinom extends Polynomial {
66
67
  getFactorizedForm(): AlgebraicNode | MultiplyNode;
67
68
  getCanonicalForm(): MultiplyNode | AddNode;
68
69
  getSommet(): Point;
70
+ getCoords(): number[];
69
71
  }
70
72
  //# sourceMappingURL=trinom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/trinom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAIvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1D,MAAM;IAmBT,MAAM,CAAC,eAAe,CACpB,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,EACD,SAAS,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC/D,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC7D,MAAM;IAmBT,MAAM,CAAC,gBAAgB,CACrB,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC3D,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC5D,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,MAAM;CAoBV;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;gBACL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY;IAQnE,QAAQ;IAGR,YAAY,IAAI,UAAU;IAI1B,QAAQ;IAUR,YAAY,IAAI,aAAa,EAAE;IAoD/B,2BAA2B;IAO3B,QAAQ;IAGR,YAAY;IAIZ,OAAO;IAIP,WAAW;IAIX,iBAAiB;IA4CjB,gBAAgB;IAsBhB,SAAS;CAGV"}
1
+ {"version":3,"file":"trinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/trinom.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,25 @@ class TrinomConstructor {
40
40
  //a*x^2 + ax*-x2 + a*-x1*x + a*-x1*-x2
41
41
  return new Trinom(a, -a * (x1 + x2), a * x1 * x2);
42
42
  }
43
+ static randomNiceRoots(nbOfRoots = 2) {
44
+ if (nbOfRoots === 0) {
45
+ //canonical +c
46
+ const a = (0, randint_1.randint)(-9, 10, [0]);
47
+ const root = (0, randint_1.randint)(-9, 10);
48
+ //a(x-root)^2 = ax^2 -2arootx + aroot^2
49
+ const c = a > 0 ? a * root ** 2 + (0, randint_1.randint)(1, 6) : a * root ** 2 - (0, randint_1.randint)(1, 6);
50
+ return new Trinom(a, -2 * a * root, c);
51
+ }
52
+ else if (nbOfRoots === 1) {
53
+ const a = (0, randint_1.randint)(-9, 10, [0]);
54
+ const root = (0, randint_1.randint)(-9, 10);
55
+ //a(x-root)^2 = ax^2 -2arootx + aroot^2
56
+ return new Trinom(a, -2 * a * root, a * root ** 2);
57
+ }
58
+ else {
59
+ return TrinomConstructor.randomFactorized();
60
+ }
61
+ }
43
62
  }
44
63
  exports.TrinomConstructor = TrinomConstructor;
45
64
  class Trinom extends polynomial_1.Polynomial {
@@ -167,5 +186,15 @@ class Trinom extends polynomial_1.Polynomial {
167
186
  getSommet() {
168
187
  return new point_1.Point("S", this.getAlphaNode(), this.getBetaNode());
169
188
  }
189
+ getCoords() {
190
+ const alpha = this.getAlpha();
191
+ const beta = this.getBeta();
192
+ const roots = this.getRoots();
193
+ const xMin = Math.min(roots.length === 2 ? roots[0] - 2 : alpha - 2, -1);
194
+ const xMax = Math.max(1, roots.length === 2 ? roots[1] + 2 : alpha + 2);
195
+ const yMin = Math.min(-1, this.a > 0 ? beta - 2 : beta - 6);
196
+ const yMax = Math.max(1, this.a > 0 ? beta + 5 : beta + 2);
197
+ return [xMin, xMax, yMin, yMax];
198
+ }
170
199
  }
171
200
  exports.Trinom = Trinom;
@@ -6,7 +6,7 @@ interface randTupleIntOptions {
6
6
  /**
7
7
  * @param size tuple length
8
8
  * @param options
9
- * @returns array of size nb with contents = randint(from, to, exxcludes)
9
+ * @returns array of size "size" with elements = randint(from, to, exxcludes)
10
10
  */
11
11
  export declare const randTupleInt: (size: number, options: randTupleIntOptions) => number[];
12
12
  export declare const distinctRandTupleInt: (nb: number, size: number, options: randTupleIntOptions) => number[][];
@@ -6,7 +6,7 @@ const randint_1 = require("./randint");
6
6
  /**
7
7
  * @param size tuple length
8
8
  * @param options
9
- * @returns array of size nb with contents = randint(from, to, exxcludes)
9
+ * @returns array of size "size" with elements = randint(from, to, exxcludes)
10
10
  */
11
11
  const randTupleInt = (size, options) => {
12
12
  const res = [];
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @returns random [[a, b[[
3
+ */
4
+ export declare const randfloat: (a: number, b?: number, excludes?: number[]) => number;
5
+ //# sourceMappingURL=randfloat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"randfloat.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/random/randfloat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS,MACjB,MAAM,MACL,MAAM,aACC,MAAM,EAAE,KAClB,MAQF,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * @returns random [[a, b[[
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.randfloat = void 0;
7
+ const randfloat = (a, b, excludes) => {
8
+ if (b === undefined)
9
+ return Math.random() * a;
10
+ if (!excludes)
11
+ return a + Math.random() * (b - a);
12
+ let res;
13
+ do {
14
+ res = a + Math.random() * (b - a);
15
+ } while (excludes.includes(res));
16
+ return res;
17
+ };
18
+ exports.randfloat = randfloat;
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param from included
4
+ * @param to included
5
+ * @param exec
6
+ */
7
+ export declare const sum: (from: number, to: number, exec: (i: number) => number) => number;
8
+ //# sourceMappingURL=sum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sum.d.ts","sourceRoot":"","sources":["../../../src/math/utils/sum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,GAAG,SAAU,MAAM,MAAM,MAAM,YAAY,MAAM,KAAK,MAAM,WAMxE,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ *
4
+ * @param from included
5
+ * @param to included
6
+ * @param exec
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.sum = void 0;
10
+ const sum = (from, to, exec) => {
11
+ let sum = 0;
12
+ for (let i = from; i < to + 1; i++) {
13
+ sum += exec(i);
14
+ }
15
+ return sum;
16
+ };
17
+ exports.sum = sum;
@@ -2,6 +2,7 @@ import { Node, NodeOptions } from "./node";
2
2
  export type SimplifyOptions = {
3
3
  forbidFactorize?: boolean;
4
4
  forceDistributeFractions?: boolean;
5
+ keepPowers?: boolean;
5
6
  };
6
7
  export interface AlgebraicNode extends Node {
7
8
  evaluate: (vars: Record<string, number>) => number;
@@ -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,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AACF,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,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,aAAa,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}
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,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,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,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,aAAa,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOlE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA+FrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAY/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;CAGrD"}
1
+ {"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOlE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA+FrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAgB/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;CAGrD"}
@@ -161,7 +161,9 @@ class PowerNode {
161
161
  const rightSimplified = this.rightChild.simplify(opts);
162
162
  const copy = new PowerNode(leftSimplified, rightSimplified, this.opts);
163
163
  //! temporaire
164
- if ((0, numberNode_1.isNumberNode)(copy.rightChild) && copy.rightChild.value === 2) {
164
+ if (!opts?.keepPowers &&
165
+ (0, numberNode_1.isNumberNode)(copy.rightChild) &&
166
+ copy.rightChild.value === 2) {
165
167
  return new multiplyNode_1.MultiplyNode(copy.leftChild, copy.leftChild).simplify(opts);
166
168
  }
167
169
  return copy;
@@ -0,0 +1,2 @@
1
+ export declare function doWhile<T>(exec: () => T, whileTrue: (x: T) => boolean): T;
2
+ //# sourceMappingURL=doWhile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doWhile.d.ts","sourceRoot":"","sources":["../../src/utils/doWhile.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,KAMrE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doWhile = void 0;
4
+ function doWhile(exec, whileTrue) {
5
+ let res;
6
+ do {
7
+ res = exec();
8
+ } while (whileTrue(res));
9
+ return res;
10
+ }
11
+ exports.doWhile = doWhile;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.0.34",
3
+ "version": "2.0.35",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [