diff --git a/index.html b/index.html new file mode 100644 index 0000000..466b62e --- /dev/null +++ b/index.html @@ -0,0 +1,401 @@ + + + + README + + + + + + + + + + + + + +
+
+

Python Module for Ancient Indian Mathematics and Astronomy

+ +
+

Aryabhata Cryptographic Calculator

+

Aryabhata

+
Shlok
+
वर्गात्राणि वर्गेऽवर्गेऽवर्गाताराणी का मौ यः ।
+खद्विनवके स्वरा नव वर्गेऽवर्गे नवान्त्यवर्गे वा ॥
+
Table 1
+

Varg Consonants From क् to म् denote from 1 to 25

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
वर्ग:घ्ङ्च्छ्ज्झ्ञ्ट्ठ्ड्
व्यञ्जन12345678910111213
ढ्ण्त्थ्द्ध्न्प्फ्ब्भ्म्
141516171819202122232425
+
Table 2
+

Awarg consonants from य् to ह् denote from 3 to 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
अवर्गःय्र्ल्व्श्
व्यञ्जन345678910
+
Table 3
+

Vowels from to denote place-values from 100 to 1017

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
स्वरःलृ
वर्ग:1001021041061081010101210141016
अवर्गः1011031051071091011101310151017
+
+

ढुविघ्व is the Aryabhatiya Alphabetical Numeral for the number of revolutions of Saturn in 43,20,000 years, and it is 1,46,564.

+
Explanation
+

ढुङ्विध्व = ( ढ उ ) + (ङ् इ) + (व् इ) + (घ् अ) + (व् अ)

+
+

= (14×104 ) + (5×102) + (6 ×103) + (4 x 1 ) + (6 x 10 )
+=1,46,564.

+
+
+

Decode

+
Code
+
from AncIndMatAst import AC
+word="जषबिखुछृ"
+value=AC.decode(word)
+print(f"Value of {word} = {value}")
+
Output
+
Value of जषबिखुछृ = 7022388
+

Encode

+
Code
+
from AncIndMatAst import AC
+data=AC.encode(364224)
+print(data.get("sabd"))
+print(data.get("length"))
+print(data.get("allSabd"))
+
Output
+
भखिरिचुयु
+120
+['भखिरिचुयु', 'भखिरियुचु', 'भखिचुरियु', 'भखिचुयुरि', 'भखियुरिचु', 'भखियुचुरि', 'भरिखिचुयु', 'भरिखियुचु', 'भरिचुखियु', 'भरिचुयुखि', 'भरियुखिचु', 'भरियुचुखि', 'भचुखिरियु', 'भचुखियुरि', 'भचुरिखियु', 'भचुरियुखि', 'भचुयुखिरि', 'भचुयुरिखि', 'भयुखिरिचु', 'भयुखिचुरि', 'भयुरिखिचु', 'भयुरिचुखि', 'भयुचुखिरि', 'भयुचुरिखि', 'खिभरिचुयु', 'खिभरियुचु', 'खिभचुरियु', 'खिभचुयुरि', 'खिभयुरिचु', 'खिभयुचुरि', 'खिरिभचुयु', 'खिरिभयुचु', 'खिरिचुभयु', 'खिरिचुयुभ', 'खिरियुभचु', 'खिरियुचुभ', 'खिचुभरियु', 'खिचुभयुरि', 'खिचुरिभयु', 'खिचुरियुभ', 'खिचुयुभरि', 'खिचुयुरिभ', 'खियुभरिचु', 'खियुभचुरि', 'खियुरिभचु', 'खियुरिचुभ', 'खियुचुभरि', 'खियुचुरिभ', 'रिभखिचुयु', 'रिभखियुचु', 'रिभचुखियु', 'रिभचुयुखि', 'रिभयुखिचु', 'रिभयुचुखि', 'रिखिभचुयु', 'रिखिभयुचु', 'रिखिचुभयु', 'रिखिचुयुभ', 'रिखियुभचु', 'रिखियुचुभ', 'रिचुभखियु', 'रिचुभयुखि', 'रिचुखिभयु', 'रिचुखियुभ', 'रिचुयुभखि', 'रिचुयुखिभ', 'रियुभखिचु', 'रियुभचुखि', 'रियुखिभचु', 'रियुखिचुभ', 'रियुचुभखि', 'रियुचुखिभ', 'चुभखिरियु', 'चुभखियुरि', 'चुभरिखियु', 'चुभरियुखि', 'चुभयुखिरि', 'चुभयुरिखि', 'चुखिभरियु', 'चुखिभयुरि', 'चुखिरिभयु', 'चुखिरियुभ', 'चुखियुभरि', 'चुखियुरिभ', 'चुरिभखियु', 'चुरिभयुखि', 'चुरिखिभयु', 'चुरिखियुभ', 'चुरियुभखि', 'चुरियुखिभ', 'चुयुभखिरि', 'चुयुभरिखि', 'चुयुखिभरि', 'चुयुखिरिभ', 'चुयुरिभखि', 'चुयुरिखिभ', 'युभखिरिचु', 'युभखिचुरि', 'युभरिखिचु', 'युभरिचुखि', 'युभचुखिरि', 'युभचुरिखि', 'युखिभरिचु', 'युखिभचुरि', 'युखिरिभचु', 'युखिरिचुभ', 'युखिचुभरि', 'युखिचुरिभ', 'युरिभखिचु', 'युरिभचुखि', 'युरिखिभचु', 'युरिखिचुभ', 'युरिचुभखि', 'युरिचुखिभ', 'युचुभखिरि', 'युचुभरिखि', 'युचुखिभरि', 'युचुखिरिभ', 'युचुरिभखि', 'युचुरिखिभ']
+Value of जषबिखुछृ = 7022388
+

+

Bodhaayana Square Root (Approximation Method)

+

Bodhaayana

+
Shlok
+
प्रमाणं तृत्तीयेन वर्धयेत् तच्च चतुर्थेनात्म चतुस्त्रिम्शोनेन सविशेष:
+
Explanation
+

The measure is to be increased by its third and this (third) again by its own fourth less the thirty fourth part (of that fourth); this is (the value of) the diagonal of a square (whole side is the measure).

+
Code
+
from AncIndMatAst import BA
+num=200
+sq=BA.squareRoot(num)
+print("Square Root By Bodhaayana Approximation Method = ",sq)
+
Output
+
Square Root By Bodhaayana Approximation Method =  14.1421356237469
+

+

Roots (Bhaskara Method)

+

Bhaskara

+

Square Root

+
Shlok
+
Tyaktvaamtyaat Vishamaat kritim
+    Dvigunayenmulam same taddhrite 
+Tyaktvaa labdhakritim tadaadya vishamaat 
+    Labdham dvinighnam nyaset
+
+Panktyaam panktihrite samenyavishamaat 
+    Tyaktvaptavargam phalam 
+Panktyaam taddvigumam nyasediti muhuh 
+    Pankterdalam syaatpadam
+
Explanation
+
    +
  1. Start observing the given number from RHS
  2. +
  3. Put dots on the digits appearing at all the odd places (that is, 1, 3, 5, 7 etc. places) starting from RHS
  4. +
  5. Start processing the given number from LHS.
  6. +
  7. Remember that the terms of (a+b)=a²+2ab+b² formula will be used to find the square root
  8. +
  9. Select the leftmost set of digits having the dot and call it X1.
  10. +
  11. Identify a value of a (where a=1,2,3,4,5,6,7,8,9) which is the biggest value that can be subtracted from XI.
  12. +
  13. Keep the corresponding value of 'a' in the result location.
  14. +
  15. Subtract that a from XI and call the resultant value X2.
  16. +
  17. Append the next digit of the given number to X2 for continuing the processing. Call it as X3.
  18. +
  19. Divide X3 by 2*a. Identify the quotient as 'b' (Maximum value of b can be 9).
  20. +
  21. Subtract 2ab from X3 and call the resultant value X4
  22. +
  23. Append the next digit of the given number to X4 for continuing the processing. Call
    +it as X5.
  24. +
  25. Subtract b³ from X5 and call the resultant value X6,
  26. +
  27. If any of the above two subtractions give negative value, reduce the value of bby one and revert back to step 11.
  28. +
  29. Concatenate the values of 'a' and 'b'. Call it as 'ab'.
  30. +
  31. This value is the square root of the group of digits processed so far.
  32. +
  33. If some more digits are still pending for processing in the given number, take the present value of ab as new 'a'. Take the value of X6 as X2. Repeat the process from step 9.
  34. +
+
Code
+
from AncIndMatAst import BM
+num=144
+sq=BM.squareRoot(num)
+print("Square Root By Bhaskara Method = ",sq)
+
Output
+
Square Root By Bhaskara Method =  12
+

+

Cube Root

+
Shlok
+
Adyam ghanasthanamathaaghane dve 
+    Punastathantyaat ghanto visodhya
+Ghanam prithakstham padamasya krityan
+    Trighnyaa tadaadyam vibhajet phalam tu
+
+Panktyaam nyaset tatkritimantyanighneem
+    Trighneem tyajet tatprathamaat phalasya
+Ghanam tadaadyaat ghanamulamevam
+Panktirbhavedevamatah punasca
+

+
Explanation
+
    +
  1. Start observing the given number from RHS
  2. +
  3. Put dots on the digits appearing at 1st , 4th , 7th , 9th etc. places starting from RHS
  4. +
  5. Start processing the given number from LHS
  6. +
  7. Remember that the terms of (a + b)3 = a ^ 3 + 3a ^ 2 * b + 3a * b ^ 2 + b3 formula will be used to find the cube root
  8. +
  9. Select the leftmost set of digits having the dot and call it XI.
  10. +
  11. Identify a value of a ^ 3 where a (1,2,3,4,5,6,7,8,9) which is the biggest value that can be subtracted from XI.
  12. +
  13. keep the corresponding value of 'a' in the result location. 8. Subtract that a ^ 2 from X1 and call the resultant value X2.
  14. +
  15. Append the next digit of the given number to X2 for continuing the processing. Call it as X3.
  16. +
  17. Divide X3 by 3^ * a ^ 2 Identify the quotient as "b.(Maximum value of b can be 9).
  18. +
  19. Subtract 3 a^ 2 b from X3 and call the resultant value X4
  20. +
  21. Append the next digit of the given number to X4 for continuing the processing. Call it as XS.
  22. +
  23. Subtract 3 a b from X5 and call the resultant value X6.
  24. +
  25. Append the next digit of the given number to X6 for continuing the processing. Call it
    +as X7.
  26. +
  27. Subtract b' from X7 and call the resultant value X8.
  28. +
  29. If any of the above three subtractions give negative value, reduce the value of b by one and revert back to step 11.
  30. +
  31. Concatenate the values of "a" and "b". Call it as 'ab'.
  32. +
  33. This value will be the cube root of the group of digits processed so far.
  34. +
  35. If some more digits are still pending for processing in the given number, take the present value of ab as new 'a' Take the value of X8 as X2. Repeat the process from step 9
  36. +
+
Illustration
+
To Find the cube root of 9261:
+1. Start observing the given number from RHS
+2. Put dots on the digits appearing at 1st and 4th places starting from RHS, viz., or 1 and 9.
+3. Start processing the given number from LHS
+4. Remember that the terms of (a + b)^3 = a ^ 3 + 3a ^ 2 * b + 3a * b ^ 2 + b ^ 1 formula will be used in find the cube root
+5. Select the leftmost set of digits having the dot and call it XI.
+6. X1=9
+7. Identity a value of a ^ 3 * (- 8) which is the biggest value that can be subtracted from XI.
+8. keep the corresponding value of ^ * a' (=2) in the result location.
+9 Subtract that a from X1 and call the resultant value X2.
+10. X2 = 9 - 8 = 1
+11. Append the next digit of the given number to X2 for continuing the processing Call it as X3.
+12. X3 = 12
+13. Divide X3 by 3*a ^ 2 (=12)
+14. Identify the quotient as "b".
+15. b=1
+16. Subtract 3 ab from X3 and call the resultant value X4
+17. X4 = 12 - 12 = 0
+18. Append the next digit of the given number to X4 for continuing the processing Cal it as X5.
+19. X5 = 06
+20. Subtract 3^ * a^ * b ^ 2 from X5 and call the resultant value X6.
+21. X6=06-6-0
+22. Append the next digit of the given minber to X6 for continuing the processing. Call it us XT.
+23. X7=01
+24. Subtract b' from X7 and call the resultant value X8
+25. X8=01-1-0
+26. Concatenate the values of 'a' and 'b. Call it as ab 27, ab21
+28. This value 21 is the cube root of the given number 9261
+Result = 21
+
Code
+
from AncIndMatAst import BM
+num=175616
+sq=BM.cubeRoot(num)
+print("Cube Root By Bhaskara Method = ",sq)
+
Output
+
Cube Root By Bhaskara Method =  56
+

+

Siddhantic Procedure for Lunar and Solar Eclipse

+

Siddhantic

+

Lunar Eclipse

+

Lunar Eclipse

+
Code
+
from AncIndMatAst import Eclipse
+date = (2006, 10, 7)
+time = (24,12,0)
+trueMoon=(321,3,27)
+trueRahu=(331,21,11)
+Eclipse.LunarEclipse(date,time,trueMoon,trueRahu)
+
Output
+
Lunar Eclipse Detail of 07 October 2006
+Eclipse Type :  Partial
+Magnitude of Eclipse :  0.18
+Timings of Eclipse :
+Beginnig of Eclipse :  23h 35m 23s
+Middle of Eclipse :  24h 21m 24s
+End of Eclipse :  25h 7m 25s
+

Solar Eclipse

+

Solar Eclipse

+
Code
+
from AncIndMatAst import Eclipse
+date = (2008, 8, 1)
+iONMoon=(15,42,0)
+trueMoon=(105,33,0)
+trueRahu=(294,37,26)
+Eclipse.SolarEclipse(date,iONMoon,trueMoon,trueRahu)
+
Output
+
Solar Eclipse Detail of 01 August 2008
+Eclipse Type :  Total
+Magnitude of Eclipse :  1.34
+Timings of Solar Eclipse :
+Beginnig of Eclipse :  13h 31m 13s
+Beginnig of Totality :  14h 45m 14s
+Middle of Eclipse :  15h 50m 15s
+End of Totality :  16h 55m 16s
+End of Eclipse :  18h 8m 18s
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/index_files/Aryabhata.png b/index_files/Aryabhata.png new file mode 100644 index 0000000..97a04ec Binary files /dev/null and b/index_files/Aryabhata.png differ diff --git a/index_files/Bhaskara.png b/index_files/Bhaskara.png new file mode 100644 index 0000000..f086ada Binary files /dev/null and b/index_files/Bhaskara.png differ diff --git a/index_files/Bodhaayana.png b/index_files/Bodhaayana.png new file mode 100644 index 0000000..35d3d55 Binary files /dev/null and b/index_files/Bodhaayana.png differ diff --git a/index_files/Lunar.png b/index_files/Lunar.png new file mode 100644 index 0000000..6423bee Binary files /dev/null and b/index_files/Lunar.png differ diff --git a/index_files/Sidddhantic.png b/index_files/Sidddhantic.png new file mode 100644 index 0000000..d65c5cc Binary files /dev/null and b/index_files/Sidddhantic.png differ diff --git a/index_files/Solar.png b/index_files/Solar.png new file mode 100644 index 0000000..394a8d1 Binary files /dev/null and b/index_files/Solar.png differ diff --git a/index_files/katex.min.css b/index_files/katex.min.css new file mode 100644 index 0000000..73a8c0a --- /dev/null +++ b/index_files/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.9"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}