pimath 0.0.31 → 0.0.34

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 (117) hide show
  1. package/dist/pi.js +6530 -1
  2. package/dist/pi.js.map +1 -1
  3. package/dist/pi.min.js +2 -0
  4. package/dist/pi.min.js.map +1 -0
  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 +37 -37
  10. package/docs/classes/algebra.Polynom.html +10 -10
  11. package/docs/classes/algebra.PolynomExpFactor.html +1 -1
  12. package/docs/classes/algebra.PolynomExpProduct.html +1 -1
  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 +5 -5
  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 +4 -4
  23. package/docs/enums/geometry.LinePropriety.html +1 -0
  24. package/docs/enums/shutingyard.ShutingyardMode.html +1 -1
  25. package/docs/enums/shutingyard.ShutingyardType.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/random.Random.html +1 -1
  31. package/docs/modules/random.html +1 -1
  32. package/docs/modules/shutingyard.html +1 -1
  33. package/esm/main.js +2 -0
  34. package/esm/main.js.map +1 -1
  35. package/esm/maths/algebra/equation.d.ts +62 -17
  36. package/esm/maths/algebra/equation.js +597 -502
  37. package/esm/maths/algebra/equation.js.map +1 -1
  38. package/esm/maths/algebra/linearSystem.js +154 -101
  39. package/esm/maths/algebra/linearSystem.js.map +1 -1
  40. package/esm/maths/algebra/logicalset.d.ts +11 -0
  41. package/esm/maths/algebra/logicalset.js +18 -6
  42. package/esm/maths/algebra/logicalset.js.map +1 -1
  43. package/esm/maths/algebra/monom.d.ts +144 -0
  44. package/esm/maths/algebra/monom.js +626 -398
  45. package/esm/maths/algebra/monom.js.map +1 -1
  46. package/esm/maths/algebra/polynom.d.ts +49 -0
  47. package/esm/maths/algebra/polynom.js +995 -712
  48. package/esm/maths/algebra/polynom.js.map +1 -1
  49. package/esm/maths/algebra/rational.d.ts +12 -0
  50. package/esm/maths/algebra/rational.js +97 -82
  51. package/esm/maths/algebra/rational.js.map +1 -1
  52. package/esm/maths/coefficients/fraction.d.ts +18 -0
  53. package/esm/maths/coefficients/fraction.js +390 -332
  54. package/esm/maths/coefficients/fraction.js.map +1 -1
  55. package/esm/maths/coefficients/nthroot.d.ts +3 -0
  56. package/esm/maths/coefficients/nthroot.js +48 -33
  57. package/esm/maths/coefficients/nthroot.js.map +1 -1
  58. package/esm/maths/expressions/numexp.js +11 -3
  59. package/esm/maths/expressions/numexp.js.map +1 -1
  60. package/esm/maths/expressions/polynomexp.bkp.js +93 -93
  61. package/esm/maths/expressions/polynomexp.bkp.js.map +1 -1
  62. package/esm/maths/expressions/polynomexp.js +22 -9
  63. package/esm/maths/expressions/polynomexp.js.map +1 -1
  64. package/esm/maths/geometry/circle.d.ts +18 -6
  65. package/esm/maths/geometry/circle.js +139 -42
  66. package/esm/maths/geometry/circle.js.map +1 -1
  67. package/esm/maths/geometry/line.d.ts +9 -2
  68. package/esm/maths/geometry/line.js +245 -188
  69. package/esm/maths/geometry/line.js.map +1 -1
  70. package/esm/maths/geometry/point.d.ts +12 -0
  71. package/esm/maths/geometry/point.js +121 -73
  72. package/esm/maths/geometry/point.js.map +1 -1
  73. package/esm/maths/geometry/triangle.d.ts +22 -0
  74. package/esm/maths/geometry/triangle.js +197 -158
  75. package/esm/maths/geometry/triangle.js.map +1 -1
  76. package/esm/maths/geometry/vector.d.ts +4 -0
  77. package/esm/maths/geometry/vector.js +139 -115
  78. package/esm/maths/geometry/vector.js.map +1 -1
  79. package/esm/maths/numeric.d.ts +17 -0
  80. package/esm/maths/numeric.js +40 -0
  81. package/esm/maths/numeric.js.map +1 -1
  82. package/esm/maths/random/randomCore.js +15 -15
  83. package/esm/maths/random/randomCore.js.map +1 -1
  84. package/esm/maths/random/rndFraction.d.ts +3 -0
  85. package/esm/maths/random/rndFraction.js +19 -16
  86. package/esm/maths/random/rndFraction.js.map +1 -1
  87. package/esm/maths/random/rndHelpers.d.ts +17 -0
  88. package/esm/maths/random/rndHelpers.js +20 -0
  89. package/esm/maths/random/rndHelpers.js.map +1 -1
  90. package/esm/maths/random/rndMonom.d.ts +3 -0
  91. package/esm/maths/random/rndMonom.js +33 -26
  92. package/esm/maths/random/rndMonom.js.map +1 -1
  93. package/esm/maths/random/rndPolynom.d.ts +3 -0
  94. package/esm/maths/random/rndPolynom.js +49 -37
  95. package/esm/maths/random/rndPolynom.js.map +1 -1
  96. package/esm/maths/shutingyard.d.ts +21 -0
  97. package/esm/maths/shutingyard.js +86 -9
  98. package/esm/maths/shutingyard.js.map +1 -1
  99. package/package.json +2 -2
  100. package/public/index.html +47 -0
  101. package/src/maths/algebra/equation.ts +142 -128
  102. package/src/maths/algebra/monom.ts +6 -2
  103. package/src/maths/algebra/polynom.ts +2 -7
  104. package/src/maths/geometry/circle.ts +168 -75
  105. package/src/maths/geometry/line.ts +1 -1
  106. package/src/maths/geometry/point.ts +25 -2
  107. package/src/maths/numeric.ts +15 -0
  108. package/tests/algebra/polynom.test.ts +7 -0
  109. package/tests/geometry/circle.test.ts +33 -0
  110. package/tsconfig.json +2 -2
  111. package/webpack-production-min.config.js +26 -0
  112. package/webpack-production.config.js +1 -1
  113. package/dev/pi.js +0 -5392
  114. package/dev/pi.js.map +0 -1
  115. package/esm/maths/numexp.d.ts +0 -16
  116. package/esm/maths/numexp.js +0 -119
  117. package/esm/maths/numexp.js.map +0 -1
@@ -1,16 +0,0 @@
1
- export declare class NumExp {
2
- private _rpn;
3
- private _expression;
4
- constructor(value: string);
5
- get rpn(): {
6
- token: string;
7
- tokenType: string;
8
- }[];
9
- get expression(): string;
10
- private _extractDecimalPart;
11
- private _numberCorrection;
12
- private _addToStack;
13
- evaluate(values: {
14
- [Key: string]: number;
15
- }): number;
16
- }
@@ -1,119 +0,0 @@
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
- constructor(value) {
10
- this._expression = value;
11
- this._rpn = new shutingyard_1.Shutingyard(shutingyard_1.ShutingyardMode.NUMERIC).parse(value).rpn;
12
- }
13
- get rpn() {
14
- return this._rpn;
15
- }
16
- get expression() {
17
- return this._expression;
18
- }
19
- _extractDecimalPart(value) {
20
- let decimal = value.toString();
21
- if (!decimal.includes('.')) {
22
- return '';
23
- }
24
- decimal = decimal.split('.')[1];
25
- return decimal.substring(0, decimal.length - 2);
26
- }
27
- _numberCorrection(value) {
28
- const epsilon = 0.00000000000001, number_of_digits = 6;
29
- let decimal = this._extractDecimalPart(value);
30
- if (decimal === '') {
31
- return value;
32
- }
33
- const n9 = decimal.match(/9+$/g);
34
- const n0 = decimal.match(/0+$/g);
35
- if (n9 && n9[0].length >= number_of_digits) {
36
- let mod = this._extractDecimalPart(value + epsilon), mod0 = mod.match(/0+$/g);
37
- if (mod0 && mod0[0].length >= number_of_digits) {
38
- return +((value + epsilon).toString().split(mod0[0])[0]);
39
- }
40
- }
41
- if (n0 && n0[0].length >= number_of_digits) {
42
- let mod = this._extractDecimalPart(value - epsilon), mod9 = mod.match(/9+$/g);
43
- if (mod9 && mod9[0].length >= number_of_digits) {
44
- return +(value.toString().split(n0[0])[0]);
45
- }
46
- }
47
- return value;
48
- }
49
- _addToStack(stack, value) {
50
- stack.push(this._numberCorrection(value));
51
- }
52
- evaluate(values) {
53
- let stack = [];
54
- for (const element of this._rpn) {
55
- if (element.tokenType === shutingyard_1.ShutingyardType.COEFFICIENT) {
56
- if (!isNaN(+element.token)) {
57
- this._addToStack(stack, +element.token);
58
- }
59
- else {
60
- this._addToStack(stack, new coefficients_1.Fraction(element.token).value);
61
- }
62
- }
63
- else if (element.tokenType === shutingyard_1.ShutingyardType.VARIABLE) {
64
- if (values[element.token] !== undefined) {
65
- this._addToStack(stack, +values[element.token]);
66
- }
67
- }
68
- else if (element.tokenType === shutingyard_1.ShutingyardType.CONSTANT) {
69
- this._addToStack(stack, shutingyard_1.tokenConstant[element.token]);
70
- }
71
- else if (element.tokenType === shutingyard_1.ShutingyardType.OPERATION) {
72
- if (element.token === '*') {
73
- const b = +stack.pop(), a = +stack.pop();
74
- this._addToStack(stack, a * b);
75
- }
76
- else if (element.token === '/') {
77
- const b = +stack.pop(), a = +stack.pop();
78
- this._addToStack(stack, a / b);
79
- }
80
- else if (element.token === '+') {
81
- const b = +stack.pop(), a = +stack.pop();
82
- this._addToStack(stack, a + b);
83
- }
84
- else if (element.token === '-') {
85
- const b = +stack.pop(), a = +stack.pop() || 0;
86
- this._addToStack(stack, a - b);
87
- }
88
- else if (element.token === '^') {
89
- const b = +stack.pop(), a = +stack.pop();
90
- this._addToStack(stack, Math.pow(a, b));
91
- }
92
- }
93
- else if (element.tokenType === shutingyard_1.ShutingyardType.FUNCTION) {
94
- const a = +stack.pop();
95
- if (element.token === 'sin') {
96
- this._addToStack(stack, Math.sin(a));
97
- }
98
- else if (element.token === 'cos') {
99
- this._addToStack(stack, Math.cos(a));
100
- }
101
- else if (element.token === 'tan') {
102
- this._addToStack(stack, Math.tan(a));
103
- }
104
- else if (element.token === 'sqrt') {
105
- this._addToStack(stack, Math.sqrt(a));
106
- }
107
- }
108
- }
109
- if (stack.length === 1) {
110
- return stack[0];
111
- }
112
- else {
113
- console.error('There was a problem parsing', this._expression, '. The RPN array is', this._rpn);
114
- return 0;
115
- }
116
- }
117
- }
118
- exports.NumExp = NumExp;
119
- //# sourceMappingURL=numexp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../src/maths/numexp.ts"],"names":[],"mappings":"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"}