pimath 0.0.120 → 0.0.122

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 (175) hide show
  1. package/.idea/PI.iml +7 -1
  2. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]/shelved.patch +90 -0
  3. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]1/shelved.patch +107 -0
  4. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31__Default_Changelist_.xml +4 -0
  5. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31__Default_Changelist_1.xml +4 -0
  6. package/LICENSE.md +1 -1
  7. package/dev/pimath.js +7929 -0
  8. package/dev/pimath.js.map +1 -0
  9. package/dist/{pi.js → pimath.js} +7613 -7840
  10. package/dist/pimath.js.map +1 -0
  11. package/dist/pimath.min.js +2 -0
  12. package/dist/pimath.min.js.map +1 -0
  13. package/docs/assets/main.js +58 -58
  14. package/docs/assets/search.js +1 -1
  15. package/docs/assets/style.css +1367 -1280
  16. package/docs/classes/Logicalset.Logicalset.html +221 -212
  17. package/docs/classes/Polynom.Rational.html +391 -388
  18. package/docs/classes/Vector-1.Vector.html +494 -448
  19. package/docs/classes/Vector.Point.html +341 -342
  20. package/docs/classes/algebra_equation.Equation.html +796 -753
  21. package/docs/classes/algebra_linearSystem.LinearSystem.html +408 -397
  22. package/docs/classes/algebra_monom.Monom.html +967 -910
  23. package/docs/classes/algebra_polynom.Polynom.html +1281 -1260
  24. package/docs/classes/coefficients_fraction.Fraction.html +939 -931
  25. package/docs/classes/geometry_circle.Circle.html +476 -476
  26. package/docs/classes/geometry_line.Line.html +779 -719
  27. package/docs/classes/geometry_triangle.Triangle.html +429 -420
  28. package/docs/classes/numeric.Numeric.html +269 -263
  29. package/docs/classes/shutingyard.Shutingyard.html +259 -248
  30. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +89 -88
  31. package/docs/enums/geometry_line.LinePropriety.html +102 -102
  32. package/docs/enums/shutingyard.ShutingyardMode.html +106 -102
  33. package/docs/enums/shutingyard.ShutingyardType.html +120 -116
  34. package/docs/index.html +63 -65
  35. package/docs/interfaces/algebra_equation.ISolution.html +111 -109
  36. package/docs/interfaces/algebra_polynom.IEuclidian.html +93 -92
  37. package/docs/interfaces/geometry_triangle.remarquableLines.html +150 -150
  38. package/docs/modules/Logicalset.html +69 -74
  39. package/docs/modules/Polynom.html +69 -74
  40. package/docs/modules/Vector-1.html +69 -74
  41. package/docs/modules/Vector.html +69 -74
  42. package/docs/modules/algebra_equation.html +75 -81
  43. package/docs/modules/algebra_linearSystem.html +65 -71
  44. package/docs/modules/algebra_monom.html +70 -76
  45. package/docs/modules/algebra_polynom.html +75 -81
  46. package/docs/modules/coefficients_fraction.html +70 -76
  47. package/docs/modules/geometry_circle.html +65 -71
  48. package/docs/modules/geometry_line.html +70 -76
  49. package/docs/modules/geometry_triangle.html +70 -76
  50. package/docs/modules/numeric.html +65 -71
  51. package/docs/modules/shutingyard.html +84 -90
  52. package/docs/types/algebra_monom.literalType.html +66 -70
  53. package/docs/types/algebra_polynom.PolynomParsingType.html +62 -66
  54. package/docs/types/coefficients_fraction.FractionParsingType.html +61 -65
  55. package/docs/types/shutingyard.Token.html +72 -76
  56. package/docs/types/shutingyard.tokenType.html +77 -81
  57. package/docs/variables/shutingyard.tokenConstant.html +70 -74
  58. package/esm/index.d.ts +38 -41
  59. package/esm/index.js +43 -46
  60. package/esm/index.js.map +1 -1
  61. package/esm/maths/algebra/equation.d.ts +119 -117
  62. package/esm/maths/algebra/equation.js +796 -785
  63. package/esm/maths/algebra/equation.js.map +1 -1
  64. package/esm/maths/algebra/linearSystem.d.ts +39 -38
  65. package/esm/maths/algebra/linearSystem.js +278 -262
  66. package/esm/maths/algebra/linearSystem.js.map +1 -1
  67. package/esm/maths/algebra/logicalset.d.ts +28 -28
  68. package/esm/maths/algebra/logicalset.js +157 -157
  69. package/esm/maths/algebra/monom.d.ts +206 -206
  70. package/esm/maths/algebra/monom.js +908 -908
  71. package/esm/maths/algebra/monom.js.map +1 -1
  72. package/esm/maths/algebra/polynom.d.ts +157 -157
  73. package/esm/maths/algebra/polynom.js +1277 -1277
  74. package/esm/maths/algebra/rational.d.ts +45 -45
  75. package/esm/maths/algebra/rational.js +183 -183
  76. package/esm/maths/algebra/study/rationalStudy.d.ts +28 -28
  77. package/esm/maths/algebra/study/rationalStudy.js +243 -243
  78. package/esm/maths/algebra/study.d.ts +143 -142
  79. package/esm/maths/algebra/study.js +378 -377
  80. package/esm/maths/algebra/study.js.map +1 -1
  81. package/esm/maths/coefficients/fraction.d.ts +90 -90
  82. package/esm/maths/coefficients/fraction.js +516 -516
  83. package/esm/maths/coefficients/fraction.js.map +1 -1
  84. package/esm/maths/coefficients/nthRoot.d.ts +23 -23
  85. package/esm/maths/coefficients/nthRoot.js +136 -136
  86. package/esm/maths/geometry/circle.d.ts +45 -45
  87. package/esm/maths/geometry/circle.js +323 -323
  88. package/esm/maths/geometry/line.d.ts +99 -99
  89. package/esm/maths/geometry/line.js +481 -481
  90. package/esm/maths/geometry/line.js.map +1 -1
  91. package/esm/maths/geometry/point.d.ts +34 -34
  92. package/esm/maths/geometry/point.js +166 -166
  93. package/esm/maths/geometry/point.js.map +1 -1
  94. package/esm/maths/geometry/triangle.d.ts +85 -85
  95. package/esm/maths/geometry/triangle.js +268 -268
  96. package/esm/maths/geometry/vector.d.ts +41 -41
  97. package/esm/maths/geometry/vector.js +197 -197
  98. package/esm/maths/geometry/vector.js.map +1 -1
  99. package/esm/maths/numeric.d.ts +28 -28
  100. package/esm/maths/numeric.js +180 -180
  101. package/esm/maths/numexp.d.ts +19 -0
  102. package/esm/maths/numexp.js +186 -0
  103. package/esm/maths/numexp.js.map +1 -0
  104. package/esm/maths/randomization/random.d.ts +23 -23
  105. package/esm/maths/randomization/random.js +78 -78
  106. package/esm/maths/randomization/random.js.map +1 -1
  107. package/esm/maths/randomization/randomCore.d.ts +7 -7
  108. package/esm/maths/randomization/randomCore.js +21 -21
  109. package/esm/maths/randomization/rndFraction.d.ts +12 -12
  110. package/esm/maths/randomization/rndFraction.js +43 -43
  111. package/esm/maths/randomization/rndGeometryLine.d.ts +12 -12
  112. package/esm/maths/randomization/rndGeometryLine.js +45 -45
  113. package/esm/maths/randomization/rndGeometryPoint.d.ts +12 -12
  114. package/esm/maths/randomization/rndGeometryPoint.js +60 -60
  115. package/esm/maths/randomization/rndHelpers.d.ts +23 -23
  116. package/esm/maths/randomization/rndHelpers.js +76 -76
  117. package/esm/maths/randomization/rndMonom.d.ts +12 -12
  118. package/esm/maths/randomization/rndMonom.js +52 -52
  119. package/esm/maths/randomization/rndPolynom.d.ts +13 -13
  120. package/esm/maths/randomization/rndPolynom.js +74 -74
  121. package/esm/maths/randomization/rndTypes.d.ts +34 -34
  122. package/esm/maths/randomization/rndTypes.js +2 -2
  123. package/esm/maths/shutingyard.d.ts +59 -59
  124. package/esm/maths/shutingyard.js +442 -442
  125. package/esm/maths/shutingyard.js.map +1 -1
  126. package/package.json +11 -11
  127. package/public/index.html +50 -81
  128. package/public/playground.html +7 -8
  129. package/src/index.ts +1 -4
  130. package/src/maths/algebra/equation.ts +16 -0
  131. package/src/maths/algebra/linearSystem.ts +20 -0
  132. package/src/maths/algebra/study.ts +12 -10
  133. package/src/maths/{expressions/numexp.ts → numexp.ts} +2 -2
  134. package/tests/algebra/equation.test.ts +19 -5
  135. package/tests/algebra/linear.test.ts +3 -11
  136. package/tests/algebra/polynom.test.ts +7 -8
  137. package/tests/algebra/rationnal.test.ts +1 -1
  138. package/tests/algebra/study.test.ts +2 -9
  139. package/tests/coefficients/fraction.test.ts +8 -8
  140. package/tests/custom.test.ts +33 -37
  141. package/tests/numeric.test.ts +1 -2
  142. package/tests/numexp.test.ts +13 -5
  143. package/tests/shutingyard.test.ts +3 -3
  144. package/webpack-production-min.config.js +1 -1
  145. package/webpack-production.config.js +1 -1
  146. package/webpack.config.js +1 -1
  147. package/dist/pi.js.map +0 -1
  148. package/dist/pi.min.js +0 -2
  149. package/dist/pi.min.js.map +0 -1
  150. package/docs/classes/expressions_numexp.NumExp.html +0 -236
  151. package/docs/classes/expressions_polynomexp.PolynomExpFactor.html +0 -317
  152. package/docs/classes/expressions_polynomexp.PolynomExpProduct.html +0 -285
  153. package/docs/modules/expressions_numexp.html +0 -71
  154. package/docs/modules/expressions_polynomexp.html +0 -73
  155. package/docs/modules.html +0 -76
  156. package/graph.svg +0 -1033
  157. package/src/maths/expressions/ExpressionTree.ts +0 -172
  158. package/src/maths/expressions/expression.ts +0 -286
  159. package/src/maths/expressions/expressionFactor.ts +0 -190
  160. package/src/maths/expressions/expressionMember.ts +0 -233
  161. package/src/maths/expressions/expressionOperators.ts +0 -49
  162. package/src/maths/expressions/expressionParser.ts +0 -295
  163. package/src/maths/expressions/factors/ExpFactor.ts +0 -39
  164. package/src/maths/expressions/factors/ExpFactorConstant.ts +0 -60
  165. package/src/maths/expressions/factors/ExpFactorExponential.ts +0 -26
  166. package/src/maths/expressions/factors/ExpFactorNumber.ts +0 -72
  167. package/src/maths/expressions/factors/ExpFactorPower.ts +0 -42
  168. package/src/maths/expressions/factors/ExpFactorTrigo.ts +0 -53
  169. package/src/maths/expressions/factors/ExpFactorVariable.ts +0 -45
  170. package/src/maths/expressions/internals.ts +0 -14
  171. package/src/maths/expressions/polynomexp.bkp.ts +0 -221
  172. package/src/maths/expressions/polynomexp.ts +0 -310
  173. package/tests/expressions/expressions.test.ts +0 -145
  174. package/tests/expressions/expressiontree.test.ts +0 -11
  175. package/tests/polynomexp.test.ts +0 -12
@@ -54,6 +54,6 @@ describe('Rational tests', () => {
54
54
  it('should test', function () {
55
55
  let P = new Rational('245(x-2)', '(3x-5)(2x-3)')
56
56
 
57
- console.log(P.plotFunction)
57
+ expect(P.plotFunction).to.be.equal("(245*x-490)/(6*x^(2)-19*x+15)")
58
58
  });
59
59
  })
@@ -41,14 +41,7 @@ describe('Study tests', () => {
41
41
  const R = new Rational('x-3', 'x^2-4')
42
42
  const study = R.study('\\delta(x),d,signs')
43
43
 
44
- console.log('CONFIG')
45
- console.log(study.config)
46
- console.log('DOMAIN')
47
- console.log(study.domain)
48
- console.log('SIGNS')
49
- console.log(Object.keys(study.signs))
50
-
51
- console.log(study.signs.tex)
52
- console.log(study.signs.signs)
44
+ expect(study.domain).to.be.equal('\\mathbb{R}\\setminus\\left\\{-2;2\\right\\}')
45
+ expect(study.signs.signs[0]).to.have.all.members(['', '-', 't', '-', 't', '-', 'z', '+', ''])
53
46
  });
54
47
  })
@@ -2,7 +2,7 @@ import {expect} from "chai";
2
2
  import {Fraction} from "../../src/maths/coefficients/fraction";
3
3
  import {describe} from "mocha";
4
4
  import {Random} from "../../src/maths/randomization/random";
5
- import exp = require("constants");
5
+
6
6
 
7
7
  describe('Fraction tests', () => { // the tests container
8
8
 
@@ -39,14 +39,16 @@ describe('Fraction tests', () => { // the tests container
39
39
 
40
40
  it('Should parse a number with lots of decimals', ()=>{
41
41
  let A = 3.45,
42
- B = 3.333333333333322,
42
+ B = 3.3333333333333,
43
43
  C = 5.314171717171717
44
44
 
45
45
  let FA = new Fraction(A),
46
- FB = new Fraction(B),
47
- FC = new Fraction(C)
46
+ FB = new Fraction(B, 1),
47
+ FC = new Fraction(C, 2)
48
48
 
49
- console.log(FA.tex, FB.tex, FC.tex)
49
+ expect(FA.display).to.be.equal('69/20')
50
+ expect(FB.display).to.be.equal('10/3')
51
+ expect(FC.display).to.be.equal('526103/99000')
50
52
  })
51
53
  })
52
54
 
@@ -96,7 +98,7 @@ describe("Fraction static functions", ()=>{
96
98
  3
97
99
  ]
98
100
 
99
- console.log(new Fraction().xMultiply(...list))
101
+ expect(new Fraction().xMultiply(...list).display).to.be.equal("60/12")
100
102
  });
101
103
  })
102
104
 
@@ -107,8 +109,6 @@ describe("Evaluate fraction", () => {
107
109
  expect(F.isApproximative()).to.be.true
108
110
  expect(F.isExact()).to.be.false
109
111
 
110
- console.log(F.tex, F.value)
111
-
112
112
  let G = new Fraction('1/7')
113
113
  expect(G.isApproximative()).to.be.false
114
114
  expect(G.isExact()).to.be.true
@@ -1,37 +1,33 @@
1
- import {Random} from "../src/maths/randomization/random";
2
- import {Fraction} from "../esm/maths/coefficients/fraction";
3
- import {NthRoot} from "../esm/maths/coefficients/nthRoot";
4
-
5
- describe('Custom test', () => { // the tests container
6
- it('Build sqrt value', () => {
7
-
8
- let a = 1, b = 27, c = 50
9
-
10
- a = Random.number(2,20)
11
- b = Random.number(2,20)
12
- c = Random.number(2,20)
13
-
14
- let nthB = new NthRoot(b).reduce(),
15
- nthC = new NthRoot(c).reduce(),
16
- nthD = new NthRoot(nthB.radical * nthC.radical).reduce(),
17
- F = new Fraction(a*nthB.coefficient*nthD.coefficient, nthC.radical*nthC.coefficient).reduce(),
18
- answer = ''
19
-
20
- if(F.numerator>1){
21
- answer = `${F.numerator}`
22
- }
23
- if(nthD.radical>1){
24
- answer = `${answer}sqrt${nthD.radical}`
25
- }
26
- if(F.denominator>1){
27
- answer = `${answer}/${F.denominator}`
28
- }
29
- console.log(`${a}sqrt${b}/sqrt${c}`, answer)
30
- })
31
-
32
- it('should generate a line', function () {
33
- let L = Random.Geometry.line({
34
- A: {x: 3, y: 7}
35
- })
36
- });
37
- });
1
+ // describe('Custom test', () => { // the tests container
2
+ // it('Build sqrt value', () => {
3
+ //
4
+ // let a = 1, b = 27, c = 50
5
+ //
6
+ // a = Random.number(2,20)
7
+ // b = Random.number(2,20)
8
+ // c = Random.number(2,20)
9
+ //
10
+ // let nthB = new NthRoot(b).reduce(),
11
+ // nthC = new NthRoot(c).reduce(),
12
+ // nthD = new NthRoot(nthB.radical * nthC.radical).reduce(),
13
+ // F = new Fraction(a*nthB.coefficient*nthD.coefficient, nthC.radical*nthC.coefficient).reduce(),
14
+ // answer = ''
15
+ //
16
+ // if(F.numerator>1){
17
+ // answer = `${F.numerator}`
18
+ // }
19
+ // if(nthD.radical>1){
20
+ // answer = `${answer}sqrt${nthD.radical}`
21
+ // }
22
+ // if(F.denominator>1){
23
+ // answer = `${answer}/${F.denominator}`
24
+ // }
25
+ // console.log(`${a}sqrt${b}/sqrt${c}`, answer)
26
+ // })
27
+ //
28
+ // it('should generate a line', function () {
29
+ // let L = Random.Geometry.line({
30
+ // A: {x: 3, y: 7}
31
+ // })
32
+ // });
33
+ // });
@@ -1,6 +1,6 @@
1
1
  import {Numeric} from "../src/maths/numeric";
2
2
  import {expect} from "chai";
3
- import exp = require("constants");
3
+
4
4
 
5
5
  describe('Numeric', () => { // the tests container
6
6
  it('Correct number', () => {
@@ -21,7 +21,6 @@ describe('Numeric', () => { // the tests container
21
21
  })
22
22
 
23
23
  it('should decompose a number in two factors', function () {
24
- console.log(Numeric.decompose(6))
25
24
  expect(Numeric.decompose(25).map(x=>x.join(','))).to.have.all.members(['1,25', '5,5'])
26
25
  expect(Numeric.decompose(6).map(x=>x.join(','))).to.have.all.members(['1,6', '2,3'])
27
26
  });
@@ -1,6 +1,5 @@
1
1
  import {expect} from 'chai';
2
- import {NumExp} from "../src/maths/expressions/numexp";
3
- import {Numeric} from "../src/maths/numeric";
2
+ import {NumExp} from "../src/maths/numexp";
4
3
 
5
4
  describe('Numerical expression', () => { // the tests container
6
5
  it('RPN for numerical expression', () => {
@@ -54,9 +53,6 @@ describe('Numerical expression', () => { // the tests container
54
53
  });
55
54
 
56
55
  it('should calculate sqrt from exp', function(){
57
- // let a = new NumExp('x^(1/3)')
58
- // console.log(a.evaluate({x: 8}))
59
-
60
56
  let k = new NumExp('nthrt(x,3)')
61
57
  expect(k.evaluate({x: -8})).to.be.equal(-2)
62
58
  expect(k.evaluate({x: 27})).to.be.equal(3)
@@ -65,4 +61,16 @@ describe('Numerical expression', () => { // the tests container
65
61
  expect(p.evaluate({x: 16})).to.be.equal(2)
66
62
  expect(p.evaluate({x: -16})).to.be.NaN
67
63
  })
64
+
65
+ it('should work with constant', function () {
66
+
67
+ let k = new NumExp('2pi*x')
68
+ expect(k.evaluate({x: 1})).to.be.equal(6.283186)
69
+ });
70
+
71
+ it('should work with constant but without variables', function () {
72
+
73
+ let k = new NumExp('2pi')
74
+ expect(k.evaluate()).to.be.equal(6.283186)
75
+ });
68
76
  });
@@ -51,8 +51,8 @@ describe('Shuting yard', () => { // the tests container
51
51
  // '-'
52
52
  // ])
53
53
 
54
- console.log(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('3x(x-5)^(2(x+7))'))
55
- console.log(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('sin(cos(3pi-5))+sqrt(e-sin(3pi/2))'))
56
- console.log(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('sin(cos(3picos(3pi)-5))+sqrt(e-sin(3pi/2))'))
54
+ expect(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('3x(x-5)^(2(x+7))')).to.be.equal("3*x*(x-5)^(2*(x+7))")
55
+ expect(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('sin(cos(3pi-5))+sqrt(e-sin(3pi/2))')).to.be.equal("sin(cos(3*pi-5))+sqrt(e-sin(3*pi/2))")
56
+ expect(new Shutingyard(ShutingyardMode.EXPRESSION).normalize('sin(cos(3picos(3pi)-5))+sqrt(e-sin(3pi/2))')).to.be.equal("sin(cos(3*pi*cos(3*pi)-5))+sqrt(e-sin(3*pi/2))")
57
57
  })
58
58
  });
@@ -17,7 +17,7 @@ module.exports = {
17
17
  extensions: ['.tsx','.ts', '.js'],
18
18
  },
19
19
  output: {
20
- filename: 'pi.min.js',
20
+ filename: 'pimath.min.js',
21
21
  path: path.resolve(__dirname, 'dist'),
22
22
  },
23
23
  optimization: {
@@ -17,7 +17,7 @@ module.exports = {
17
17
  extensions: ['.tsx','.ts', '.js'],
18
18
  },
19
19
  output: {
20
- filename: 'pi.js',
20
+ filename: 'pimath.js',
21
21
  path: path.resolve(__dirname, 'dist'),
22
22
  },
23
23
  optimization: {
package/webpack.config.js CHANGED
@@ -17,7 +17,7 @@ module.exports = {
17
17
  extensions: ['.tsx','.ts', '.js'],
18
18
  },
19
19
  output: {
20
- filename: 'pi.js',
20
+ filename: 'pimath.js',
21
21
  path: path.resolve(__dirname, 'dev'),
22
22
  },
23
23
  optimization: {