2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Hypergeometric: Start adding docs.

This commit is contained in:
jzmaddock
2018-01-20 17:44:46 +00:00
parent d38b640d1c
commit 7cc4d04edf
22 changed files with 915 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_0f1</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>0</mn>
</msub>
<msub>
<mi>F</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mo>;</mo>
<mi>b</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</munderover>
<mfrac>
<mrow>
<msup>
<mi>z</mi>
<mi>k</mi>
</msup>
</mrow>
<mrow>
<msub>
<mfenced>
<mrow>
<mi>b</mi>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<mi>k</mi>
<mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_0f1_bessel_i</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>0</mn>
</msub>
<msub>
<mi>F</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mo>;</mo>
<mi>b</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<mi>&#x393;</mi>
<mfenced>
<mrow>
<mi>b</mi>
</mrow>
</mfenced>
<msup>
<mi>z</mi>
<mrow>
<mfrac>
<mrow>
<mn>1</mn>
<mo>&#x2212;</mo>
<mi>b</mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
</msup>
<msub>
<mi>I</mi>
<mrow>
<mi>b</mi>
<mo>&#x2212;</mo>
<mn>1</mn>
</mrow>
</msub>
<mfenced>
<mrow>
<mn>2</mn>
<msqrt>
<mrow>
<mi>z</mi>
</mrow>
</msqrt>
</mrow>
</mfenced>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_0f1_bessel_j</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>0</mn>
</msub>
<msub>
<mi>F</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mo>;</mo>
<mi>b</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<mi>&#x393;</mi>
<mfenced>
<mrow>
<mi>b</mi>
</mrow>
</mfenced>
<msup>
<mfenced>
<mrow>
<mo>&#x2212;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mrow>
<mfrac>
<mrow>
<mn>1</mn>
<mo>&#x2212;</mo>
<mi>b</mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
</msup>
<msub>
<mi>J</mi>
<mrow>
<mi>b</mi>
<mo>&#x2212;</mo>
<mn>1</mn>
</mrow>
</msub>
<mfenced>
<mrow>
<mn>2</mn>
<msqrt>
<mrow>
<mo>&#x2212;</mo>
<mi>z</mi>
</mrow>
</msqrt>
</mrow>
</mfenced>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_0f1_cf</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>0</mn>
</msub>
<msub>
<mi>F</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mo>;</mo>
<mi>b</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mrow>
<mi>z</mi>
</mrow>
<mrow>
<mi>b</mi>
<mfenced>
<mrow>
<mn>1</mn>
<mo>+</mo>
<msub>
<mi>K</mi>
<mi>k</mi>
</msub>
<msubsup>
<mfenced>
<mrow>
<mo>&#x2212;</mo>
<mfrac>
<mi>z</mi>
<mrow>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>b</mi>
<mo>+</mo>
<mi>k</mi>
</mrow>
</mfenced>
</mrow>
</mfrac>
<mo>,</mo>
<mfrac>
<mi>z</mi>
<mrow>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>b</mi>
<mo>+</mo>
<mi>k</mi>
</mrow>
</mfenced>
</mrow>
</mfrac>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mrow>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</msubsup>
</mrow>
</mfenced>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_1f0</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>1</mn>
</msub>
<msub>
<mi>F</mi>
<mn>0</mn>
</msub>
<mfenced>
<mrow>
<mi>a</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</munderover>
<mfrac>
<mrow>
<msub>
<mfenced>
<mrow>
<mi>a</mi>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<msup>
<mi>z</mi>
<mi>k</mi>
</msup>
</mrow>
<mrow>
<mi>k</mi>
<mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_1f1</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>1</mn>
</msub>
<msub>
<mi>F</mi>
<mn>1</mn>
</msub>
<mfenced>
<mrow>
<mi>a</mi>
<mo>;</mo>
<mi>b</mi>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</munderover>
<mfrac>
<mrow>
<msub>
<mfenced>
<mrow>
<mi>a</mi>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<msup>
<mi>z</mi>
<mi>k</mi>
</msup>
</mrow>
<mrow>
<msub>
<mfenced>
<mrow>
<mi>b</mi>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<mi>k</mi>
<mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_2f0</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>2</mn>
</msub>
<msub>
<mi>F</mi>
<mn>0</mn>
</msub>
<mfenced>
<mrow>
<msub>
<mi>a</mi>
<mn>1</mn>
</msub>
<msub>
<mi>a</mi>
<mn>2</mn>
</msub>
<mo>;</mo>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<munderover>
<mo>&#x2211;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</munderover>
<mfrac>
<mrow>
<msub>
<mfenced>
<mrow>
<msub>
<mi>a</mi>
<mn>1</mn>
</msub>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<msub>
<mfenced>
<mrow>
<msub>
<mi>a</mi>
<mn>2</mn>
</msub>
</mrow>
</mfenced>
<mi>k</mi>
</msub>
<msup>
<mi>z</mi>
<mi>k</mi>
</msup>
</mrow>
<mrow>
<mi>k</mi>
<mo>!</mo>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_2f0_cf</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>2</mn>
</msub>
<msub>
<mi>F</mi>
<mn>0</mn>
</msub>
<mfenced>
<mrow>
<mrow>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
<mo>,</mo>
<mi>b</mi>
<mo>;</mo>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mrow>
<mi>z</mi>
</mrow>
<mrow>
<mrow>
<mo>&#x2212;</mo>
<mi>n</mi>
<mi>b</mi>
</mrow>
<mfenced>
<mrow>
<mn>1</mn>
<mo>+</mo>
<msub>
<mi>K</mi>
<mi>k</mi>
</msub>
<msubsup>
<mfenced>
<mrow>
<mfrac>
<mrow>
<mo>&#x2212;</mo>
<mi>z</mi>
</mrow>
<mrow>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>k</mi>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mi>b</mi>
</mrow>
</mfenced>
</mrow>
</mfrac>
<mo>,</mo>
<mfrac>
<mi>z</mi>
<mrow>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>k</mi>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
</mfenced>
<mfenced>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mi>b</mi>
</mrow>
</mfenced>
</mrow>
</mfrac>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mrow>
<mn>1</mn>
</mrow>
<mi>&#x221e;</mi>
</msubsup>
</mrow>
</mfenced>
</mrow>
</mfrac>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_2f0_hermite</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>2</mn>
</msub>
<msub>
<mi>F</mi>
<mn>0</mn>
</msub>
<mfenced>
<mrow>
<mrow>
<mo>&#x2212;</mo>
<mfrac>
<mi>n</mi>
<mn>2</mn>
</mfrac>
</mrow>
<mo>,</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
<mn>2</mn>
</mfrac>
<mo>;</mo>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<msup>
<mfenced>
<mrow>
<mfrac>
<mn>2</mn>
<mrow>
<msqrt>
<mrow>
<mo>&#x2212;</mo>
<mi>z</mi>
</mrow>
</msqrt>
</mrow>
</mfrac>
</mrow>
</mfenced>
<mrow>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
</msup>
<msub>
<mi>H</mi>
<mi>n</mi>
</msub>
<mfenced>
<mrow>
<mfrac>
<mn>1</mn>
<mrow>
<msqrt>
<mrow>
<mo>&#x2212;</mo>
<mi>z</mi>
</mrow>
</msqrt>
</mrow>
</mfrac>
</mrow>
</mfenced>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>hyper_2f0_laguerre</title>
<!-- MathML created with MathCast Equation Editor version 0.92 -->
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub>
<mi/>
<mn>2</mn>
</msub>
<msub>
<mi>F</mi>
<mn>0</mn>
</msub>
<mfenced>
<mrow>
<mrow>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
<mo>,</mo>
<mi>b</mi>
<mo>;</mo>
<mo>;</mo>
<mi>z</mi>
</mrow>
</mfenced>
<mo>=</mo>
<mi>n</mi>
<mo>!</mo>
<msup>
<mi>z</mi>
<mi>n</mi>
</msup>
<msubsup>
<mi>L</mi>
<mrow>
<mi>n</mi>
</mrow>
<mrow>
<mo>&#x2212;</mo>
<mi>b</mi>
<mo>&#x2212;</mo>
<mi>n</mi>
</mrow>
</msubsup>
<mfenced>
<mrow>
<mo>&#x2212;</mo>
<mfrac>
<mn>1</mn>
<mi>z</mi>
</mfrac>
</mrow>
</mfenced>
</mrow>
</math></body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -600,6 +600,8 @@ and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22.
[include sf/expint.qbk]
[include sf/hypergeometric.qbk]
[include sf/powers.qbk]
[include sf/sinc.qbk]
[include sf/inv_hyper.qbk]

122
doc/sf/hypergeometric.qbk Normal file
View File

@@ -0,0 +1,122 @@
[section:hypergeometric Hypergeometric Functions]
[section:hyper_geometric_1f0 Hypergeometric 1F0]
template <class T1, class T2>
``__sf_result`` hypergeometric_1f0(T1 a, T2 z);
template <class T1, class T2, class ``__Policy``>
``__sf_result`` hypergeometric_1f0(T1 a, T2 z, const ``__Policy``&);
[h4 Description]
The function hypergeometric_1f0 returns the result of:
[equation hyper_1f0]
The return type of these functions is computed using the __arg_promotion_rules
when T1 and T2 are different types.
[optional_policy]
The functions return the result of __domain_error whenever the result is
undefined or complex. This occurs for `z == 1` or `1 - z < 0` and `a` not an integer.
[h4 Implementation]
Implementation is trivially via:
[sub 1]F[sub 0](a, z) = (1-z)[super -a]
[endsect]
[section:hypergeometric_0f1 Hypergeometric 0F1]
template <class T1, class T2>
``__sf_result`` hypergeometric_0f1(T1 b, T2 z);
template <class T1, class T2, class ``__Policy``>
``__sf_result`` hypergeometric_0f1(T1 b, T2 z, const ``__Policy``&);
[h4 Description]
The function hypergeometric_0f1 returns the result of:
[equation hyper_0f1]
The return type of these functions is computed using the __arg_promotion_rules
when T1 and T2 are different types.
[optional_policy]
The functions return the result of __domain_error whenever the result is
undefined or complex. This occurs only when `b` is an integer <= 0.
[h4 Implementation]
The function is implemented via it's defining series whenever that series is non-divergent.
For a divergent series we use the continued fraction as long as the result is not too small:
[equation hyper_0f1_cf]
Otherwise one of the Bessel function relations:
[equation hyper_0f1_bessel_j]
[equation hyper_0f1_bessel_i]
[endsect]
[section:hyper_geometric_1f0 Hypergeometric 2F0]
template <class T1, class T2, class T3>
``__sf_result`` hypergeometric_2f0(T1 a1, T2 a2, T3 z);
template <class T1, class T2, class T3, class ``__Policy``>
``__sf_result`` hypergeometric_2f0(T1 a1, T2 a2, T3 z, const ``__Policy``&);
[h4 Description]
The function hypergeometric_2f0 returns the result of:
[equation hyper_2f0]
The return type of these functions is computed using the __arg_promotion_rules
when T1 and T2 are different types.
[optional_policy]
The functions return the result of __domain_error whenever the result is
undefined or complex. The valid domain for this function occurs only when one of `a1` or
`a2` is a negative integer: ie the polynomial case.
[h4 Implementation]
When a1 == a2 - 0.5 then the function is implemented in terms of the Hermite polynomial:
[equation hyper_2f0_hermite]
When both a1 and a2 are integers then the function is implemented in terms of the associated-Laguerre polynomial:
[equation hyper_2f0_laguerre]
Otherwise if the defining series would be divergent, then we use the continued fraction form:
[equation hyper_2f0_cf]
Otherwise we use the defining series.
[endsect]
[endsect]
[/
Copyright 2017 John Maddock.
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).
]