2
0
mirror of https://github.com/boostorg/math.git synced 2026-02-18 14:12:24 +00:00

Added expint docs.

Updated zeta and expint tests with hooks for other libraries.
Added #pragma once to header files.

[SVN r42140]
This commit is contained in:
John Maddock
2007-12-18 18:32:50 +00:00
parent 3dccf38c87
commit b27b39532b
119 changed files with 1325 additions and 6 deletions

View 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>&#x2212;</mo>
<msub>
<mi>E</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mo>&#x2212;</mo>
<mi>x</mi>
</mrow>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&#x222B;</mo>
<mrow>
<mo>&#x2212;</mo>
<mi>x</mi>
</mrow>
<mi>&#x221E;</mi>
</munderover>
<mfrac>
<mrow>
<msup>
<mi>e</mi>
<mrow>
<mo>&#x2212;</mo>
<mi>t</mi>
</mrow>
</msup>
<mi>d</mi>
<mi>t</mi>
</mrow>
<mi>t</mi>
</mfrac>
</mrow>
</math>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

View 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>&#x03B3;</mi>
<mo>+</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>&#x221E;</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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.1 KiB

View 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>&#x2212;</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>&#x2212;</mo>
<mn>1</mn>
</mrow>
</mfenced>
</mrow>
</math>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.1 KiB

View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View 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

View 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>&#x222B;</mo>
<mrow>
<mn>1</mn>
</mrow>
<mi>&#x221E;</mi>
</msubsup>
<mfrac>
<mrow>
<msup>
<mi>e</mi>
<mrow>
<mo>&#x2212;</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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View 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

View 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>&#x2212;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mrow>
<mi>n</mi>
<mo>&#x2212;</mo>
<mn>1</mn>
</mrow>
</msup>
<mrow>
<mfenced>
<mrow>
<mi>n</mi>
<mo>&#x2212;</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mo>!</mo>
</mrow>
</mfrac>
<mfenced>
<mrow>
<mi>&#x03C8;</mi>
<mfenced>
<mrow>
<mi>n</mi>
</mrow>
</mfenced>
<mo>&#x2212;</mo>
<mi>log</mi>
<mfenced>
<mrow>
<mi>z</mi>
</mrow>
</mfenced>
</mrow>
</mfenced>
<mo>&#x2212;</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>0,</mn>
<mi>k</mi>
<mo>&#x2260;</mo>
<mi>n</mi>
<mo>&#x2212;</mo>
<mn>1</mn>
</mrow>
<mi>&#x221E;</mi>
</munderover>
<mfrac>
<mrow>
<msup>
<mfenced>
<mrow>
<mo>&#x2212;</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>&#x2212;</mo>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mi>k</mi>
<mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View 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>&#x2212;</mo>
<mi>x</mi>
</mrow>
</msup>
<mrow>
<mi>n</mi>
<mo>+</mo>
<mi>x</mi>
<mo>&#x2212;</mo>
<mfrac>
<mi>n</mi>
<mrow>
<mn>2</mn>
<mo>+</mo>
<mi>n</mi>
<mo>+</mo>
<mi>x</mi>
<mo>&#x2212;</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>&#x2212;</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>&#x2212;</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>&#x2212;</mo>
<mo>&#x2026;</mo>
</mrow>
</mfrac>
</mrow>
</mfrac>
</mrow>
</mfrac>
</mrow>
</mfrac>
</mrow>
</mfrac>
</mrow>
</math>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View 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

View 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>&#x2212;</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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

227
doc/sf_and_dist/expint.qbk Normal file
View 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).
]

View File

@@ -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:

View File

@@ -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]