pimath 0.0.128 → 0.0.130

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 (162) hide show
  1. package/dist/main.d.ts +39 -0
  2. package/dist/maths/algebra/equation.d.ts +120 -0
  3. package/dist/maths/algebra/linearSystem.d.ts +40 -0
  4. package/dist/maths/algebra/logicalset.d.ts +28 -0
  5. package/dist/maths/algebra/monom.d.ts +207 -0
  6. package/dist/maths/algebra/polynom.d.ts +155 -0
  7. package/dist/maths/algebra/rational.d.ts +44 -0
  8. package/dist/maths/algebra/study/rationalStudy.d.ts +14 -0
  9. package/dist/maths/algebra/study.d.ts +140 -0
  10. package/dist/maths/coefficients/fraction.d.ts +90 -0
  11. package/dist/maths/coefficients/nthRoot.d.ts +23 -0
  12. package/dist/maths/geometry/circle.d.ts +46 -0
  13. package/dist/maths/geometry/line.d.ts +102 -0
  14. package/dist/maths/geometry/point.d.ts +36 -0
  15. package/dist/maths/geometry/triangle.d.ts +92 -0
  16. package/dist/maths/geometry/vector.d.ts +38 -0
  17. package/dist/maths/numeric.d.ts +28 -0
  18. package/dist/maths/numexp.d.ts +19 -0
  19. package/dist/maths/randomization/random.d.ts +26 -0
  20. package/dist/maths/randomization/randomCore.d.ts +7 -0
  21. package/dist/maths/randomization/rndFraction.d.ts +13 -0
  22. package/dist/maths/randomization/rndGeometryCircle.d.ts +13 -0
  23. package/dist/maths/randomization/rndGeometryLine.d.ts +13 -0
  24. package/dist/maths/randomization/rndGeometryPoint.d.ts +13 -0
  25. package/dist/maths/randomization/rndHelpers.d.ts +23 -0
  26. package/dist/maths/randomization/rndMonom.d.ts +13 -0
  27. package/dist/maths/randomization/rndPolynom.d.ts +14 -0
  28. package/dist/maths/randomization/rndTypes.d.ts +40 -0
  29. package/dist/maths/shutingyard.d.ts +59 -0
  30. package/dist/pimath.js +85 -85
  31. package/lib/main.ts +42 -0
  32. package/{src → lib}/maths/algebra/equation.ts +52 -58
  33. package/{src → lib}/maths/algebra/linearSystem.ts +5 -6
  34. package/lib/maths/algebra/logicalset.ts +183 -0
  35. package/{src → lib}/maths/algebra/monom.ts +7 -8
  36. package/{src → lib}/maths/algebra/polynom.ts +2 -2
  37. package/{src → lib}/maths/algebra/study.ts +9 -9
  38. package/{src → lib}/maths/coefficients/fraction.ts +4 -4
  39. package/{src → lib}/maths/geometry/circle.ts +6 -9
  40. package/{src → lib}/maths/geometry/line.ts +1 -1
  41. package/{src → lib}/maths/geometry/vector.ts +35 -34
  42. package/{src → lib}/maths/numexp.ts +91 -77
  43. package/{src → lib}/maths/randomization/rndHelpers.ts +1 -1
  44. package/{src → lib}/maths/randomization/rndMonom.ts +13 -13
  45. package/{src → lib}/maths/randomization/rndPolynom.ts +24 -24
  46. package/package.json +11 -12
  47. package/.eslintrc.js +0 -24
  48. package/.idea/$CACHE_FILE$ +0 -6
  49. package/.idea/PI.iml +0 -14
  50. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  51. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  52. package/.idea/jsLibraryMappings.xml +0 -6
  53. package/.idea/misc.xml +0 -6
  54. package/.idea/modules.xml +0 -8
  55. package/.idea/php.xml +0 -19
  56. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +0 -192
  57. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
  58. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +0 -4
  59. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +0 -2404
  60. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +0 -4
  61. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +0 -1362
  62. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +0 -4
  63. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]/shelved.patch +0 -90
  64. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31__Default_Changelist_.xml +0 -4
  65. package/.idea/vcs.xml +0 -6
  66. package/dist/demo/exercises.html +0 -283
  67. package/dist/demo/matrices.html +0 -39
  68. package/dist/demo/playground.html +0 -20
  69. package/dist/demo.css +0 -3
  70. package/dist/pimath.umd.cjs +0 -15
  71. package/docs/.nojekyll +0 -1
  72. package/docs/assets/highlight.css +0 -78
  73. package/docs/assets/main.js +0 -59
  74. package/docs/assets/navigation.js +0 -1
  75. package/docs/assets/search.js +0 -1
  76. package/docs/assets/style.css +0 -1383
  77. package/docs/classes/Logicalset.Logicalset.html +0 -217
  78. package/docs/classes/Polynom.Rational.html +0 -397
  79. package/docs/classes/Vector-1.Vector.html +0 -490
  80. package/docs/classes/Vector.Point.html +0 -337
  81. package/docs/classes/algebra_equation.Equation.html +0 -790
  82. package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -404
  83. package/docs/classes/algebra_monom.Monom.html +0 -962
  84. package/docs/classes/algebra_polynom.Polynom.html +0 -1275
  85. package/docs/classes/coefficients_fraction.Fraction.html +0 -934
  86. package/docs/classes/geometry_circle.Circle.html +0 -472
  87. package/docs/classes/geometry_line.Line.html +0 -774
  88. package/docs/classes/geometry_triangle.Triangle.html +0 -429
  89. package/docs/classes/numeric.Numeric.html +0 -265
  90. package/docs/classes/shutingyard.Shutingyard.html +0 -250
  91. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -83
  92. package/docs/enums/geometry_line.LinePropriety.html +0 -97
  93. package/docs/enums/shutingyard.ShutingyardMode.html +0 -97
  94. package/docs/enums/shutingyard.ShutingyardType.html +0 -111
  95. package/docs/index.html +0 -63
  96. package/docs/interfaces/algebra_equation.ISolution.html +0 -105
  97. package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -87
  98. package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -163
  99. package/docs/modules/Logicalset.html +0 -65
  100. package/docs/modules/Polynom.html +0 -65
  101. package/docs/modules/Vector-1.html +0 -65
  102. package/docs/modules/Vector.html +0 -65
  103. package/docs/modules/algebra_equation.html +0 -69
  104. package/docs/modules/algebra_linearSystem.html +0 -61
  105. package/docs/modules/algebra_monom.html +0 -65
  106. package/docs/modules/algebra_polynom.html +0 -69
  107. package/docs/modules/coefficients_fraction.html +0 -65
  108. package/docs/modules/geometry_circle.html +0 -61
  109. package/docs/modules/geometry_line.html +0 -65
  110. package/docs/modules/geometry_triangle.html +0 -65
  111. package/docs/modules/numeric.html +0 -61
  112. package/docs/modules/shutingyard.html +0 -75
  113. package/docs/types/algebra_monom.literalType.html +0 -61
  114. package/docs/types/algebra_polynom.PolynomParsingType.html +0 -56
  115. package/docs/types/coefficients_fraction.FractionParsingType.html +0 -56
  116. package/docs/types/shutingyard.Token.html +0 -63
  117. package/docs/types/shutingyard.tokenType.html +0 -68
  118. package/docs/variables/shutingyard.tokenConstant.html +0 -61
  119. package/index.html +0 -15
  120. package/public/demo/exercises.html +0 -283
  121. package/public/demo/matrices.html +0 -39
  122. package/public/demo/playground.html +0 -20
  123. package/public/demo.css +0 -3
  124. package/src/demo/exercises.ts +0 -0
  125. package/src/demo/matrices.ts +0 -61
  126. package/src/demo/playground.ts +0 -153
  127. package/src/main.ts +0 -42
  128. package/src/maths/algebra/logicalset.ts +0 -183
  129. package/tests/algebra/equation.test.ts +0 -64
  130. package/tests/algebra/linear.test.ts +0 -58
  131. package/tests/algebra/monom.test.ts +0 -78
  132. package/tests/algebra/polynom.test.ts +0 -343
  133. package/tests/algebra/rationnal.test.ts +0 -64
  134. package/tests/algebra/study.test.ts +0 -48
  135. package/tests/coefficients/fraction.test.ts +0 -131
  136. package/tests/custom.test.ts +0 -33
  137. package/tests/geometry/circle.test.ts +0 -404
  138. package/tests/geometry/line.test.ts +0 -36
  139. package/tests/numeric.test.ts +0 -43
  140. package/tests/numexp.test.ts +0 -89
  141. package/tests/shutingyard.test.ts +0 -58
  142. package/tsconfig.json +0 -52
  143. package/tsconfig.testing.json +0 -28
  144. package/typedoc.katex.js +0 -11
  145. package/vite.config.js +0 -23
  146. package/webpack-production-min.config.js +0 -26
  147. package/webpack-production.config.js +0 -26
  148. package/webpack.config.js +0 -26
  149. /package/{src → lib}/maths/algebra/rational.ts +0 -0
  150. /package/{src → lib}/maths/algebra/study/rationalStudy.ts +0 -0
  151. /package/{src → lib}/maths/coefficients/nthRoot.ts +0 -0
  152. /package/{src → lib}/maths/geometry/point.ts +0 -0
  153. /package/{src → lib}/maths/geometry/triangle.ts +0 -0
  154. /package/{src → lib}/maths/numeric.ts +0 -0
  155. /package/{src → lib}/maths/randomization/random.ts +0 -0
  156. /package/{src → lib}/maths/randomization/randomCore.ts +0 -0
  157. /package/{src → lib}/maths/randomization/rndFraction.ts +0 -0
  158. /package/{src → lib}/maths/randomization/rndGeometryCircle.ts +0 -0
  159. /package/{src → lib}/maths/randomization/rndGeometryLine.ts +0 -0
  160. /package/{src → lib}/maths/randomization/rndGeometryPoint.ts +0 -0
  161. /package/{src → lib}/maths/randomization/rndTypes.ts +0 -0
  162. /package/{src → lib}/maths/shutingyard.ts +0 -0
@@ -1,4 +0,0 @@
1
- <changelist name="Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]" date="1699524101881" recycled="false" toDelete="true">
2
- <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch" />
3
- <option name="DESCRIPTION" value="Uncommitted changes before Checkout at 09.11.2023 11:01 [Default Changelist]" />
4
- </changelist>
@@ -1,90 +0,0 @@
1
- Index: src/maths/expressions/numexp.ts
2
- IDEA additional info:
3
- Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
4
- <+>import {Shutingyard, ShutingyardMode, ShutingyardType, tokenConstant} from \"../shutingyard\";\r\nimport {Fraction} from \"../coefficients/fraction\";\r\n\r\nexport class NumExp {\r\n private _rpn: { token: string, tokenType: string }[]\r\n private _expression: string\r\n private _isValid: boolean\r\n\r\n constructor(value: string, uniformize?:boolean) {\r\n this._expression = value\r\n try {\r\n this._rpn = new Shutingyard(ShutingyardMode.NUMERIC).parse(value, uniformize || uniformize===undefined).rpn\r\n }catch(e){\r\n this._rpn = null\r\n this._isValid = false\r\n }\r\n }\r\n\r\n get rpn(): { token: string; tokenType: string }[] {\r\n return this._rpn;\r\n }\r\n\r\n get isValid(): boolean {\r\n if(this._isValid===undefined){\r\n try {\r\n const v = this.evaluate({x: 0})\r\n }catch{\r\n this._isValid = false\r\n }\r\n }\r\n return this._isValid\r\n }\r\n\r\n set isValid(value: boolean){\r\n this._isValid = value\r\n }\r\n\r\n get expression(): string {\r\n return this._expression;\r\n }\r\n\r\n private _extractDecimalPart(value: number): string {\r\n let decimal = value.toString()\r\n\r\n if (!decimal.includes('.')) {\r\n return ''\r\n }\r\n\r\n decimal = decimal.split('.')[1]\r\n\r\n return decimal.substring(0, decimal.length - 2)\r\n }\r\n\r\n private _numberCorrection(value: number): number {\r\n // Must modify the number if it's like:\r\n // a: 3.0000000000000003\r\n // b: 3.9999999999999994\r\n // remove the last character\r\n // check if around n last characters are either 0 or 9\r\n // if it is, 'round' the number.\r\n\r\n const epsilon = 0.00000000000001,\r\n number_of_digits = 6\r\n\r\n const decimal = this._extractDecimalPart(value)\r\n if(decimal===''){return value}\r\n\r\n const n9 = decimal.match(/9+$/g)\r\n const n0 = decimal.match(/0+$/g)\r\n\r\n if (n9 && n9[0].length >= number_of_digits) {\r\n // New tested values.\r\n const mod = this._extractDecimalPart(value + epsilon),\r\n mod0 = mod.match(/0+$/g)\r\n\r\n if(mod0 && mod0[0].length>= number_of_digits){\r\n // The value can be changed. Remove all zeros!\r\n return +((value+epsilon).toString().split(mod0[0])[0])\r\n }\r\n }\r\n\r\n if (n0 && n0[0].length >= number_of_digits) {\r\n // New tested values.\r\n const mod = this._extractDecimalPart(value - epsilon),\r\n mod9 = mod.match(/9+$/g)\r\n\r\n if(mod9 && mod9[0].length>= number_of_digits){\r\n // The value can be changed. Remove all nines!\r\n return +(value.toString().split(n0[0])[0])\r\n }\r\n }\r\n\r\n return value\r\n }\r\n\r\n private _addToStack(stack:number[], value: number): void {\r\n stack.push(this._numberCorrection(value))\r\n }\r\n\r\n evaluate(values: { [Key: string]: number }): number {\r\n const stack: number[] = []\r\n\r\n if(this._rpn===null){\r\n this._isValid = false\r\n return 0\r\n }\r\n\r\n this.isValid = true\r\n\r\n for (const element of this._rpn) {\r\n if (element.tokenType === ShutingyardType.COEFFICIENT) {\r\n // May be a numeric value or a Fraction.\r\n if (!isNaN(+element.token)) {\r\n this._addToStack(stack, +element.token)\r\n } else {\r\n this._addToStack(stack, new Fraction(element.token).value)\r\n }\r\n } else if (element.tokenType === ShutingyardType.VARIABLE) {\r\n if (values[element.token] !== undefined) {\r\n this._addToStack(stack, +values[element.token])\r\n }\r\n } else if (element.tokenType === ShutingyardType.CONSTANT) {\r\n this._addToStack(stack, tokenConstant[element.token])\r\n } else if (element.tokenType === ShutingyardType.OPERATION) {\r\n if (element.token === '*') {\r\n const b = stack.pop(),\r\n a = stack.pop()\r\n if(a === undefined || b === undefined){this.isValid = false}\r\n this._addToStack(stack, a * b)\r\n } else if (element.token === '/') {\r\n const b = stack.pop(),\r\n a = stack.pop()\r\n if(a === undefined || b === undefined){this.isValid = false}\r\n this._addToStack(stack, a / b)\r\n } else if (element.token === '+') {\r\n const b = stack.pop(),\r\n a = stack.pop()\r\n if(a === undefined || b === undefined){this.isValid = false}\r\n this._addToStack(stack, (+a) + (+b))\r\n } else if (element.token === '-') {\r\n const b = stack.pop(),\r\n a = stack.pop() || 0\r\n if(b === undefined){this.isValid = false}\r\n this._addToStack(stack, a - b)\r\n } else if (element.token === '^') {\r\n const b = stack.pop(),\r\n a = stack.pop()\r\n if(a === undefined || b === undefined){this.isValid = false}\r\n this._addToStack(stack, Math.pow(a, b))\r\n }\r\n } else if (element.tokenType === ShutingyardType.FUNCTION) {\r\n const a = stack.pop()\r\n if(a === undefined){this.isValid = false}\r\n if (element.token === 'sin') {\r\n this._addToStack(stack, Math.sin(a))\r\n } else if (element.token === 'cos') {\r\n this._addToStack(stack, Math.cos(a))\r\n } else if (element.token === 'tan') {\r\n this._addToStack(stack, Math.tan(a))\r\n } else if(element.token === 'sqrt') {\r\n this._addToStack(stack, Math.sqrt(a))\r\n }else if(element.token ==='nthrt') {\r\n // TODO: support nthrt in num. exp.\r\n let b = stack.pop()\r\n if(a%2===0 && b<0){\r\n this._addToStack(stack, NaN)\r\n }else {\r\n this._addToStack(stack, (b < 0 ? -1 : 1) * Math.pow(Math.abs(b), 1 / a))\r\n }\r\n } else if(element.token === 'ln'){\r\n this._addToStack(stack, Math.log(a))\r\n } else if(element.token === 'log') {\r\n this._addToStack(stack, Math.log10(a))\r\n }\r\n }\r\n }\r\n\r\n if (stack.length === 1) {\r\n return stack[0]\r\n } else {\r\n throw `There was a problem parsing: ${this._expression}`\r\n }\r\n }\r\n}\r\n
5
- ===================================================================
6
- diff --git a/src/maths/expressions/numexp.ts b/src/maths/expressions/numexp.ts
7
- --- a/src/maths/expressions/numexp.ts
8
- +++ b/src/maths/expressions/numexp.ts
9
- @@ -51,46 +51,47 @@
10
- return decimal.substring(0, decimal.length - 2)
11
- }
12
-
13
- - private _numberCorrection(value: number): number {
14
- + private _numberCorrection(value: number, number_of_digits=6): number {
15
- + return +value.toFixed(number_of_digits);
16
- // Must modify the number if it's like:
17
- // a: 3.0000000000000003
18
- // b: 3.9999999999999994
19
- // remove the last character
20
- // check if around n last characters are either 0 or 9
21
- // if it is, 'round' the number.
22
- -
23
- - const epsilon = 0.00000000000001,
24
- - number_of_digits = 6
25
- -
26
- - const decimal = this._extractDecimalPart(value)
27
- - if(decimal===''){return value}
28
- -
29
- - const n9 = decimal.match(/9+$/g)
30
- - const n0 = decimal.match(/0+$/g)
31
- -
32
- - if (n9 && n9[0].length >= number_of_digits) {
33
- - // New tested values.
34
- - const mod = this._extractDecimalPart(value + epsilon),
35
- - mod0 = mod.match(/0+$/g)
36
- -
37
- - if(mod0 && mod0[0].length>= number_of_digits){
38
- - // The value can be changed. Remove all zeros!
39
- - return +((value+epsilon).toString().split(mod0[0])[0])
40
- - }
41
- - }
42
- -
43
- - if (n0 && n0[0].length >= number_of_digits) {
44
- - // New tested values.
45
- - const mod = this._extractDecimalPart(value - epsilon),
46
- - mod9 = mod.match(/9+$/g)
47
- -
48
- - if(mod9 && mod9[0].length>= number_of_digits){
49
- - // The value can be changed. Remove all nines!
50
- - return +(value.toString().split(n0[0])[0])
51
- - }
52
- - }
53
- -
54
- - return value
55
- + //
56
- + // const epsilon = 0.00000000000001,
57
- + // number_of_digits = 6
58
- + //
59
- + // const decimal = this._extractDecimalPart(value)
60
- + // if(decimal===''){return value}
61
- + //
62
- + // const n9 = decimal.match(/9+$/g)
63
- + // const n0 = decimal.match(/0+$/g)
64
- + //
65
- + // if (n9 && n9[0].length >= number_of_digits) {
66
- + // // New tested values.
67
- + // const mod = this._extractDecimalPart(value + epsilon),
68
- + // mod0 = mod.match(/0+$/g)
69
- + //
70
- + // if(mod0 && mod0[0].length>= number_of_digits){
71
- + // // The value can be changed. Remove all zeros!
72
- + // return +((value+epsilon).toString().split(mod0[0])[0])
73
- + // }
74
- + // }
75
- + //
76
- + // if (n0 && n0[0].length >= number_of_digits) {
77
- + // // New tested values.
78
- + // const mod = this._extractDecimalPart(value - epsilon),
79
- + // mod9 = mod.match(/9+$/g)
80
- + //
81
- + // if(mod9 && mod9[0].length>= number_of_digits){
82
- + // // The value can be changed. Remove all nines!
83
- + // return +(value.toString().split(n0[0])[0])
84
- + // }
85
- + // }
86
- + //
87
- + // return value
88
- }
89
-
90
- private _addToStack(stack:number[], value: number): void {
@@ -1,4 +0,0 @@
1
- <changelist name="Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]" date="1690205520775" recycled="false" toDelete="true">
2
- <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]/shelved.patch" />
3
- <option name="DESCRIPTION" value="Uncommitted changes before Update at 24.07.2023 15:31 [Default Changelist]" />
4
- </changelist>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,283 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr">
3
-
4
- <head>
5
- <meta charset="utf-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1">
7
- <title>Getting Started</title>
8
-
9
- <script src="../../dist/pimath.js"></script>
10
-
11
- <!-- Alpine -->
12
- <script src="//unpkg.com/alpinejs" defer></script>
13
-
14
-
15
- <!-- KaTeX -->
16
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css"
17
- integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
18
-
19
- <!-- The loading of KaTeX is deferred to speed up page rendering -->
20
- <script src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js"
21
- integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx"
22
- crossorigin="anonymous"></script>
23
-
24
- <!-- To automatically render math in text elements, include the auto-render extension: -->
25
- <script src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js"
26
- integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"
27
- onload="renderMathInElement(document.body);"></script>
28
-
29
- <link href="../demo.css" rel="stylesheet">
30
- </head>
31
-
32
- <body>
33
-
34
- <div x-data="dev()">
35
- <template x-for="(item, index) of output" :key="index">
36
- <div class="katex-left" x-html="`\\[${item}\\]`"></div>
37
- </template>
38
- </div>
39
-
40
- <div x-data="triplets">
41
- <template x-for="(item, index) of tripletsPytha" :key="index">
42
- <div x-text="item.join(',')"></div>
43
- </template>
44
- </div>
45
- <script>
46
- function triplets() {
47
- let triplets = []
48
- let n = 9, v
49
-
50
- for (let u = 2; u <= n; u++) {
51
- v = (u % 2 === 0) ? 1 : 2
52
- while (v < u) {
53
- if (PiMath.Numeric.gcd(u, v) === 1) {
54
- triplets.push([
55
- u, v,
56
- u ** 2 - v ** 2,
57
- 2 * u * v,
58
- u ** 2 + v ** 2
59
- ])
60
- }
61
- v = v + 2
62
- }
63
- }
64
-
65
- let target = 13
66
- // Filtrer les triplets pour n'avoir que les valeurs 15.
67
- triplets = triplets.filter(x => x[x.length - 1] === target)
68
-
69
-
70
- // méthode inverse, à partir du triplet.
71
- triplets = []
72
- for (let u = 0; u <= target; u++) {
73
- for (let v = 0; v <= target; v++) {
74
- if (u ** 2 + v ** 2 === target ** 2) {
75
- triplets.push([u, v, target])
76
- }
77
- }
78
- }
79
-
80
- return {
81
- tripletsPytha: triplets
82
- }
83
- }
84
-
85
-
86
- function example() {
87
- let P = new PiMath.Polynom('3x^(2/3)-5x+5/3')
88
-
89
- console.log(P.tex)
90
-
91
- return {
92
- tex: katex.renderToString(P.tex)
93
- }
94
- }
95
-
96
- function dev() {
97
- let output = []
98
-
99
- ex1()
100
- // ex1()
101
- output = [
102
- '\\text{exercice 1}',
103
- ...ex1(),
104
- '--------------',
105
- '\\text{exercice 2}',
106
- ...ex2(),
107
- '--------------',
108
- '\\text{exercice 3}',
109
- ...ex3(),
110
- '--------------',
111
- '\\text{exercice 4}',
112
- ...ex4()]
113
-
114
- return {
115
- output
116
- }
117
- }
118
-
119
- function ex1() {
120
- // EXERCICE 1
121
- let cart = [
122
- 'A',
123
- 'x^2-10x+y^2-8y+37=0',
124
- 'x^2-4x+y^2+6y+20=0',
125
- '3x^2+3y^2+18y+3=0',
126
- '4x^2-16x+8y^2-16y-10=0',
127
- 'B',
128
- 'x^2+10x+y^2-8y+32=0',
129
- '5x^2+5y^2+80y+45=0',
130
- '3x^2-9x+5y^2-10y+45=0',
131
- 'x^2-8x+y^2+4x+36=0'
132
- ], C, texData = []
133
-
134
- for (let equ of cart) {
135
- if (equ.length === 1) {
136
- texData.push(`\\text{série ${equ}}`)
137
- continue
138
- }
139
- C = new PiMath.Geometry.Circle(equ)
140
- if (C.exists) {
141
- texData.push(equ + '\\implies ' + C.tex + '\\implies C' + C.center.tex + ',\\ r=' + C.radius.tex)
142
- } else {
143
- texData.push(equ + '\\implies' + '\\text{pas un cercle}')
144
- }
145
- }
146
-
147
- return texData
148
- }
149
-
150
- function ex2() {
151
- let Center1 = new PiMath.Geometry.Point(4, -2),
152
- C1 = new PiMath.Geometry.Circle(Center1, 10, true),
153
- droites1 = [
154
- 'x+3y-8=0',
155
- 'x-6y+6=0',
156
- '2x+y-1=0',
157
- '3x-4y-36=0'
158
- ],
159
- Center2 = new PiMath.Geometry.Point(8, 6),
160
- C2 = new PiMath.Geometry.Circle(
161
- Center2,
162
- 40,
163
- true),
164
- droites2 = [
165
- 'x-3y+30=0',
166
- '4x+11y-22=0',
167
- '3x-y+8=0',
168
- '2x+y-32=0'
169
- ],
170
- d, pr, out = []
171
-
172
- out.push('\\text{série A}')
173
- out.push('(\\Gamma_1):' + C1.tex)
174
- for (let equ of droites1) {
175
- d = new PiMath.Geometry.Line(equ)
176
- pr = C1.relativePosition(d)
177
-
178
- if (pr === 0) {
179
- out.push(d.tex.canonical + '\\implies \\delta = ' + d.distanceTo(C1.center).tex + '\\implies \\text{externe}\\ ')
180
- } else if (pr === 1) {
181
- out.push(d.tex.canonical + '\\implies \\text{tangent: }' + C1.lineIntersection(d)[0].tex)
182
- } else {
183
- out.push(d.tex.canonical + '\\implies \\delta = ' + d.distanceTo(C1.center).tex + '\\implies \\text{sécant:}\\ ' + C1.lineIntersection(d).map(x => x.tex).join('\\quad'))
184
- }
185
- }
186
-
187
- out.push('\\text{série B}')
188
- out.push('(\\Gamma_2):' + C2.tex)
189
- for (let equ of droites2) {
190
- d = new PiMath.Geometry.Line(equ)
191
- pr = C2.relativePosition(d)
192
- if (pr === 0) {
193
- out.push(d.tex.canonical + '\\implies \\delta = ' + d.distanceTo(C2.center).tex + '\\implies \\text{externe}')
194
- } else if (pr === 1) {
195
- out.push(d.tex.canonical + '\\implies \\text{tangent: }' + C2.lineIntersection(d)[0].tex)
196
- } else {
197
- out.push(d.tex.canonical + '\\implies \\delta = ' + d.distanceTo(C2.center).tex + '\\implies \\text{sécant:} ' + C2.lineIntersection(d).map(x => x.tex).join('\\quad'))
198
- }
199
- }
200
-
201
- return out
202
- }
203
-
204
- function ex3() {
205
- let C = new PiMath.Geometry.Circle(
206
- new PiMath.Geometry.Point(-14, 18),
207
- new PiMath.Geometry.Point(-2, 14),
208
- new PiMath.Geometry.Point(-10, 22)
209
- ), T1 = new PiMath.Geometry.Triangle(new PiMath.Geometry.Point(-14, 18),
210
- new PiMath.Geometry.Point(-2, 14),
211
- new PiMath.Geometry.Point(-10, 22))
212
-
213
- let E = new PiMath.Geometry.Circle(
214
- new PiMath.Geometry.Point(4, 10),
215
- new PiMath.Geometry.Point(5, 5),
216
- new PiMath.Geometry.Point(9, 11)
217
- ), T2 = new PiMath.Geometry.Triangle(
218
- new PiMath.Geometry.Point(4, 10),
219
- new PiMath.Geometry.Point(5, 5),
220
- new PiMath.Geometry.Point(9, 11)
221
- )
222
-
223
- return [
224
- '\\text{2 milieux, 2 normales, 2 médiatrices, 2 intersection, 1 rayon, 1 équation}',
225
- '\\text{série A}',
226
- (new PiMath.Geometry.Point().middleOf(T2.A, T2.B)).tex + '\\quad (m_{AB}):\\ ' + T2.remarquables.mediators.AB.tex.canonical,
227
- (new PiMath.Geometry.Point().middleOf(T2.A, T2.C)).tex + '\\quad (m_{AC}):\\ ' + T2.remarquables.mediators.AC.tex.canonical,
228
- (new PiMath.Geometry.Point().middleOf(T2.C, T2.B)).tex + '\\quad (m_{BC}):\\ ' + T2.remarquables.mediators.BC.tex.canonical,
229
- E.tex,
230
- '\\text{série B}',
231
- (new PiMath.Geometry.Point().middleOf(T1.A, T1.B)).tex + '\\quad (m_{AB}):\\ ' + T1.remarquables.mediators.AB.tex.canonical,
232
- (new PiMath.Geometry.Point().middleOf(T1.A, T1.C)).tex + '\\quad (m_{AC}):\\ ' + T1.remarquables.mediators.AC.tex.canonical,
233
- (new PiMath.Geometry.Point().middleOf(T1.C, T1.B)).tex + '\\quad (m_{BC}):\\ ' + T1.remarquables.mediators.BC.tex.canonical,
234
- C.tex,
235
-
236
- ]
237
- }
238
-
239
- function ex4() {
240
- // A
241
- let A = new PiMath.Geometry.Point(-6, -9),
242
- C = new PiMath.Geometry.Circle('(x+3)^2+(y+5)^2=25'),
243
- Oy = C.cartesian.clone().replaceBy('x', new PiMath.Polynom().zero()),
244
- Ox = C.cartesian.clone().replaceBy('y', new PiMath.Polynom().zero()),
245
- t = new PiMath.Geometry.Line(
246
- A,
247
- new PiMath.Geometry.Vector(A, C.center),
248
- PiMath.Geometry.Line.PERPENDICULAR
249
- )
250
-
251
- Oy.solve()
252
- Ox.solve()
253
-
254
- // B
255
- let A1 = new PiMath.Geometry.Point(-4, -14),
256
- C1 = new PiMath.Geometry.Circle('(x-10)^2+(y+6)^2=100'),
257
- Oy1 = C1.cartesian.clone().replaceBy('x', new PiMath.Polynom().zero()),
258
- Ox1 = C1.cartesian.clone().replaceBy('y', new PiMath.Polynom().zero()),
259
- t1 = new PiMath.Geometry.Line(
260
- A1,
261
- new PiMath.Geometry.Vector(A1, C1.center),
262
- PiMath.Geometry.Line.PERPENDICULAR
263
- )
264
-
265
- Oy1.solve()
266
- Ox1.solve()
267
-
268
- return [
269
- '\\text{série A}',
270
- '(Ox):\\ ' + Ox.solutions.map(y => `(${y.value};0)`),
271
- '(Oy):\\ ' + Oy.solutions.map(x => `(0;${x.value})`),
272
- '(t):\\ ' + t.tex.canonical,
273
- '\\text{série B}',
274
- '(Ox):\\ ' + Ox1.solutions.map(y => `(${y.value};0)`),
275
- '(Oy):\\ ' + Oy1.solutions.map(x => `(0;${x.value})`),
276
- '(t):\\ ' + t1.tex.canonical
277
- ]
278
- }
279
-
280
- </script>
281
- </body>
282
-
283
- </html>
@@ -1,39 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr">
3
-
4
- <head>
5
- <meta charset="utf-8">
6
- <meta content="width=device-width, initial-scale=1" name="viewport">
7
- <title>Getting Started</title>
8
-
9
- <script type="module" src="../../src/main.ts"></script>
10
-
11
- <!-- KaTeX -->
12
- <link crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css"
13
- integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" rel="stylesheet">
14
-
15
- <!-- The loading of KaTeX is deferred to speed up page rendering -->
16
- <script crossorigin="anonymous"
17
- integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx"
18
- src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js"></script>
19
-
20
- <!-- To automatically render math in text elements, include the auto-render extension: -->
21
- <script crossorigin="anonymous"
22
- integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR"
23
- onload="renderMathInElement(document.body);"
24
- src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js"></script>
25
-
26
- <link href="../demo.css" rel="stylesheet">
27
- </head>
28
-
29
- <body>
30
-
31
- <div id="app">
32
- </div>
33
-
34
- <script type="module" src="../../src/demo/matrices.ts">
35
- </script>
36
-
37
- </body>
38
-
39
- </html>
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Getting Started</title>
5
- <script type="module" src="../../dist/pimath.js"></script>
6
-
7
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css" integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous">
8
-
9
- <!-- The loading of KaTeX is deferred to speed up page rendering -->
10
- <script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js" integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4" crossorigin="anonymous"></script>
11
- <script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js" integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa" crossorigin="anonymous"></script>
12
- </head>
13
- <body>
14
-
15
- <div id="app"></div>
16
-
17
- <script type="module" src="../../src/demo/playground.ts">
18
- </script>
19
- </body>
20
- </html>
package/dist/demo.css DELETED
@@ -1,3 +0,0 @@
1
- .katex-left > .katex-display > .katex,.katex-left > span > .katex-display > .katex {
2
- text-align: left !important;
3
- }