math-exercises 2.2.8 → 2.2.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.
Files changed (237) hide show
  1. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.d.ts.map +1 -1
  2. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.js +24 -7
  3. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.js +33 -1
  5. package/lib/exercises/math/calcul/operations/expressionNature.d.ts +8 -0
  6. package/lib/exercises/math/calcul/operations/expressionNature.d.ts.map +1 -1
  7. package/lib/exercises/math/calcul/operations/expressionNature.js +180 -80
  8. package/lib/exercises/math/calcul/operations/index.d.ts +1 -0
  9. package/lib/exercises/math/calcul/operations/index.d.ts.map +1 -1
  10. package/lib/exercises/math/calcul/operations/index.js +1 -0
  11. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivity.d.ts.map +1 -1
  12. package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.d.ts.map +1 -1
  13. package/lib/exercises/math/calculLitteral/distributivity/secondIdentity.d.ts.map +1 -1
  14. package/lib/exercises/math/calculLitteral/distributivity/simpleDistributivity.d.ts.map +1 -1
  15. package/lib/exercises/math/calculLitteral/distributivity/thirdIdentity.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/equationType2Exercise.d.ts.map +1 -1
  17. package/lib/exercises/math/calculLitteral/equation/equationType4Exercise.d.ts.map +1 -1
  18. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq1.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq2.d.ts.map +1 -1
  20. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.d.ts.map +1 -1
  21. package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
  22. package/lib/exercises/math/functions/basics/graphicInequation.js +4 -1
  23. package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
  24. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +12 -1
  25. package/lib/exercises/math/functions/trinoms/canonicalFromDevForm.d.ts.map +1 -1
  26. package/lib/exercises/math/geometry/cartesian/directionVector.d.ts.map +1 -1
  27. package/lib/exercises/math/geometry/cartesian/directionVectorEquation.d.ts.map +1 -1
  28. package/lib/exercises/math/geometry/cartesian/placeAPoint.d.ts.map +1 -1
  29. package/lib/exercises/math/geometry/cartesian/placeAPoint.js +0 -4
  30. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.d.ts.map +1 -1
  31. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.js +2 -3
  32. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.d.ts.map +1 -1
  33. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.js +17 -0
  34. package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
  35. package/lib/exercises/math/geometry/volumes/volumeOfCube.js +7 -1
  36. package/lib/exercises/math/index.d.ts +0 -1
  37. package/lib/exercises/math/index.d.ts.map +1 -1
  38. package/lib/exercises/math/index.js +0 -1
  39. package/lib/exercises/math/limits/rationalFracForbiddenValueLimit.d.ts.map +1 -1
  40. package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
  41. package/lib/exercises/math/powers/powersDivision.js +35 -2
  42. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.d.ts.map +1 -1
  43. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.js +21 -0
  44. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +1 -1
  45. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts +7 -0
  46. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts.map +1 -0
  47. package/lib/exercises/math/probaStat/stats1var/averageList.js +52 -0
  48. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts +7 -0
  49. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts.map +1 -0
  50. package/lib/exercises/math/probaStat/stats1var/etendueList.js +49 -0
  51. package/lib/exercises/math/probaStat/stats1var/index.d.ts +2 -0
  52. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  53. package/lib/exercises/math/probaStat/stats1var/index.js +2 -0
  54. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.d.ts.map +1 -1
  55. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.js +42 -0
  56. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts.map +1 -1
  57. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +7 -2
  58. package/lib/exercises/math/sequences/geometric/geometricFindTerm.d.ts.map +1 -1
  59. package/lib/exercises/math/sequences/geometric/geometricFindTerm.js +42 -0
  60. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts +10 -0
  61. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts.map +1 -0
  62. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.js +56 -0
  63. package/lib/exercises/math/sequences/geometric/index.d.ts +1 -0
  64. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  65. package/lib/exercises/math/sequences/geometric/index.js +1 -0
  66. package/lib/exercises/math/sequences/index.d.ts +2 -0
  67. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  68. package/lib/exercises/math/sequences/index.js +2 -0
  69. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts +10 -0
  70. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -0
  71. package/lib/exercises/math/sequences/sequenceEvaluation.js +143 -0
  72. package/lib/exercises/math/sequences/sequencePlot.d.ts +9 -0
  73. package/lib/exercises/math/sequences/sequencePlot.d.ts.map +1 -0
  74. package/lib/exercises/math/sequences/sequencePlot.js +94 -0
  75. package/lib/exercises/math/sets/intervals/index.d.ts +1 -0
  76. package/lib/exercises/math/sets/intervals/index.d.ts.map +1 -1
  77. package/lib/exercises/math/sets/intervals/index.js +1 -0
  78. package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts +1 -1
  79. package/lib/exercises/math/sets/intervals/intervalToInequality.js +2 -2
  80. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
  81. package/lib/exercises/math/sets/intervals/intervalsIntersection.js +19 -1
  82. package/lib/exercises/math/sets/intervals/intervalsUnion.js +1 -1
  83. package/lib/exercises/math/trigonometry/arcValue.d.ts.map +1 -1
  84. package/lib/exercises/math/trigonometry/arcValue.js +23 -0
  85. package/lib/index.d.ts +26 -9
  86. package/lib/index.d.ts.map +1 -1
  87. package/lib/math/geometry/point.d.ts +11 -0
  88. package/lib/math/geometry/point.d.ts.map +1 -1
  89. package/lib/math/geometry/point.js +8 -0
  90. package/lib/math/numbers/reals/extendedRingElement.d.ts +3 -1
  91. package/lib/math/numbers/reals/extendedRingElement.d.ts.map +1 -1
  92. package/lib/math/numbers/reals/real.d.ts +1 -1
  93. package/lib/math/polynomials/trinom.d.ts +1 -1
  94. package/lib/math/sets/intervals/intervals.d.ts +3 -1
  95. package/lib/math/sets/intervals/intervals.d.ts.map +1 -1
  96. package/lib/math/sets/intervals/intervals.js +7 -3
  97. package/lib/math/sets/mathSet.d.ts +2 -2
  98. package/lib/math/sets/mathSet.d.ts.map +1 -1
  99. package/lib/math/sets/mathSetInterface.d.ts +1 -1
  100. package/lib/playground.d.ts.map +1 -1
  101. package/lib/playground.js +18 -2
  102. package/lib/server.d.ts.map +1 -1
  103. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  104. package/lib/tree/nodes/algebraicNode.js +0 -3
  105. package/lib/tree/nodes/complex/complexNode.d.ts +10 -1
  106. package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -1
  107. package/lib/tree/nodes/complex/complexNode.js +7 -0
  108. package/lib/tree/nodes/equations/equalNode.d.ts +10 -1
  109. package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
  110. package/lib/tree/nodes/equations/equalNode.js +7 -0
  111. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +10 -1
  112. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  113. package/lib/tree/nodes/equations/equationSolutionNode.js +6 -0
  114. package/lib/tree/nodes/equations/multiEqualNode.d.ts +7 -1
  115. package/lib/tree/nodes/equations/multiEqualNode.d.ts.map +1 -1
  116. package/lib/tree/nodes/equations/multiEqualNode.js +6 -0
  117. package/lib/tree/nodes/functions/absNode.d.ts +7 -1
  118. package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
  119. package/lib/tree/nodes/functions/absNode.js +6 -0
  120. package/lib/tree/nodes/functions/arcSinNode.d.ts +7 -1
  121. package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
  122. package/lib/tree/nodes/functions/arcSinNode.js +8 -1
  123. package/lib/tree/nodes/functions/arccosNode.d.ts +7 -1
  124. package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
  125. package/lib/tree/nodes/functions/arccosNode.js +8 -1
  126. package/lib/tree/nodes/functions/arctanNode.d.ts +7 -1
  127. package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
  128. package/lib/tree/nodes/functions/arctanNode.js +8 -1
  129. package/lib/tree/nodes/functions/cosNode.d.ts +7 -1
  130. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  131. package/lib/tree/nodes/functions/cosNode.js +8 -1
  132. package/lib/tree/nodes/functions/expNode.d.ts +7 -1
  133. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  134. package/lib/tree/nodes/functions/expNode.js +6 -0
  135. package/lib/tree/nodes/functions/integralNode.d.ts +19 -2
  136. package/lib/tree/nodes/functions/integralNode.d.ts.map +1 -1
  137. package/lib/tree/nodes/functions/integralNode.js +20 -0
  138. package/lib/tree/nodes/functions/log10Node.d.ts +7 -1
  139. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  140. package/lib/tree/nodes/functions/log10Node.js +6 -0
  141. package/lib/tree/nodes/functions/logNode.d.ts +7 -1
  142. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  143. package/lib/tree/nodes/functions/logNode.js +6 -0
  144. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -1
  145. package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
  146. package/lib/tree/nodes/functions/oppositeNode.js +6 -0
  147. package/lib/tree/nodes/functions/sinNode.d.ts +7 -1
  148. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  149. package/lib/tree/nodes/functions/sinNode.js +8 -1
  150. package/lib/tree/nodes/functions/sqrtNode.d.ts +7 -1
  151. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  152. package/lib/tree/nodes/functions/sqrtNode.js +6 -0
  153. package/lib/tree/nodes/functions/tanNode.d.ts +7 -1
  154. package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
  155. package/lib/tree/nodes/functions/tanNode.js +8 -1
  156. package/lib/tree/nodes/geometry/degree.d.ts +5 -1
  157. package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
  158. package/lib/tree/nodes/geometry/degree.js +6 -0
  159. package/lib/tree/nodes/geometry/lengthNode.d.ts +5 -1
  160. package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
  161. package/lib/tree/nodes/geometry/lengthNode.js +6 -0
  162. package/lib/tree/nodes/geometry/pointNode.d.ts +14 -1
  163. package/lib/tree/nodes/geometry/pointNode.d.ts.map +1 -1
  164. package/lib/tree/nodes/geometry/pointNode.js +6 -0
  165. package/lib/tree/nodes/geometry/vectorNode.d.ts +5 -1
  166. package/lib/tree/nodes/geometry/vectorNode.d.ts.map +1 -1
  167. package/lib/tree/nodes/geometry/vectorNode.js +6 -0
  168. package/lib/tree/nodes/hasVariableNode.d.ts +3 -0
  169. package/lib/tree/nodes/hasVariableNode.d.ts.map +1 -0
  170. package/lib/tree/nodes/hasVariableNode.js +16 -0
  171. package/lib/tree/nodes/inequations/inequationNode.d.ts +8 -1
  172. package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
  173. package/lib/tree/nodes/inequations/inequationNode.js +7 -0
  174. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +19 -1
  175. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  176. package/lib/tree/nodes/inequations/inequationSolutionNode.js +6 -0
  177. package/lib/tree/nodes/node.d.ts +50 -8
  178. package/lib/tree/nodes/node.d.ts.map +1 -1
  179. package/lib/tree/nodes/node.js +49 -21
  180. package/lib/tree/nodes/nodeConstructor.d.ts +7 -0
  181. package/lib/tree/nodes/nodeConstructor.d.ts.map +1 -0
  182. package/lib/tree/nodes/nodeConstructor.js +170 -0
  183. package/lib/tree/nodes/numbers/constantNode.d.ts +7 -1
  184. package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
  185. package/lib/tree/nodes/numbers/constantNode.js +9 -1
  186. package/lib/tree/nodes/numbers/numberNode.d.ts +5 -1
  187. package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
  188. package/lib/tree/nodes/numbers/numberNode.js +6 -0
  189. package/lib/tree/nodes/numbers/percentNode.d.ts +5 -1
  190. package/lib/tree/nodes/numbers/percentNode.d.ts.map +1 -1
  191. package/lib/tree/nodes/numbers/percentNode.js +6 -0
  192. package/lib/tree/nodes/operators/addNode.d.ts +10 -1
  193. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  194. package/lib/tree/nodes/operators/addNode.js +7 -0
  195. package/lib/tree/nodes/operators/divideNode.d.ts +11 -1
  196. package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
  197. package/lib/tree/nodes/operators/divideNode.js +12 -0
  198. package/lib/tree/nodes/operators/fractionNode.d.ts +10 -1
  199. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  200. package/lib/tree/nodes/operators/fractionNode.js +7 -0
  201. package/lib/tree/nodes/operators/limitNode.d.ts +11 -1
  202. package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
  203. package/lib/tree/nodes/operators/limitNode.js +8 -0
  204. package/lib/tree/nodes/operators/multiplyNode.d.ts +10 -1
  205. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  206. package/lib/tree/nodes/operators/multiplyNode.js +7 -0
  207. package/lib/tree/nodes/operators/powerNode.d.ts +10 -1
  208. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  209. package/lib/tree/nodes/operators/powerNode.js +7 -0
  210. package/lib/tree/nodes/operators/substractNode.d.ts +11 -1
  211. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  212. package/lib/tree/nodes/operators/substractNode.js +12 -0
  213. package/lib/tree/nodes/sets/belongsNode.d.ts +10 -1
  214. package/lib/tree/nodes/sets/belongsNode.d.ts.map +1 -1
  215. package/lib/tree/nodes/sets/belongsNode.js +7 -0
  216. package/lib/tree/nodes/sets/closure.d.ts +2 -0
  217. package/lib/tree/nodes/sets/closure.d.ts.map +1 -1
  218. package/lib/tree/nodes/sets/closure.js +20 -0
  219. package/lib/tree/nodes/sets/discreteSetNode.d.ts +10 -2
  220. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  221. package/lib/tree/nodes/sets/discreteSetNode.js +13 -3
  222. package/lib/tree/nodes/sets/intervalNode.d.ts +14 -2
  223. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  224. package/lib/tree/nodes/sets/intervalNode.js +21 -0
  225. package/lib/tree/nodes/sets/setNode.d.ts +1 -0
  226. package/lib/tree/nodes/sets/setNode.d.ts.map +1 -1
  227. package/lib/tree/nodes/sets/unionIntervalNode.d.ts +7 -1
  228. package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
  229. package/lib/tree/nodes/sets/unionIntervalNode.js +6 -0
  230. package/lib/tree/nodes/variables/variableNode.d.ts +5 -1
  231. package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
  232. package/lib/tree/nodes/variables/variableNode.js +6 -0
  233. package/lib/tree/utilities/operatorComposition.js +4 -2
  234. package/lib/utils/alignTex.js +11 -9
  235. package/lib/utils/diceFlip.d.ts.map +1 -1
  236. package/lib/utils/diceFlip.js +2 -6
  237. package/package.json +1 -1
@@ -18,6 +18,12 @@ class ExpNode {
18
18
  this.opts = opts;
19
19
  this.isNumeric = child.isNumeric;
20
20
  }
21
+ toIdentifiers() {
22
+ return {
23
+ id: node_1.NodeIds.exp,
24
+ child: this.child.toIdentifiers(),
25
+ };
26
+ }
21
27
  toMathString() {
22
28
  return `e^(${this.child.toMathString()})`;
23
29
  }
@@ -1,12 +1,29 @@
1
1
  import { AlgebraicNode } from "../algebraicNode";
2
- import { ToTexOptions } from "../node";
2
+ import { Node, NodeIds, NodeType, ToTexOptions } from "../node";
3
3
  import { VariableNode } from "../variables/variableNode";
4
- export declare class IntegralNode {
4
+ export declare class IntegralNode implements Node {
5
5
  functionNode: AlgebraicNode;
6
6
  lowerBound: AlgebraicNode;
7
7
  upperBound: AlgebraicNode;
8
8
  variable: VariableNode;
9
+ type: NodeType;
9
10
  constructor(functionNode: AlgebraicNode, lowerBound: AlgebraicNode, upperBound: AlgebraicNode, variable: string);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ functionNode: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ lowerBound: {
17
+ id: NodeIds;
18
+ } & Record<string, any>;
19
+ upperBound: {
20
+ id: NodeIds;
21
+ } & Record<string, any>;
22
+ variable: VariableNode;
23
+ };
10
24
  toTex(opts?: ToTexOptions): string;
25
+ toMathString(): string;
26
+ toEquivalentNodes(): this[];
27
+ toAllValidTexs(): string[];
11
28
  }
12
29
  //# sourceMappingURL=integralNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integralNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/integralNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,YAAY;IACvB,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;gBAGrB,YAAY,EAAE,aAAa,EAC3B,UAAU,EAAE,aAAa,EACzB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM;IAQlB,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM;CAGnC"}
1
+ {"version":3,"file":"integralNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/integralNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAe,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,YAAa,YAAW,IAAI;IACvC,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,WAAqB;gBAEvB,YAAY,EAAE,aAAa,EAC3B,UAAU,EAAE,aAAa,EACzB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM;IAOlB,aAAa;;;;;;;;;;;;;IASb,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM;IAGlC,YAAY;IAGZ,iBAAiB;IAGjB,cAAc;CAGf"}
@@ -1,16 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IntegralNode = void 0;
4
+ const node_1 = require("../node");
4
5
  const variableNode_1 = require("../variables/variableNode");
5
6
  class IntegralNode {
6
7
  constructor(functionNode, lowerBound, upperBound, variable) {
8
+ this.type = node_1.NodeType.function;
7
9
  (this.functionNode = functionNode),
8
10
  (this.lowerBound = lowerBound),
9
11
  (this.upperBound = upperBound),
10
12
  (this.variable = new variableNode_1.VariableNode(variable));
11
13
  }
14
+ toIdentifiers() {
15
+ return {
16
+ id: node_1.NodeIds.integral,
17
+ functionNode: this.functionNode.toIdentifiers(),
18
+ lowerBound: this.lowerBound.toIdentifiers(),
19
+ upperBound: this.upperBound.toIdentifiers(),
20
+ variable: this.variable,
21
+ };
22
+ }
12
23
  toTex(opts) {
13
24
  return `\\int_{${this.lowerBound.toTex()}}^{${this.upperBound.toTex()}} ${this.functionNode.toTex()} \\, \\mathrm{d}${this.variable.toTex()}`;
14
25
  }
26
+ toMathString() {
27
+ return `intergral(${this.functionNode.toMathString()}, ${this.lowerBound.toMathString()}, ${this.upperBound.toMathString()}, ${this.variable.toMathString()})`;
28
+ }
29
+ toEquivalentNodes() {
30
+ return [this];
31
+ }
32
+ toAllValidTexs() {
33
+ return [this.toTex()];
34
+ }
15
35
  }
16
36
  exports.IntegralNode = IntegralNode;
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isLog10Node(a: Node): a is Log10Node;
@@ -9,6 +9,12 @@ export declare class Log10Node implements FunctionNode {
9
9
  opts?: NodeOptions;
10
10
  isNumeric: boolean;
11
11
  constructor(child: AlgebraicNode, opts?: NodeOptions);
12
+ toIdentifiers(): {
13
+ id: NodeIds;
14
+ child: {
15
+ id: NodeIds;
16
+ } & Record<string, any>;
17
+ };
12
18
  toMathString(): string;
13
19
  toTex(): string;
14
20
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +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;AAQjD,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;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAgCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"log10Node.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/log10Node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,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;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAgCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -22,6 +22,12 @@ class Log10Node {
22
22
  this.opts = opts;
23
23
  this.isNumeric = child.isNumeric;
24
24
  }
25
+ toIdentifiers() {
26
+ return {
27
+ id: node_1.NodeIds.log10,
28
+ child: this.child.toIdentifiers(),
29
+ };
30
+ }
25
31
  toMathString() {
26
32
  return `log_{10}(${this.child.toMathString()})`;
27
33
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isLogNode(a: Node): a is LogNode;
@@ -9,6 +9,12 @@ export declare class LogNode implements FunctionNode {
9
9
  opts?: NodeOptions;
10
10
  isNumeric: boolean;
11
11
  constructor(child: AlgebraicNode, opts?: NodeOptions);
12
+ toIdentifiers(): {
13
+ id: NodeIds;
14
+ child: {
15
+ id: NodeIds;
16
+ } & Record<string, any>;
17
+ };
12
18
  toMathString(): string;
13
19
  toTex(): string;
14
20
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.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;AAQjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAmCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAmCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -23,6 +23,12 @@ class LogNode {
23
23
  this.opts = opts;
24
24
  this.isNumeric = child.isNumeric;
25
25
  }
26
+ toIdentifiers() {
27
+ return {
28
+ id: node_1.NodeIds.log,
29
+ child: this.child.toIdentifiers(),
30
+ };
31
+ }
26
32
  toMathString() {
27
33
  return `log(${this.child.toMathString()})`;
28
34
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { NumberNode } from "../numbers/numberNode";
4
4
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
@@ -10,6 +10,12 @@ export declare class OppositeNode implements FunctionNode {
10
10
  opts?: NodeOptions;
11
11
  isNumeric: boolean;
12
12
  constructor(child: AlgebraicNode, opts?: NodeOptions);
13
+ toIdentifiers(): {
14
+ id: NodeIds;
15
+ child: {
16
+ id: NodeIds;
17
+ } & Record<string, any>;
18
+ };
13
19
  toMathString(): string;
14
20
  toTex(): string;
15
21
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"oppositeNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/oppositeNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAGD,qBAAa,YAAa,YAAW,YAAY;IAC/C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAef,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAgCtD;;;;OAIG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAQ5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAI/B,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"oppositeNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/oppositeNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAGD,qBAAa,YAAa,YAAW,YAAY;IAC/C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAef,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAgCtD;;;;OAIG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAQ5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAI/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -21,6 +21,12 @@ class OppositeNode {
21
21
  this.opts = opts;
22
22
  this.isNumeric = child.isNumeric;
23
23
  }
24
+ toIdentifiers() {
25
+ return {
26
+ id: node_1.NodeIds.opposite,
27
+ child: this.child.toIdentifiers(),
28
+ };
29
+ }
24
30
  toMathString() {
25
31
  return `-(${this.child.toMathString()})`;
26
32
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isSinNode(a: Node): a is SinNode;
@@ -8,6 +8,12 @@ export declare class SinNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"sinNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sinNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"sinNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sinNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.SinNode = exports.isSinNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isSinNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.sin;
9
10
  }
@@ -15,6 +16,12 @@ class SinNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.sin,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `sin(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class SinNode {
34
41
  }
35
42
  simplify(opts = {}) {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  let value = simplifiedChild.evaluate({});
39
46
  if (opts.isDegree) {
40
47
  value = (value * Math.PI) / 180;
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isSqrtNode(a: Node): a is SqrtNode;
@@ -9,6 +9,12 @@ export declare class SqrtNode implements FunctionNode {
9
9
  opts?: NodeOptions;
10
10
  isNumeric: boolean;
11
11
  constructor(child: AlgebraicNode, opts?: NodeOptions);
12
+ toIdentifiers(): {
13
+ id: NodeIds;
14
+ child: {
15
+ id: NodeIds;
16
+ } & Record<string, any>;
17
+ };
12
18
  toMathString(): string;
13
19
  toTex(): string;
14
20
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"sqrtNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sqrtNode.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;AAK5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,QAAQ,CAEjD;AACD,qBAAa,QAAS,YAAW,YAAY;IAC3C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,YAAY,IAAI,MAAM;IAMtB,KAAK,IAAI,MAAM;IAIf,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAwBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAmC/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"sqrtNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sqrtNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,QAAQ,CAEjD;AACD,qBAAa,QAAS,YAAW,YAAY;IAC3C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAMtB,KAAK,IAAI,MAAM;IAIf,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAwBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAmC/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -21,6 +21,12 @@ class SqrtNode {
21
21
  this.opts = opts;
22
22
  this.isNumeric = child.isNumeric;
23
23
  }
24
+ toIdentifiers() {
25
+ return {
26
+ id: node_1.NodeIds.sqrt,
27
+ child: this.child.toIdentifiers(),
28
+ };
29
+ }
24
30
  toMathString() {
25
31
  return `sqr(${this.child.toMathString()})`;
26
32
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isTanNode(a: Node): a is TanNode;
@@ -8,6 +8,12 @@ export declare class TanNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"tanNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/tanNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"tanNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/tanNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.TanNode = exports.isTanNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isTanNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.tan;
9
10
  }
@@ -15,6 +16,12 @@ class TanNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.tan,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `tan(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class TanNode {
34
41
  }
35
42
  simplify(opts = {}) {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  let value = simplifiedChild.evaluate({});
39
46
  if (opts.isDegree) {
40
47
  value = (value * Math.PI) / 180;
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { AlgebraicNode } from "../algebraicNode";
3
3
  export declare function isDegreeNode(a: Node): a is DegreeNode;
4
4
  export declare class DegreeNode implements AlgebraicNode {
@@ -8,6 +8,10 @@ export declare class DegreeNode implements AlgebraicNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(value: number, tex?: string, mathString?: string);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ value: number;
14
+ };
11
15
  toMathString(): string;
12
16
  toTex(): string;
13
17
  toMathjs(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"degree.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/degree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,aAAa;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAmB;IACjC,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAQ5D,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAOd,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"degree.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/degree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,aAAa;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAmB;IACjC,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAO5D,aAAa;;;;IAMb,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAOd,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
@@ -15,6 +15,12 @@ class DegreeNode {
15
15
  this.mathString = mathString || this.value + "^\\circ";
16
16
  this.isNumeric = true;
17
17
  }
18
+ toIdentifiers() {
19
+ return {
20
+ id: node_1.NodeIds.degree,
21
+ value: this.value,
22
+ };
23
+ }
18
24
  toMathString() {
19
25
  return `${this.mathString}`;
20
26
  }
@@ -1,5 +1,5 @@
1
1
  import { AlgebraicNode } from "../algebraicNode";
2
- import { Node, NodeOptions, NodeType } from "../node";
2
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
3
3
  export declare function isLengthNode(a: Node): a is LengthNode;
4
4
  export declare class LengthNode implements AlgebraicNode {
5
5
  opts?: NodeOptions | undefined;
@@ -8,6 +8,10 @@ export declare class LengthNode implements AlgebraicNode {
8
8
  isNumeric: boolean;
9
9
  constructor(segmentName: string, opts?: NodeOptions);
10
10
  toAllValidTexs(): string[];
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ name: string;
14
+ };
11
15
  toEquivalentNodes(opts?: NodeOptions): LengthNode[];
12
16
  toMathString(): string;
13
17
  toMathjs(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"lengthNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/lengthNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AACD,qBAAa,UAAW,YAAW,aAAa;IAC9C,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAUnD,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAOpC,YAAY;IAGZ,QAAQ;IAIR,KAAK;IAIL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"lengthNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/lengthNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AACD,qBAAa,UAAW,YAAW,aAAa;IAC9C,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAUnD,cAAc;IAGd,aAAa;;;;IAMb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAOpC,YAAY;IAGZ,QAAQ;IAIR,KAAK;IAIL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
@@ -19,6 +19,12 @@ class LengthNode {
19
19
  toAllValidTexs() {
20
20
  return this.toEquivalentNodes(this.opts).flatMap((node) => node.toTex());
21
21
  }
22
+ toIdentifiers() {
23
+ return {
24
+ id: node_1.NodeIds.length,
25
+ name: this.segmentName,
26
+ };
27
+ }
22
28
  toEquivalentNodes(opts) {
23
29
  return [
24
30
  this,
@@ -1,10 +1,23 @@
1
1
  import { Point } from "../../../math/geometry/point";
2
- import { Node, NodeOptions, NodeType } from "../node";
2
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
3
3
  export declare class PointNode implements Node {
4
4
  opts?: NodeOptions | undefined;
5
5
  point: Point;
6
6
  type: NodeType;
7
7
  constructor(point: Point, opts?: NodeOptions);
8
+ toIdentifiers(): {
9
+ id: NodeIds;
10
+ point: {
11
+ id: string;
12
+ name: string;
13
+ x: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ y: {
17
+ id: NodeIds;
18
+ } & Record<string, any>;
19
+ };
20
+ };
8
21
  toAllTexs(): string[];
9
22
  toAllValidTexs(): string[];
10
23
  toEquivalentNodes(opts?: NodeOptions): PointNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"pointNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/pointNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,SAAU,YAAW,IAAI;IACpC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,WAAW;IAM5C,SAAS;IAGT,cAAc;IAMd,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAGZ,QAAQ;IAIR,KAAK;CAGN"}
1
+ {"version":3,"file":"pointNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/pointNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,SAAU,YAAW,IAAI;IACpC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,WAAW;IAK5C,aAAa;;;;;;;;;;;;;IAMb,SAAS;IAGT,cAAc;IAMd,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAGZ,QAAQ;IAIR,KAAK;CAGN"}
@@ -10,6 +10,12 @@ class PointNode {
10
10
  this.opts = opts;
11
11
  this.point = point;
12
12
  }
13
+ toIdentifiers() {
14
+ return {
15
+ id: node_1.NodeIds.point,
16
+ point: this.point.toIdentifiers(),
17
+ };
18
+ }
13
19
  toAllTexs() {
14
20
  return [this.point.toTexWithCoords(), this.point.toCoords()];
15
21
  }
@@ -1,10 +1,14 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  export declare class VectorNode implements Node {
3
3
  opts?: NodeOptions | undefined;
4
4
  name: string;
5
5
  type: NodeType;
6
6
  constructor(name: string, opts?: NodeOptions);
7
7
  toAllValidTexs(): string[];
8
+ toIdentifiers(): {
9
+ id: NodeIds;
10
+ name: string;
11
+ };
8
12
  toEquivalentNodes(opts?: NodeOptions): this[];
9
13
  toMathString(): string;
10
14
  toMathjs(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"vectorNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/vectorNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,UAAW,YAAW,IAAI;IACrC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAS5C,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAIpC,YAAY;IAGZ,QAAQ;IAIR,KAAK;CAGN"}
1
+ {"version":3,"file":"vectorNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/geometry/vectorNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,UAAW,YAAW,IAAI;IACrC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAS5C,cAAc;IAGd,aAAa;;;;IAMb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAIpC,YAAY;IAGZ,QAAQ;IAIR,KAAK;CAGN"}
@@ -14,6 +14,12 @@ class VectorNode {
14
14
  toAllValidTexs() {
15
15
  return this.toEquivalentNodes(this.opts).flatMap((node) => node.toTex());
16
16
  }
17
+ toIdentifiers() {
18
+ return {
19
+ id: node_1.NodeIds.vector,
20
+ name: this.name,
21
+ };
22
+ }
17
23
  toEquivalentNodes(opts) {
18
24
  return [this];
19
25
  }
@@ -0,0 +1,3 @@
1
+ import { Node } from "./node";
2
+ export declare const hasVariableNode: (n: Node) => boolean;
3
+ //# sourceMappingURL=hasVariableNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasVariableNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/hasVariableNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,eAAO,MAAM,eAAe,MAAO,IAAI,KAAG,OAMzC,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasVariableNode = void 0;
4
+ const functionNode_1 = require("./functions/functionNode");
5
+ const operatorNode_1 = require("./operators/operatorNode");
6
+ const variableNode_1 = require("./variables/variableNode");
7
+ const hasVariableNode = (n) => {
8
+ if ((0, variableNode_1.isVariableNode)(n))
9
+ return true;
10
+ if ((0, operatorNode_1.isOperatorNode)(n))
11
+ return (0, exports.hasVariableNode)(n.leftChild) || (0, exports.hasVariableNode)(n.rightChild);
12
+ if ((0, functionNode_1.isFunctionNode)(n))
13
+ return (0, exports.hasVariableNode)(n.child);
14
+ return false;
15
+ };
16
+ exports.hasVariableNode = hasVariableNode;
@@ -1,5 +1,5 @@
1
1
  import { InegalitySymbols } from "../../../math/inequations/inequation";
2
- import { Node, NodeOptions, NodeType } from "../node";
2
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
3
3
  import { IntervalNode } from "../sets/intervalNode";
4
4
  export declare class InequationNode implements Node {
5
5
  opts?: NodeOptions | undefined;
@@ -8,6 +8,13 @@ export declare class InequationNode implements Node {
8
8
  children: Node[];
9
9
  symbols: InegalitySymbols[];
10
10
  constructor(children: Node[], symbols: InegalitySymbols[] | InegalitySymbols);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ children: ({
14
+ id: NodeIds;
15
+ } & Record<string, any>)[];
16
+ symbols: InegalitySymbols[];
17
+ };
11
18
  toInterval(): IntervalNode;
12
19
  toReversed(): InequationNode;
13
20
  toAllValidTexs(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"inequationNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEjB,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,cAAe,YAAW,IAAI;IACzC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAE1B,QAAQ,EAAE,IAAI,EAAE,EAChB,OAAO,EAAE,gBAAgB,EAAE,GAAG,gBAAgB;IAwBhD,UAAU;IA6CV,UAAU;IAQV,cAAc;IAGd,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAYhD,YAAY;IAGZ,QAAQ;IAGR,SAAS;IAGT,KAAK;CAGN"}
1
+ {"version":3,"file":"inequationNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEjB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,cAAe,YAAW,IAAI;IACzC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAE1B,QAAQ,EAAE,IAAI,EAAE,EAChB,OAAO,EAAE,gBAAgB,EAAE,GAAG,gBAAgB;IAuBhD,aAAa;;;;;;;IAOb,UAAU;IA6CV,UAAU;IAQV,cAAc;IAGd,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAYhD,YAAY;IAGZ,QAAQ;IAGR,SAAS;IAGT,KAAK;CAGN"}
@@ -29,6 +29,13 @@ class InequationNode {
29
29
  }
30
30
  this.type = node_1.NodeType.inequation;
31
31
  }
32
+ toIdentifiers() {
33
+ return {
34
+ id: node_1.NodeIds.inequation,
35
+ children: this.children.map((e) => e.toIdentifiers()),
36
+ symbols: this.symbols,
37
+ };
38
+ }
32
39
  toInterval() {
33
40
  if (this.children.length > 3)
34
41
  throw Error("can't build interval with this inequality");
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { IntervalNode } from "../sets/intervalNode";
3
3
  import { UnionIntervalNode } from "../sets/unionIntervalNode";
4
4
  type InequationSolutionNodeOptions = {
@@ -11,6 +11,24 @@ export declare class InequationSolutionNode implements Node {
11
11
  intervalSolution: IntervalNode | UnionIntervalNode;
12
12
  opts?: NodeOptions;
13
13
  constructor(intervalSolution: IntervalNode | UnionIntervalNode, params?: InequationSolutionNodeOptions);
14
+ toIdentifiers(): {
15
+ id: NodeIds;
16
+ intervalSolution: {
17
+ id: NodeIds;
18
+ children: ({
19
+ id: NodeIds;
20
+ } & Record<string, any>)[];
21
+ } | {
22
+ id: NodeIds;
23
+ leftChild: {
24
+ id: NodeIds;
25
+ } & Record<string, any>;
26
+ rightChild: {
27
+ id: NodeIds;
28
+ } & Record<string, any>;
29
+ closure: import("../sets/closure").ClosureType;
30
+ };
31
+ };
14
32
  toAllTexs(): string[];
15
33
  toAllValidTexs(): string[];
16
34
  toEquivalentNodes(opts?: NodeOptions): (import("./inequationNode").InequationNode | InequationSolutionNode)[];