Added expint docs.
Updated zeta and expint tests with hooks for other libraries. Added #pragma once to header files. [SVN r42140]
46
doc/sf_and_dist/equations/expint_i_1.mml
Normal file
@@ -0,0 +1,46 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>E</mi>
|
||||
<mi>i</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mo>−</mo>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<munderover>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
<mi>t</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_i_1.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
2
doc/sf_and_dist/equations/expint_i_1.svg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
42
doc/sf_and_dist/equations/expint_i_2.mml
Normal file
@@ -0,0 +1,42 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>Ei</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>log</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>+</mo>
|
||||
<mi>γ</mi>
|
||||
<mo>+</mo>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mi>k</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mi>k</mi>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_i_2.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
2
doc/sf_and_dist/equations/expint_i_2.svg
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
45
doc/sf_and_dist/equations/expint_i_3.mml
Normal file
@@ -0,0 +1,45 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>Ei</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>log</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>z</mi>
|
||||
<msub>
|
||||
<mi>z</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>+</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>−</mo>
|
||||
<msub>
|
||||
<mi>z</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>R</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>z</mi>
|
||||
<mn>3</mn>
|
||||
</mfrac>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_i_3.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
2
doc/sf_and_dist/equations/expint_i_3.svg
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
32
doc/sf_and_dist/equations/expint_i_4.mml
Normal file
@@ -0,0 +1,32 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>Ei</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mi>z</mi>
|
||||
</msup>
|
||||
<mi>z</mi>
|
||||
</mfrac>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>c</mi>
|
||||
<mo>+</mo>
|
||||
<mi>R</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_i_4.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
2
doc/sf_and_dist/equations/expint_i_4.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="17.534238pt" width="112.195285pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -14.756895 112.195285 17.534238"><svg:metadata><svgmath:metrics top="17.5342382812" bottom="0.0" baseline="2.77734375" axis="6.76171875"/></svg:metadata><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="5.332031" font-family="Times New Roman" fill="black">Ei</svg:text><svg:g transform="translate(12.664067, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.692383" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g><svg:g transform="translate(9.058594, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g><svg:g transform="translate(29.052090, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(39.153004, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.692383" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g><svg:g transform="translate(46.882168, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(56.902348, -3.984375)"><svg:g transform="translate(0.585938, -1.740234)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.663086" font-family="Times New Roman" font-style="italic" fill="black">e</svg:text><svg:g transform="translate(5.326172, -5.367188)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.911592" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g><svg:g transform="translate(2.514961, 6.761719)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.692383" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g><svg:line y2="0.000000" stroke-width="0.585938" x2="10.092422" stroke="black" stroke-linecap="butt" stroke-dasharray="none" y1="0.000000" x1="0.000000" fill="none"/></svg:g><svg:g transform="translate(67.580707, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.663086" font-family="Times New Roman" font-style="italic" fill="black">c</svg:text><svg:g transform="translate(7.992836, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(17.427078, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">R</svg:text></svg:g><svg:g transform="translate(25.032547, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="1.666992" font-family="Times New Roman" font-style="italic" fill="black">t</svg:text></svg:g><svg:g transform="translate(7.593750, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(40.618484, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g></svg:svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
41
doc/sf_and_dist/equations/expint_n_1.mml
Normal file
@@ -0,0 +1,41 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<msubsup>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</msubsup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>t</mi>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_n_1.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
2
doc/sf_and_dist/equations/expint_n_1.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="30.002155pt" width="80.838902pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -22.649140 80.838902 30.002155"><svg:metadata><svgmath:metrics top="30.002154878" bottom="0.465026936762" baseline="7.35301521801" axis="11.337390218"/></svg:metadata><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.934570" font-family="Times New Roman" font-style="italic" fill="black">E</svg:text><svg:g transform="translate(7.857422, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.130000" font-family="Times New Roman" font-style="italic" fill="black">n</svg:text></svg:g><svg:g transform="translate(12.117422, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(9.720703, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g><svg:g transform="translate(29.167555, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(39.268469, -3.984375)"><svg:text font-size="25.051643" text-anchor="middle" y="5.465710" x="3.467842" font-family="Times New Roman" fill="black">∫</svg:text><svg:g transform="translate(6.898988, 9.498601)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.130000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(6.898988, -14.737577)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="3.036914" font-family="Times New Roman" font-style="italic" fill="black">∞</svg:text></svg:g></svg:g><svg:g transform="translate(52.827222, -3.984375)"><svg:g transform="translate(0.585938, -1.740234)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.663086" font-family="Times New Roman" font-style="italic" fill="black">e</svg:text><svg:g transform="translate(5.326172, -5.367188)"><svg:g transform="translate(0.000000, -2.828906)"><svg:text font-size="8.520000" text-anchor="middle" y="2.828906" x="2.402490" font-family="Times New Roman" fill="black">−</svg:text></svg:g><svg:g transform="translate(4.804980, 0.000000)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(8.869453, 0.000000)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.183564" font-family="Times New Roman" font-style="italic" fill="black">t</svg:text></svg:g></svg:g><svg:g transform="translate(16.749961, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">d</svg:text></svg:g><svg:g transform="translate(23.242148, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="1.666992" font-family="Times New Roman" font-style="italic" fill="black">t</svg:text></svg:g></svg:g><svg:g transform="translate(10.077012, 10.731738)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="1.666992" font-family="Times New Roman" font-style="italic" fill="black">t</svg:text><svg:g transform="translate(3.597656, -5.367188)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.130000" font-family="Times New Roman" font-style="italic" fill="black">n</svg:text></svg:g></svg:g><svg:line y2="0.000000" stroke-width="0.585938" x2="28.011680" stroke="black" stroke-linecap="butt" stroke-dasharray="none" y1="0.000000" x1="0.000000" fill="none"/></svg:g></svg:svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
101
doc/sf_and_dist/equations/expint_n_2.mml
Normal file
@@ -0,0 +1,101 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>ψ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mi>log</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0,</mn>
|
||||
<mi>k</mi>
|
||||
<mo>≠</mo>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>k</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mi>k</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>k</mi>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_n_2.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
2
doc/sf_and_dist/equations/expint_n_2.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
101
doc/sf_and_dist/equations/expint_n_3.mml
Normal file
@@ -0,0 +1,101 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mi>n</mi>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mo>+</mo>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>4</mn>
|
||||
<mo>+</mo>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>3</mn>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>2</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>6</mn>
|
||||
<mo>+</mo>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>4</mn>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>3</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>8</mn>
|
||||
<mo>+</mo>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
<mo>−</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_n_3.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
2
doc/sf_and_dist/equations/expint_n_3.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
31
doc/sf_and_dist/equations/expint_n_4.mml
Normal file
@@ -0,0 +1,31 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>x</mi>
|
||||
<mo>+</mo>
|
||||
<mi>log</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>+</mo>
|
||||
<mi>c</mi>
|
||||
<mo>+</mo>
|
||||
<mi>R</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_n_4.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
2
doc/sf_and_dist/equations/expint_n_4.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="12.883548pt" width="136.995015pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -8.343763 136.995015 12.883548"><svg:metadata><svgmath:metrics top="12.8835477435" bottom="1.8387890625" baseline="4.53978515625" axis="8.52416015625"/></svg:metadata><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.934570" font-family="Times New Roman" font-style="italic" fill="black">E</svg:text><svg:g transform="translate(7.857422, 2.700996)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.130000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(12.117422, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(9.720703, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g><svg:g transform="translate(29.167555, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(39.268469, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(47.659742, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(57.093984, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.666992" font-family="Times New Roman" fill="black">log</svg:text></svg:g><svg:g transform="translate(72.427969, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(9.720703, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g><svg:g transform="translate(88.811430, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(98.245672, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.663086" font-family="Times New Roman" font-style="italic" fill="black">c</svg:text></svg:g><svg:g transform="translate(106.238508, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(115.672750, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">R</svg:text></svg:g><svg:g transform="translate(123.278218, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(9.720703, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g></svg:svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
39
doc/sf_and_dist/equations/expint_n_5.mml
Normal file
@@ -0,0 +1,39 @@
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>E</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>x</mi>
|
||||
</mfrac>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mi>R</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mi>x</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
BIN
doc/sf_and_dist/equations/expint_n_5.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
2
doc/sf_and_dist/equations/expint_n_5.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="20.581348pt" width="105.842344pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -14.856738 105.842344 20.581348"><svg:metadata><svgmath:metrics top="20.5813476562" bottom="0.0417142185822" baseline="5.724609375" axis="9.708984375"/></svg:metadata><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.934570" font-family="Times New Roman" font-style="italic" fill="black">E</svg:text><svg:g transform="translate(7.857422, 2.700996)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.130000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(12.117422, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:g transform="translate(9.720703, -3.984375)"><svg:text font-size="12.012889" transform="scale(0.998927, 1)" text-anchor="middle" y="3.981593" x="2.000193" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g><svg:g transform="translate(29.167555, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(39.854406, -3.984375)"><svg:g transform="translate(0.585938, -1.740234)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="2.663086" font-family="Times New Roman" font-style="italic" fill="black">e</svg:text><svg:g transform="translate(5.326172, -5.367188)"><svg:g transform="translate(0.000000, -2.828906)"><svg:text font-size="8.520000" text-anchor="middle" y="2.828906" x="2.402490" font-family="Times New Roman" fill="black">−</svg:text></svg:g><svg:g transform="translate(4.804980, 0.000000)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(4.821445, 6.902344)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:line y2="0.000000" stroke-width="0.585938" x2="15.367500" stroke="black" stroke-linecap="butt" stroke-dasharray="none" y1="0.000000" x1="0.000000" fill="none"/></svg:g><svg:g transform="translate(55.807844, 0.000000)"><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="21.357680" transform="scale(0.561859, 1)" text-anchor="middle" y="5.099563" x="3.556137" font-family="Times New Roman" fill="black">(</svg:text></svg:g><svg:g transform="translate(3.996094, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text><svg:g transform="translate(8.666664, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(18.100906, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">R</svg:text></svg:g><svg:g transform="translate(25.706375, -3.984375)"><svg:text font-size="21.357680" transform="scale(0.561859, 1)" text-anchor="middle" y="5.099563" x="3.556137" font-family="Times New Roman" fill="black">(</svg:text><svg:g transform="translate(4.582031, 0.000000)"><svg:g transform="translate(0.585938, -1.599609)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(0.723633, 6.902344)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.061523" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g><svg:line y2="0.000000" stroke-width="0.585938" x2="7.171875" stroke="black" stroke-linecap="butt" stroke-dasharray="none" y1="0.000000" x1="0.000000" fill="none"/></svg:g><svg:g transform="translate(12.339844, 0.000000)"><svg:text font-size="21.357680" transform="scale(0.561859, 1)" text-anchor="middle" y="5.099563" x="3.556137" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(46.038406, -3.984375)"><svg:text font-size="21.357680" transform="scale(0.561859, 1)" text-anchor="middle" y="5.099563" x="3.556137" font-family="Times New Roman" fill="black">)</svg:text></svg:g></svg:g></svg:svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |
227
doc/sf_and_dist/expint.qbk
Normal file
@@ -0,0 +1,227 @@
|
||||
[section:expint Exponential Integrals]
|
||||
|
||||
[section:expint_n Exponential Integral En]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/expint.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
``__sf_result`` expint(unsigned n, T z);
|
||||
|
||||
template <class T, class ``__Policy``>
|
||||
``__sf_result`` expint(unsigned n, T z, const ``__Policy``&);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
The return type of these functions is computed using the __arg_pomotion_rules:
|
||||
the return type is `double` if T is an integer type, and T otherwise.
|
||||
|
||||
[optional_policy]
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
``__sf_result`` expint(unsigned n, T z);
|
||||
|
||||
template <class T, class ``__Policy``>
|
||||
``__sf_result`` expint(unsigned n, T z, const ``__Policy``&);
|
||||
|
||||
Returns the [@http://mathworld.wolfram.com/En-Function.html exponential integral En]
|
||||
of z:
|
||||
|
||||
[equation expint_n_1]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows the peak errors (in units of epsilon)
|
||||
found on various platforms with various floating point types,
|
||||
along with comparisons to the __cephes library.
|
||||
Unless otherwise specified any floating point type that is narrower
|
||||
than the one shown will have __zero_error.
|
||||
|
||||
[table Errors In the Function expint(n, z)
|
||||
[[Significand Size] [Platform and Compiler] [En][E1]]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=7.1 Mean=1.8
|
||||
|
||||
__cephes Peak=5.1 Mean=1.3
|
||||
]
|
||||
[Peak=0.99 Mean=0.5
|
||||
|
||||
__cephes Peak=3.1 Mean=1.1]]
|
||||
[[64] [RedHat Linux IA_EM64, gcc-4.1] [Peak=9.9 Mean=2.1] [Peak=0.97 Mean=0.4]]
|
||||
[[64] [Redhat Linux IA64, gcc-4.1] [Peak=9.9 Mean=2.1] [Peak=0.97 Mean=0.4]]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=23.3 Mean=3.7] [Peak=1.6 Mean=0.5]]
|
||||
]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts:
|
||||
basic sanity checks use spot values calculated using
|
||||
[@http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=ExpIntegralE Mathworld's online evaluator],
|
||||
while accuracy checks use high-precision test values calculated at 1000-bit precision with
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] and this implementation.
|
||||
Note that the generic and type-specific
|
||||
versions of these functions use differing implementations internally, so this
|
||||
gives us reasonably independent test data. Using our test data to test other
|
||||
"known good" implementations also provides an additional sanity check.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
The generic version of this function uses the continued fraction:
|
||||
|
||||
[equation expint_n_3]
|
||||
|
||||
for large /x/ and the infinite series:
|
||||
|
||||
[equation expint_n_2]
|
||||
|
||||
for small /x/.
|
||||
|
||||
Where the precision of /x/ is known at compile time and is 113 bits or fewer
|
||||
in precision, then rational approximations [jm_rationals] are used for the
|
||||
`n == 1` case.
|
||||
|
||||
For `x < 1` the approximating form is a minimax approximation:
|
||||
|
||||
[equation expint_n_4]
|
||||
|
||||
and for `x > 1` a Chebyshev interpolated approximation of the form:
|
||||
|
||||
[equation expint_n_5]
|
||||
|
||||
is used.
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
[section:expint_i Exponential Integral Ei]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/expint.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
``__sf_result`` expint(T z);
|
||||
|
||||
template <class T, class ``__Policy``>
|
||||
``__sf_result`` expint(T z, const ``__Policy``&);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
The return type of these functions is computed using the __arg_pomotion_rules:
|
||||
the return type is `double` if T is an integer type, and T otherwise.
|
||||
|
||||
[optional_policy]
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
``__sf_result`` expint(T z);
|
||||
|
||||
template <class T, class ``__Policy``>
|
||||
``__sf_result`` expint(T z, const ``__Policy``&);
|
||||
|
||||
Returns the [@http://mathworld.wolfram.com/ExponentialIntegral.html exponential integral]
|
||||
of z:
|
||||
|
||||
[equation expint_i_1]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows the peak errors (in units of epsilon)
|
||||
found on various platforms with various floating point types,
|
||||
along with comparisons to the __gsl library.
|
||||
Unless otherwise specified any floating point type that is narrower
|
||||
than the one shown will have __zero_error.
|
||||
|
||||
[table Errors In the Function expint(z)
|
||||
[[Significand Size] [Platform and Compiler] [Error]]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=2.4 Mean=0.6
|
||||
|
||||
GSL Peak=8.9 Mean=0.7
|
||||
]]
|
||||
[[64] [RedHat Linux IA_EM64, gcc-4.1] [Peak=5.1 Mean=0.8]]
|
||||
[[64] [Redhat Linux IA64, gcc-4.1] [Peak=5.0 Mean=0.8] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=1.9 Mean=0.63]]
|
||||
]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts:
|
||||
basic sanity checks use spot values calculated using
|
||||
[@http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=ExpIntegralEi Mathworld's online evaluator],
|
||||
while accuracy checks use high-precision test values calculated at 1000-bit precision with
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] and this implementation.
|
||||
Note that the generic and type-specific
|
||||
versions of these functions use differing implementations internally, so this
|
||||
gives us reasonably independent test data. Using our test data to test other
|
||||
"known good" implementations also provides an additional sanity check.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
For x < 0 this function just calls __expint_n(1, -x): which in turn is implemented
|
||||
in terms of rational approximations when the type of x has 113 or fewer bits of
|
||||
precision.
|
||||
|
||||
For x > 0 the generic version is implemented using the infinte series:
|
||||
|
||||
[equation expint_i_2]
|
||||
|
||||
However, when the precision of the argument type is known at compile time
|
||||
and is 113 bits or less, then rational approximations [jm_rationals] are used.
|
||||
|
||||
For 0 < z < 6 a root-preserving approximation of the form:
|
||||
|
||||
[equation expint_i_3]
|
||||
|
||||
is used, where z[sub 0] is the positive root of the function, and
|
||||
R(z/3 - 1) is a minimax rational approximation rescaled so that
|
||||
it is evaluated over \[-1,1\]. Note that while the rational approximation
|
||||
over \[0,6\] converges rapidly to the minimax solution it is rather
|
||||
ill-conditioned in practice. Cody and Thacher
|
||||
[footnote W. J. Cody and H. C. Thacher, Jr.,
|
||||
Rational Chebyshev approximations for the exponential integral E[sub 1](x),
|
||||
Math. Comp. 22 (1968), 641-649,
|
||||
and W. J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the
|
||||
exponential integral Ei(x), Math. Comp. 23 (1969), 289-303.]
|
||||
experienced the same issue and
|
||||
converted the polynomials into Chebeshev form to ensure stable
|
||||
computation. By experiment we found that the polynomials are just as stable
|
||||
in polynomial as Chebyshev form, /provided/ they are computed
|
||||
over the interval \[-1,1\].
|
||||
|
||||
Over the a series of intervals [a,b] and [b,INF] the rational approximation
|
||||
takes the form:
|
||||
|
||||
[equation expint_i_4]
|
||||
|
||||
where /c/ is a constant, and R(t) is a minimax solution optimised for low
|
||||
absolute error compared to /c/. Variable /t/ is `1/z` when the range in infinite
|
||||
and `2z/(b-a) - (2a/(b-a) + 1)` otherwise: this has the effect of scaling z to the
|
||||
interval \[-1,1\]. As before rational approximations over arbitrary intervals
|
||||
were found to be ill-conditioned: Cody and Thacher solved this issue by
|
||||
converting the polynomials to their J-Fraction equivalent. However, as long
|
||||
as the interval of evaluation was \[-1,1\] and the number of terms carefully chosen,
|
||||
it was found that the polynomials /could/ be evaluated to suitable precision:
|
||||
error rates are typically 2 to 3 epsilon which is comparible to the error
|
||||
rate that Cody and Thacher achieved using J-Fractions, but marginally more
|
||||
efficient given that fewer divisions are involved.
|
||||
|
||||
[endsect]
|
||||
[endsect]
|
||||
|
||||
[/
|
||||
Copyright 2006 John Maddock and Paul A. Bristow.
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt).
|
||||
]
|
||||
@@ -445,6 +445,14 @@ and a command such as:
|
||||
|
||||
[pre java -jar 'C:\download\open\batik-1.7\batik-rasterizer.jar' -dpi 120 *.svg]
|
||||
|
||||
Or using Inkscape and a command such as:
|
||||
|
||||
[pre for file in *.svg; do
|
||||
/cygdrive/c/progra~1/Inkscape/inkscape -d 120 -e $(cygpath -a -w $(basename $file .svg).png) $(cygpath -a -w $file);
|
||||
done]
|
||||
|
||||
Currently Inkscape seems to generate the better looking png's.
|
||||
|
||||
The PDF is generated into \pdf\math.pdf
|
||||
using a command from a shell or command window with current directory
|
||||
\math_toolkit\libs\math\doc\sf_and_dist, typically:
|
||||
|
||||
@@ -163,6 +163,15 @@ and use the function's name as the link text]
|
||||
[def __powm1 [link math_toolkit.special.powers.powm1 powm1]]
|
||||
[def __hypot [link math_toolkit.special.powers.hypot hypot]]
|
||||
|
||||
[/zeta]
|
||||
[def __zeta [link math_toolkit.special.zetas.zeta zeta]]
|
||||
|
||||
[/expint]
|
||||
[def __expint_i [link math_toolkit.special.expint.expint_i zeta]]
|
||||
[def __expint_n [link math_toolkit.special.expint.expint_n zeta]]
|
||||
|
||||
|
||||
|
||||
[/ distribution non-members]
|
||||
[def __cdf [link math.dist.cdf Cumulative Distribution Function]]
|
||||
[def __pdf [link math.dist.pdf Probability Density Function]]
|
||||
@@ -347,6 +356,8 @@ for these distributions.
|
||||
[include zeta.qbk]
|
||||
[endsect]
|
||||
|
||||
[include expint.qbk]
|
||||
|
||||
[include powers.qbk]
|
||||
[include sinc.qbk]
|
||||
[include inv_hyper.qbk]
|
||||
|
||||