pimath 0.0.30 → 0.0.31

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 (85) hide show
  1. package/dev/pi.js +850 -486
  2. package/dev/pi.js.map +1 -1
  3. package/dist/pi.js +1 -1
  4. package/dist/pi.js.map +1 -1
  5. package/docs/assets/search.js +1 -1
  6. package/docs/classes/algebra.Equation.html +9 -9
  7. package/docs/classes/algebra.LinearSystem.html +1 -1
  8. package/docs/classes/algebra.Logicalset.html +2 -2
  9. package/docs/classes/algebra.Monom.html +42 -40
  10. package/docs/classes/algebra.Polynom.html +10 -10
  11. package/docs/classes/algebra.PolynomExpFactor.html +1 -0
  12. package/docs/classes/algebra.PolynomExpProduct.html +1 -0
  13. package/docs/classes/algebra.Rational.html +2 -2
  14. package/docs/classes/coefficients.Fraction.html +4 -4
  15. package/docs/classes/coefficients.Nthroot.html +1 -1
  16. package/docs/classes/geometry.Circle.html +2 -2
  17. package/docs/classes/geometry.Line.html +2 -2
  18. package/docs/classes/geometry.Point.html +1 -1
  19. package/docs/classes/geometry.Triangle.html +6 -6
  20. package/docs/classes/geometry.Vector.html +1 -1
  21. package/docs/classes/numeric.Numeric.html +5 -5
  22. package/docs/classes/shutingyard.Shutingyard.html +7 -8
  23. package/docs/enums/shutingyard.ShutingyardMode.html +1 -0
  24. package/docs/enums/shutingyard.ShutingyardType.html +1 -0
  25. package/docs/index.html +1 -1
  26. package/docs/interfaces/geometry.remarquableLines.html +1 -1
  27. package/docs/modules/algebra.html +1 -1
  28. package/docs/modules/coefficients.html +1 -1
  29. package/docs/modules/geometry.html +1 -1
  30. package/docs/modules/numeric.html +1 -1
  31. package/docs/modules/random.Random.html +1 -1
  32. package/docs/modules/random.html +1 -1
  33. package/docs/modules/shutingyard.html +1 -1
  34. package/docs/modules.html +1 -1
  35. package/esm/main.js +3 -1
  36. package/esm/main.js.map +1 -1
  37. package/esm/maths/algebra/equation.js +1 -1
  38. package/esm/maths/algebra/equation.js.map +1 -1
  39. package/esm/maths/algebra/index.d.ts +1 -0
  40. package/esm/maths/algebra/index.js +1 -0
  41. package/esm/maths/algebra/index.js.map +1 -1
  42. package/esm/maths/algebra/monom.d.ts +4 -1
  43. package/esm/maths/algebra/monom.js +52 -37
  44. package/esm/maths/algebra/monom.js.map +1 -1
  45. package/esm/maths/algebra/polynom.d.ts +19 -15
  46. package/esm/maths/algebra/polynom.js +242 -174
  47. package/esm/maths/algebra/polynom.js.map +1 -1
  48. package/esm/maths/coefficients/fraction.d.ts +3 -0
  49. package/esm/maths/coefficients/fraction.js +21 -8
  50. package/esm/maths/coefficients/fraction.js.map +1 -1
  51. package/esm/maths/expressions/numexp.d.ts +19 -0
  52. package/esm/maths/expressions/numexp.js +147 -0
  53. package/esm/maths/expressions/numexp.js.map +1 -0
  54. package/esm/maths/expressions/polynomexp.bkp.d.ts +33 -0
  55. package/esm/maths/expressions/polynomexp.bkp.js +186 -0
  56. package/esm/maths/expressions/polynomexp.bkp.js.map +1 -0
  57. package/esm/maths/expressions/polynomexp.d.ts +52 -0
  58. package/esm/maths/expressions/polynomexp.js +233 -0
  59. package/esm/maths/expressions/polynomexp.js.map +1 -0
  60. package/esm/maths/geometry/line.d.ts +3 -2
  61. package/esm/maths/geometry/line.js +3 -2
  62. package/esm/maths/geometry/line.js.map +1 -1
  63. package/esm/maths/shutingyard.d.ts +6 -6
  64. package/esm/maths/shutingyard.js +1 -5
  65. package/esm/maths/shutingyard.js.map +1 -1
  66. package/package.json +1 -1
  67. package/{dev → public}/demo.css +0 -0
  68. package/{dev → public}/index.html +43 -13
  69. package/{dev → public}/playground.html +1 -1
  70. package/src/main.ts +13 -2
  71. package/src/maths/algebra/equation.ts +1 -1
  72. package/src/maths/algebra/index.ts +2 -1
  73. package/src/maths/algebra/monom.ts +71 -49
  74. package/src/maths/algebra/polynom.ts +432 -309
  75. package/src/maths/coefficients/fraction.ts +28 -11
  76. package/src/maths/{numexp.ts → expressions/numexp.ts} +40 -20
  77. package/src/maths/expressions/polynomexp.bkp.ts +223 -0
  78. package/src/maths/expressions/polynomexp.ts +309 -0
  79. package/src/maths/geometry/line.ts +4 -2
  80. package/src/maths/shutingyard.ts +11 -7
  81. package/tests/algebra/monom.test.ts +12 -8
  82. package/tests/algebra/polynom.test.ts +28 -2
  83. package/tests/numexp.test.ts +10 -3
  84. package/tests/polynomexp.test.ts +15 -0
  85. package/tests/shutingyard.test.ts +4 -4
@@ -53,8 +53,8 @@ class Monom {
53
53
  }
54
54
  }
55
55
  get variables() {
56
- this.clone().clean();
57
- return Object.keys(this._literal);
56
+ let M = this.clone().clean();
57
+ return Object.keys(M.literal);
58
58
  }
59
59
  get display() {
60
60
  let L = '', letters = Object.keys(this._literal).sort();
@@ -169,7 +169,7 @@ class Monom {
169
169
  if (this._literal[letter].isNotZero()) {
170
170
  L += `${letter}`;
171
171
  if (this._literal[letter].isNotEqual(1)) {
172
- L += `^{${this._literal[letter].display}}`;
172
+ L += `^{${this._literal[letter].tfrac}}`;
173
173
  }
174
174
  }
175
175
  }
@@ -214,6 +214,45 @@ class Monom {
214
214
  }
215
215
  return this;
216
216
  };
217
+ static addToken = (stack, element) => {
218
+ let q1, q2, m, letter, pow;
219
+ if (element.tokenType === shutingyard_1.ShutingyardType.COEFFICIENT) {
220
+ stack.push(new Monom(new coefficients_1.Fraction(element.token)));
221
+ }
222
+ else if (element.tokenType === shutingyard_1.ShutingyardType.VARIABLE) {
223
+ let M = new Monom().one();
224
+ M.setLetter(element.token, 1);
225
+ stack.push(M.clone());
226
+ }
227
+ else if (element.tokenType === shutingyard_1.ShutingyardType.OPERATION) {
228
+ switch (element.token) {
229
+ case '-':
230
+ q2 = (stack.pop()) || new Monom().zero();
231
+ q1 = (stack.pop()) || new Monom().zero();
232
+ stack.push(q1.subtract(q2));
233
+ break;
234
+ case '*':
235
+ q2 = (stack.pop()) || new Monom().one();
236
+ q1 = (stack.pop()) || new Monom().one();
237
+ stack.push(q1.multiply(q2));
238
+ break;
239
+ case '/':
240
+ q2 = (stack.pop()) || new Monom().one();
241
+ q1 = (stack.pop()) || new Monom().one();
242
+ stack.push(q1.divide(q2));
243
+ break;
244
+ case '^':
245
+ pow = (stack.pop().coefficient) || new coefficients_1.Fraction().one();
246
+ m = (stack.pop()) || new Monom().one();
247
+ letter = m.variables[0];
248
+ if (letter !== undefined) {
249
+ m.setLetter(letter, pow);
250
+ }
251
+ stack.push(m);
252
+ break;
253
+ }
254
+ }
255
+ };
217
256
  _shutingYardToReducedMonom = (inputStr) => {
218
257
  const SY = new shutingyard_1.Shutingyard().parse(inputStr);
219
258
  const rpn = SY.rpn;
@@ -235,39 +274,7 @@ class Monom {
235
274
  }
236
275
  else {
237
276
  for (const element of rpn) {
238
- if (element.tokenType === 'coefficient') {
239
- let M = new Monom().one();
240
- M.coefficient = new coefficients_1.Fraction(element.token);
241
- stack.push(M.clone());
242
- }
243
- else if (element.tokenType === 'variable') {
244
- let M = new Monom().one();
245
- M.setLetter(element.token, 1);
246
- stack.push(M.clone());
247
- }
248
- else if (element.tokenType === 'operation') {
249
- switch (element.token) {
250
- case '-':
251
- q2 = (stack.pop()) || new Monom().zero();
252
- q1 = (stack.pop()) || new Monom().zero();
253
- stack.push(q1.subtract(q2));
254
- break;
255
- case '*':
256
- q2 = (stack.pop()) || new Monom().one();
257
- q1 = (stack.pop()) || new Monom().one();
258
- stack.push(q1.multiply(q2));
259
- break;
260
- case '^':
261
- pow = (stack.pop().coefficient) || new coefficients_1.Fraction().one();
262
- m = (stack.pop()) || new Monom().one();
263
- letter = m.variables[0];
264
- if (letter !== undefined) {
265
- m.setLetter(letter, pow);
266
- }
267
- stack.push(m);
268
- break;
269
- }
270
- }
277
+ Monom.addToken(stack, element);
271
278
  }
272
279
  }
273
280
  this.one();
@@ -313,6 +320,11 @@ class Monom {
313
320
  }
314
321
  return this;
315
322
  };
323
+ reduce = () => {
324
+ this.clean();
325
+ this.coefficient.reduce();
326
+ return this;
327
+ };
316
328
  opposed = () => {
317
329
  this._coefficient.opposed();
318
330
  return this;
@@ -378,7 +390,7 @@ class Monom {
378
390
  pow = (nb) => {
379
391
  this._coefficient.pow(nb);
380
392
  for (let letter in this._literal) {
381
- this._literal[letter].pow(nb);
393
+ this._literal[letter].multiply(nb);
382
394
  }
383
395
  return this;
384
396
  };
@@ -406,6 +418,9 @@ class Monom {
406
418
  return this._coefficient.isEqual(M.coefficient);
407
419
  case 'same':
408
420
  let M1 = this.variables, M2 = M.variables, K = M1.concat(M2.filter((item) => M1.indexOf(item) < 0));
421
+ if (M1.length === 0 && M2.length === 0) {
422
+ return true;
423
+ }
409
424
  if (!this.isZero() && !M.isZero()) {
410
425
  for (let key of K) {
411
426
  if (this._literal[key] === undefined || M.literal[key] === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"monom.js","sourceRoot":"","sources":["../../../src/maths/algebra/monom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monom.js","sourceRoot":"","sources":["../../../src/maths/algebra/monom.ts"],"names":[],"mappings":";;;AAGA,kDAAyC;AACzC,wCAAmC;AACnC,gDAA8E;AAO9E,MAAa,KAAK;IACN,YAAY,CAAW;IACvB,QAAQ,CAAc;IAQ9B,YAAY,KAAe;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,KAAK,KAAK,SAAS,EAAE;YAErB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACrB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IASD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAMD,IAAI,WAAW,CAAC,CAA6B;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAMD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAOD,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,IAAI,CAAC,GAAgB,EAAE,CAAA;YACvB,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC3B,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;aAC7C;YACD,OAAO,CAAC,CAAC;SACZ;aAAM;YACH,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;IACL,CAAC;IAMD,IAAI,OAAO,CAAC,CAAc;QACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IAMD,IAAI,UAAU,CAAC,QAAgB;QAI3B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EAAE;YAE/D,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;aAC/C;YAID,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QAGD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAEtD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;aAC/C;YAGD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SAC7B;IACL,CAAC;IAMD,IAAI,SAAS;QACT,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAMD,IAAI,OAAO;QACP,IAAI,CAAC,GAAW,EAAE,EACd,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/C,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBACrC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC5C;aACJ;SACJ;QAED,IAAI,CAAC,KAAK,EAAE,EAAE;YAEV,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aACzC;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC/B,OAAO,CAAC,CAAC;aACZ;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC,EAAE,CAAC;aAClB;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE;gBACtC,OAAO,GAAG,CAAC;aACd;iBAAM;gBACH,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;aAC7C;SACJ;IACL,CAAC;IAED,IAAI,QAAQ;QAER,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,CAAC,EAAE;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;SACxB;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;SACxB;QAGD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,EAAE;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;SACxB;QACD,MAAM,QAAQ,GAAG,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;QAGvE,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAExB,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;SACnD;QAED,MAAM,aAAa,GAAY,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;gBACpB,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;oBACpB,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;oBACpB,CAAC,CAAC,WAAW,GAAG,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAA;oBAC/B,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;oBACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBACxB;aACJ;SACJ;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;gBACpB,CAAC,CAAC,WAAW,GAAG,IAAI,uBAAQ,EAAE,CAAC,GAAG,EAAE,CAAA;gBACpC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;gBACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACxB;SACJ;aAAM;YACH,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;gBACpB,CAAC,CAAC,WAAW,GAAG,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAA;gBAC/B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACxB;SACJ;QAED,OAAO,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC5E,CAAC;IAEO,mBAAmB,CAAC,GAAkB,EAAE,MAAc;QAC1D,IAAI,OAAO,GAAkC,EAAE,CAAC;QAGhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClB,IAAI,IAAI,GAAgB,EAAE,CAAA;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAA;gBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACrB;iBAAM;gBACH,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE;oBAClB,IAAI,IAAI,GAAgB,EAAE,CAAA;oBAC1B,KAAK,IAAI,aAAa,IAAI,IAAI,EAAE;wBAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;qBAC5C;oBACD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAA;oBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACrB;aACJ;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAKD,IAAI,eAAe;QACf,IAAI,CAAC,GAAW,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE;YACvC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;SACxB;QAED,OAAO,IAAI,CAAC,GAAG,CAAA;IACnB,CAAC;IAKD,IAAI,GAAG;QAEH,IAAI,CAAC,GAAW,EAAE,EACd,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;QAE/C,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBACrC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC;iBAC5C;aACJ;SACJ;QAED,IAAI,CAAC,KAAK,EAAE,EAAE;YAEV,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;aACvC;iBAAM;gBACH,OAAO,GAAG,CAAC;aACd;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC/B,OAAO,CAAC,CAAC;aACZ;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC,EAAE,CAAC;aAClB;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE;gBACtC,OAAO,GAAG,CAAC;aACd;iBAAM;gBACH,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;aAC3C;SACJ;IACL,CAAC;IASD,KAAK,GAAG,CAAC,QAAiB,EAAS,EAAE;QAEjC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAA;SAC5C;aAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAQ,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;SACrB;aAAM,IAAI,QAAQ,YAAY,uBAAQ,EAAE;YACrC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;YACpC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;SACrB;aAAM,IAAI,QAAQ,YAAY,KAAK,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;SACtD;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,QAAQ,GAAG,CAAC,KAAc,EAAE,OAAc,EAAQ,EAAE;QAEvD,IAAI,EAAS,EAAE,EAAS,EAAE,CAAQ,EAAE,MAAc,EAAE,GAAa,CAAA;QAEjE,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,WAAW,EAAE;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,uBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAErD;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;YACvD,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;YACzB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SAExB;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,SAAS,EAAE;YACxD,QAAQ,OAAO,CAAC,KAAK,EAAE;gBACnB,KAAK,GAAG;oBAEJ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;oBACxC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;oBAExC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;oBAE3B,MAAM;gBACV,KAAK,GAAG;oBAEJ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;oBACvC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;oBAEvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;oBAC3B,MAAK;gBACT,KAAK,GAAG;oBAEJ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;oBACvC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;oBAEvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;oBACzB,MAAK;gBACT,KAAK,GAAG;oBAEJ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,uBAAQ,EAAE,CAAC,GAAG,EAAE,CAAA;oBACvD,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAA;oBAEtC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;oBAEvB,IAAI,MAAM,KAAK,SAAS,EAAE;wBACtB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;qBAC3B;oBAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAEb,MAAK;aACZ;SACJ;IACL,CAAC,CAAA;IACO,0BAA0B,GAAG,CAAC,QAAgB,EAAS,EAAE;QAE7D,MAAM,EAAE,GAAgB,IAAI,yBAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,GAAG,GAA2C,EAAE,CAAC,GAAG,CAAC;QAE3D,IAAI,KAAK,GAAY,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAA;QAE/C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,OAAO,IAAI,CAAA;SACd;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa,EAAE;gBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,uBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;aACjD;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;gBACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;aACnC;YACD,OAAO,IAAI,CAAA;SACd;aAAM;YAEH,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE;gBACvB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aACjC;SACJ;QAED,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;IAID,KAAK,GAAG,GAAU,EAAE;QAChB,IAAI,CAAC,GAAU,IAAI,KAAK,EAAE,CAAC;QAE3B,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAG1C,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5C;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IAEF,YAAY,GAAG,CAAC,OAAoB,EAAe,EAAE;QACjD,IAAI,CAAC,GAAgB,EAAE,CAAA;QAEvB,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;YACnB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;SAC5B;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;IAED,QAAQ,GAAG,CAAC,CAAQ,EAAS,EAAE;QAE3B,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;IAKD,IAAI,GAAG,GAAU,EAAE;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAKF,GAAG,GAAG,GAAU,EAAE;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAKF,KAAK,GAAG,GAAU,EAAE;QAChB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAChC;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAU,EAAE;QACjB,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;QACzB,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;IAUD,OAAO,GAAG,GAAU,EAAE;QAClB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAMF,GAAG,GAAG,CAAC,GAAG,CAAU,EAAS,EAAE;QAC3B,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACnB;gBACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aACxC;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aACnD;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAMF,QAAQ,GAAG,CAAC,GAAG,CAAU,EAAS,EAAE;QAChC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACnB;gBACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;aAC1D;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aACxD;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAMF,QAAQ,GAAG,CAAC,GAAG,CAAU,EAAS,EAAE;QAChC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YAEb,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAG1C,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;oBACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;iBACpD;qBAAM;oBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;iBAC/C;aAEJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,CAAoB,EAAS,EAAE;QAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAMD,MAAM,GAAG,CAAC,GAAG,CAAU,EAAS,EAAE;QAE9B,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YAEb,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAGxC,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;gBAGvJ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;oBAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAChC;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAMF,GAAG,GAAG,CAAC,EAAmB,EAAS,EAAE;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SACrC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAMF,IAAI,GAAG,CAAC,CAAS,EAAS,EAAE;QAExB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAKD,IAAI,GAAG,GAAU,EAAE;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;aAC1C;SACJ;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAA;IAKD,OAAO,GAAG,CAAC,CAAQ,EAAE,IAAa,EAAW,EAAE;QAE3C,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,IAAI,GAAG,GAAG,CAAC;SACd;QAGD,QAAQ,IAAI,EAAE;YACV,KAAK,GAAG;gBAEJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;oBAC1B,OAAO,KAAK,CAAC;iBAChB;gBAGD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACpD,KAAK,MAAM;gBAEP,IAAI,EAAE,GAAa,IAAI,CAAC,SAAS,EAC7B,EAAE,GAAa,CAAC,CAAC,SAAS,EAC1B,CAAC,GAAa,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvE,IAAG,EAAE,CAAC,MAAM,KAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAG,CAAC,EAAC;oBAAC,OAAO,IAAI,CAAA;iBAAC;gBAE/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC/B,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE;wBAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;4BAClE,OAAO,KAAK,CAAC;yBAChB;wBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;4BAC7C,OAAO,KAAK,CAAC;yBAChB;qBACJ;iBACJ;gBAGD,OAAO,IAAI,CAAC;YAChB;gBACI,OAAO,KAAK,CAAC;SACpB;IACL,CAAC,CAAA;IAKD,MAAM;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,CAAC;IACzC,CAAC;IAKD,KAAK;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IACxE,CAAC;IAMD,OAAO,GAAG,CAAC,CAAQ,EAAW,EAAE;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC;IAMF,QAAQ,GAAG,CAAC,CAAQ,EAAW,EAAE;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,QAAQ,GAAG,GAAY,EAAE;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;YAC9B,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC,CAAA;IAED,eAAe,GAAG,GAAY,EAAE;QAC5B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAE7B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;gBACnC,OAAO,KAAK,CAAA;aACf;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAED,sBAAsB,GAAG,GAAY,EAAE;QACnC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;gBACpC,OAAO,IAAI,CAAA;aACd;SACJ;QAED,OAAO,KAAK,CAAA;IAChB,CAAC,CAAA;IAQD,SAAS,GAAG,CAAC,MAAe,EAAW,EAAE;QAErC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YAClE,OAAO,KAAK,CAAA;SACf;QAGD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC,CAAC;IAOF,SAAS,GAAG,CAAC,MAAc,EAAE,GAAsB,EAAQ,EAAE;QACzD,IAAI,GAAG,YAAY,uBAAQ,EAAE;YAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;aAC/B;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;SACtC;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,uBAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;SAC5C;IACL,CAAC,CAAC;IAMF,MAAM,GAAG,CAAC,MAAe,EAAY,EAAE;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;SAChC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE;YAEtB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1E;aAAM;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;SACtG;IACL,CAAC,CAAC;IAMF,QAAQ,GAAG,CAAC,MAAuC,EAAY,EAAE;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,uBAAQ,EAAE;YAC1D,IAAI,SAAS,GAAgB,EAAE,CAAA;YAC/B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,uBAAQ,CAAC,MAAM,CAAC,CAAA;YACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACnC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;oBACzB,OAAO,IAAI,uBAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;iBAChC;gBAED,IAAI,KAAK,GAAG,IAAI,uBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBAEnC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC1C;SACJ;QAED,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IAMF,UAAU,GAAG,CAAC,MAAe,EAAS,EAAE;QAEpC,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,MAAM,GAAG,GAAG,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EACjC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAGtB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAG/B,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,uBAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;SACb;aAAM;YACH,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;SAC7B;IACL,CAAC,CAAC;IAEF,SAAS,GAAG,CAAC,MAAe,EAAS,EAAE;QAEnC,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,MAAM,GAAG,GAAG,CAAA;SACf;QAGD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAA;QAE5B,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACxC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACpD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAC9B;aAAM;YAIH,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;gBACxB,CAAC,CAAC,WAAW,GAAG,IAAI,uBAAQ,EAAE,CAAC,GAAG,EAAE,CAAA;aACvC;YACD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;SACzB;QAED,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;IASD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,MAAe,EAAS,EAAE;QAEvC,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;YAClB,IAAI,CAAC,CAAC,sBAAsB,EAAE,EAAE;gBAC5B,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;aAC5B;SACJ;QAGD,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,EACf,MAAM,GAAa,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EACnE,MAAM,GAAa,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EACrE,CAAC,GAAG,iBAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAC1B,CAAC,GAAG,iBAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAG/B,CAAC,CAAC,WAAW,GAAG,IAAI,uBAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAG5C,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;YAElB,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;oBACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC5B;aACJ;YACD,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,EAAE;oBAC3E,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;iBACjD;qBAAM;oBACH,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,uBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC/F;aACJ;SACJ;QAED,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IAMF,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,MAAe,EAAS,EAAE;QAC7C,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;QAE1B,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;YAClB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IAQF,SAAS,GAAG,CAAC,GAAG,CAAU,EAAW,EAAE;QACnC,IAAI,MAAM,GAAY,IAAI,CAAC;QAG3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC;aAChB;SACJ;QAGD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAMF,SAAS,GAAG,CAAC,GAAG,CAAU,EAAW,EAAE;QAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SAChB;QAGD,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;gBAC3C,OAAO,KAAK,CAAC;aAChB;SACJ;QAGD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;;AA55BN,sBA85BC"}
@@ -1,17 +1,19 @@
1
1
  import { literalType, Monom } from './monom';
2
+ import { Token } from '../shutingyard';
2
3
  import { Fraction } from "../coefficients";
4
+ export declare type PolynomParsingType = string | Polynom | number | Fraction | Monom;
3
5
  export declare class Polynom {
4
6
  private _rawString;
7
+ constructor(polynomString?: PolynomParsingType, ...values: unknown[]);
5
8
  private _monoms;
6
- private _factors;
7
- private _texString;
8
- constructor(polynomString?: string, ...values: unknown[]);
9
9
  get monoms(): Monom[];
10
10
  set monoms(M: Monom[]);
11
+ private _factors;
11
12
  get factors(): Polynom[];
12
13
  set factors(value: Polynom[]);
13
- get texFactors(): string;
14
+ private _texString;
14
15
  get texString(): string;
16
+ get texFactors(): string;
15
17
  get length(): number;
16
18
  get display(): string;
17
19
  get raw(): string;
@@ -19,9 +21,8 @@ export declare class Polynom {
19
21
  get isMultiVariable(): boolean;
20
22
  get variables(): string[];
21
23
  get numberOfVars(): number;
22
- private genDisplay;
23
- parse: (inputStr: string, ...values: unknown[]) => Polynom;
24
- private shutingYardToReducedPolynom;
24
+ parse: (inputStr: PolynomParsingType, ...values: unknown[]) => Polynom;
25
+ private _parseString;
25
26
  clone: () => Polynom;
26
27
  zero: () => Polynom;
27
28
  one: () => Polynom;
@@ -30,17 +31,11 @@ export declare class Polynom {
30
31
  add: (...values: unknown[]) => Polynom;
31
32
  subtract: (...values: unknown[]) => Polynom;
32
33
  multiply: (value: unknown) => Polynom;
33
- private multiplyByPolynom;
34
- private multiplyByFraction;
35
- private multiplyByInteger;
36
- private multiplyByMonom;
37
34
  euclidian: (P: Polynom) => {
38
35
  quotient: Polynom;
39
36
  reminder: Polynom;
40
37
  };
41
38
  divide: (value: unknown) => Polynom;
42
- private divideByInteger;
43
- private divideByFraction;
44
39
  pow: (nb: number) => Polynom;
45
40
  compare: (P: Polynom, sign?: string) => boolean;
46
41
  isZero(): boolean;
@@ -60,8 +55,6 @@ export declare class Polynom {
60
55
  primitive: (letter?: string) => Polynom;
61
56
  integrate: (a: Fraction | number, b: Fraction | number, letter?: string) => Fraction;
62
57
  factorize: (letter?: string) => Polynom[];
63
- private _factorize2ndDegree;
64
- private _factorizeByGroups;
65
58
  getZeroes: () => (Fraction | boolean)[];
66
59
  monomByDegree: (degree?: Fraction | number, letter?: string) => Monom;
67
60
  monomsByDegree: (degree?: number | Fraction, letter?: string) => Monom[];
@@ -73,4 +66,15 @@ export declare class Polynom {
73
66
  lcmNumerator: () => number;
74
67
  gcdNumerator: () => number;
75
68
  commonMonom: () => Monom;
69
+ private genDisplay;
70
+ static addToken: (stack: Polynom[], element: Token) => void;
71
+ private shutingYardToReducedPolynom;
72
+ private multiplyByPolynom;
73
+ private multiplyByFraction;
74
+ private multiplyByInteger;
75
+ private multiplyByMonom;
76
+ private divideByInteger;
77
+ private divideByFraction;
78
+ private _factorize2ndDegree;
79
+ private _factorizeByGroups;
76
80
  }