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
@@ -56,6 +56,9 @@ class Fraction {
56
56
  get dfrac() {
57
57
  return this.tex.replace('\\frac', '\\dfrac');
58
58
  }
59
+ get tfrac() {
60
+ return this.tex.replace('\\frac', '\\tfrac');
61
+ }
59
62
  parse = (value, denominatorOrPeriodic) => {
60
63
  let S;
61
64
  if (value === null || value === "") {
@@ -108,6 +111,7 @@ class Fraction {
108
111
  this._numerator = value * Math.pow(10, p) - Math.floor(value * Math.pow(10, p - denominatorOrPeriodic));
109
112
  this.denominator = Math.pow(10, p) - Math.pow(10, p - denominatorOrPeriodic);
110
113
  }
114
+ this.reduce();
111
115
  }
112
116
  break;
113
117
  case "object":
@@ -194,15 +198,21 @@ class Fraction {
194
198
  if (p instanceof Fraction) {
195
199
  return this.pow(p.value);
196
200
  }
197
- if (!Number.isSafeInteger(p)) {
198
- return this.invalid();
199
- }
200
201
  this.reduce();
201
202
  if (p < 0) {
202
203
  this.invert();
203
204
  }
204
- this._numerator = this._numerator ** Math.abs(p);
205
- this._denominator = this._denominator ** Math.abs(p);
205
+ let controlNumerator = Math.floor(Math.pow(this._numerator, Math.abs(p))), controlDenominator = Math.floor(Math.pow(this._denominator, Math.abs(p)));
206
+ if (controlNumerator ** Math.abs(p) === this._numerator
207
+ &&
208
+ controlDenominator ** Math.abs(p) === this._denominator) {
209
+ this._numerator = this._numerator ** Math.abs(p);
210
+ this._denominator = this._denominator ** Math.abs(p);
211
+ }
212
+ else {
213
+ this._numerator = this._numerator ** Math.abs(p);
214
+ this._denominator = this._denominator ** Math.abs(p);
215
+ }
206
216
  return this;
207
217
  };
208
218
  root = (p) => {
@@ -354,16 +364,19 @@ class Fraction {
354
364
  return Math.abs(numeric_1.Numeric.gcd(this._numerator, this._denominator)) === 1;
355
365
  };
356
366
  isNatural = () => {
367
+ return this.isRelative() && this.isPositive();
368
+ };
369
+ isRelative = () => {
357
370
  return this.clone().reduce().denominator === 1;
358
371
  };
359
372
  isRational = () => {
360
- return !this.isNatural();
373
+ return !this.isRelative();
361
374
  };
362
375
  isEven = () => {
363
- return this.isNatural() && this.value % 2 === 0;
376
+ return this.isRelative() && this.value % 2 === 0;
364
377
  };
365
378
  isOdd = () => {
366
- return this.isNatural() && this.value % 2 === 1;
379
+ return this.isRelative() && this.value % 2 === 1;
367
380
  };
368
381
  sign = () => {
369
382
  return (this._numerator * this._denominator >= 0) ? 1 : -1;
@@ -1 +1 @@
1
- {"version":3,"file":"fraction.js","sourceRoot":"","sources":["../../../src/maths/coefficients/fraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fraction.js","sourceRoot":"","sources":["../../../src/maths/coefficients/fraction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare class NumExp {
2
+ private _rpn;
3
+ private _expression;
4
+ private _isValid;
5
+ constructor(value: string);
6
+ get rpn(): {
7
+ token: string;
8
+ tokenType: string;
9
+ }[];
10
+ get isValid(): boolean;
11
+ set isValid(value: boolean);
12
+ get expression(): string;
13
+ private _extractDecimalPart;
14
+ private _numberCorrection;
15
+ private _addToStack;
16
+ evaluate(values: {
17
+ [Key: string]: number;
18
+ }): number;
19
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumExp = void 0;
4
+ const shutingyard_1 = require("../shutingyard");
5
+ const coefficients_1 = require("../coefficients");
6
+ class NumExp {
7
+ _rpn;
8
+ _expression;
9
+ _isValid;
10
+ constructor(value) {
11
+ this._expression = value;
12
+ this._rpn = new shutingyard_1.Shutingyard(shutingyard_1.ShutingyardMode.NUMERIC).parse(value).rpn;
13
+ }
14
+ get rpn() {
15
+ return this._rpn;
16
+ }
17
+ get isValid() {
18
+ if (this._isValid === undefined) {
19
+ this.evaluate({ x: 0 });
20
+ }
21
+ return this._isValid;
22
+ }
23
+ set isValid(value) {
24
+ this._isValid = value;
25
+ }
26
+ get expression() {
27
+ return this._expression;
28
+ }
29
+ _extractDecimalPart(value) {
30
+ let decimal = value.toString();
31
+ if (!decimal.includes('.')) {
32
+ return '';
33
+ }
34
+ decimal = decimal.split('.')[1];
35
+ return decimal.substring(0, decimal.length - 2);
36
+ }
37
+ _numberCorrection(value) {
38
+ const epsilon = 0.00000000000001, number_of_digits = 6;
39
+ const decimal = this._extractDecimalPart(value);
40
+ if (decimal === '') {
41
+ return value;
42
+ }
43
+ const n9 = decimal.match(/9+$/g);
44
+ const n0 = decimal.match(/0+$/g);
45
+ if (n9 && n9[0].length >= number_of_digits) {
46
+ const mod = this._extractDecimalPart(value + epsilon), mod0 = mod.match(/0+$/g);
47
+ if (mod0 && mod0[0].length >= number_of_digits) {
48
+ return +((value + epsilon).toString().split(mod0[0])[0]);
49
+ }
50
+ }
51
+ if (n0 && n0[0].length >= number_of_digits) {
52
+ const mod = this._extractDecimalPart(value - epsilon), mod9 = mod.match(/9+$/g);
53
+ if (mod9 && mod9[0].length >= number_of_digits) {
54
+ return +(value.toString().split(n0[0])[0]);
55
+ }
56
+ }
57
+ return value;
58
+ }
59
+ _addToStack(stack, value) {
60
+ stack.push(this._numberCorrection(value));
61
+ }
62
+ evaluate(values) {
63
+ const stack = [];
64
+ this.isValid = true;
65
+ for (const element of this._rpn) {
66
+ if (element.tokenType === shutingyard_1.ShutingyardType.COEFFICIENT) {
67
+ if (!isNaN(+element.token)) {
68
+ this._addToStack(stack, +element.token);
69
+ }
70
+ else {
71
+ this._addToStack(stack, new coefficients_1.Fraction(element.token).value);
72
+ }
73
+ }
74
+ else if (element.tokenType === shutingyard_1.ShutingyardType.VARIABLE) {
75
+ if (values[element.token] !== undefined) {
76
+ this._addToStack(stack, +values[element.token]);
77
+ }
78
+ }
79
+ else if (element.tokenType === shutingyard_1.ShutingyardType.CONSTANT) {
80
+ this._addToStack(stack, shutingyard_1.tokenConstant[element.token]);
81
+ }
82
+ else if (element.tokenType === shutingyard_1.ShutingyardType.OPERATION) {
83
+ if (element.token === '*') {
84
+ const b = stack.pop(), a = stack.pop();
85
+ if (a === undefined || b === undefined) {
86
+ this.isValid = false;
87
+ }
88
+ this._addToStack(stack, a * b);
89
+ }
90
+ else if (element.token === '/') {
91
+ const b = stack.pop(), a = stack.pop();
92
+ if (a === undefined || b === undefined) {
93
+ this.isValid = false;
94
+ }
95
+ this._addToStack(stack, a / b);
96
+ }
97
+ else if (element.token === '+') {
98
+ const b = stack.pop(), a = stack.pop();
99
+ if (a === undefined || b === undefined) {
100
+ this.isValid = false;
101
+ }
102
+ this._addToStack(stack, (+a) + (+b));
103
+ }
104
+ else if (element.token === '-') {
105
+ const b = stack.pop(), a = stack.pop() || 0;
106
+ if (b === undefined) {
107
+ this.isValid = false;
108
+ }
109
+ this._addToStack(stack, a - b);
110
+ }
111
+ else if (element.token === '^') {
112
+ const b = stack.pop(), a = stack.pop();
113
+ if (a === undefined || b === undefined) {
114
+ this.isValid = false;
115
+ }
116
+ this._addToStack(stack, Math.pow(a, b));
117
+ }
118
+ }
119
+ else if (element.tokenType === shutingyard_1.ShutingyardType.FUNCTION) {
120
+ const a = stack.pop();
121
+ if (a === undefined) {
122
+ this.isValid = false;
123
+ }
124
+ if (element.token === 'sin') {
125
+ this._addToStack(stack, Math.sin(a));
126
+ }
127
+ else if (element.token === 'cos') {
128
+ this._addToStack(stack, Math.cos(a));
129
+ }
130
+ else if (element.token === 'tan') {
131
+ this._addToStack(stack, Math.tan(a));
132
+ }
133
+ else if (element.token === 'sqrt') {
134
+ this._addToStack(stack, Math.sqrt(a));
135
+ }
136
+ }
137
+ }
138
+ if (stack.length === 1) {
139
+ return stack[0];
140
+ }
141
+ else {
142
+ throw `There was a problem parsing: ${this._expression}`;
143
+ }
144
+ }
145
+ }
146
+ exports.NumExp = NumExp;
147
+ //# sourceMappingURL=numexp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":";;;AAAA,gDAA4F;AAC5F,kDAAyC;AAEzC,MAAa,MAAM;IACP,IAAI,CAAwC;IAC5C,WAAW,CAAQ;IACnB,QAAQ,CAAS;IAEzB,YAAY,KAAa;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,6BAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;IACzE,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACP,IAAG,IAAI,CAAC,QAAQ,KAAG,SAAS,EAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;SACxB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,KAAc;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACzB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAE9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,EAAE,CAAA;SACZ;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE/B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnD,CAAC;IAEO,iBAAiB,CAAC,KAAa;QAQnC,MAAM,OAAO,GAAG,gBAAgB,EAC5B,gBAAgB,GAAG,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAG,OAAO,KAAG,EAAE,EAAC;YAAC,OAAO,KAAK,CAAA;SAAC;QAE9B,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEhC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,EAAE;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAAC,EACjD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAG,gBAAgB,EAAC;gBAEzC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aACzD;SACJ;QAED,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,EAAE;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAAC,EACjD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAG,gBAAgB,EAAC;gBAEzC,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACJ;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,KAAa;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ,CAAC,MAAiC;QACtC,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,WAAW,EAAE;gBAEnD,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;iBAC1C;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,uBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAA;iBAC7D;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;oBACrC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;iBAClD;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,2BAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;aACxD;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,SAAS,EAAE;gBACxD,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;oBACxB,IAAG,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBACzC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;iBAC1C;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;gBACrB,IAAG,CAAC,KAAK,SAAS,EAAC;oBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;iBAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAG,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;iBACxC;aACJ;SACJ;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;SAClB;aAAM;YACH,MAAM,gCAAgC,IAAI,CAAC,WAAW,EAAE,CAAA;SAC3D;IACL,CAAC;CACJ;AA1JD,wBA0JC"}
@@ -0,0 +1,33 @@
1
+ import { Polynom } from "../algebra";
2
+ import { Fraction } from "../coefficients";
3
+ declare type Factor = {
4
+ polynom: Polynom;
5
+ degree: Fraction;
6
+ };
7
+ export declare function isFactor(value: any): value is Factor;
8
+ export declare class PolynomExpFactor {
9
+ constructor(...values: unknown[]);
10
+ private _factors;
11
+ get factors(): Factor[];
12
+ private _powerAsInteger;
13
+ get powerAsInteger(): boolean;
14
+ set powerAsInteger(value: boolean);
15
+ get tex(): string;
16
+ addFactor: (value: Factor) => PolynomExpFactor;
17
+ multiply: (value: PolynomExpFactor) => PolynomExpFactor;
18
+ divide: (value: PolynomExpFactor) => PolynomExpFactor;
19
+ derivative: (letter: string) => PolynomExp;
20
+ private _factorDerivative;
21
+ private _factorAsTex;
22
+ }
23
+ export declare class PolynomExp {
24
+ private _factors;
25
+ constructor(...values: PolynomExpFactor[]);
26
+ private _powerAsInteger;
27
+ get powerAsInteger(): boolean;
28
+ set powerAsInteger(value: boolean);
29
+ get tex(): string;
30
+ add: (value: PolynomExpFactor) => PolynomExp;
31
+ subtract: (value: PolynomExpFactor) => PolynomExp;
32
+ }
33
+ export {};
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PolynomExp = exports.PolynomExpFactor = exports.isFactor = void 0;
4
+ const algebra_1 = require("../algebra");
5
+ const coefficients_1 = require("../coefficients");
6
+ function isFactor(value) {
7
+ return value && 'polynom' in value && 'degree' in value;
8
+ }
9
+ exports.isFactor = isFactor;
10
+ class PolynomExpFactor {
11
+ constructor(...values) {
12
+ this._powerAsInteger = true;
13
+ this._factors = [];
14
+ for (let factor of values) {
15
+ if (isFactor(factor)) {
16
+ this.addFactor({
17
+ polynom: factor.polynom,
18
+ degree: factor.degree
19
+ });
20
+ }
21
+ }
22
+ }
23
+ _factors;
24
+ get factors() {
25
+ return this._factors;
26
+ }
27
+ _powerAsInteger;
28
+ get powerAsInteger() {
29
+ return this._powerAsInteger;
30
+ }
31
+ set powerAsInteger(value) {
32
+ this._powerAsInteger = value;
33
+ }
34
+ get tex() {
35
+ const numerators = [], denominators = [];
36
+ for (const k of this._factors) {
37
+ if (k.degree.isPositive()) {
38
+ numerators.push(this._factorAsTex(k));
39
+ }
40
+ else {
41
+ denominators.push(this._factorAsTex({
42
+ polynom: k.polynom,
43
+ degree: k.degree.clone().opposed()
44
+ }));
45
+ }
46
+ }
47
+ console.log(numerators.length);
48
+ if (denominators.length > 0) {
49
+ return `\\dfrac{ ${numerators.length > 0 ? numerators.join('') : 1} }{ ${denominators.join('')} }`;
50
+ }
51
+ else {
52
+ return numerators.join('');
53
+ }
54
+ }
55
+ addFactor = (value) => {
56
+ this._factors.push({
57
+ polynom: new algebra_1.Polynom(value.polynom),
58
+ degree: new coefficients_1.Fraction(value.degree)
59
+ });
60
+ return this;
61
+ };
62
+ multiply = (value) => {
63
+ for (const k of value.factors) {
64
+ this.addFactor(k);
65
+ }
66
+ return this;
67
+ };
68
+ divide = (value) => {
69
+ for (const k of value.factors) {
70
+ this.addFactor({
71
+ polynom: k.polynom,
72
+ degree: k.degree.clone().opposed()
73
+ });
74
+ }
75
+ return this;
76
+ };
77
+ derivative = (letter) => {
78
+ if (this._factors.length === 2) {
79
+ const A = this._factors[0], B = this._factors[1], P = new PolynomExp();
80
+ let Ad = this._factorDerivative(A), Bd = this._factorDerivative(B);
81
+ P.add(new PolynomExpFactor({
82
+ polynom: A.polynom.derivative(letter),
83
+ }));
84
+ }
85
+ return;
86
+ };
87
+ _factorDerivative = (factor, letter) => {
88
+ let derivativeExpression = new PolynomExpFactor();
89
+ derivativeExpression.addFactor({ polynom: new algebra_1.Polynom(factor.degree), degree: new coefficients_1.Fraction().one() });
90
+ derivativeExpression.addFactor({ polynom: factor.polynom, degree: factor.degree.subtract(1) });
91
+ derivativeExpression.addFactor({
92
+ polynom: factor.polynom.clone().derivative(letter),
93
+ degree: new coefficients_1.Fraction().one()
94
+ });
95
+ return derivativeExpression;
96
+ };
97
+ _factorAsTex = (factor, withParenthesis) => {
98
+ let tex = '';
99
+ if (factor.degree.isOne()) {
100
+ if (withParenthesis === undefined || withParenthesis) {
101
+ tex = `\\left(${factor.polynom.tex}\\right)`;
102
+ }
103
+ else {
104
+ tex = factor.polynom.tex;
105
+ }
106
+ }
107
+ else if (factor.degree.isNatural()) {
108
+ tex = `\\left(${factor.polynom.tex}\\right)^{ ${factor.degree.tex} }`;
109
+ }
110
+ else {
111
+ if (this._powerAsInteger) {
112
+ if (factor.degree.denominator === 2) {
113
+ tex = `\\sqrt{${factor.polynom.tex}}`;
114
+ }
115
+ else {
116
+ tex = `\\sqrt[${factor.degree.denominator}]{${factor.polynom.tex}}`;
117
+ }
118
+ if (factor.degree.numerator !== 1) {
119
+ tex += `^{ ${factor.degree.numerator} }`;
120
+ }
121
+ }
122
+ else {
123
+ tex = `\\left(${factor.polynom.tex}\\right)^{ ${factor.degree.tex} }`;
124
+ }
125
+ }
126
+ return tex;
127
+ };
128
+ }
129
+ exports.PolynomExpFactor = PolynomExpFactor;
130
+ class PolynomExp {
131
+ _factors;
132
+ constructor(...values) {
133
+ this._factors = [];
134
+ if (values !== undefined) {
135
+ for (const factor of values) {
136
+ console.log('ADDING', factor.tex);
137
+ this._factors.push({
138
+ factors: factor,
139
+ positive: true
140
+ });
141
+ }
142
+ }
143
+ this._powerAsInteger = true;
144
+ }
145
+ _powerAsInteger;
146
+ get powerAsInteger() {
147
+ return this._powerAsInteger;
148
+ }
149
+ set powerAsInteger(value) {
150
+ for (const factor of this._factors) {
151
+ factor.factors.powerAsInteger = value;
152
+ }
153
+ this._powerAsInteger = value;
154
+ }
155
+ get tex() {
156
+ let tex = '';
157
+ for (const factor of this._factors) {
158
+ if (factor.factors.tex === '') {
159
+ continue;
160
+ }
161
+ if (tex !== '' || !factor.positive) {
162
+ tex += factor.positive ? '+' : '-';
163
+ }
164
+ tex += factor.factors.tex;
165
+ }
166
+ return tex;
167
+ }
168
+ add = (value) => {
169
+ value.powerAsInteger = this._powerAsInteger;
170
+ this._factors.push({
171
+ factors: value,
172
+ positive: true
173
+ });
174
+ return this;
175
+ };
176
+ subtract = (value) => {
177
+ value.powerAsInteger = this._powerAsInteger;
178
+ this._factors.push({
179
+ factors: value,
180
+ positive: false
181
+ });
182
+ return this;
183
+ };
184
+ }
185
+ exports.PolynomExp = PolynomExp;
186
+ //# sourceMappingURL=polynomexp.bkp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polynomexp.bkp.js","sourceRoot":"","sources":["../../../src/maths/expressions/polynomexp.bkp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { Polynom, PolynomParsingType } from "../algebra";
2
+ import { Fraction, FractionParsingType } from "../coefficients";
3
+ declare type PolynomExpMathFunctionType = {
4
+ name: string;
5
+ fn: Function;
6
+ tex: string;
7
+ };
8
+ export declare class PolynomExpFactor {
9
+ constructor(polynom: PolynomParsingType, degree?: FractionParsingType, mathFunction?: PolynomExpMathFunctionType);
10
+ private _forceParenthesis;
11
+ get forceParenthesis(): boolean;
12
+ set forceParenthesis(value: boolean);
13
+ private _fn;
14
+ get fn(): PolynomExpMathFunctionType;
15
+ set fn(value: PolynomExpMathFunctionType);
16
+ private _powerAsInteger;
17
+ get powerAsInteger(): boolean;
18
+ set powerAsInteger(value: boolean);
19
+ private _polynom;
20
+ get polynom(): Polynom;
21
+ set polynom(value: Polynom);
22
+ private _degree;
23
+ get degree(): Fraction;
24
+ set degree(value: Fraction);
25
+ get tex(): string;
26
+ get isCoefficient(): boolean;
27
+ get firstCoefficient(): Fraction;
28
+ private get _texDegree();
29
+ setForceParenthesis(value?: boolean): PolynomExpFactor;
30
+ derivative(letter?: string): PolynomExpProduct;
31
+ }
32
+ export declare class PolynomExpProduct {
33
+ constructor(...values: PolynomExpFactor[]);
34
+ private _fn;
35
+ get fn(): PolynomExpMathFunctionType;
36
+ set fn(value: PolynomExpMathFunctionType);
37
+ private _factors;
38
+ get factors(): PolynomExpFactor[];
39
+ set factors(value: PolynomExpFactor[]);
40
+ private _positive;
41
+ get positive(): boolean;
42
+ set positive(value: boolean);
43
+ private _asPositiveDegree;
44
+ get asPositiveDegree(): boolean;
45
+ set asPositiveDegree(value: boolean);
46
+ get tex(): string;
47
+ reduce(): PolynomExpProduct;
48
+ integrate(letter?: string): PolynomExpProduct;
49
+ applyMathFunction(mathFn: PolynomExpMathFunctionType): PolynomExpProduct;
50
+ private _integrateWithInternalDerivative;
51
+ }
52
+ export {};