Big initial commit of the Polynomial and associated functions from TR1.
[SVN r3522]
@ -17,14 +17,16 @@ boostbook standalone
|
||||
<xsl:param>toc.max.depth=4
|
||||
<xsl:param>generate.section.toc.level=10
|
||||
# this is needed for FOP-0.9 and later:
|
||||
<xsl:param>fop1.extensions=0
|
||||
<xsl:param>fop1.extensions=1
|
||||
# this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
|
||||
<xsl:param>fop.extensions=1
|
||||
<xsl:param>fop.extensions=0
|
||||
<xsl:param>body.start.indent=0pt
|
||||
<xsl:param>page.margin.inner=0.5in
|
||||
<xsl:param>page.margin.outer=0.5in
|
||||
<xsl:param>admon.graphics=1
|
||||
<xsl:param>symbol.font.family=DejaVuSans,Symbol,ZapfDingbats
|
||||
# set this one for PDF generation only:
|
||||
#<xsl:param>admon.graphics.extension=".svg"
|
||||
;
|
||||
|
||||
|
||||
@ -43,5 +45,8 @@ boostbook standalone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
124
doc/equations/hermite.xml
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version='1.0'?>
|
||||
<!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>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>hermite</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>H</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</msup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>d</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>d</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>H</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mn>2</mn>
|
||||
<mi>x</mi>
|
||||
<msub>
|
||||
<mi>H</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<msub>
|
||||
<mi>H</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
BIN
doc/equations/hermite_0.png
Normal file
After Width: | Height: | Size: 666 B |
BIN
doc/equations/hermite_1.png
Normal file
After Width: | Height: | Size: 458 B |
291
doc/equations/laguerre.xml
Normal file
@ -0,0 +1,291 @@
|
||||
<?xml version='1.0'?>
|
||||
<!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>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>laguerre</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mi>x</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>d</mi>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>d</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>laguerre</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>,</mo>
|
||||
<mi>m</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msubsup>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>d</mi>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>d</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mi>n</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mi>n</mi>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msubsup>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>m</mi>
|
||||
<mo>+</mo>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msubsup>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>m</mi>
|
||||
<mo>+</mo>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msubsup>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
BIN
doc/equations/laguerre_0.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
doc/equations/laguerre_1.png
Normal file
After Width: | Height: | Size: 721 B |
BIN
doc/equations/laguerre_2.png
Normal file
After Width: | Height: | Size: 625 B |
BIN
doc/equations/laguerre_3.png
Normal file
After Width: | Height: | Size: 683 B |
518
doc/equations/legendre.xml
Normal file
@ -0,0 +1,518 @@
|
||||
<?xml version='1.0'?>
|
||||
<!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>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>legendre_p</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>P</mi>
|
||||
<mi>l</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mn>2</mn>
|
||||
<mi>l</mi>
|
||||
</msup>
|
||||
<mi>l</mi>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>d</mi>
|
||||
<mi>l</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>d</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mi>l</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>l</mi>
|
||||
</msup>
|
||||
<mspace width="1em"/>
|
||||
<mo>;</mo>
|
||||
<mspace width="1em"/>
|
||||
<mo>|</mo>
|
||||
<mi>x</mi>
|
||||
<mo>|</mo>
|
||||
<mo>≤</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>legendre_p</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>,</mo>
|
||||
<mi>m</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>m</mi>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>d</mi>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
<msub>
|
||||
<mi>P</mi>
|
||||
<mi>l</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>d</mi>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mtext>legendre_q</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>0,</mn>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>Q</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
<mi>ln</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mtext>legendre_q</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1,</mn>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>Q</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
<mi>ln</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>m</mi>
|
||||
</msup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>l</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>x</mi>
|
||||
<msub>
|
||||
<mi>P</mi>
|
||||
<mi>l</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mi>l</mi>
|
||||
<msub>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>x</mi>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>−</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
BIN
doc/equations/legendre_0.png
Normal file
After Width: | Height: | Size: 830 B |
BIN
doc/equations/legendre_1.png
Normal file
After Width: | Height: | Size: 854 B |
BIN
doc/equations/legendre_2.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
doc/equations/legendre_3.png
Normal file
After Width: | Height: | Size: 783 B |
BIN
doc/equations/legendre_4.png
Normal file
After Width: | Height: | Size: 592 B |
BIN
doc/equations/legendre_5.png
Normal file
After Width: | Height: | Size: 747 B |
259
doc/equations/spherical.xml
Normal file
@ -0,0 +1,259 @@
|
||||
<?xml version='1.0'?>
|
||||
<!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>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msubsup>
|
||||
<mi>Y</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>θ</mi>
|
||||
<mo>,</mo>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>4</mn>
|
||||
<mi>π</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>cos</mi>
|
||||
<mi>θ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>ⅈ</mi>
|
||||
<mi>m</mi>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Re</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<msubsup>
|
||||
<mi>Y</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>θ</mi>
|
||||
<mo>,</mo>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>4</mn>
|
||||
<mi>π</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>cos</mi>
|
||||
<mi>θ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>cos</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>m</mi>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Im</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<msubsup>
|
||||
<mi>Y</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>θ</mi>
|
||||
<mo>,</mo>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>4</mn>
|
||||
<mi>π</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
<mo>+</mo>
|
||||
<mi>m</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<msubsup>
|
||||
<mi>P</mi>
|
||||
<mrow>
|
||||
<mi>n</mi>
|
||||
</mrow>
|
||||
<mi>m</mi>
|
||||
</msubsup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>cos</mi>
|
||||
<mi>θ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>sin</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>m</mi>
|
||||
<mi>φ</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
BIN
doc/equations/spherical_0.png
Normal file
After Width: | Height: | Size: 874 B |
BIN
doc/equations/spherical_1.png
Normal file
After Width: | Height: | Size: 974 B |
BIN
doc/equations/spherical_2.png
Normal file
After Width: | Height: | Size: 975 B |
BIN
doc/graphs/hermite.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
17509
doc/graphs/hermite.ps
Normal file
2145
doc/graphs/hermite.rgd
Normal file
BIN
doc/graphs/laguerre.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
7844
doc/graphs/laguerre.ps
Normal file
1745
doc/graphs/laguerre.rgd
Normal file
BIN
doc/graphs/legendre_p1.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
14927
doc/graphs/legendre_p1.ps
Normal file
1752
doc/graphs/legendre_p1.rgd
Normal file
BIN
doc/graphs/legendre_q.png
Normal file
After Width: | Height: | Size: 10 KiB |
14727
doc/graphs/legendre_q.ps
Normal file
1745
doc/graphs/legendre_q.rgd
Normal file
106
doc/hermite.qbk
Normal file
@ -0,0 +1,106 @@
|
||||
[section:hermite Hermite Polynomials]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/hermite.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T hermite(unsigned n, T x);
|
||||
|
||||
template <class T>
|
||||
T hermite_next(unsigned n, T x, T Hn, T Hnm1);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
T hermite(unsigned n, T x);
|
||||
|
||||
Returns the value of the Hermite Polynomial of order /n/ at point /x/:
|
||||
|
||||
[$../equations/hermite_0.png]
|
||||
|
||||
The following graph illustrates the behaviour of the first few
|
||||
Hermite Polynomials:
|
||||
|
||||
[$../graphs/hermite.png]
|
||||
|
||||
template <class T>
|
||||
T hermite_next(unsigned n, T x, T Hn, T Hnm1);
|
||||
|
||||
Implements the three term recurrence relation for the Hermite
|
||||
polynomials, this function can be used to create a sequence of
|
||||
values evaluated at the same /x/, and for rising /n/.
|
||||
|
||||
[$../equations/hermite_1.png]
|
||||
|
||||
For example we could produce a vector of the first 10 polynomial
|
||||
values using:
|
||||
|
||||
double x = 0.5; // Abscissa value
|
||||
vector<double> v;
|
||||
v.push_back(hermite(0, x)).push_back(hermite(1, x));
|
||||
for(unsigned l = 1; l < 10; ++l)
|
||||
v.push_back(hermite_next(l, x, v[l], v[l-1]));
|
||||
|
||||
Formally the arguments are:
|
||||
|
||||
[variablelist
|
||||
[[n][The degree /n/ of the last polynomial calculated.]]
|
||||
[[x][The abscissa value]]
|
||||
[[Hn][The value of the polynomial evaluated at degree /n/.]]
|
||||
[[Hnm1][The value of the polynomial evaluated at degree /n-1/.]]
|
||||
]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows peak errors for various domains of input arguments.
|
||||
Note that only results for the widest floating point type on the system are
|
||||
given as narrower types have __zero_error.
|
||||
|
||||
[table Peak Errors In the Hermite Polynomial
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] ]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=4.5 Mean=1.5] ]
|
||||
[[64] [Red Hat Linux IA32, g++ 4.1] [Peak=6 Mean=2]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=6 Mean=2] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=6 Mean=4]]
|
||||
]
|
||||
|
||||
Note that the worst errors occur when the degree increases, values greater than
|
||||
~120 are very unlikely to produce sensible results, especially in the associated
|
||||
polynomial case when the order is also large. Further the relative errors
|
||||
are likely to grow arbitrarily large when the function is very close to a root.
|
||||
|
||||
No comparisons to other libraries are shown here: there appears to be only one
|
||||
viable implementation method for these functions, the comparisons to other
|
||||
libraries that have been run show identical error rates to those given here.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
A mixture of spot tests of values calculated using functions.wolfram.com,
|
||||
and randomly generated test data are
|
||||
used: the test data was computed using
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] at 1000-bit precision.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
These functions are implemented using the stable three term
|
||||
recurrence relations. These relations guarentee low absolute error
|
||||
but cannot guarentee low relative error near one of the roots of the
|
||||
polynomials.
|
||||
|
||||
[endsect][/section:beta_function The Beta Function]
|
||||
[/
|
||||
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).
|
||||
]
|
||||
|
158
doc/laguerre.qbk
Normal file
@ -0,0 +1,158 @@
|
||||
[section:laguerre Laguerre (and Associated) Polynomials]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/laguerre.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T laguerre(unsigned n, T x);
|
||||
|
||||
template <class T>
|
||||
T laguerre(unsigned n, unsigned m, T x);
|
||||
|
||||
template <class T>
|
||||
T laguerre_next(unsigned n, T x, T Ln, T Lnm1);
|
||||
|
||||
template <class T>
|
||||
T laguerre_next(unsigned n, unsigned m, T x, T Ln, T Lnm1);
|
||||
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
T laguerre(unsigned n, T x);
|
||||
|
||||
Returns the value of the Laguerre Polynomial of order /n/ at point /x/:
|
||||
|
||||
[$../equations/laguerre_0.png]
|
||||
|
||||
The following graph illustrates the behaviour of the first few
|
||||
Laguerre Polynomials:
|
||||
|
||||
[$../graphs/laguerre.png]
|
||||
|
||||
template <class T>
|
||||
T laguerre(unsigned n, unsigned m, T x);
|
||||
|
||||
Returns the Associated Laguerre polynomial of degree /n/
|
||||
and order /m/ at point /x/:
|
||||
|
||||
[$../equations/laguerre_1.png]
|
||||
|
||||
template <class T>
|
||||
T laguerre_next(unsigned n, T x, T Ln, T Lnm1);
|
||||
|
||||
Implements the three term recurrence relation for the Laguerre
|
||||
polynomials, this function can be used to create a sequence of
|
||||
values evaluated at the same /x/, and for rising /n/.
|
||||
|
||||
[$../equations/laguerre_2.png]
|
||||
|
||||
For example we could produce a vector of the first 10 polynomial
|
||||
values using:
|
||||
|
||||
double x = 0.5; // Abscissa value
|
||||
vector<double> v;
|
||||
v.push_back(laguerre(0, x)).push_back(laguerre(1, x));
|
||||
for(unsigned l = 1; l < 10; ++l)
|
||||
v.push_back(laguerre_next(l, x, v[l], v[l-1]));
|
||||
|
||||
Formally the arguments are:
|
||||
|
||||
[variablelist
|
||||
[[n][The degree /n/ of the last polynomial calculated.]]
|
||||
[[x][The abscissa value]]
|
||||
[[Ln][The value of the polynomial evaluated at degree /n/.]]
|
||||
[[Lnm1][The value of the polynomial evaluated at degree /n-1/.]]
|
||||
]
|
||||
|
||||
template <class T>
|
||||
T laguerre_next(unsigned n, unsigned m, T x, T Ln, T Lnm1);
|
||||
|
||||
Implements the three term recurrence relation for the Associated Laguerre
|
||||
polynomials, this function can be used to create a sequence of
|
||||
values evaluated at the same /x/, and for rising degree /n/.
|
||||
|
||||
[$../equations/laguerre_3.png]
|
||||
|
||||
For example we could produce a vector of the first 10 polynomial
|
||||
values using:
|
||||
|
||||
double x = 0.5; // Abscissa value
|
||||
int m = 10; // order
|
||||
vector<double> v;
|
||||
v.push_back(laguerre(0, m, x)).push_back(laguerre(1, m, x));
|
||||
for(unsigned l = 1; l < 10; ++l)
|
||||
v.push_back(laguerre_next(l, m, x, v[l], v[l-1]));
|
||||
|
||||
Formally the arguments are:
|
||||
|
||||
[variablelist
|
||||
[[n][The degree of the last polynomial calculated.]]
|
||||
[[m][The order of the Associated Polynomial.]]
|
||||
[[x][The abscissa value.]]
|
||||
[[Ln][The value of the polynomial evaluated at degree /n/.]]
|
||||
[[Lnm1][The value of the polynomial evaluated at degree /n-1/.]]
|
||||
]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows peak errors for various domains of input arguments.
|
||||
Note that only results for the widest floating point type on the system are
|
||||
given as narrower types have __zero_error.
|
||||
|
||||
[table Peak Errors In the Laguerre Polynomial
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] ]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=3000 Mean=185] ]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=1x10[super 4] Mean=828]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=1x10[super 4] Mean=828] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=680 Mean=40]]
|
||||
]
|
||||
|
||||
[table Peak Errors In the Associated Laguerre Polynomial
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] ]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=433 Mean=11]]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=61.4 Mean=19.5]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=61.4 Mean=19.5] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=540 Mean=13.94] ]
|
||||
]
|
||||
|
||||
Note that the worst errors occur when the degree increases, values greater than
|
||||
~120 are very unlikely to produce sensible results, especially in the associated
|
||||
polynomial case when the order is also large. Further the relative errors
|
||||
are likely to grow arbitrarily large when the function is very close to a root.
|
||||
|
||||
No comparisons to other libraries are shown here: there appears to be only one
|
||||
viable implementation method for these functions, the comparisons to other
|
||||
libraries that have been run show identical error rates to those given here.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
A mixture of spot tests of values calculated using functions.wolfram.com,
|
||||
and randomly generated test data are
|
||||
used: the test data was computed using
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] at 1000-bit precision.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
These functions are implemented using the stable three term
|
||||
recurrence relations. These relations guarentee low absolute error
|
||||
but cannot guarentee low relative error near one of the roots of the
|
||||
polynomials.
|
||||
|
||||
[endsect][/section:beta_function The Beta Function]
|
||||
[/
|
||||
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).
|
||||
]
|
||||
|
215
doc/legendre.qbk
Normal file
@ -0,0 +1,215 @@
|
||||
[section:legendre Legendre (and Associated) Polynomials]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/legendre.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T legendre_p(int n, T x);
|
||||
|
||||
template <class T>
|
||||
T legendre_p(int n, int m, T x);
|
||||
|
||||
template <class T>
|
||||
T legendre_q(int n, T x);
|
||||
|
||||
template <class T>
|
||||
T legendre_next(unsigned l, T x, T Pl, T Plm1);
|
||||
|
||||
template <class T>
|
||||
T legendre_next(unsigned l, unsigned m, T x, T Pl, T Plm1);
|
||||
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
T legendre_p(int l, T x);
|
||||
|
||||
Returns the Legendre Polynomial of the first kind:
|
||||
|
||||
[$../equations/legendre_0.png]
|
||||
|
||||
Requires -1 <= x <= 1, otherwise returns the result of __domain_error.
|
||||
|
||||
Negative orders are handled via the reflection formula:
|
||||
|
||||
P[sub -l-1](x) = P[sub l](x)
|
||||
|
||||
The following graph illustrates the behaviour of the first few
|
||||
Legendre Polynomials:
|
||||
|
||||
[$../graphs/legendre_p1.png]
|
||||
|
||||
template <class T>
|
||||
T legendre_p(int l, int m, T x);
|
||||
|
||||
Returns the associated Legendre polynomial of the first kind:
|
||||
|
||||
[$../equations/legendre_1.png]
|
||||
|
||||
Requires -1 <= x <= 1, otherwise returns the result of __domain_error.
|
||||
|
||||
Negative values of /l/ and /m/ are handled via the identity relations:
|
||||
|
||||
[$../equations/legendre_3.png]
|
||||
|
||||
[caution The definition of the associated Legendre polynomial used here
|
||||
includes a leading Condon-Shortley phase term of (-1)[super m]. This
|
||||
matches the definition given by Abramowitz and Stegun (8.6.6) and that
|
||||
used by [@http://mathworld.wolfram.com/LegendrePolynomial.html Mathworld]
|
||||
and [@http://documents.wolfram.com/mathematica/functions/LegendreP
|
||||
Mathematica's LegendreP function]. However, uses in the literature
|
||||
do not always include this phase term, and strangely the specification
|
||||
for the associated Legendre function in the C++ TR1 (assoc_legendre)
|
||||
also omits it, in spite of stating that it uses Abramowitz and Stegun
|
||||
as the final arbiter on these matters.\n\n
|
||||
See: \n\n[@http://mathworld.wolfram.com/LegendrePolynomial.html
|
||||
Weisstein, Eric W. "Legendre Polynomial."
|
||||
From MathWorld--A Wolfram Web Resource].\n\n
|
||||
Abramowitz, M. and Stegun, I. A. (Eds.). "Legendre Functions" and
|
||||
"Orthogonal Polynomials." Ch. 22 in Chs. 8 and 22 in Handbook of
|
||||
Mathematical Functions with Formulas, Graphs, and Mathematical Tables,
|
||||
9th printing. New York: Dover, pp. 331-339 and 771-802, 1972.
|
||||
]
|
||||
|
||||
template <class T>
|
||||
T legendre_q(int n, T x);
|
||||
|
||||
Returns the value of the Legendre polynomial that is the second solution
|
||||
to the Legendre differential equation, for example:
|
||||
|
||||
[$../equations/legendre_2.png]
|
||||
|
||||
Requires -1 <= x <= 1, otherwise __domain_error is called.
|
||||
|
||||
The following graph illustrates the first few Legendre functions of the
|
||||
second kind:
|
||||
|
||||
[$../graphs/legendre_q.png]
|
||||
|
||||
template <class T>
|
||||
T legendre_next(unsigned l, T x, T Pl, T Plm1);
|
||||
|
||||
Implements the three term recurrence relation for the Legendre
|
||||
polynomials, this function can be used to create a sequence of
|
||||
values evaluated at the same /x/, and for rising /l/. This recurrence
|
||||
relation holds for Legendre Polynomials of both the first and second kinds.
|
||||
|
||||
[$../equations/legendre_4.png]
|
||||
|
||||
For example we could produce a vector of the first 10 polynomial
|
||||
values using:
|
||||
|
||||
double x = 0.5; // Abscissa value
|
||||
vector<double> v;
|
||||
v.push_back(legendre_p(0, x)).push_back(legendre_p(1, x));
|
||||
for(unsigned l = 1; l < 10; ++l)
|
||||
v.push_back(legendre_next(l, x, v[l], v[l-1]));
|
||||
|
||||
Formally the arguments are:
|
||||
|
||||
[variablelist
|
||||
[[l][The degree of the last polynomial calculated.]]
|
||||
[[x][The abscissa value]]
|
||||
[[Pl][The value of the polynomial evaluated at degree /l/.]]
|
||||
[[Plm1][The value of the polynomial evaluated at degree /l-1/.]]
|
||||
]
|
||||
|
||||
template <class T>
|
||||
T legendre_next(unsigned l, unsigned m, T x, T Pl, T Plm1);
|
||||
|
||||
Implements the three term recurrence relation for the Associated Legendre
|
||||
polynomials, this function can be used to create a sequence of
|
||||
values evaluated at the same /x/, and for rising /l/.
|
||||
|
||||
[$../equations/legendre_5.png]
|
||||
|
||||
For example we could produce a vector of the first m+10 polynomial
|
||||
values using:
|
||||
|
||||
double x = 0.5; // Abscissa value
|
||||
int m = 10; // order
|
||||
vector<double> v;
|
||||
v.push_back(legendre_p(m, m, x)).push_back(legendre_p(1 + m, m, x));
|
||||
for(unsigned l = 1 + m; l < m + 10; ++l)
|
||||
v.push_back(legendre_next(l, m, x, v[l], v[l-1]));
|
||||
|
||||
Formally the arguments are:
|
||||
|
||||
[variablelist
|
||||
[[l][The degree of the last polynomial calculated.]]
|
||||
[[m][The order of the Associated Polynomial.]]
|
||||
[[x][The abscissa value]]
|
||||
[[Pl][The value of the polynomial evaluated at degree /l/.]]
|
||||
[[Plm1][The value of the polynomial evaluated at degree /l-1/.]]
|
||||
]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows peak errors for various domains of input arguments.
|
||||
Note that only results for the widest floating point type on the system are
|
||||
given as narrower types have __zero_error.
|
||||
|
||||
[table Peak Errors In the Legendre P Function
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] [Errors in range\n20 < l < 120]]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=211 Mean=20] [Peak=300 Mean=33]]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=70 Mean=10] [Peak=700 Mean=60]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=70 Mean=10] [Peak=700 Mean=60]]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=35 Mean=6] [Peak=292 Mean=41]]
|
||||
]
|
||||
|
||||
[table Peak Errors In the Associated Legendre P Function
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] ]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=1200 Mean=7]]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=80 Mean=5]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=80 Mean=5] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=42 Mean=4] ]
|
||||
]
|
||||
|
||||
[table Peak Errors In the Legendre Q Function
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] [Errors in range\n20 < l < 120]]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=50 Mean=7] [Peak=4600 Mean=370]]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=51 Mean=8] [Peak=6000 Mean=480]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=51 Mean=8] [Peak=6000 Mean=480]]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=90 Mean=10] [Peak=1700 Mean=140]]
|
||||
]
|
||||
|
||||
Note that the worst errors occur when the order increases, values greater than
|
||||
~120 are very unlikely to produce sensible results, especially in the associated
|
||||
polynomial case when the degree is also large. Further the relative errors
|
||||
are likely to grow arbitrarily large when the function is very close to a root.
|
||||
|
||||
No comparisons to other libraries are shown here: there appears to be only one
|
||||
viable implementation method for these functions, the comparisons to other
|
||||
libraries that have been run show identical error rates to those given here.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
A mixture of spot tests of values calculated using functions.wolfram.com,
|
||||
and randomly generated test data are
|
||||
used: the test data was computed using
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] at 1000-bit precision.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
These functions are implemented using the stable three term
|
||||
recurrence relations. These relations guarentee low absolute error
|
||||
but cannot guarentee low relative error near one of the roots of the
|
||||
polynomials.
|
||||
|
||||
[endsect][/section:beta_function The Beta Function]
|
||||
[/
|
||||
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).
|
||||
]
|
||||
|
@ -233,6 +233,10 @@ external graphing application.
|
||||
[include ibeta.qbk]
|
||||
[include ibeta_inv.qbk]
|
||||
[include beta_gamma_derivatives.qbk]
|
||||
[include legendre.qbk]
|
||||
[include laguerre.qbk]
|
||||
[include hermite.qbk]
|
||||
[include spherical_harmonic.qbk]
|
||||
[include fpclassify.qbk]
|
||||
[include powers.qbk]
|
||||
[include error_handling.qbk]
|
||||
|
@ -32,7 +32,7 @@ Statistical Distributions (Wiley Series in Probability & Statistics) (Paperback)
|
||||
by N.A.J. Hastings, Brian Peacock, Merran Evans, ISBN: 0471371246, Wiley 2000.
|
||||
|
||||
[@http://bh0.physics.ubc.ca/People/matt/Doc/ThesesOthers/Phd/pugh.pdf pugh.pdf (application/pdf Object)]
|
||||
Pugh Msc Thesis Lanczzos gamma function.
|
||||
Pugh Msc Thesis on the Lanczzos approximation to the gamma function.
|
||||
|
||||
[@www.open-std.org/jtc1/sc22/wg21/docs/papers/2003 N1514, 03-0097, A Proposal to Add Mathematical Special Functions to the C++ Standard Library (version 2), Walter E. Brown]
|
||||
|
||||
|
121
doc/spherical_harmonic.qbk
Normal file
@ -0,0 +1,121 @@
|
||||
[section:sph_harm Spherical Harmonics]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/spheric_harmonic.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
std::complex<T> spherical_harmonic(unsigned n, int m, T theta, T phi);
|
||||
|
||||
template <class T>
|
||||
T spherical_harmonic_r(unsigned n, int m, T theta, T phi);
|
||||
|
||||
template <class T>
|
||||
T spherical_harmonic_i(unsigned n, int m, T theta, T phi);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
std::complex<T> spherical_harmonic(unsigned n, int m, T theta, T phi);
|
||||
|
||||
Returns the value of the Spherical Harmonic Y[sub n][super m](theta, phi):
|
||||
|
||||
[$../equations/spherical_0.png]
|
||||
|
||||
The spherical harmonics Y[sub n][super m](theta, phi) are the angular
|
||||
portion of the solution to Laplace's equation in spherical coordinates
|
||||
where azimuthal symmetry is not present.
|
||||
|
||||
[caution Care must be taken in correctly identifying the arguments to this
|
||||
function: [theta][space] is taken as the polar (colatitudinal) coordinate
|
||||
with [theta][space] in \[0, [pi]\], and [phi][space] as the azimuthal (longitudinal)
|
||||
coordinate with [phi][space] in \[0,2[pi]). This is the convention used in Physics,
|
||||
and matches the definition used by
|
||||
[@http://documents.wolfram.com/mathematica/functions/SphericalHarmonicY
|
||||
Mathematica in the function SpericalHarmonicY],
|
||||
but is opposite to the usual mathematical conventions.\n\n
|
||||
Some other sources include an additional Condon-Shortley phase term of
|
||||
(-1)[super m] in the definition of this function: note however that our
|
||||
definition of the associated Legendre polynomial already includes this term.\n\n
|
||||
This implementation returns zero for m > n\n\n
|
||||
For [theta][space] outside \[0, [pi]\] and [phi][space] outside \[0, 2[pi]\] this
|
||||
implementation follows the convention used by Mathematica:
|
||||
the function is periodic with period [pi][space] in [theta][space] and 2[pi][space] in
|
||||
[phi]. Please note that this is not the behaviour one would get
|
||||
from a casual application of the function's definition. Cautious users
|
||||
should keep [theta][space] and [phi][space] to the range \[0, [pi]\] and
|
||||
\[0, 2[pi]\] respectively.\n\n
|
||||
See: [@http://mathworld.wolfram.com/SphericalHarmonic.html
|
||||
Weisstein, Eric W. "Spherical Harmonic."
|
||||
From MathWorld--A Wolfram Web Resource]. ]
|
||||
|
||||
template <class T>
|
||||
T spherical_harmonic_r(unsigned n, int m, T theta, T phi);
|
||||
|
||||
Returns the real part of Y[sub n][super m](theta, phi):
|
||||
|
||||
[$../equations/spherical_1.png]
|
||||
|
||||
template <class T>
|
||||
T spherical_harmonic_i(unsigned n, int m, T theta, T phi);
|
||||
|
||||
Returns the imaginary part of Y[sub n][super m](theta, phi):
|
||||
|
||||
[$../equations/spherical_2.png]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows peak errors for various domains of input arguments.
|
||||
Note that only results for the widest floating point type on the system are
|
||||
given as narrower types have __zero_error. Peak errors are the same
|
||||
for both the real and imaginary parts, as the error is dominated by
|
||||
calculation of the associated Legendre polynomials: especially near the
|
||||
roots of the associated Legendre function.
|
||||
|
||||
[table Peak Errors In the Sperical Harmonic Functions
|
||||
[[Significand Size] [Platform and Compiler] [Errors in range\n0 < l < 20] ]
|
||||
[[53] [Win32, Visual C++ 8] [Peak=2x10[super 4] Mean=700] ]
|
||||
[[64] [SUSE Linux IA32, g++ 4.1] [Peak=2900 Mean=100]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peak=2900 Mean=100] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peak=6700 Mean=230]]
|
||||
]
|
||||
|
||||
Note that the worst errors occur when the degree increases, values greater than
|
||||
~120 are very unlikely to produce sensible results, especially in the associated
|
||||
polynomial case when the order is also large. Further the relative errors
|
||||
are likely to grow arbitrarily large when the function is very close to a root.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
A mixture of spot tests of values calculated using functions.wolfram.com,
|
||||
and randomly generated test data are
|
||||
used: the test data was computed using
|
||||
[@http://shoup.net/ntl/doc/RR.txt NTL::RR] at 1000-bit precision.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
These functions are implemented fairly naively using the formulae
|
||||
given above. Some extra care is taken to prevent roundoff error
|
||||
when converting from polar coordinates (so for example the
|
||||
['1-x[super 2]] term used by the associated Legendre functions is calculated
|
||||
without roundoff error using ['x = cos(theta)], and
|
||||
['1-x[super 2] = sin[super 2](theta)]). The limiting factor in the error
|
||||
rates for these functions is the need to calculate values near the roots
|
||||
of the associated Legendre functions.
|
||||
|
||||
[endsect][/section:beta_function The Beta Function]
|
||||
[/
|
||||
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).
|
||||
]
|
||||
|
@ -7,130 +7,130 @@
|
||||
[/ To use, enclose the template name in square brackets.]
|
||||
|
||||
\n
|
||||
[fnof]
|
||||
[Alpha]
|
||||
[Beta]
|
||||
[Gamma]
|
||||
[Delta]
|
||||
[Epsilon]
|
||||
[Zeta]
|
||||
[Eta]
|
||||
[Theta]
|
||||
[Iota]
|
||||
[Kappa]
|
||||
[Lambda]
|
||||
[Mu]
|
||||
[Nu]
|
||||
[Xi]
|
||||
[Omicron]
|
||||
[Pi]
|
||||
[Rho]
|
||||
[Sigma]
|
||||
[Tau]
|
||||
[Upsilon]
|
||||
[Phi]
|
||||
[Chi]
|
||||
[Psi]
|
||||
[Omega]
|
||||
[alpha]
|
||||
[beta]
|
||||
[gamma]
|
||||
[delta]
|
||||
[epsilon]
|
||||
[zeta]
|
||||
[eta]
|
||||
[theta]
|
||||
[iota]
|
||||
[kappa]
|
||||
[lambda]
|
||||
[mu]
|
||||
[nu]
|
||||
[xi]
|
||||
[omicron]
|
||||
[pi]
|
||||
[rho]
|
||||
[sigmaf]
|
||||
[sigma]
|
||||
[tau]
|
||||
[upsilon]
|
||||
[phi]
|
||||
[chi]
|
||||
[psi]
|
||||
[omega]
|
||||
[thetasym]
|
||||
[upsih]
|
||||
[piv]
|
||||
[bull]
|
||||
[hellip]
|
||||
[prime]
|
||||
[Prime]
|
||||
[oline]
|
||||
[frasl]
|
||||
[weierp]
|
||||
[image]
|
||||
[real]
|
||||
[trade]
|
||||
[alefsym]
|
||||
[larr]
|
||||
[uarr]
|
||||
[rarr]
|
||||
[darr]
|
||||
[harr]
|
||||
[crarr]
|
||||
[lArr]
|
||||
[uArr]
|
||||
[rArr]
|
||||
[dArr]
|
||||
[hArr]
|
||||
[forall]
|
||||
[part]
|
||||
[exist]
|
||||
[empty]
|
||||
[nabla]
|
||||
[isin]
|
||||
[notin]
|
||||
[ni]
|
||||
[prod]
|
||||
[sum]
|
||||
[minus]
|
||||
[lowast]
|
||||
[radic]
|
||||
[prop]
|
||||
[infin]
|
||||
[ang]
|
||||
[and]
|
||||
[or]
|
||||
[cap]
|
||||
[cup]
|
||||
[int]
|
||||
[there4]
|
||||
[sim]
|
||||
[cong]
|
||||
[asymp]
|
||||
[ne]
|
||||
[equiv]
|
||||
[le]
|
||||
[ge]
|
||||
[subset]
|
||||
[superset]
|
||||
[nsubset]
|
||||
[sube]
|
||||
[supe]
|
||||
[oplus]
|
||||
[otimes]
|
||||
[perp]
|
||||
[sdot]
|
||||
[lceil]
|
||||
[rceil]
|
||||
[lfloor]
|
||||
[rfloor]
|
||||
[lang]
|
||||
[rang]
|
||||
[loz]
|
||||
[spades]
|
||||
[clubs]
|
||||
[hearts]
|
||||
[diams]
|
||||
[fnof],
|
||||
[Alpha],
|
||||
[Beta],
|
||||
[Gamma],
|
||||
[Delta],
|
||||
[Epsilon],
|
||||
[Zeta],
|
||||
[Eta],
|
||||
[Theta],
|
||||
[Iota],
|
||||
[Kappa],
|
||||
[Lambda],
|
||||
[Mu],
|
||||
[Nu],
|
||||
[Xi],
|
||||
[Omicron],
|
||||
[Pi],
|
||||
[Rho],
|
||||
[Sigma],
|
||||
[Tau],
|
||||
[Upsilon],
|
||||
[Phi],
|
||||
[Chi],
|
||||
[Psi],
|
||||
[Omega],
|
||||
[alpha],
|
||||
[beta],
|
||||
[gamma],
|
||||
[delta],
|
||||
[epsilon],
|
||||
[zeta],
|
||||
[eta],
|
||||
[theta],
|
||||
[iota],
|
||||
[kappa],
|
||||
[lambda],
|
||||
[mu],
|
||||
[nu],
|
||||
[xi],
|
||||
[omicron],
|
||||
[pi],
|
||||
[rho],
|
||||
[sigmaf],
|
||||
[sigma],
|
||||
[tau],
|
||||
[upsilon],
|
||||
[phi],
|
||||
[chi],
|
||||
[psi],
|
||||
[omega],
|
||||
[thetasym],
|
||||
[upsih],
|
||||
[piv],
|
||||
[bull],
|
||||
[hellip],
|
||||
[prime],
|
||||
[Prime],
|
||||
[oline],
|
||||
[frasl],
|
||||
[weierp],
|
||||
[image],
|
||||
[real],
|
||||
[trade],
|
||||
[alefsym],
|
||||
[larr],
|
||||
[uarr],
|
||||
[rarr],
|
||||
[darr],
|
||||
[harr],
|
||||
[crarr],
|
||||
[lArr],
|
||||
[uArr],
|
||||
[rArr],
|
||||
[dArr],
|
||||
[hArr],
|
||||
[forall],
|
||||
[part],
|
||||
[exist],
|
||||
[empty],
|
||||
[nabla],
|
||||
[isin],
|
||||
[notin],
|
||||
[ni],
|
||||
[prod],
|
||||
[sum],
|
||||
[minus],
|
||||
[lowast],
|
||||
[radic],
|
||||
[prop],
|
||||
[infin],
|
||||
[ang],
|
||||
[and],
|
||||
[or],
|
||||
[cap],
|
||||
[cup],
|
||||
[int],
|
||||
[there4],
|
||||
[sim],
|
||||
[cong],
|
||||
[asymp],
|
||||
[ne],
|
||||
[equiv],
|
||||
[le],
|
||||
[ge],
|
||||
[subset],
|
||||
[superset],
|
||||
[nsubset],
|
||||
[sube],
|
||||
[supe],
|
||||
[oplus],
|
||||
[otimes],
|
||||
[perp],
|
||||
[sdot],
|
||||
[lceil],
|
||||
[rceil],
|
||||
[lfloor],
|
||||
[rfloor],
|
||||
[lang],
|
||||
[rang],
|
||||
[loz],
|
||||
[spades],
|
||||
[clubs],
|
||||
[hearts],
|
||||
[diams],
|
||||
\n
|
||||
\n
|
||||
[endsect]
|
||||
@ -142,3 +142,4 @@
|
||||
http://www.boost.org/LICENSE_1_0.txt).
|
||||
]
|
||||
|
||||
|
||||
|
60
include/boost/math/special_functions/hermite.hpp
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#ifndef BOOST_MATH_SPECIAL_HERMITE_HPP
|
||||
#define BOOST_MATH_SPECIAL_HERMITE_HPP
|
||||
|
||||
#include <boost/math/special_functions/math_fwd.hpp>
|
||||
#include <boost/math/tools/config.hpp>
|
||||
#include <boost/math/tools/evaluation_type.hpp>
|
||||
|
||||
namespace boost{
|
||||
namespace math{
|
||||
|
||||
// Recurrance relation for Hermite polynomials:
|
||||
template <class T>
|
||||
inline T hermite_next(unsigned n, T x, T Hn, T Hnm1)
|
||||
{
|
||||
return (2 * x * Hn - 2 * n * Hnm1);
|
||||
}
|
||||
|
||||
namespace detail{
|
||||
|
||||
// Implement Hermite polynomials via recurrance:
|
||||
template <class T>
|
||||
T hermite_imp(unsigned n, T x)
|
||||
{
|
||||
T p0 = 1;
|
||||
T p1 = 2 * x;
|
||||
|
||||
if(n == 0)
|
||||
return p0;
|
||||
|
||||
unsigned c = 1;
|
||||
|
||||
while(c < n)
|
||||
{
|
||||
std::swap(p0, p1);
|
||||
p1 = hermite_next(c, x, p0, p1);
|
||||
++c;
|
||||
}
|
||||
return p1;
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <class T>
|
||||
inline T hermite(unsigned n, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::hermite_imp(n, static_cast<value_type>(x)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
} // namespace math
|
||||
} // namespace boost
|
||||
|
||||
#endif // BOOST_MATH_SPECIAL_HERMITE_HPP
|
||||
|
103
include/boost/math/special_functions/laguerre.hpp
Normal file
@ -0,0 +1,103 @@
|
||||
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#ifndef BOOST_MATH_SPECIAL_LAGUERRE_HPP
|
||||
#define BOOST_MATH_SPECIAL_LAGUERRE_HPP
|
||||
|
||||
#include <boost/math/special_functions/math_fwd.hpp>
|
||||
#include <boost/math/tools/config.hpp>
|
||||
#include <boost/math/tools/evaluation_type.hpp>
|
||||
|
||||
namespace boost{
|
||||
namespace math{
|
||||
|
||||
// Recurrance relation for Laguerre polynomials:
|
||||
template <class T>
|
||||
inline T laguerre_next(unsigned n, T x, T Ln, T Lnm1)
|
||||
{
|
||||
return ((2 * n + 1 - x) * Ln - n * Lnm1) / (n + 1);
|
||||
}
|
||||
|
||||
namespace detail{
|
||||
|
||||
// Implement Laguerre polynomials via recurrance:
|
||||
template <class T>
|
||||
T laguerre_imp(unsigned n, T x)
|
||||
{
|
||||
T p0 = 1;
|
||||
T p1 = 1 - x;
|
||||
|
||||
if(n == 0)
|
||||
return p0;
|
||||
|
||||
unsigned c = 1;
|
||||
|
||||
while(c < n)
|
||||
{
|
||||
std::swap(p0, p1);
|
||||
p1 = laguerre_next(c, x, p0, p1);
|
||||
++c;
|
||||
}
|
||||
return p1;
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <class T>
|
||||
inline T laguerre(unsigned n, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::laguerre_imp(n, static_cast<value_type>(x)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
// Recurrence for associated polynomials:
|
||||
template <class T>
|
||||
inline T laguerre_next(unsigned n, unsigned l, T x, T Pl, T Plm1)
|
||||
{
|
||||
return ((2 * n + l + 1 - x) * Pl - (n + l) * Plm1) / (n+1);
|
||||
}
|
||||
|
||||
namespace detail{
|
||||
// Laguerre Associated Polynomial:
|
||||
template <class T>
|
||||
T laguerre_imp(unsigned n, unsigned m, T x)
|
||||
{
|
||||
// Special cases:
|
||||
if(m == 0)
|
||||
return laguerre(n, x);
|
||||
|
||||
T p0 = 1;
|
||||
|
||||
if(n == 0)
|
||||
return p0;
|
||||
|
||||
T p1 = m + 1 - x;
|
||||
|
||||
unsigned c = 1;
|
||||
|
||||
while(c < n)
|
||||
{
|
||||
std::swap(p0, p1);
|
||||
p1 = laguerre_next(c, m, x, p0, p1);
|
||||
++c;
|
||||
}
|
||||
return p1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T laguerre(unsigned n, unsigned m, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::laguerre_imp(n, m, static_cast<value_type>(x)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
} // namespace math
|
||||
} // namespace boost
|
||||
|
||||
#endif // BOOST_MATH_SPECIAL_LAGUERRE_HPP
|
||||
|
155
include/boost/math/special_functions/legendre.hpp
Normal file
@ -0,0 +1,155 @@
|
||||
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#ifndef BOOST_MATH_SPECIAL_LEGENDRE_HPP
|
||||
#define BOOST_MATH_SPECIAL_LEGENDRE_HPP
|
||||
|
||||
#include <boost/math/special_functions/math_fwd.hpp>
|
||||
#include <boost/math/special_functions/factorials.hpp>
|
||||
#include <boost/math/tools/config.hpp>
|
||||
|
||||
namespace boost{
|
||||
namespace math{
|
||||
|
||||
// Recurrance relation for legendre P and Q polynomials:
|
||||
template <class T>
|
||||
inline T legendre_next(unsigned l, T x, T Pl, T Plm1)
|
||||
{
|
||||
return ((2 * l + 1) * x * Pl - l * Plm1) / (l + 1);
|
||||
}
|
||||
|
||||
namespace detail{
|
||||
|
||||
// Implement Legendre P and Q polynomials via recurrance:
|
||||
template <class T>
|
||||
T legendre_imp(unsigned l, T x, bool second = false)
|
||||
{
|
||||
// Error handling:
|
||||
if((x < -1) || (x > 1))
|
||||
return tools::domain_error<T>(
|
||||
BOOST_CURRENT_FUNCTION,
|
||||
"The Legendre Polynomial is defined for"
|
||||
" -1 <= x <= 1, but got x = %1%.", x);
|
||||
|
||||
T p0, p1;
|
||||
if(second)
|
||||
{
|
||||
// A solution of the second kind (Q):
|
||||
p0 = (boost::math::log1p(x) - boost::math::log1p(-x)) / 2;
|
||||
p1 = x * p0 - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// A solution of the first kind (P):
|
||||
p0 = 1;
|
||||
p1 = x;
|
||||
}
|
||||
if(l == 0)
|
||||
return p0;
|
||||
|
||||
unsigned n = 1;
|
||||
|
||||
while(n < l)
|
||||
{
|
||||
std::swap(p0, p1);
|
||||
p1 = legendre_next(n, x, p0, p1);
|
||||
++n;
|
||||
}
|
||||
return p1;
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <class T>
|
||||
inline T legendre_p(int l, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
if(l < 0)
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::legendre_imp(-l-1, static_cast<value_type>(x), false), BOOST_CURRENT_FUNCTION);
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::legendre_imp(l, static_cast<value_type>(x), false), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T legendre_q(unsigned l, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::legendre_imp(l, static_cast<value_type>(x), true), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
// Recurrence for associated polynomials:
|
||||
template <class T>
|
||||
inline T legendre_next(unsigned l, unsigned m, T x, T Pl, T Plm1)
|
||||
{
|
||||
return ((2 * l + 1) * x * Pl - (l + m) * Plm1) / (l + 1 - m);
|
||||
}
|
||||
|
||||
namespace detail{
|
||||
// Legendre P associated polynomial:
|
||||
template <class T>
|
||||
T legendre_p_imp(int l, int m, T x, T sin_theta_power)
|
||||
{
|
||||
// Error handling:
|
||||
if((x < -1) || (x > 1))
|
||||
return tools::domain_error<T>(
|
||||
BOOST_CURRENT_FUNCTION,
|
||||
"The associated Legendre Polynomial is defined for"
|
||||
" -1 <= x <= 1, but got x = %1%.", x);
|
||||
// Handle negative arguments first:
|
||||
if(l < 0)
|
||||
return legendre_p_imp(-l-1, m, x, sin_theta_power);
|
||||
if(m < 0)
|
||||
{
|
||||
int sign = (m&1) ? -1 : 1;
|
||||
return sign * tgamma_ratio(static_cast<T>(l+m+1), static_cast<T>(l+1-m)) * legendre_p_imp(l, -m, x, sin_theta_power);
|
||||
}
|
||||
// Special cases:
|
||||
if(m > l)
|
||||
return 0;
|
||||
if(m == 0)
|
||||
return legendre_p(l, x);
|
||||
|
||||
T p0 = boost::math::double_factorial<T>(2 * m - 1) * sin_theta_power;
|
||||
|
||||
if(m&1)
|
||||
p0 *= -1;
|
||||
if(m == l)
|
||||
return p0;
|
||||
|
||||
T p1 = x * (2 * m + 1) * p0;
|
||||
|
||||
int n = m + 1;
|
||||
|
||||
while(n < l)
|
||||
{
|
||||
std::swap(p0, p1);
|
||||
p1 = legendre_next(n, m, x, p0, p1);
|
||||
++n;
|
||||
}
|
||||
return p1;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T legendre_p_imp(int l, int m, T x)
|
||||
{
|
||||
using namespace std;
|
||||
// TODO: we really could use that mythical "pow1p" function here:
|
||||
return legendre_p_imp(l, m, x, pow(1 - x*x, T(abs(m))/2));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T legendre_p(int l, int m, T x)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::legendre_p_imp(l, m, static_cast<value_type>(x)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
} // namespace math
|
||||
} // namespace boost
|
||||
|
||||
#endif // BOOST_MATH_SPECIAL_LEGENDRE_HPP
|
||||
|
169
include/boost/math/special_functions/spherical_harmonic.hpp
Normal file
@ -0,0 +1,169 @@
|
||||
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#ifndef BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
|
||||
#define BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
|
||||
|
||||
#include <boost/math/special_functions/legendre.hpp>
|
||||
#include <complex>
|
||||
|
||||
namespace boost{
|
||||
namespace math{
|
||||
|
||||
namespace detail{
|
||||
|
||||
//
|
||||
// Calculates the prefix term that's common to the real
|
||||
// and imaginary parts. Does *not* fix up the sign of the result
|
||||
// though.
|
||||
//
|
||||
template <class T>
|
||||
T spherical_harmonic_prefix(unsigned n, unsigned m, T theta, T phi)
|
||||
{
|
||||
using namespace std;
|
||||
|
||||
if(m > n)
|
||||
return 0;
|
||||
|
||||
T sin_theta = sin(theta);
|
||||
T x = cos(theta);
|
||||
|
||||
T leg = detail::legendre_p_imp(n, m, x, pow(fabs(sin_theta), T(m)));
|
||||
|
||||
T prefix = tgamma_delta_ratio(static_cast<T>(n - m + 1), static_cast<T>(2 * m));
|
||||
prefix *= (2 * n + 1) / (4 * constants::pi<T>());
|
||||
prefix = sqrt(prefix);
|
||||
return prefix * leg;
|
||||
}
|
||||
//
|
||||
// Real Part:
|
||||
//
|
||||
template <class T>
|
||||
T spherical_harmonic_r(unsigned n, int m, T theta, T phi)
|
||||
{
|
||||
using namespace std; // ADL of std functions
|
||||
|
||||
bool sign = false;
|
||||
if(m < 0)
|
||||
{
|
||||
// Reflect and adjust sign if m < 0:
|
||||
sign = m&1;
|
||||
m = abs(m);
|
||||
}
|
||||
if(m&1)
|
||||
{
|
||||
// Check phase if theta is outside [0, PI]:
|
||||
T mod = fmod(theta, 2 * constants::pi<T>());
|
||||
if(mod < 0)
|
||||
mod += 2 * constants::pi<T>();
|
||||
if(mod > constants::pi<T>())
|
||||
sign = !sign;
|
||||
}
|
||||
// Get the value and adjust sign as required:
|
||||
T prefix = spherical_harmonic_prefix(n, m, theta, phi);
|
||||
prefix *= cos(m * phi);
|
||||
return sign ? -prefix : prefix;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T spherical_harmonic_i(unsigned n, int m, T theta, T phi)
|
||||
{
|
||||
using namespace std; // ADL of std functions
|
||||
|
||||
bool sign = false;
|
||||
if(m < 0)
|
||||
{
|
||||
// Reflect and adjust sign if m < 0:
|
||||
sign = !(m&1);
|
||||
m = abs(m);
|
||||
}
|
||||
if(m&1)
|
||||
{
|
||||
// Check phase if theta is outside [0, PI]:
|
||||
T mod = fmod(theta, 2 * constants::pi<T>());
|
||||
if(mod < 0)
|
||||
mod += 2 * constants::pi<T>();
|
||||
if(mod > constants::pi<T>())
|
||||
sign = !sign;
|
||||
}
|
||||
// Get the value and adjust sign as required:
|
||||
T prefix = spherical_harmonic_prefix(n, m, theta, phi);
|
||||
prefix *= sin(m * phi);
|
||||
return sign ? -prefix : prefix;
|
||||
}
|
||||
|
||||
template <class T, class U>
|
||||
std::complex<T> spherical_harmonic(unsigned n, int m, U theta, U phi)
|
||||
{
|
||||
using namespace std;
|
||||
//
|
||||
// Sort out the signs:
|
||||
//
|
||||
bool r_sign = false;
|
||||
bool i_sign = false;
|
||||
if(m < 0)
|
||||
{
|
||||
// Reflect and adjust sign if m < 0:
|
||||
r_sign = m&1;
|
||||
i_sign = !(m&1);
|
||||
m = abs(m);
|
||||
}
|
||||
if(m&1)
|
||||
{
|
||||
// Check phase if theta is outside [0, PI]:
|
||||
U mod = fmod(theta, 2 * constants::pi<U>());
|
||||
if(mod < 0)
|
||||
mod += 2 * constants::pi<U>();
|
||||
if(mod > constants::pi<U>())
|
||||
{
|
||||
r_sign = !r_sign;
|
||||
i_sign = !i_sign;
|
||||
}
|
||||
}
|
||||
//
|
||||
// Calculate the value:
|
||||
//
|
||||
U prefix = spherical_harmonic_prefix(n, m, theta, phi);
|
||||
U r = prefix * cos(m * phi);
|
||||
U i = prefix * sin(m * phi);
|
||||
//
|
||||
// Add in the signs:
|
||||
//
|
||||
if(r_sign)
|
||||
r = -r;
|
||||
if(i_sign)
|
||||
i = -i;
|
||||
return std::complex<T>(tools::checked_narrowing_cast<T>(r, BOOST_CURRENT_FUNCTION), tools::checked_narrowing_cast<T>(i, BOOST_CURRENT_FUNCTION));
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <class T>
|
||||
inline std::complex<T> spherical_harmonic(unsigned n, int m, T theta, T phi)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return detail::spherical_harmonic<T, value_type>(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T spherical_harmonic_r(unsigned n, int m, T theta, T phi)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::spherical_harmonic_r(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T spherical_harmonic_i(unsigned n, int m, T theta, T phi)
|
||||
{
|
||||
typedef typename tools::evaluation<typename remove_cv<T>::type>::type value_type;
|
||||
return tools::checked_narrowing_cast<typename remove_cv<T>::type>(detail::spherical_harmonic_i(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi)), BOOST_CURRENT_FUNCTION);
|
||||
}
|
||||
|
||||
} // namespace math
|
||||
} // namespace boost
|
||||
|
||||
#endif // BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
|
||||
|
@ -298,6 +298,14 @@ namespace NTL{
|
||||
boost::math::tools::digits<NTL::RR>());
|
||||
}
|
||||
|
||||
inline NTL::RR fmod(NTL::RR x, NTL::RR y)
|
||||
{
|
||||
// This is a really crummy version of fmod, we rely on lots
|
||||
// of digits to get us out of trouble...
|
||||
NTL::RR factor = floor(x/y);
|
||||
return x - factor * y;
|
||||
}
|
||||
|
||||
} // namespace NTL
|
||||
|
||||
|
||||
|
@ -32,24 +32,29 @@ run test_factorials.cpp ;
|
||||
run test_fisher_f.cpp ;
|
||||
run test_gamma.cpp ;
|
||||
run test_gamma_dist.cpp ;
|
||||
run test_hermite.cpp ;
|
||||
run test_ibeta.cpp ;
|
||||
run test_ibeta_inv.cpp ;
|
||||
run test_ibeta_inv_ab.cpp ;
|
||||
run test_igamma.cpp ;
|
||||
run test_igamma_inv.cpp ;
|
||||
run test_igamma_inva.cpp ;
|
||||
run test_laguerre.cpp ;
|
||||
run test_legendre.cpp ;
|
||||
run test_lognormal.cpp ;
|
||||
run test_minima.cpp ;
|
||||
run test_negative_binomial.cpp ;
|
||||
run test_normal.cpp ;
|
||||
run test_poisson.cpp ;
|
||||
run test_promotion.cpp ;
|
||||
run test_rationals.cpp ;
|
||||
run test_remez.cpp ;
|
||||
run test_roots.cpp ;
|
||||
run test_spherical_harmonic.cpp ;
|
||||
run test_students_t.cpp ;
|
||||
run test_tgamma_ratio.cpp ;
|
||||
run test_triangular.cpp ;
|
||||
run test_toms748_solve.cpp ;
|
||||
run test_uniform.cpp ;
|
||||
run test_weibull.cpp ;
|
||||
|
||||
compile distribution_concept_check.cpp ;
|
||||
@ -65,3 +70,5 @@ compile std_real_concept_check.cpp ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
405
test/assoc_legendre_p.ipp
Normal file
@ -0,0 +1,405 @@
|
||||
#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
|
||||
static const boost::array<boost::array<T, 4>, 400> assoc_legendre_p = {
|
||||
SC_(3.755727291107177734375), SC_(-3), SC_(0.264718532562255859375), SC_(0.018682285998021253444483874168352748715136623066073),
|
||||
SC_(3.755727291107177734375), SC_(-3), SC_(0.67001712322235107421875), SC_(0.0085227010576716344744906184676725516467064196759033),
|
||||
SC_(3.755727291107177734375), SC_(-3), SC_(0.91501367092132568359375), SC_(0.0013678553914178941694232605088191864494205442141689),
|
||||
SC_(3.755727291107177734375), SC_(-3), SC_(0.93538987636566162109375), SC_(0.00092121779437596438014780141399846622556782069609554),
|
||||
SC_(3.755727291107177734375), SC_(-2), SC_(-0.804919183254241943359375), SC_(-0.035427019537072229468317544697039851719910785732282),
|
||||
SC_(3.755727291107177734375), SC_(-2), SC_(-0.62323606014251708984375), SC_(-0.047644590452413896385001513687947050090798484234256),
|
||||
SC_(3.755727291107177734375), SC_(-2), SC_(0.62944734096527099609375), SC_(0.047507226872528274797147731134568104938153965122183),
|
||||
SC_(3.755727291107177734375), SC_(-2), SC_(0.92977702617645263671875), SC_(0.015749804707019642230489140711548190498803023729124),
|
||||
SC_(3.755727291107177734375), SC_(-2), SC_(0.98576259613037109375), SC_(0.0034836978383022116191949923980075709550874307751656),
|
||||
SC_(3.755727291107177734375), SC_(-1), SC_(0.09376299381256103515625), SC_(-0.11897883801786023759113449248494493928619190467444),
|
||||
SC_(3.755727291107177734375), SC_(0), SC_(-0.72904598712921142578125), SC_(0.12483445078630286253952851342405305778981983166886),
|
||||
SC_(3.755727291107177734375), SC_(0), SC_(0.0944411754608154296875), SC_(-0.13955592906053357908142302859499928047171124489978),
|
||||
SC_(3.755727291107177734375), SC_(0), SC_(0.826751708984375), SC_(0.1726224256643575927228084765374660491943359375),
|
||||
SC_(3.755727291107177734375), SC_(0), SC_(0.99292266368865966796875), SC_(0.95791076106518834501582130387317692843396343960194),
|
||||
SC_(3.755727291107177734375), SC_(1), SC_(-0.5579319000244140625), SC_(-0.69267329476836900305232758748436796165065650726706),
|
||||
SC_(3.755727291107177734375), SC_(1), SC_(-0.38366591930389404296875), SC_(0.36569809882896106974883774476288881583212189972924),
|
||||
SC_(3.755727291107177734375), SC_(2), SC_(-0.74602639675140380859375), SC_(-4.9623208282269009166469230084559050020232007227605),
|
||||
SC_(3.755727291107177734375), SC_(2), SC_(-0.44300353527069091796875), SC_(-5.340947203111010720410977109344485835862315070699),
|
||||
SC_(3.755727291107177734375), SC_(2), SC_(0.81158387660980224609375), SC_(4.1552884837362426955817673026802316904593226354336),
|
||||
SC_(3.755727291107177734375), SC_(2), SC_(0.93773555755615234375), SC_(1.6970953962729668417983019956807311245938763022423),
|
||||
SC_(4.285762786865234375), SC_(-4), SC_(0.0944411754608154296875), SC_(0.0025579199993109637443137263005669146428545187165902),
|
||||
SC_(4.285762786865234375), SC_(-4), SC_(0.67001712322235107421875), SC_(0.00079084875024561627663099583678188315474519799498067),
|
||||
SC_(4.285762786865234375), SC_(-3), SC_(-0.74602639675140380859375), SC_(-0.0045895703969571628891682136050294568676142831603226),
|
||||
SC_(4.285762786865234375), SC_(-2), SC_(-0.62323606014251708984375), SC_(0.021901614369568242657323933337327101674854041794065),
|
||||
SC_(4.285762786865234375), SC_(-2), SC_(0.62944734096527099609375), SC_(0.022308096300309799048219090710479861660073888191704),
|
||||
SC_(4.285762786865234375), SC_(-2), SC_(0.93538987636566162109375), SC_(0.013350407227053037260147784930747976172856146131701),
|
||||
SC_(4.285762786865234375), SC_(-1), SC_(0.91501367092132568359375), SC_(0.13200123550282267507521242420636682233158093275439),
|
||||
SC_(4.285762786865234375), SC_(-1), SC_(0.98576259613037109375), SC_(0.07877427388685735435597041845896354141179322010808),
|
||||
SC_(4.285762786865234375), SC_(0), SC_(-0.38366591930389404296875), SC_(-0.082202061657178565574671344721658600769778582062621),
|
||||
SC_(4.285762786865234375), SC_(1), SC_(0.09376299381256103515625), SC_(0.68576243868873072515243076289551241703397054367008),
|
||||
SC_(4.285762786865234375), SC_(1), SC_(0.264718532562255859375), SC_(1.6015108598580622790613880161520031562290080195803),
|
||||
SC_(4.285762786865234375), SC_(1), SC_(0.826751708984375), SC_(-2.075091388628511047552411495370343087881224878243),
|
||||
SC_(4.285762786865234375), SC_(1), SC_(0.92977702617645263671875), SC_(-2.6110232658679238686101145865940662146504977908866),
|
||||
SC_(4.285762786865234375), SC_(1), SC_(0.99292266368865966796875), SC_(-1.1501152124516827856720730990547167000673318754544),
|
||||
SC_(4.285762786865234375), SC_(3), SC_(-0.804919183254241943359375), SC_(17.658347776050435476592152301745513462355419797644),
|
||||
SC_(4.285762786865234375), SC_(3), SC_(-0.72904598712921142578125), SC_(24.546943351788936569134344357322020563417724549234),
|
||||
SC_(4.285762786865234375), SC_(3), SC_(-0.5579319000244140625), SC_(33.483200432942805434592337100676821594014587089232),
|
||||
SC_(4.285762786865234375), SC_(4), SC_(-0.44300353527069091796875), SC_(67.831116663749312786686560206270714301013197988912),
|
||||
SC_(4.285762786865234375), SC_(4), SC_(0.81158387660980224609375), SC_(12.23326322639646526677027003435192961976317891902),
|
||||
SC_(4.285762786865234375), SC_(4), SC_(0.93773555755615234375), SC_(1.5284756464094009019523190775027909687425881068989),
|
||||
SC_(4.43858623504638671875), SC_(-4), SC_(0.09376299381256103515625), SC_(0.0025585788865558103020054987182935328386974024573462),
|
||||
SC_(4.43858623504638671875), SC_(-4), SC_(0.81158387660980224609375), SC_(0.00030340434589276947586235788775674428620444392160269),
|
||||
SC_(4.43858623504638671875), SC_(-4), SC_(0.826751708984375), SC_(0.00026083492327811402025075290800337768359895562753081),
|
||||
SC_(4.43858623504638671875), SC_(-4), SC_(0.92977702617645263671875), SC_(0.47823512832424889615550406883421003863012687163716e-4),
|
||||
SC_(4.43858623504638671875), SC_(-3), SC_(-0.804919183254241943359375), SC_(-0.0035036404317560387850381254566955383853879801185802),
|
||||
SC_(4.43858623504638671875), SC_(-3), SC_(-0.72904598712921142578125), SC_(-0.0048704252682120905891139572137543691594082786804035),
|
||||
SC_(4.43858623504638671875), SC_(-3), SC_(-0.62323606014251708984375), SC_(-0.0062099464278749790063643151908339184429802189273533),
|
||||
SC_(4.43858623504638671875), SC_(-3), SC_(0.93538987636566162109375), SC_(0.00086169779878718081099879281321850193219169946462828),
|
||||
SC_(4.43858623504638671875), SC_(-2), SC_(-0.5579319000244140625), SC_(0.016916718454958990171262790356133102641009169353481),
|
||||
SC_(4.43858623504638671875), SC_(-2), SC_(-0.44300353527069091796875), SC_(0.0062585992120013346073049856968548291009012658140108),
|
||||
SC_(4.43858623504638671875), SC_(-2), SC_(0.91501367092132568359375), SC_(0.016480979075286992096829450389735978618066029926915),
|
||||
SC_(4.43858623504638671875), SC_(-1), SC_(0.62944734096527099609375), SC_(-0.013852284088400384102197697049644481796357180917995),
|
||||
SC_(4.43858623504638671875), SC_(0), SC_(-0.38366591930389404296875), SC_(-0.082202061657178565574671344721658600769778582062621),
|
||||
SC_(4.43858623504638671875), SC_(0), SC_(0.0944411754608154296875), SC_(0.3419012769545217228869883142677928817338726938716),
|
||||
SC_(4.43858623504638671875), SC_(0), SC_(0.67001712322235107421875), SC_(-0.42675937253158873957266351661277594541380955593248),
|
||||
SC_(4.43858623504638671875), SC_(1), SC_(-0.74602639675140380859375), SC_(1.1126727867403958433914301847632907446425470781145),
|
||||
SC_(4.43858623504638671875), SC_(1), SC_(0.93773555755615234375), SC_(-2.5694907092758592654019226620729417580286717814693),
|
||||
SC_(4.43858623504638671875), SC_(2), SC_(0.264718532562255859375), SC_(-3.5532540894315570371583179746027713002035183960381),
|
||||
SC_(4.43858623504638671875), SC_(2), SC_(0.99292266368865966796875), SC_(0.62426196438718111041026481024591411942721351148618),
|
||||
SC_(4.43858623504638671875), SC_(4), SC_(0.98576259613037109375), SC_(0.083927746199061397527375080044175506771911288161903),
|
||||
SC_(5.390875339508056640625), SC_(-5), SC_(0.0944411754608154296875), SC_(0.0002546487231919752178607492517299512129462633725364),
|
||||
SC_(5.390875339508056640625), SC_(-5), SC_(0.264718532562255859375), SC_(0.00021716384956208715694799696662224323122616129459559),
|
||||
SC_(5.390875339508056640625), SC_(-5), SC_(0.67001712322235107421875), SC_(0.58708312450036459613075249881849855560840725857318e-4),
|
||||
SC_(5.390875339508056640625), SC_(-5), SC_(0.91501367092132568359375), SC_(0.27827305046113328781834314319875323548924440626817e-5),
|
||||
SC_(5.390875339508056640625), SC_(-3), SC_(0.92977702617645263671875), SC_(0.00088084918348099199582932467310763476850348538284308),
|
||||
SC_(5.390875339508056640625), SC_(-2), SC_(0.62944734096527099609375), SC_(0.0044802133341411818740038475673044511324305084281699),
|
||||
SC_(5.390875339508056640625), SC_(-2), SC_(0.826751708984375), SC_(0.017179972428025654957727173029455910568258358850358),
|
||||
SC_(5.390875339508056640625), SC_(-2), SC_(0.93773555755615234375), SC_(0.011582986702578200018657376926081178305253584288072),
|
||||
SC_(5.390875339508056640625), SC_(-1), SC_(-0.804919183254241943359375), SC_(0.027614447937383812923403611365941023696827330290191),
|
||||
SC_(5.390875339508056640625), SC_(-1), SC_(-0.74602639675140380859375), SC_(-0.011942526133146833219086796223309547055717483576189),
|
||||
SC_(5.390875339508056640625), SC_(-1), SC_(-0.44300353527069091796875), SC_(-0.052598650339880048670991840817375710928478745804392),
|
||||
SC_(5.390875339508056640625), SC_(-1), SC_(0.81158387660980224609375), SC_(0.032475028650926011657602131247192442876513897830463),
|
||||
SC_(5.390875339508056640625), SC_(-1), SC_(0.98576259613037109375), SC_(0.075928872430285790876424723398166177311286253675933),
|
||||
SC_(5.390875339508056640625), SC_(1), SC_(-0.5579319000244140625), SC_(2.0588360348849268576901634118752070496134490686058),
|
||||
SC_(5.390875339508056640625), SC_(1), SC_(-0.38366591930389404296875), SC_(1.0488997903645254423314161051388628455007799361763),
|
||||
SC_(5.390875339508056640625), SC_(1), SC_(0.99292266368865966796875), SC_(-1.694428428045302980695459253870012855657911579182),
|
||||
SC_(5.390875339508056640625), SC_(3), SC_(0.09376299381256103515625), SC_(47.709869098409296824126378544766494005231382182091),
|
||||
SC_(5.390875339508056640625), SC_(5), SC_(-0.72904598712921142578125), SC_(-141.96691257606284385923672899667345613424951478332),
|
||||
SC_(5.390875339508056640625), SC_(5), SC_(-0.62323606014251708984375), SC_(-276.41355575741464167724815651046032240942755898478),
|
||||
SC_(5.390875339508056640625), SC_(5), SC_(0.93538987636566162109375), SC_(-5.2252178435591148637339332297779102344828532461685),
|
||||
SC_(5.9786128997802734375), SC_(-5), SC_(-0.72904598712921142578125), SC_(0.39122275291022609088193543043615921553750417433674e-4),
|
||||
SC_(5.9786128997802734375), SC_(-5), SC_(-0.38366591930389404296875), SC_(0.00017489900689655423627775194820998979395800601640731),
|
||||
SC_(5.9786128997802734375), SC_(-5), SC_(0.93538987636566162109375), SC_(0.14399299612982569620078078785763641519187756961443e-5),
|
||||
SC_(5.9786128997802734375), SC_(-4), SC_(-0.62323606014251708984375), SC_(-0.00060704847503506154620171592993567892964928692547447),
|
||||
SC_(5.9786128997802734375), SC_(-4), SC_(0.264718532562255859375), SC_(0.00059613981311034434030663336977459595577939813266618),
|
||||
SC_(5.9786128997802734375), SC_(-3), SC_(0.62944734096527099609375), SC_(0.0031349671707415505384457022694976904859365129000026),
|
||||
SC_(5.9786128997802734375), SC_(-3), SC_(0.67001712322235107421875), SC_(0.0032389529371683531093138459783060646462307543487447),
|
||||
SC_(5.9786128997802734375), SC_(-2), SC_(0.91501367092132568359375), SC_(0.014070467978894087845837622000095287182388864142753),
|
||||
SC_(5.9786128997802734375), SC_(-2), SC_(0.99292266368865966796875), SC_(0.0017135580072319634875733505499327690870804859765117),
|
||||
SC_(5.9786128997802734375), SC_(-1), SC_(-0.74602639675140380859375), SC_(-0.011942526133146833219086796223309547055717483576189),
|
||||
SC_(5.9786128997802734375), SC_(-1), SC_(0.93773555755615234375), SC_(0.10697160990790480346676465130193776610937898528547),
|
||||
SC_(5.9786128997802734375), SC_(0), SC_(-0.5579319000244140625), SC_(0.047804048918209109846499488120279081448233535491368),
|
||||
SC_(5.9786128997802734375), SC_(0), SC_(-0.44300353527069091796875), SC_(-0.20426834340719068505951661242682923196540890996203),
|
||||
SC_(5.9786128997802734375), SC_(0), SC_(0.98576259613037109375), SC_(0.79688047965898906667942422168075865228912496237335),
|
||||
SC_(5.9786128997802734375), SC_(2), SC_(-0.804919183254241943359375), SC_(-14.041412871300637007325237563186908954938502617465),
|
||||
SC_(5.9786128997802734375), SC_(3), SC_(0.09376299381256103515625), SC_(47.709869098409296824126378544766494005231382182091),
|
||||
SC_(5.9786128997802734375), SC_(3), SC_(0.0944411754608154296875), SC_(47.641150834624152676066344832804794889226504703822),
|
||||
SC_(5.9786128997802734375), SC_(3), SC_(0.826751708984375), SC_(-48.15370209637736090987750799064280741291078069631),
|
||||
SC_(5.9786128997802734375), SC_(4), SC_(0.92977702617645263671875), SC_(16.135533061554449755055362055976172128279602633683),
|
||||
SC_(5.9786128997802734375), SC_(5), SC_(0.81158387660980224609375), SC_(-64.324006256133565068416408251533490438742435471623),
|
||||
SC_(7.0129680633544921875), SC_(-6), SC_(-0.44300353527069091796875), SC_(-0.49917660497843442012283615070189075267419679644049e-5),
|
||||
SC_(7.0129680633544921875), SC_(-6), SC_(0.62944734096527099609375), SC_(0.3006891273213370799141727869232359504461493153624e-5),
|
||||
SC_(7.0129680633544921875), SC_(-6), SC_(0.81158387660980224609375), SC_(0.70040699133541810527562096226330143819869790187691e-6),
|
||||
SC_(7.0129680633544921875), SC_(-6), SC_(0.98576259613037109375), SC_(0.48343073413896634965208304544121619980890063725753e-9),
|
||||
SC_(7.0129680633544921875), SC_(-3), SC_(0.67001712322235107421875), SC_(0.000233323277056834438037424623276038206336990557194),
|
||||
SC_(7.0129680633544921875), SC_(-2), SC_(-0.804919183254241943359375), SC_(-0.0027739031343697825991513090446807124968690478954398),
|
||||
SC_(7.0129680633544921875), SC_(-1), SC_(-0.38366591930389404296875), SC_(0.039786558334548825835304799167391994654559424625062),
|
||||
SC_(7.0129680633544921875), SC_(-1), SC_(0.92977702617645263671875), SC_(0.054454932483310305073733979576928070746123404332102),
|
||||
SC_(7.0129680633544921875), SC_(0), SC_(0.0944411754608154296875), SC_(-0.19033023284194947443250862014615331274337558869229),
|
||||
SC_(7.0129680633544921875), SC_(0), SC_(0.264718532562255859375), SC_(-0.26772197626528608005754891383945733780088489487847),
|
||||
SC_(7.0129680633544921875), SC_(2), SC_(-0.72904598712921142578125), SC_(8.2527975846199234989599916055568828159236433321317),
|
||||
SC_(7.0129680633544921875), SC_(3), SC_(-0.74602639675140380859375), SC_(-122.8095242453750885154728218467647225016581694455),
|
||||
SC_(7.0129680633544921875), SC_(3), SC_(0.826751708984375), SC_(-173.13613361264811344425400070610320025380148250632),
|
||||
SC_(7.0129680633544921875), SC_(3), SC_(0.93773555755615234375), SC_(-91.646151026938230226355468598656579455999111879645),
|
||||
SC_(7.0129680633544921875), SC_(4), SC_(-0.62323606014251708984375), SC_(-827.70592695642797610122284647665024797997991160461),
|
||||
SC_(7.0129680633544921875), SC_(5), SC_(0.09376299381256103515625), SC_(4502.9678134547254406291563962805504284132872177258),
|
||||
SC_(7.0129680633544921875), SC_(5), SC_(0.93538987636566162109375), SC_(-298.14688995091627351489747457308624963260602452294),
|
||||
SC_(7.0129680633544921875), SC_(5), SC_(0.99292266368865966796875), SC_(-1.4510728508951063559765139003152953353215769586589),
|
||||
SC_(7.0129680633544921875), SC_(6), SC_(-0.5579319000244140625), SC_(-24629.862077522287552037887727378221479137335921999),
|
||||
SC_(7.0129680633544921875), SC_(7), SC_(0.91501367092132568359375), SC_(-235.01261148836072843323648254407718400683198946966),
|
||||
SC_(7.5470066070556640625), SC_(-7), SC_(0.92977702617645263671875), SC_(0.14200764177428564541660357501288113217936324682596e-8),
|
||||
SC_(7.5470066070556640625), SC_(-6), SC_(0.99292266368865966796875), SC_(0.60462178621145526495587961093028377048346906917799e-10),
|
||||
SC_(7.5470066070556640625), SC_(-5), SC_(-0.804919183254241943359375), SC_(0.11850218745680660327856845487252042020489012451249e-4),
|
||||
SC_(7.5470066070556640625), SC_(-5), SC_(-0.62323606014251708984375), SC_(0.25704941219612768652057044997952103565531823264833e-4),
|
||||
SC_(7.5470066070556640625), SC_(-5), SC_(-0.5579319000244140625), SC_(0.26026610986949895591456820667931397644373911708617e-4),
|
||||
SC_(7.5470066070556640625), SC_(-5), SC_(0.826751708984375), SC_(0.96427550556555556215914278478645893071540865408665e-5),
|
||||
SC_(7.5470066070556640625), SC_(-4), SC_(-0.74602639675140380859375), SC_(-0.00016179970162846142544637619599296898839695649488055),
|
||||
SC_(7.5470066070556640625), SC_(-3), SC_(0.0944411754608154296875), SC_(0.00062249282910339912813465170017929282035995863532522),
|
||||
SC_(7.5470066070556640625), SC_(-3), SC_(0.98576259613037109375), SC_(0.91478224428475023051355182182258959654080836058826e-4),
|
||||
SC_(7.5470066070556640625), SC_(-1), SC_(0.81158387660980224609375), SC_(-0.037618428130799583340460729445204508575236956259112),
|
||||
SC_(7.5470066070556640625), SC_(1), SC_(0.264718532562255859375), SC_(-0.91850641031589001426851910351654966807086201315901),
|
||||
SC_(7.5470066070556640625), SC_(2), SC_(-0.72904598712921142578125), SC_(8.2527975846199234989599916055568828159236433321317),
|
||||
SC_(7.5470066070556640625), SC_(2), SC_(0.67001712322235107421875), SC_(-16.173978727715922835573941646676954402245624210885),
|
||||
SC_(7.5470066070556640625), SC_(3), SC_(-0.44300353527069091796875), SC_(126.11683720173836113693183279288501512543793837078),
|
||||
SC_(7.5470066070556640625), SC_(3), SC_(0.09376299381256103515625), SC_(-94.453868860737087182332484196906419229893511255424),
|
||||
SC_(7.5470066070556640625), SC_(4), SC_(0.93538987636566162109375), SC_(212.20613541117306294339745645140997922163474736004),
|
||||
SC_(7.5470066070556640625), SC_(5), SC_(0.91501367092132568359375), SC_(-548.9598762946375491746161334341209970192082722327),
|
||||
SC_(7.5470066070556640625), SC_(5), SC_(0.93773555755615234375), SC_(-274.14402002956226658985353133565183129456133307216),
|
||||
SC_(7.5470066070556640625), SC_(6), SC_(-0.38366591930389404296875), SC_(-32156.098501462924236706288755730053796038774016275),
|
||||
SC_(7.5470066070556640625), SC_(7), SC_(0.62944734096527099609375), SC_(-23114.460949600096071941383702301168401607047211818),
|
||||
SC_(11.84386730194091796875), SC_(-10), SC_(-0.5579319000244140625), SC_(-0.23265181140053135802487825748454722380866646014593e-10),
|
||||
SC_(11.84386730194091796875), SC_(-10), SC_(0.81158387660980224609375), SC_(0.10119358336421199432244908899725952448132738655445e-11),
|
||||
SC_(11.84386730194091796875), SC_(-8), SC_(-0.74602639675140380859375), SC_(-0.13489060836825107052053300247017803661743299618615e-8),
|
||||
SC_(11.84386730194091796875), SC_(-8), SC_(-0.72904598712921142578125), SC_(-0.1542799319087398107549162488097441554465286352303e-8),
|
||||
SC_(11.84386730194091796875), SC_(-8), SC_(0.98576259613037109375), SC_(0.59003527302236484992801818528316725899144008941385e-13),
|
||||
SC_(11.84386730194091796875), SC_(-4), SC_(0.62944734096527099609375), SC_(-0.14472251039785768408474263876593046823350434589546e-4),
|
||||
SC_(11.84386730194091796875), SC_(-4), SC_(0.92977702617645263671875), SC_(0.19881213267841126683103644232724033001739468923731e-4),
|
||||
SC_(11.84386730194091796875), SC_(-3), SC_(0.67001712322235107421875), SC_(-0.45829620024586356030414844243050192126649872258431e-4),
|
||||
SC_(11.84386730194091796875), SC_(-2), SC_(0.826751708984375), SC_(-0.0024475865536336790697122592507802550191969717760944),
|
||||
SC_(11.84386730194091796875), SC_(-2), SC_(0.99292266368865966796875), SC_(0.001514584725634246672093061231008807294812673049418),
|
||||
SC_(11.84386730194091796875), SC_(-1), SC_(-0.38366591930389404296875), SC_(0.0041910765987207082014873224726632429468869952557846),
|
||||
SC_(11.84386730194091796875), SC_(2), SC_(-0.44300353527069091796875), SC_(29.060140543929646372953199229138943547599341368473),
|
||||
SC_(11.84386730194091796875), SC_(3), SC_(0.09376299381256103515625), SC_(-177.48133935035592847836648194577534007151999415785),
|
||||
SC_(11.84386730194091796875), SC_(6), SC_(0.264718532562255859375), SC_(222813.62228852691558610355161450613259901923040526),
|
||||
SC_(11.84386730194091796875), SC_(7), SC_(-0.62323606014251708984375), SC_(-4859018.4455751267400897075639214816266256959868333),
|
||||
SC_(11.84386730194091796875), SC_(8), SC_(0.91501367092132568359375), SC_(1021518.66801184216282417981301458120258320370794),
|
||||
SC_(11.84386730194091796875), SC_(8), SC_(0.93538987636566162109375), SC_(383678.2307827682389868079425774985048635406198118),
|
||||
SC_(11.84386730194091796875), SC_(8), SC_(0.93773555755615234375), SC_(335363.54374210707806874319418081514539985485964623),
|
||||
SC_(11.84386730194091796875), SC_(9), SC_(-0.804919183254241943359375), SC_(-37638062.605176743043545621659726706224449118828276),
|
||||
SC_(11.84386730194091796875), SC_(11), SC_(0.0944411754608154296875), SC_(-13088230119.354593487821768373557740001331594792884),
|
||||
SC_(11.84997081756591796875), SC_(-11), SC_(0.09376299381256103515625), SC_(0.11652575593644221485023460761015831090267033800858e-10),
|
||||
SC_(11.84997081756591796875), SC_(-11), SC_(0.92977702617645263671875), SC_(0.20579709935439231465251633890295859136590924726116e-15),
|
||||
SC_(11.84997081756591796875), SC_(-11), SC_(0.93538987636566162109375), SC_(0.13224949845586789337687366145892296658666301182813e-15),
|
||||
SC_(11.84997081756591796875), SC_(-8), SC_(-0.74602639675140380859375), SC_(-0.13489060836825107052053300247017803661743299618615e-8),
|
||||
SC_(11.84997081756591796875), SC_(-7), SC_(0.93773555755615234375), SC_(0.69374698116005068370241223092303295509213455690462e-9),
|
||||
SC_(11.84997081756591796875), SC_(-6), SC_(0.264718532562255859375), SC_(0.75171716970009817274765988454793518932645912441686e-7),
|
||||
SC_(11.84997081756591796875), SC_(-5), SC_(0.67001712322235107421875), SC_(-0.74962894159760082832011679326967274680513990227673e-6),
|
||||
SC_(11.84997081756591796875), SC_(-4), SC_(-0.62323606014251708984375), SC_(0.13562168617539220725057252182518517591360727530937e-4),
|
||||
SC_(11.84997081756591796875), SC_(-3), SC_(0.0944411754608154296875), SC_(0.81018496059627083036058461166125860043982866987277e-4),
|
||||
SC_(11.84997081756591796875), SC_(-3), SC_(0.81158387660980224609375), SC_(-0.00013226110423271619374803791001430283951730245350595),
|
||||
SC_(11.84997081756591796875), SC_(-1), SC_(0.826751708984375), SC_(-0.0040979297572913890790531337178784142062844908280042),
|
||||
SC_(11.84997081756591796875), SC_(0), SC_(-0.804919183254241943359375), SC_(-0.29753322859260680967406878028841522576050347782121),
|
||||
SC_(11.84997081756591796875), SC_(0), SC_(-0.44300353527069091796875), SC_(-0.20897102536739270748155301914422564587637993175572),
|
||||
SC_(11.84997081756591796875), SC_(0), SC_(0.98576259613037109375), SC_(0.25718519997355322934845056525480032969786078351821),
|
||||
SC_(11.84997081756591796875), SC_(2), SC_(-0.38366591930389404296875), SC_(31.321494899202229629503730871768387574032327364668),
|
||||
SC_(11.84997081756591796875), SC_(3), SC_(0.62944734096527099609375), SC_(-133.45273880919003222397159296712531292386296841578),
|
||||
SC_(11.84997081756591796875), SC_(4), SC_(0.99292266368865966796875), SC_(124.0791430575599930695018428639543182491862135452),
|
||||
SC_(11.84997081756591796875), SC_(8), SC_(-0.72904598712921142578125), SC_(-31278996.346844030458961294814400214328489738408282),
|
||||
SC_(11.84997081756591796875), SC_(9), SC_(-0.5579319000244140625), SC_(-338438171.1910644879479672790426918021710482022825),
|
||||
SC_(11.84997081756591796875), SC_(10), SC_(0.91501367092132568359375), SC_(1436525.2077063817917494317507659803096843830478934),
|
||||
SC_(13.3824672698974609375), SC_(-13), SC_(-0.804919183254241943359375), SC_(0.22166639523051638106418604328947911924875738037195e-16),
|
||||
SC_(13.3824672698974609375), SC_(-13), SC_(0.92977702617645263671875), SC_(0.44693154474481435928082063045813863131262403955661e-19),
|
||||
SC_(13.3824672698974609375), SC_(-12), SC_(-0.62323606014251708984375), SC_(-0.16621175359968221829687634726523126274572535451776e-13),
|
||||
SC_(13.3824672698974609375), SC_(-11), SC_(-0.5579319000244140625), SC_(0.44450919253842863629215666338932968470668430070296e-12),
|
||||
SC_(13.3824672698974609375), SC_(-10), SC_(0.93773555755615234375), SC_(0.55673512583170756101841118590153351963256527278471e-14),
|
||||
SC_(13.3824672698974609375), SC_(-9), SC_(0.81158387660980224609375), SC_(0.15673048027086770934389940776395437140646071715598e-10),
|
||||
SC_(13.3824672698974609375), SC_(-7), SC_(0.09376299381256103515625), SC_(-0.18900830818056138997299707029920201032855688227972e-8),
|
||||
SC_(13.3824672698974609375), SC_(-7), SC_(0.93538987636566162109375), SC_(0.62398829036318924421682890093652108111426929160992e-9),
|
||||
SC_(13.3824672698974609375), SC_(-6), SC_(-0.74602639675140380859375), SC_(-0.21723575516243262421798797023094100622452296975193e-7),
|
||||
SC_(13.3824672698974609375), SC_(2), SC_(0.264718532562255859375), SC_(17.034455941674013494369196837130404278802967075785),
|
||||
SC_(13.3824672698974609375), SC_(2), SC_(0.98576259613037109375), SC_(74.199869740310278546928044799483142489006719811421),
|
||||
SC_(13.3824672698974609375), SC_(4), SC_(0.826751708984375), SC_(-2970.4202769206060544252953563327031335250923271111),
|
||||
SC_(13.3824672698974609375), SC_(6), SC_(-0.72904598712921142578125), SC_(-142653.18426864739894657986914209617064658696817064),
|
||||
SC_(13.3824672698974609375), SC_(6), SC_(-0.44300353527069091796875), SC_(-847125.49020389136626193373354682614784551391911727),
|
||||
SC_(13.3824672698974609375), SC_(6), SC_(0.67001712322235107421875), SC_(-973179.19295459124004349072652615957844656182701482),
|
||||
SC_(13.3824672698974609375), SC_(7), SC_(0.0944411754608154296875), SC_(6291587.8396040891190619719705059087867165445493),
|
||||
SC_(13.3824672698974609375), SC_(8), SC_(-0.38366591930389404296875), SC_(148736140.90353794537277725465559178875001451292523),
|
||||
SC_(13.3824672698974609375), SC_(8), SC_(0.99292266368865966796875), SC_(1562.9986080941304055581037380248889804054119356879),
|
||||
SC_(13.3824672698974609375), SC_(9), SC_(0.62944734096527099609375), SC_(-2282996099.0744102550139909067331966860804173216966),
|
||||
SC_(13.3824672698974609375), SC_(9), SC_(0.91501367092132568359375), SC_(-47108686.442640842883533859076465535279340150282202),
|
||||
SC_(16.6650257110595703125), SC_(-16), SC_(-0.5579319000244140625), SC_(0.36914896153983860669619753805966665027048352841086e-19),
|
||||
SC_(16.6650257110595703125), SC_(-15), SC_(-0.804919183254241943359375), SC_(-0.74790282995655983775531645052438536118228838933368e-20),
|
||||
SC_(16.6650257110595703125), SC_(-15), SC_(-0.62323606014251708984375), SC_(-0.36398678387957337085009611234034932395493463191661e-18),
|
||||
SC_(16.6650257110595703125), SC_(-14), SC_(0.93773555755615234375), SC_(0.22807828690216376785976940239028828932632169446174e-21),
|
||||
SC_(16.6650257110595703125), SC_(-13), SC_(0.92977702617645263671875), SC_(0.35320050515977865959614707894521274040624190465647e-19),
|
||||
SC_(16.6650257110595703125), SC_(-12), SC_(0.81158387660980224609375), SC_(0.3082671873049785091792439153346921827065397800962e-15),
|
||||
SC_(16.6650257110595703125), SC_(-4), SC_(0.93538987636566162109375), SC_(0.52291298347581562621901072563414165417626206009583e-5),
|
||||
SC_(16.6650257110595703125), SC_(-2), SC_(0.99292266368865966796875), SC_(0.0012698575294388484883534762618017745047909786068378),
|
||||
SC_(16.6650257110595703125), SC_(-1), SC_(0.0944411754608154296875), SC_(-0.011944140876262027507943894873016233264464123175583),
|
||||
SC_(16.6650257110595703125), SC_(-1), SC_(0.91501367092132568359375), SC_(-0.0031076083789904422712562161725068777570567479833285),
|
||||
SC_(16.6650257110595703125), SC_(4), SC_(-0.44300353527069091796875), SC_(7489.7232452416344466185434844943197669989737666647),
|
||||
SC_(16.6650257110595703125), SC_(5), SC_(0.67001712322235107421875), SC_(-245785.37315952021732160039445469928096897296200858),
|
||||
SC_(16.6650257110595703125), SC_(7), SC_(-0.72904598712921142578125), SC_(-49207050.468316885335102250704228071597639131505993),
|
||||
SC_(16.6650257110595703125), SC_(7), SC_(0.264718532562255859375), SC_(42453247.952851458881163464731595954318082047470875),
|
||||
SC_(16.6650257110595703125), SC_(8), SC_(0.62944734096527099609375), SC_(-979230421.06039761780739880450853659640100219735369),
|
||||
SC_(16.6650257110595703125), SC_(10), SC_(-0.38366591930389404296875), SC_(-65484300474.651994691389202076648539080316522513276),
|
||||
SC_(16.6650257110595703125), SC_(11), SC_(0.826751708984375), SC_(-621994593400.85818284286708477331063639042478826259),
|
||||
SC_(16.6650257110595703125), SC_(13), SC_(0.98576259613037109375), SC_(-2368679.116056950972031807234328493387762603085367),
|
||||
SC_(16.6650257110595703125), SC_(16), SC_(-0.74602639675140380859375), SC_(286937498915109.72391794972691070626807358288824491),
|
||||
SC_(16.6650257110595703125), SC_(16), SC_(0.09376299381256103515625), SC_(178810232213386344.75148306627111836848013903472344),
|
||||
SC_(17.0301532745361328125), SC_(-17), SC_(0.81158387660980224609375), SC_(0.23089891934552557492903571788866976069269398034636e-23),
|
||||
SC_(17.0301532745361328125), SC_(-16), SC_(0.92977702617645263671875), SC_(0.77120542993546838080187693618711944669104877784798e-25),
|
||||
SC_(17.0301532745361328125), SC_(-14), SC_(-0.38366591930389404296875), SC_(-0.54561248812503755335991908931944825672149594319331e-17),
|
||||
SC_(17.0301532745361328125), SC_(-14), SC_(0.264718532562255859375), SC_(-0.25540948412416548331728930347103911513122873387648e-17),
|
||||
SC_(17.0301532745361328125), SC_(-12), SC_(0.62944734096527099609375), SC_(0.11267232505246190944593673014733244504856527347217e-14),
|
||||
SC_(17.0301532745361328125), SC_(-11), SC_(0.93538987636566162109375), SC_(0.8080068473692047289701190290402825999134033774326e-16),
|
||||
SC_(17.0301532745361328125), SC_(-8), SC_(-0.44300353527069091796875), SC_(-0.23668950399843099002326915537352916668711085164683e-10),
|
||||
SC_(17.0301532745361328125), SC_(-4), SC_(-0.62323606014251708984375), SC_(0.22257178074585895343804673994496661297003034593049e-5),
|
||||
SC_(17.0301532745361328125), SC_(-4), SC_(-0.5579319000244140625), SC_(0.13825468678287818487268474508564732013727903072802e-5),
|
||||
SC_(17.0301532745361328125), SC_(-2), SC_(0.98576259613037109375), SC_(0.0015940113463464718894604985317013703396900221174161),
|
||||
SC_(17.0301532745361328125), SC_(-1), SC_(-0.72904598712921142578125), SC_(-0.00179298507080800413716717496074397930291963387428),
|
||||
SC_(17.0301532745361328125), SC_(2), SC_(-0.74602639675140380859375), SC_(63.703534657883034459738823553326354020852528298334),
|
||||
SC_(17.0301532745361328125), SC_(4), SC_(0.91501367092132568359375), SC_(9578.4486235254777894217041455902077880056968913822),
|
||||
SC_(17.0301532745361328125), SC_(6), SC_(0.09376299381256103515625), SC_(-5017339.216196783919233944407631270205095529788784),
|
||||
SC_(17.0301532745361328125), SC_(6), SC_(0.0944411754608154296875), SC_(-5018698.5341072323277278971254008046714224679259579),
|
||||
SC_(17.0301532745361328125), SC_(7), SC_(0.99292266368865966796875), SC_(-78992.039209423422657071913321786385052597355213482),
|
||||
SC_(17.0301532745361328125), SC_(8), SC_(0.826751708984375), SC_(2125458172.4081600001165033646972051069773553913414),
|
||||
SC_(17.0301532745361328125), SC_(11), SC_(-0.804919183254241943359375), SC_(-3083182177646.0814083741337604451869998939540761478),
|
||||
SC_(17.0301532745361328125), SC_(16), SC_(0.93773555755615234375), SC_(266651139531.32384929509372467284346479362567522913),
|
||||
SC_(17.0301532745361328125), SC_(17), SC_(0.67001712322235107421875), SC_(-39984434200097046.063642477455323422467024142361322),
|
||||
SC_(18.3042545318603515625), SC_(-16), SC_(0.91501367092132568359375), SC_(0.29883615646300452729116273431746068354341463393245e-24),
|
||||
SC_(18.3042545318603515625), SC_(-15), SC_(-0.5579319000244140625), SC_(-0.19593885482631020055319069838825786355264001980923e-18),
|
||||
SC_(18.3042545318603515625), SC_(-13), SC_(0.93538987636566162109375), SC_(0.18015893170629159643302327598927935673211915247379e-19),
|
||||
SC_(18.3042545318603515625), SC_(-9), SC_(0.09376299381256103515625), SC_(0.11469696889070244336893177339905362355047054202956e-11),
|
||||
SC_(18.3042545318603515625), SC_(-8), SC_(-0.38366591930389404296875), SC_(-0.1887440538785176364549309437756617748819077392573e-10),
|
||||
SC_(18.3042545318603515625), SC_(-6), SC_(0.62944734096527099609375), SC_(0.43674982083323422168372530118149718931490233301677e-8),
|
||||
SC_(18.3042545318603515625), SC_(-4), SC_(-0.44300353527069091796875), SC_(0.7202196497255920924428859123626553791826086042503e-6),
|
||||
SC_(18.3042545318603515625), SC_(-2), SC_(-0.804919183254241943359375), SC_(-0.77283649068875750938251183253775363894689287493389e-4),
|
||||
SC_(18.3042545318603515625), SC_(1), SC_(-0.74602639675140380859375), SC_(0.63828710585725175676940885969260056847792325179648),
|
||||
SC_(18.3042545318603515625), SC_(2), SC_(0.98576259613037109375), SC_(166.08676681462310504060036212332710646394263847909),
|
||||
SC_(18.3042545318603515625), SC_(4), SC_(0.99292266368865966796875), SC_(5290.5406072371351692027633069511734187279679177777),
|
||||
SC_(18.3042545318603515625), SC_(5), SC_(0.264718532562255859375), SC_(392113.36345354167041874035916897478682871001810603),
|
||||
SC_(18.3042545318603515625), SC_(5), SC_(0.826751708984375), SC_(515813.36159934241989083840875835833434313742166124),
|
||||
SC_(18.3042545318603515625), SC_(10), SC_(0.81158387660980224609375), SC_(786203092993.54293624662825003360911583842842889743),
|
||||
SC_(18.3042545318603515625), SC_(11), SC_(0.67001712322235107421875), SC_(-8261729884863.6657373747045319640816334012239447799),
|
||||
SC_(18.3042545318603515625), SC_(12), SC_(0.0944411754608154296875), SC_(-30579050031328.838999922313096299251374259570555362),
|
||||
SC_(18.3042545318603515625), SC_(13), SC_(-0.62323606014251708984375), SC_(2490927774952003.541834741685697258166307532119113),
|
||||
SC_(18.3042545318603515625), SC_(14), SC_(-0.72904598712921142578125), SC_(8874022800651066.6502918671748924861977690946025867),
|
||||
SC_(18.3042545318603515625), SC_(15), SC_(0.93773555755615234375), SC_(-3553964025785.9966811637710283958451213589141162289),
|
||||
SC_(18.3042545318603515625), SC_(18), SC_(0.92977702617645263671875), SC_(3416106077482.7264856872784871760461910378746573151),
|
||||
SC_(18.440765380859375), SC_(-17), SC_(-0.5579319000244140625), SC_(-0.50271604952920343300607472787502048319360871188692e-21),
|
||||
SC_(18.440765380859375), SC_(-16), SC_(-0.804919183254241943359375), SC_(0.10984637871249881776444510537426108537817137259055e-21),
|
||||
SC_(18.440765380859375), SC_(-12), SC_(-0.74602639675140380859375), SC_(0.38699810971215052589513068420573917306170228310572e-15),
|
||||
SC_(18.440765380859375), SC_(-12), SC_(0.93773555755615234375), SC_(0.98565761862632574513933033426583440815341731508199e-18),
|
||||
SC_(18.440765380859375), SC_(-6), SC_(0.264718532562255859375), SC_(-0.15283288108259116456399654021918348895173752216729e-9),
|
||||
SC_(18.440765380859375), SC_(-5), SC_(0.67001712322235107421875), SC_(0.42663862212707289150211045881623824679654531468886e-7),
|
||||
SC_(18.440765380859375), SC_(-5), SC_(0.98576259613037109375), SC_(0.23861087627268731000356265059002054846394077572679e-7),
|
||||
SC_(18.440765380859375), SC_(-4), SC_(0.91501367092132568359375), SC_(-0.80543753849626232167758105932861113884499338011562e-7),
|
||||
SC_(18.440765380859375), SC_(-2), SC_(0.09376299381256103515625), SC_(-0.85382295357652349741567303582030854482898935914125e-4),
|
||||
SC_(18.440765380859375), SC_(-1), SC_(0.99292266368865966796875), SC_(0.030086983815468676149299012036109061540059539271355),
|
||||
SC_(18.440765380859375), SC_(0), SC_(-0.72904598712921142578125), SC_(0.18653718888369370131458265584018026946159296567964),
|
||||
SC_(18.440765380859375), SC_(0), SC_(0.62944734096527099609375), SC_(-0.21025192720175270695719746239016794207250758550671),
|
||||
SC_(18.440765380859375), SC_(5), SC_(-0.38366591930389404296875), SC_(264699.84731638138429900882287246208183148022742781),
|
||||
SC_(18.440765380859375), SC_(5), SC_(0.92977702617645263671875), SC_(-736319.88814289375666669784796756264581839709032387),
|
||||
SC_(18.440765380859375), SC_(7), SC_(0.826751708984375), SC_(-42543004.889913803417064413390657862883996054044383),
|
||||
SC_(18.440765380859375), SC_(11), SC_(-0.62323606014251708984375), SC_(838990229190.95540426631634358776581787814066606189),
|
||||
SC_(18.440765380859375), SC_(13), SC_(0.81158387660980224609375), SC_(-358219758017025.29646048607070742930527995349756931),
|
||||
SC_(18.440765380859375), SC_(15), SC_(0.0944411754608154296875), SC_(250504952280779402.4459453389974592578734995999658),
|
||||
SC_(18.440765380859375), SC_(17), SC_(0.93538987636566162109375), SC_(-4382618700190.530435650666874966527218631896635012),
|
||||
SC_(18.440765380859375), SC_(18), SC_(-0.44300353527069091796875), SC_(31026494575738330367.158321747018911852847647134982),
|
||||
SC_(19.2351226806640625), SC_(-19), SC_(0.826751708984375), SC_(0.28096099754174757639142988313052093117069710820259e-27),
|
||||
SC_(19.2351226806640625), SC_(-15), SC_(0.93773555755615234375), SC_(0.22729284127735589054255258668317884253291919419305e-23),
|
||||
SC_(19.2351226806640625), SC_(-13), SC_(0.99292266368865966796875), SC_(0.1743121215871876802557328668088468943943263194911e-25),
|
||||
SC_(19.2351226806640625), SC_(-10), SC_(-0.38366591930389404296875), SC_(-0.10293684623854104934250449760096572176156444372122e-13),
|
||||
SC_(19.2351226806640625), SC_(-10), SC_(0.264718532562255859375), SC_(-0.39291909511632775673453848171264487384306556380656e-13),
|
||||
SC_(19.2351226806640625), SC_(1), SC_(0.92977702617645263671875), SC_(-1.8928597921982751461985041697534535744382441623969),
|
||||
SC_(19.2351226806640625), SC_(1), SC_(0.93538987636566162109375), SC_(-0.17753066615543550750253798142286628228408488271265),
|
||||
SC_(19.2351226806640625), SC_(3), SC_(-0.62323606014251708984375), SC_(-1406.8551161661961787833668743464163883272950430824),
|
||||
SC_(19.2351226806640625), SC_(3), SC_(0.81158387660980224609375), SC_(-1349.1692552830459195981604712085505043997296160725),
|
||||
SC_(19.2351226806640625), SC_(4), SC_(-0.74602639675140380859375), SC_(-8037.6658264469123963393087477071904706108915347975),
|
||||
SC_(19.2351226806640625), SC_(4), SC_(0.0944411754608154296875), SC_(-25028.145293006716172962519105923296460758908547618),
|
||||
SC_(19.2351226806640625), SC_(4), SC_(0.67001712322235107421875), SC_(-29534.257011785190165176788825355970943316250224702),
|
||||
SC_(19.2351226806640625), SC_(4), SC_(0.91501367092132568359375), SC_(-16392.232356669543132626194808379585805064546084349),
|
||||
SC_(19.2351226806640625), SC_(4), SC_(0.98576259613037109375), SC_(23971.132007029558069016801023045608495969275263064),
|
||||
SC_(19.2351226806640625), SC_(6), SC_(-0.72904598712921142578125), SC_(-8140834.1324089639935519173978872996653658919863967),
|
||||
SC_(19.2351226806640625), SC_(6), SC_(-0.44300353527069091796875), SC_(-7930928.2397986661163007545526813521615562150281197),
|
||||
SC_(19.2351226806640625), SC_(9), SC_(-0.804919183254241943359375), SC_(-72379113476.352796377305937996940747985952066128593),
|
||||
SC_(19.2351226806640625), SC_(13), SC_(0.62944734096527099609375), SC_(-5134369678377531.0833016268690600215514053304023389),
|
||||
SC_(19.2351226806640625), SC_(15), SC_(-0.5579319000244140625), SC_(-1015762016510443869.6327233053169209347494734043869),
|
||||
SC_(19.2351226806640625), SC_(18), SC_(0.09376299381256103515625), SC_(710186740012925626467.73942195603474203745449828018),
|
||||
SC_(19.367992401123046875), SC_(-17), SC_(0.62944734096527099609375), SC_(0.11171785200806076601510755896553721227874614231315e-21),
|
||||
SC_(19.367992401123046875), SC_(-15), SC_(0.67001712322235107421875), SC_(0.41708170484402827993195327851962176229050519214935e-19),
|
||||
SC_(19.367992401123046875), SC_(-11), SC_(0.91501367092132568359375), SC_(0.21756446987184863754567940655540650014788217090708e-15),
|
||||
SC_(19.367992401123046875), SC_(-10), SC_(0.264718532562255859375), SC_(-0.39291909511632775673453848171264487384306556380656e-13),
|
||||
SC_(19.367992401123046875), SC_(-10), SC_(0.93538987636566162109375), SC_(0.35203386148632068895108168682763476328178687031646e-14),
|
||||
SC_(19.367992401123046875), SC_(-8), SC_(0.09376299381256103515625), SC_(-0.11426052789780942300532608169075547762937997222756e-10),
|
||||
SC_(19.367992401123046875), SC_(-3), SC_(0.0944411754608154296875), SC_(-0.62009805308781525829391269462790209708034571751975e-5),
|
||||
SC_(19.367992401123046875), SC_(-3), SC_(0.98576259613037109375), SC_(0.48683625637537837402773720121195220847472881885636e-4),
|
||||
SC_(19.367992401123046875), SC_(-1), SC_(-0.5579319000244140625), SC_(-0.0051771830750291213227283927254523671758223103225019),
|
||||
SC_(19.367992401123046875), SC_(4), SC_(-0.804919183254241943359375), SC_(-31206.872941793395251553296530119153550183252786295),
|
||||
SC_(19.367992401123046875), SC_(4), SC_(-0.44300353527069091796875), SC_(17028.045702509925174397449943279294145247295355527),
|
||||
SC_(19.367992401123046875), SC_(9), SC_(-0.72904598712921142578125), SC_(40963049161.840563921749109759131967640623017931928),
|
||||
SC_(19.367992401123046875), SC_(10), SC_(0.81158387660980224609375), SC_(1539232549071.2403439978796189170963046987864230162),
|
||||
SC_(19.367992401123046875), SC_(12), SC_(-0.38366591930389404296875), SC_(-88775931893030.570776909560322117125028614222504249),
|
||||
SC_(19.367992401123046875), SC_(13), SC_(0.99292266368865966796875), SC_(-6370402.0056839501875375385352467787059666973045593),
|
||||
SC_(19.367992401123046875), SC_(14), SC_(-0.74602639675140380859375), SC_(-29382493955027210.900261178223964994850616622296376),
|
||||
SC_(19.367992401123046875), SC_(14), SC_(-0.62323606014251708984375), SC_(-78338179480735275.385980722705110901752445891864321),
|
||||
SC_(19.367992401123046875), SC_(15), SC_(0.826751708984375), SC_(-21925888030419983.923456036187293901038296511900498),
|
||||
SC_(19.367992401123046875), SC_(15), SC_(0.92977702617645263671875), SC_(-64341448614367.513605394800667731791476692010324668),
|
||||
SC_(19.367992401123046875), SC_(18), SC_(0.93773555755615234375), SC_(41662739626590.703682551951618167157234877634542544),
|
||||
SC_(19.4185085296630859375), SC_(-18), SC_(0.0944411754608154296875), SC_(0.51911342450084606006498960540691516909936454811191e-22),
|
||||
SC_(19.4185085296630859375), SC_(-17), SC_(-0.5579319000244140625), SC_(0.26324372445835333986291229819511043236130501244613e-21),
|
||||
SC_(19.4185085296630859375), SC_(-13), SC_(-0.74602639675140380859375), SC_(0.1038530509609787824487836468215661897944095895319e-16),
|
||||
SC_(19.4185085296630859375), SC_(-13), SC_(-0.44300353527069091796875), SC_(-0.11954326307657381817424475791045577141774274614215e-16),
|
||||
SC_(19.4185085296630859375), SC_(-11), SC_(0.98576259613037109375), SC_(0.32010533648064664252568315383909193374387441919969e-19),
|
||||
SC_(19.4185085296630859375), SC_(-8), SC_(0.93538987636566162109375), SC_(0.70096078678514191093666708376458847827858161562235e-11),
|
||||
SC_(19.4185085296630859375), SC_(-6), SC_(0.826751708984375), SC_(-0.50239978245173340481994943923797004708278735544008e-8),
|
||||
SC_(19.4185085296630859375), SC_(-6), SC_(0.91501367092132568359375), SC_(0.69080326024780067300862626196534340743493983872007e-8),
|
||||
SC_(19.4185085296630859375), SC_(-5), SC_(-0.38366591930389404296875), SC_(-0.30848661309469795756336369771506539897303178512343e-7),
|
||||
SC_(19.4185085296630859375), SC_(-2), SC_(-0.72904598712921142578125), SC_(0.6914266105284580609485581648675886651787722622556e-4),
|
||||
SC_(19.4185085296630859375), SC_(-2), SC_(0.93773555755615234375), SC_(-0.00082097977947824531306568828914325965998735309386971),
|
||||
SC_(19.4185085296630859375), SC_(1), SC_(0.81158387660980224609375), SC_(4.2277096876026264281609013898703823312548839649606),
|
||||
SC_(19.4185085296630859375), SC_(3), SC_(-0.804919183254241943359375), SC_(-1069.4488089252507695912869014570583577070805013318),
|
||||
SC_(19.4185085296630859375), SC_(8), SC_(-0.62323606014251708984375), SC_(-2666091237.1634788661326592401910351174873913360323),
|
||||
SC_(19.4185085296630859375), SC_(8), SC_(0.99292266368865966796875), SC_(925591.97999902651810095119605577620595541436584718),
|
||||
SC_(19.4185085296630859375), SC_(9), SC_(0.264718532562255859375), SC_(-5122686380.6946779314572422174331586519139555025857),
|
||||
SC_(19.4185085296630859375), SC_(10), SC_(0.09376299381256103515625), SC_(965104740093.56545540804916275928148739799548313534),
|
||||
SC_(19.4185085296630859375), SC_(11), SC_(0.92977702617645263671875), SC_(-624047483227.59396674703988209346984924810845031782),
|
||||
SC_(19.4185085296630859375), SC_(15), SC_(0.62944734096527099609375), SC_(-738329845534139238.31589929078368480078587395312756),
|
||||
SC_(19.4185085296630859375), SC_(18), SC_(0.67001712322235107421875), SC_(25754480226319677835.76098992722595983871287263485),
|
||||
SC_(19.4396209716796875), SC_(-19), SC_(0.826751708984375), SC_(0.28096099754174757639142988313052093117069710820259e-27),
|
||||
SC_(19.4396209716796875), SC_(-19), SC_(0.99292266368865966796875), SC_(0.41139415501798503182620662065024377889890717413858e-40),
|
||||
SC_(19.4396209716796875), SC_(-16), SC_(0.92977702617645263671875), SC_(0.65747433121722074118768922518726326206091216387016e-25),
|
||||
SC_(19.4396209716796875), SC_(-14), SC_(0.0944411754608154296875), SC_(0.7750508585662675010738068913765041007697196976154e-18),
|
||||
SC_(19.4396209716796875), SC_(-10), SC_(0.93538987636566162109375), SC_(0.35203386148632068895108168682763476328178687031646e-14),
|
||||
SC_(19.4396209716796875), SC_(-9), SC_(-0.804919183254241943359375), SC_(0.861460700695142273465894246225707493326360379112e-12),
|
||||
SC_(19.4396209716796875), SC_(-9), SC_(0.09376299381256103515625), SC_(0.35797340830762850114741224311803714456251087097646e-13),
|
||||
SC_(19.4396209716796875), SC_(-9), SC_(0.264718532562255859375), SC_(0.60970531234766811023858960941339345617424038691191e-13),
|
||||
SC_(19.4396209716796875), SC_(-4), SC_(0.81158387660980224609375), SC_(0.14162438520800722165613785588526894318263591840579e-5),
|
||||
SC_(19.4396209716796875), SC_(0), SC_(0.93773555755615234375), SC_(0.30185089350015097041813236342216465473811492066808),
|
||||
SC_(19.4396209716796875), SC_(1), SC_(-0.74602639675140380859375), SC_(-3.3298125144104874439554986012917200328078041284076),
|
||||
SC_(19.4396209716796875), SC_(6), SC_(-0.62323606014251708984375), SC_(2070223.0689771828593384049574788254082161424782151),
|
||||
SC_(19.4396209716796875), SC_(9), SC_(-0.72904598712921142578125), SC_(40963049161.840563921749109759131967640623017931928),
|
||||
SC_(19.4396209716796875), SC_(12), SC_(0.91501367092132568359375), SC_(7040751124453.4488884066354472049044671577945030141),
|
||||
SC_(19.4396209716796875), SC_(13), SC_(0.67001712322235107421875), SC_(-5687940021302887.6451945681691475411327830115702795),
|
||||
SC_(19.4396209716796875), SC_(14), SC_(0.98576259613037109375), SC_(674245566.99025968816472030671195432637133872627082),
|
||||
SC_(19.4396209716796875), SC_(17), SC_(-0.38366591930389404296875), SC_(-127301699165359197878.79551348556848810793872324273),
|
||||
SC_(19.4396209716796875), SC_(18), SC_(-0.5579319000244140625), SC_(-159505604178383717077.46533923481855803222244671133),
|
||||
SC_(19.4396209716796875), SC_(19), SC_(-0.44300353527069091796875), SC_(-1029187142567780884281.5753644645077933758833454754),
|
||||
SC_(19.4396209716796875), SC_(19), SC_(0.62944734096527099609375), SC_(-67969400336711244635.100926182757403393151023891505),
|
||||
SC_(19.87186431884765625), SC_(-18), SC_(0.0944411754608154296875), SC_(0.51911342450084606006498960540691516909936454811191e-22),
|
||||
SC_(19.87186431884765625), SC_(-17), SC_(0.67001712322235107421875), SC_(0.58726064536889576863720153513076020150678343992132e-22),
|
||||
SC_(19.87186431884765625), SC_(-14), SC_(0.09376299381256103515625), SC_(0.77286264421078668095197950811355859649633390890055e-18),
|
||||
SC_(19.87186431884765625), SC_(-13), SC_(0.98576259613037109375), SC_(0.15205096913859731930591097244177400726284058187231e-23),
|
||||
SC_(19.87186431884765625), SC_(-12), SC_(0.62944734096527099609375), SC_(0.84179594974630947109160535195453410788993007175736e-16),
|
||||
SC_(19.87186431884765625), SC_(-6), SC_(0.93773555755615234375), SC_(0.66088259609398732039730419153668689085254808488491e-8),
|
||||
SC_(19.87186431884765625), SC_(-3), SC_(0.92977702617645263671875), SC_(-0.3202584859446750447001544695075271493418238924369e-4),
|
||||
SC_(19.87186431884765625), SC_(2), SC_(0.93538987636566162109375), SC_(-114.29504330922803764479417554506839061453574689078),
|
||||
SC_(19.87186431884765625), SC_(3), SC_(0.264718532562255859375), SC_(-590.31121404357419718511991159003397861067922712095),
|
||||
SC_(19.87186431884765625), SC_(4), SC_(-0.804919183254241943359375), SC_(-31206.872941793395251553296530119153550183252786295),
|
||||
SC_(19.87186431884765625), SC_(4), SC_(0.81158387660980224609375), SC_(27998.376863739953480856174913557597864204862111517),
|
||||
SC_(19.87186431884765625), SC_(6), SC_(-0.74602639675140380859375), SC_(-3988947.6757273109841392288902418535673497942678044),
|
||||
SC_(19.87186431884765625), SC_(6), SC_(0.91501367092132568359375), SC_(17207577.76868430351907141387711761936487111245407),
|
||||
SC_(19.87186431884765625), SC_(8), SC_(-0.5579319000244140625), SC_(-2880999408.1753053515439782739761895146097466930431),
|
||||
SC_(19.87186431884765625), SC_(10), SC_(-0.38366591930389404296875), SC_(-250811038036.64016980933046385373956183195852302589),
|
||||
SC_(19.87186431884765625), SC_(11), SC_(0.99292266368865966796875), SC_(-4956548.0008289171017772512361059049573500136580832),
|
||||
SC_(19.87186431884765625), SC_(12), SC_(-0.62323606014251708984375), SC_(-106590833899905.54371031227921841065877625515491286),
|
||||
SC_(19.87186431884765625), SC_(12), SC_(-0.44300353527069091796875), SC_(164377317484172.780269767864581766622776515649156),
|
||||
SC_(19.87186431884765625), SC_(18), SC_(-0.72904598712921142578125), SC_(-6500249695425848422.6994934374150447524907522260626),
|
||||
SC_(19.87186431884765625), SC_(18), SC_(0.826751708984375), SC_(215957040146103710.43752878136972484271174243226819),
|
||||
SC_(19.9363040924072265625), SC_(-19), SC_(-0.5579319000244140625), SC_(0.4536209533748046856223356436528310434693264815516e-24),
|
||||
SC_(19.9363040924072265625), SC_(-19), SC_(0.264718532562255859375), SC_(0.78629720841879126459468443827603688509992408472136e-23),
|
||||
SC_(19.9363040924072265625), SC_(-17), SC_(-0.44300353527069091796875), SC_(0.58251104165678394898744857711146365095314417691743e-21),
|
||||
SC_(19.9363040924072265625), SC_(-16), SC_(-0.62323606014251708984375), SC_(-0.29751304424052425636113962115386812591456175870573e-20),
|
||||
SC_(19.9363040924072265625), SC_(-14), SC_(0.91501367092132568359375), SC_(0.12709748787166211089363084338252308414817659872819e-20),
|
||||
SC_(19.9363040924072265625), SC_(-14), SC_(0.92977702617645263671875), SC_(0.3871138758064428596131493508699859591733838577277e-21),
|
||||
SC_(19.9363040924072265625), SC_(-12), SC_(0.93773555755615234375), SC_(0.89408958662499196674261505271428146255253342324884e-18),
|
||||
SC_(19.9363040924072265625), SC_(-11), SC_(-0.38366591930389404296875), SC_(0.26026063256932547239295328669255586707226242612148e-14),
|
||||
SC_(19.9363040924072265625), SC_(-10), SC_(-0.74602639675140380859375), SC_(-0.34765506905243672613499520824866410956137457719745e-13),
|
||||
SC_(19.9363040924072265625), SC_(-10), SC_(0.81158387660980224609375), SC_(0.63172556307492864748930303721096827403984649074523e-13),
|
||||
SC_(19.9363040924072265625), SC_(-4), SC_(0.0944411754608154296875), SC_(-0.12660004211205826580535251463738122438007427377005e-5),
|
||||
SC_(19.9363040924072265625), SC_(-4), SC_(0.62944734096527099609375), SC_(-0.54962149013781842129875877015678395599272910286725e-6),
|
||||
SC_(19.9363040924072265625), SC_(2), SC_(0.09376299381256103515625), SC_(66.642893417106666543810431512449143935500286088633),
|
||||
SC_(19.9363040924072265625), SC_(3), SC_(0.99292266368865966796875), SC_(-1337.0443049910513329145515282976202263100750256813),
|
||||
SC_(19.9363040924072265625), SC_(8), SC_(0.826751708984375), SC_(3010989900.8893375803525358367041329372033717978545),
|
||||
SC_(19.9363040924072265625), SC_(10), SC_(-0.72904598712921142578125), SC_(-451944141173.12209414901560544187498153708108846852),
|
||||
SC_(19.9363040924072265625), SC_(11), SC_(0.67001712322235107421875), SC_(-3818836562168.0063397346459855637481748033411304683),
|
||||
SC_(19.9363040924072265625), SC_(13), SC_(0.98576259613037109375), SC_(-555684705.08358775884287423663622045616768375133224),
|
||||
SC_(19.9363040924072265625), SC_(15), SC_(-0.804919183254241943359375), SC_(-43129486142739936.248977475359797313525493031517393),
|
||||
SC_(19.9363040924072265625), SC_(19), SC_(0.93538987636566162109375), SC_(-21677629202869.188161110548407561929925083445523615),
|
||||
};
|
||||
#undef SC_
|
||||
|
@ -59,7 +59,7 @@ inline void add_expected_result(
|
||||
re += group_name;
|
||||
re += ")";
|
||||
get_expected_data().push_back(
|
||||
std::make_pair(boost::regex(re),
|
||||
std::make_pair(boost::regex(re, boost::regex::perl | boost::regex::icase),
|
||||
std::make_pair(max_peek_error, max_mean_error)));
|
||||
}
|
||||
|
||||
|
425
test/hermite.ipp
Normal file
@ -0,0 +1,425 @@
|
||||
#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
|
||||
static const boost::array<boost::array<T, 3>, 420> hermite = {
|
||||
SC_(0.8e1), SC_(-0.804919189453125e3), SC_(0.45107507538695517471998224862706929168983312035236e26),
|
||||
SC_(0.8e1), SC_(-0.7460263671875e3), SC_(0.24561928260207418635049717146784087504133748838575e26),
|
||||
SC_(0.8e1), SC_(-0.72904595947265625e3), SC_(0.20429972623973894937590136235800300689033201111301e26),
|
||||
SC_(0.8e1), SC_(-0.623236083984375e3), SC_(0.5827000192786290015079053630015377969828881322477e25),
|
||||
SC_(0.8e1), SC_(-0.557931884765625e3), SC_(0.24036425469465274704663172230600209480309473246511e25),
|
||||
SC_(0.8e1), SC_(-0.4430035400390625e3), SC_(0.3797226972301982762616920977628718931846209669113e24),
|
||||
SC_(0.8e1), SC_(-0.383665924072265625e3), SC_(0.12017786536547968144293561686294350272042177165962e24),
|
||||
SC_(0.8e1), SC_(0.9376299285888671875e2), SC_(0.15268620781186000127986962828387837477310566397968e19),
|
||||
SC_(0.8e1), SC_(0.944411773681640625e2), SC_(0.1617518154852919675909314869798309833011143307635e19),
|
||||
SC_(0.8e1), SC_(0.264718536376953125e3), SC_(0.61720298828736019075790614156102805167876087211952e22),
|
||||
SC_(0.8e1), SC_(0.62944732666015625e3), SC_(0.63081173846769146140441083274224793875281883735246e25),
|
||||
SC_(0.8e1), SC_(0.67001715087890625e3), SC_(0.10397137311210792549517430287956468909599308482363e26),
|
||||
SC_(0.8e1), SC_(0.8115838623046875e3), SC_(0.48183457131767562763518406277181444679084105960509e26),
|
||||
SC_(0.8e1), SC_(0.826751708984375e3), SC_(0.55876845531601243780899074396489049059605490708721e26),
|
||||
SC_(0.8e1), SC_(0.915013671875e3), SC_(0.12579210047506473419699887821873790018411396965251e27),
|
||||
SC_(0.8e1), SC_(0.92977703857421875e3), SC_(0.14297610657915447015410284337196030534976367717228e27),
|
||||
SC_(0.8e1), SC_(0.935389892578125e3), SC_(0.15002871812830612180035463350811490994647498745898e27),
|
||||
SC_(0.8e1), SC_(0.93773553466796875e3), SC_(0.15306505051932713956696576348429859356902240309652e27),
|
||||
SC_(0.8e1), SC_(0.9857625732421875e3), SC_(0.2282508005179494438672517847212865156472291867269e27),
|
||||
SC_(0.8e1), SC_(0.99292266845703125e3), SC_(0.24185618845978155462978780829055436870571431239936e27),
|
||||
SC_(0.9e1), SC_(-0.804919189453125e3), SC_(-0.72615348491801522758107817154280636761854800448258e29),
|
||||
SC_(0.9e1), SC_(-0.7460263671875e3), SC_(-0.36647428831123627780613206119656435975372881269689e29),
|
||||
SC_(0.9e1), SC_(-0.72904595947265625e3), SC_(-0.29788553802717105399309090578189082490491064795881e29),
|
||||
SC_(0.9e1), SC_(-0.623236083984375e3), SC_(-0.72631187656840434630386580888842027480654740183583e28),
|
||||
SC_(0.9e1), SC_(-0.557931884765625e3), SC_(-0.26821031676217242168707855784900940170157970241264e28),
|
||||
SC_(0.9e1), SC_(-0.4430035400390625e3), SC_(-0.33643014085005895416146465835311020646005187659932e27),
|
||||
SC_(0.9e1), SC_(-0.383665924072265625e3), SC_(-0.92213797591750116970480652180852706466705815198925e26),
|
||||
SC_(0.9e1), SC_(0.9376299285888671875e2), SC_(0.28619599017630076419048218930351610672808471971911e21),
|
||||
SC_(0.9e1), SC_(0.944411773681640625e2), SC_(0.30538356606793385774776392717760624059016600770529e21),
|
||||
SC_(0.9e1), SC_(0.264718536376953125e3), SC_(0.32675149012792009950839328597362709432321349932704e25),
|
||||
SC_(0.9e1), SC_(0.62944732666015625e3), SC_(0.79411750739676620994218584143838991056650844543993e28),
|
||||
SC_(0.9e1), SC_(0.67001715087890625e3), SC_(0.13932396494395279118751516299633800114577839547729e29),
|
||||
SC_(0.9e1), SC_(0.8115838623046875e3), SC_(0.78209357516588915667750630886227046953282003885816e29),
|
||||
SC_(0.9e1), SC_(0.826751708984375e3), SC_(0.9239201438100206122484942895031603534508035207534e29),
|
||||
SC_(0.9e1), SC_(0.915013671875e3), SC_(0.23020188368730794526744784417674030233447879296414e30),
|
||||
SC_(0.9e1), SC_(0.92977703857421875e3), SC_(0.26587057172217180147109231631091242505401497841279e30),
|
||||
SC_(0.9e1), SC_(0.935389892578125e3), SC_(0.28066940992909396296554569662089642014388342016689e30),
|
||||
SC_(0.9e1), SC_(0.93773553466796875e3), SC_(0.2870677681432185184539265574407337379961356759468e30),
|
||||
SC_(0.9e1), SC_(0.9857625732421875e3), SC_(0.4500003405401322163412586784924678900107709701962e30),
|
||||
SC_(0.9e1), SC_(0.99292266845703125e3), SC_(0.48028703540906417924253986480733367446328052415498e30),
|
||||
SC_(0.1e2), SC_(-0.804919189453125e3), SC_(0.11689816296461847274622300874825539661285328959095e33),
|
||||
SC_(0.1e2), SC_(-0.7460263671875e3), SC_(0.54679454280582535200198215910160226619047153251183e32),
|
||||
SC_(0.1e2), SC_(-0.72904595947265625e3), SC_(0.43434081837302238559608884831319578537002297874261e32),
|
||||
SC_(0.1e2), SC_(-0.623236083984375e3), SC_(0.90531705080732310437321262346769305582516409498699e31),
|
||||
SC_(0.1e2), SC_(-0.557931884765625e3), SC_(0.29928184853282382212205807781073913971873952893684e31),
|
||||
SC_(0.1e2), SC_(-0.4430035400390625e3), SC_(0.29807265173628291298939129580674147768362711153657e30),
|
||||
SC_(0.1e2), SC_(-0.383665924072265625e3), SC_(0.70756420528926763608091741538465186246363823788564e29),
|
||||
SC_(0.1e2), SC_(0.9376299285888671875e2), SC_(0.53641701648878869328402154187886529569000541972093e23),
|
||||
SC_(0.1e2), SC_(0.944411773681640625e2), SC_(0.57652451729901027022147781233362208672090049328676e23),
|
||||
SC_(0.1e2), SC_(0.264718536376953125e3), SC_(0.17298324279751374105449100095978732528697456059849e28),
|
||||
SC_(0.1e2), SC_(0.62944732666015625e3), SC_(0.99969892955855027682901459214621192921416240033293e31),
|
||||
SC_(0.1e2), SC_(0.67001715087890625e3), SC_(0.18669702059708370695739115280703586121887901490207e32),
|
||||
SC_(0.1e2), SC_(0.8115838623046875e3), SC_(0.12694603758113437790859235888888381018069026780075e33),
|
||||
SC_(0.1e2), SC_(0.826751708984375e3), SC_(0.15276950578878524322853942670808003516571872263785e33),
|
||||
SC_(0.1e2), SC_(0.915013671875e3), SC_(0.42127347747272206350084241564061602373253483547743e33),
|
||||
SC_(0.1e2), SC_(0.92977703857421875e3), SC_(0.49439813206983222292955141736901537001605526567434e33),
|
||||
SC_(0.1e2), SC_(0.935389892578125e3), SC_(0.52506795789015555507271006606207920041267992294258e33),
|
||||
SC_(0.1e2), SC_(0.93773553466796875e3), SC_(0.5383845389205336603774821335902360432595407417418e33),
|
||||
SC_(0.1e2), SC_(0.9857625732421875e3), SC_(0.88718287878699347854064053369680200599130466268723e33),
|
||||
SC_(0.1e2), SC_(0.99292266845703125e3), SC_(0.95377141623597704470908019348004898122546466610927e33),
|
||||
SC_(0.11e2), SC_(-0.804919189453125e3), SC_(-0.18818569685711019771084718279949279407835364975145e36),
|
||||
SC_(0.11e2), SC_(-0.7460263671875e3), SC_(-0.81583896324899347640769823826628802342599459007862e35),
|
||||
SC_(0.11e2), SC_(-0.72904595947265625e3), SC_(-0.63330287962703711111790462420108580900426293742353e35),
|
||||
SC_(0.11e2), SC_(-0.623236083984375e3), SC_(-0.11284379807813476542599136955709023783640757794916e35),
|
||||
SC_(0.11e2), SC_(-0.557931884765625e3), SC_(-0.33395240744978214895073421867397301877129142707028e34),
|
||||
SC_(0.11e2), SC_(-0.4430035400390625e3), SC_(-0.26408775121319087852943852625927639373812809780785e33),
|
||||
SC_(0.11e2), SC_(-0.383665924072265625e3), SC_(-0.54291810656601189878288220477937246911188498521391e32),
|
||||
SC_(0.11e2), SC_(0.9376299285888671875e2), SC_(0.10053489057481196687076296855379756797368225593143e26),
|
||||
SC_(0.11e2), SC_(0.944411773681640625e2), SC_(0.10883423167744841177736957439483334412283561854401e26),
|
||||
SC_(0.11e2), SC_(0.264718536376953125e3), SC_(0.91577206672391353431978833974641874893100570036399e30),
|
||||
SC_(0.11e2), SC_(0.62944732666015625e3), SC_(0.12584997550011507219817405571418069606411457160603e35),
|
||||
SC_(0.11e2), SC_(0.67001715087890625e3), SC_(0.25017762515677812475654023661074854439693249674989e35),
|
||||
SC_(0.11e2), SC_(0.8115838623046875e3), SC_(0.20605314678159576340073614574689144722841355692387e36),
|
||||
SC_(0.11e2), SC_(0.826751708984375e3), SC_(0.25260305214286551864922726137009996295874170160231e36),
|
||||
SC_(0.11e2), SC_(0.915013671875e3), SC_(0.77093737893405727479156012282524646171889099584724e36),
|
||||
SC_(0.11e2), SC_(0.92977703857421875e3), SC_(0.91935474481359373814770652069446021505623126342922e36),
|
||||
SC_(0.11e2), SC_(0.935389892578125e3), SC_(0.98228090806597754947655769132113085309480225491242e36),
|
||||
SC_(0.11e2), SC_(0.93773553466796875e3), SC_(0.10097188855678660617518870586147923895925111174325e37),
|
||||
SC_(0.11e2), SC_(0.9857625732421875e3), SC_(0.17490943550521460249490073361246584037466880560676e37),
|
||||
SC_(0.11e2), SC_(0.99292266845703125e3), SC_(0.18940329136734281935082032957044303460975085779168e37),
|
||||
SC_(0.12e2), SC_(-0.804919189453125e3), SC_(0.30294598540220804462044524153306777663509970628739e39),
|
||||
SC_(0.12e2), SC_(-0.7460263671875e3), SC_(0.12172627264453841222828991650975850694842130932071e39),
|
||||
SC_(0.12e2), SC_(-0.72904595947265625e3), SC_(0.92340425553097458791203508279141174969141820492299e38),
|
||||
SC_(0.12e2), SC_(-0.623236083984375e3), SC_(0.14065466193476872965593557347378160930420069772452e38),
|
||||
SC_(0.12e2), SC_(-0.557931884765625e3), SC_(0.37263880802028208129069576191917543233991535476065e37),
|
||||
SC_(0.12e2), SC_(-0.4430035400390625e3), SC_(0.23397705973845936510794729346708943708034608906903e36),
|
||||
SC_(0.12e2), SC_(-0.383665924072265625e3), SC_(0.41658278768991111298468308002249529032249010160273e35),
|
||||
SC_(0.12e2), SC_(0.9376299285888671875e2), SC_(0.1884110327970735092254408128261723357492772304494e28),
|
||||
SC_(0.12e2), SC_(0.944411773681640625e2), SC_(0.20544182415774952250997210456061363935901042940234e28),
|
||||
SC_(0.12e2), SC_(0.264718536376953125e3), SC_(0.48480562600268824564698370021815193972032016354896e33),
|
||||
SC_(0.12e2), SC_(0.62944732666015625e3), SC_(0.15842966193994215674176186033328108010563621242497e38),
|
||||
SC_(0.12e2), SC_(0.67001715087890625e3), SC_(0.3352424919079377855427890512067629280453469707889e38),
|
||||
SC_(0.12e2), SC_(0.8115838623046875e3), SC_(0.33445602459725757173093631890694210384349814179179e39),
|
||||
SC_(0.12e2), SC_(0.826751708984375e3), SC_(0.4176766491784391607460244444090637220753635269242e39),
|
||||
SC_(0.12e2), SC_(0.915013671875e3), SC_(0.14108272157517756411117655879591654342259860325597e40),
|
||||
SC_(0.12e2), SC_(0.92977703857421875e3), SC_(0.17095789873049740244186014591319864325495552151212e40),
|
||||
SC_(0.12e2), SC_(0.935389892578125e3), SC_(0.18376197146596820542876788527941003168360783639003e40),
|
||||
SC_(0.12e2), SC_(0.93773553466796875e3), SC_(0.1893686713584800621262558335100385915682586408288e40),
|
||||
SC_(0.12e2), SC_(0.9857625732421875e3), SC_(0.34483639865358422938227666676511723324380657223673e40),
|
||||
SC_(0.12e2), SC_(0.99292266845703125e3), SC_(0.37612354466089752738688053508788073512368471136832e40),
|
||||
SC_(0.14e2), SC_(-0.804919189453125e3), SC_(0.78509349018738235160733032424141654678585448892725e45),
|
||||
SC_(0.14e2), SC_(-0.7460263671875e3), SC_(0.27098354215438353455074292442751387993705409786796e45),
|
||||
SC_(0.14e2), SC_(-0.72904595947265625e3), SC_(0.1963140866469160283587538139069049517916547423808e45),
|
||||
SC_(0.14e2), SC_(-0.623236083984375e3), SC_(0.21852711196938088461903329630489320958358132401565e44),
|
||||
SC_(0.14e2), SC_(-0.557931884765625e3), SC_(0.46397330715580958030299464092581443527478590612547e43),
|
||||
SC_(0.14e2), SC_(-0.4430035400390625e3), SC_(0.18366229244023923479459711102721222723014222612589e42),
|
||||
SC_(0.14e2), SC_(-0.383665924072265625e3), SC_(0.2452623515231201706730966354471863727561067188341e41),
|
||||
SC_(0.14e2), SC_(0.9376299285888671875e2), SC_(0.66162381135477581005495154141263686720850602513354e32),
|
||||
SC_(0.14e2), SC_(0.944411773681640625e2), SC_(0.73191791295179938803853550797406604736335227799687e32),
|
||||
SC_(0.14e2), SC_(0.264718536376953125e3), SC_(0.13586852786445215715633994918623748387323846205265e39),
|
||||
SC_(0.14e2), SC_(0.62944732666015625e3), SC_(0.25107390168196177586150383676878149652976320263345e44),
|
||||
SC_(0.14e2), SC_(0.67001715087890625e3), SC_(0.60197547505130410182245724063086619757439720128054e44),
|
||||
SC_(0.14e2), SC_(0.8115838623046875e3), SC_(0.88116568941558811789182895851999922671272237353138e45),
|
||||
SC_(0.14e2), SC_(0.826751708984375e3), SC_(0.11419377964091862944071723561627426135352077966224e46),
|
||||
SC_(0.14e2), SC_(0.915013671875e3), SC_(0.47247899152452010973538576496340454153898147781107e46),
|
||||
SC_(0.14e2), SC_(0.92977703857421875e3), SC_(0.59115384191612534464910943588501923979781137151048e46),
|
||||
SC_(0.14e2), SC_(0.935389892578125e3), SC_(0.64312408439979544841727996206027907691861399699817e46),
|
||||
SC_(0.14e2), SC_(0.93773553466796875e3), SC_(0.6660743304582574572302805211733148811292236266788e46),
|
||||
SC_(0.14e2), SC_(0.9857625732421875e3), SC_(0.13403312883052399458307052679768402305161676649702e47),
|
||||
SC_(0.14e2), SC_(0.99292266845703125e3), SC_(0.14832551222424115425011658642924351861903344306679e47),
|
||||
SC_(0.17e2), SC_(-0.804919189453125e3), SC_(-0.32753153797495918082003912931285726506061176743964e55),
|
||||
SC_(0.17e2), SC_(-0.7460263671875e3), SC_(-0.90007329480895899941888933327554774003263936965797e54),
|
||||
SC_(0.17e2), SC_(-0.72904595947265625e3), SC_(-0.60853811902080657743899477322061605680407388628644e54),
|
||||
SC_(0.17e2), SC_(-0.623236083984375e3), SC_(-0.42318271990511870201518687815721495653054465600729e53),
|
||||
SC_(0.17e2), SC_(-0.557931884765625e3), SC_(-0.64460717395845550169248667399141161290740045059411e52),
|
||||
SC_(0.17e2), SC_(-0.4430035400390625e3), SC_(-0.12772672712006258369520322740190661939797693301752e51),
|
||||
SC_(0.17e2), SC_(-0.383665924072265625e3), SC_(-0.11079347177294102521393365342021901838709200618124e50),
|
||||
SC_(0.17e2), SC_(0.9376299285888671875e2), SC_(0.43519374656033098836731300879764665651147065558436e39),
|
||||
SC_(0.17e2), SC_(0.944411773681640625e2), SC_(0.49197114845678675190660148652415003678458303172232e39),
|
||||
SC_(0.17e2), SC_(0.264718536376953125e3), SC_(0.20156840106065232860196226242061773336707200599203e47),
|
||||
SC_(0.17e2), SC_(0.62944732666015625e3), SC_(0.50089312969909253100985667585549457957806648188064e53),
|
||||
SC_(0.17e2), SC_(0.67001715087890625e3), SC_(0.14484542322921469021252847142515217054546111055271e54),
|
||||
SC_(0.17e2), SC_(0.8115838623046875e3), SC_(0.37681912627369123156565537575498454914328631548362e55),
|
||||
SC_(0.17e2), SC_(0.826751708984375e3), SC_(0.51623024126169573452382726948052946601408108701071e55),
|
||||
SC_(0.17e2), SC_(0.915013671875e3), SC_(0.2895633337669055248580356708103410190763367894877e56),
|
||||
SC_(0.17e2), SC_(0.92977703857421875e3), SC_(0.3801155621913868324726680029836865596398523401522e56),
|
||||
SC_(0.17e2), SC_(0.935389892578125e3), SC_(0.42106739248936301791031860672266726247277487691351e56),
|
||||
SC_(0.17e2), SC_(0.93773553466796875e3), SC_(0.43938243566475239425230868516223819196786547076179e56),
|
||||
SC_(0.17e2), SC_(0.9857625732421875e3), SC_(0.10270913273877421296093041084504926541868918478653e57),
|
||||
SC_(0.17e2), SC_(0.99292266845703125e3), SC_(0.11615615017858235461324853323128928576441231619921e57),
|
||||
SC_(0.2e2), SC_(-0.804919189453125e3), SC_(0.13664125939696571321627792173825499772854104679616e65),
|
||||
SC_(0.2e2), SC_(-0.7460263671875e3), SC_(0.29895741233874127495469956809930073866421954487847e64),
|
||||
SC_(0.2e2), SC_(-0.72904595947265625e3), SC_(0.18863420002234182908461277048750351649649333505681e64),
|
||||
SC_(0.2e2), SC_(-0.623236083984375e3), SC_(0.81949346219444618862653173904393894590758063374518e62),
|
||||
SC_(0.2e2), SC_(-0.557931884765625e3), SC_(0.89555238442343089813862532910106267260245516404963e61),
|
||||
SC_(0.2e2), SC_(-0.4430035400390625e3), SC_(0.88824671000905057725316145231689664346646310142073e59),
|
||||
SC_(0.2e2), SC_(-0.383665924072265625e3), SC_(0.50047706031281686934185500483975552431695853442504e58),
|
||||
SC_(0.2e2), SC_(0.9376299285888671875e2), SC_(0.28610882481879508349420844543142088727411910854846e46),
|
||||
SC_(0.2e2), SC_(0.944411773681640625e2), SC_(0.33051957004017694649388986947888165210283009384182e46),
|
||||
SC_(0.2e2), SC_(0.264718536376953125e3), SC_(0.29901855151764422494131549882514663732738129348024e55),
|
||||
SC_(0.2e2), SC_(0.62944732666015625e3), SC_(0.99927183168358678754808761757157327216365777144205e62),
|
||||
SC_(0.2e2), SC_(0.67001715087890625e3), SC_(0.34851895441504948247886064678376700332663758737157e63),
|
||||
SC_(0.2e2), SC_(0.8115838623046875e3), SC_(0.16114073154440198981224756860557734867221327596599e65),
|
||||
SC_(0.2e2), SC_(0.826751708984375e3), SC_(0.23336814692664616992187268964892147104007886493032e65),
|
||||
SC_(0.2e2), SC_(0.915013671875e3), SC_(0.17746074449684933227630214006061794066505116427473e66),
|
||||
SC_(0.2e2), SC_(0.92977703857421875e3), SC_(0.24441537589311671035327934989081469154090156736707e66),
|
||||
SC_(0.2e2), SC_(0.935389892578125e3), SC_(0.27568060570403931616024471137057240588227997804305e66),
|
||||
SC_(0.2e2), SC_(0.93773553466796875e3), SC_(0.28984143054751801100983111641098309458943114392562e66),
|
||||
SC_(0.2e2), SC_(0.9857625732421875e3), SC_(0.78705296119546518418045335867325054394580461944723e66),
|
||||
SC_(0.2e2), SC_(0.99292266845703125e3), SC_(0.90963378024910425574275540598584493435224094886741e66),
|
||||
SC_(0.22e2), SC_(-0.804919189453125e3), SC_(0.35410549655517756288894933463443046263916370592399e71),
|
||||
SC_(0.22e2), SC_(-0.7460263671875e3), SC_(0.66552086301142184824540948129935000740737930656653e70),
|
||||
SC_(0.22e2), SC_(-0.72904595947265625e3), SC_(0.40102688572019492592353384325508110499649827819955e70),
|
||||
SC_(0.22e2), SC_(-0.623236083984375e3), SC_(0.12731739462867210769929335621987129698264939626685e69),
|
||||
SC_(0.22e2), SC_(-0.557931884765625e3), SC_(0.1115025363330833283360185086189456351576853382243e68),
|
||||
SC_(0.22e2), SC_(-0.4430035400390625e3), SC_(0.69720842031752011420182341799620826445874423052258e65),
|
||||
SC_(0.22e2), SC_(-0.383665924072265625e3), SC_(0.29463893441421178372847408123132239351850425649941e64),
|
||||
SC_(0.22e2), SC_(0.9376299285888671875e2), SC_(0.1003782827805175100803910479602251404487037389062e51),
|
||||
SC_(0.22e2), SC_(0.944411773681640625e2), SC_(0.11764679244687611821884729264491504501235806639058e51),
|
||||
SC_(0.22e2), SC_(0.264718536376953125e3), SC_(0.8379145950216427011587973312320388548685225349241e60),
|
||||
SC_(0.22e2), SC_(0.62944732666015625e3), SC_(0.15835797942946616484814881691459128287509909270475e69),
|
||||
SC_(0.22e2), SC_(0.67001715087890625e3), SC_(0.62580409500666544589877458136886479113620166141142e69),
|
||||
SC_(0.22e2), SC_(0.8115838623046875e3), SC_(0.42453999544876314526549365053968053544637180614368e71),
|
||||
SC_(0.22e2), SC_(0.826751708984375e3), SC_(0.6380265423616569077424242322963862669375481451879e71),
|
||||
SC_(0.22e2), SC_(0.915013671875e3), SC_(0.594301495455158980571773071367338948278658208606e72),
|
||||
SC_(0.22e2), SC_(0.92977703857421875e3), SC_(0.84515399657972606106321594496701903669902755274213e72),
|
||||
SC_(0.22e2), SC_(0.935389892578125e3), SC_(0.9648090657380372010046820149407771514227791651662e72),
|
||||
SC_(0.22e2), SC_(0.93773553466796875e3), SC_(0.10194620842520108674666279682528872594917790291927e73),
|
||||
SC_(0.22e2), SC_(0.9857625732421875e3), SC_(0.30591405911583021039789993837589816130948550568976e73),
|
||||
SC_(0.22e2), SC_(0.99292266845703125e3), SC_(0.35871405411212380910164537165449077790291815793521e73),
|
||||
SC_(0.35e2), SC_(-0.804919189453125e3), SC_(-0.17265543966226158832481036557708311109606127124495e113),
|
||||
SC_(0.35e2), SC_(-0.7460263671875e3), SC_(-0.12084088507285694356128802551712858887746829960818e112),
|
||||
SC_(0.35e2), SC_(-0.72904595947265625e3), SC_(-0.53979456945200833403000362177034133652140735259381e111),
|
||||
SC_(0.35e2), SC_(-0.623236083984375e3), SC_(-0.22312994224945418486163982657597306470379988285216e109),
|
||||
SC_(0.35e2), SC_(-0.557931884765625e3), SC_(-0.46342142799869242843524507994236576566424214389636e107),
|
||||
SC_(0.35e2), SC_(-0.4430035400390625e3), SC_(-0.1444253157985643701034355053467664611143806193583e104),
|
||||
SC_(0.35e2), SC_(-0.383665924072265625e3), SC_(-0.94088165704338497803214561361931665277258781819532e101),
|
||||
SC_(0.35e2), SC_(0.9376299285888671875e2), SC_(0.34867964417713495790031091331083903141212636834345e80),
|
||||
SC_(0.35e2), SC_(0.944411773681640625e2), SC_(0.44893689818357762545156808608435299085345232424014e80),
|
||||
SC_(0.35e2), SC_(0.264718536376953125e3), SC_(0.21461397992635311594884111369449328695745329042721e96),
|
||||
SC_(0.35e2), SC_(0.62944732666015625e3), SC_(0.31572029620004155645503713456510960829037485118449e109),
|
||||
SC_(0.35e2), SC_(0.67001715087890625e3), SC_(0.28104070338817673160656082690105330768586005825238e110),
|
||||
SC_(0.35e2), SC_(0.8115838623046875e3), SC_(0.23042138656363759346410653632368259132774527275621e113),
|
||||
SC_(0.35e2), SC_(0.826751708984375e3), SC_(0.44054407432627688965463512998107242753350860065516e113),
|
||||
SC_(0.35e2), SC_(0.915013671875e3), SC_(0.15341256810349040686982753469585076844343659132652e115),
|
||||
SC_(0.35e2), SC_(0.92977703857421875e3), SC_(0.26863276202949674855940307716119052117849681722704e115),
|
||||
SC_(0.35e2), SC_(0.935389892578125e3), SC_(0.33162382598046564424135108685347435914117320370668e115),
|
||||
SC_(0.35e2), SC_(0.93773553466796875e3), SC_(0.36200618356985329660106920606060260999032636548302e115),
|
||||
SC_(0.35e2), SC_(0.9857625732421875e3), SC_(0.2079448954791745442630733208937099187119527807451e116),
|
||||
SC_(0.35e2), SC_(0.99292266845703125e3), SC_(0.26789135369462534563475801989659335410281343329047e116),
|
||||
SC_(0.39e2), SC_(-0.804919189453125e3), SC_(-0.11594724610269376675133295994667648916340009156091e126),
|
||||
SC_(0.39e2), SC_(-0.7460263671875e3), SC_(-0.59881631251408557205127311170851509987384503796021e124),
|
||||
SC_(0.39e2), SC_(-0.72904595947265625e3), SC_(-0.24395429686140560929684017855836946012576141303362e124),
|
||||
SC_(0.39e2), SC_(-0.623236083984375e3), SC_(-0.53852586791768825082912263464229497587060927002143e121),
|
||||
SC_(0.39e2), SC_(-0.557931884765625e3), SC_(-0.718321662571676714076170854773512025550058778984e119),
|
||||
SC_(0.39e2), SC_(-0.4430035400390625e3), SC_(-0.88967324101112965016069832261671747302656341584146e115),
|
||||
SC_(0.39e2), SC_(-0.383665924072265625e3), SC_(-0.32602618395821624277606519061217455907925511708347e113),
|
||||
SC_(0.39e2), SC_(0.9376299285888671875e2), SC_(0.42761721847707811157055723429059908203980837805154e89),
|
||||
SC_(0.39e2), SC_(0.944411773681640625e2), SC_(0.56674218278399498664458556235088519034392334042743e89),
|
||||
SC_(0.39e2), SC_(0.264718536376953125e3), SC_(0.16844681844036883180732006970124952352016202896335e107),
|
||||
SC_(0.39e2), SC_(0.62944732666015625e3), SC_(0.79282992531231013164557766874391393793620400228182e121),
|
||||
SC_(0.39e2), SC_(0.67001715087890625e3), SC_(0.90607106164123497973412471364934371536090344651122e122),
|
||||
SC_(0.39e2), SC_(0.8115838623046875e3), SC_(0.15992937684273997816389764191323771941192143088137e126),
|
||||
SC_(0.39e2), SC_(0.826751708984375e3), SC_(0.32927849440442967893014023065851364647504023336502e126),
|
||||
SC_(0.39e2), SC_(0.915013671875e3), SC_(0.17204948941327849876886583966673548861348150480047e128),
|
||||
SC_(0.39e2), SC_(0.92977703857421875e3), SC_(0.32118669970741829532274318795611234943703447184318e128),
|
||||
SC_(0.39e2), SC_(0.935389892578125e3), SC_(0.40616281816935655137092990493617134292648729550904e128),
|
||||
SC_(0.39e2), SC_(0.93773553466796875e3), SC_(0.44783848423962576280686207253637725919398807964991e128),
|
||||
SC_(0.39e2), SC_(0.9857625732421875e3), SC_(0.31414121592483655223358586186570433075795817612805e129),
|
||||
SC_(0.39e2), SC_(0.99292266845703125e3), SC_(0.41658940895066107629573195609678148243112628749343e129),
|
||||
SC_(0.45e2), SC_(-0.804919189453125e3), SC_(-0.20177652617081516828796062978793212005967378239278e145),
|
||||
SC_(0.45e2), SC_(-0.7460263671875e3), SC_(-0.66054362280026053027757226707948088361626920155376e143),
|
||||
SC_(0.45e2), SC_(-0.72904595947265625e3), SC_(-0.23437762835351403192537934629393907610069449299426e143),
|
||||
SC_(0.45e2), SC_(-0.623236083984375e3), SC_(-0.20191234366700387819456850806321219529162264687134e140),
|
||||
SC_(0.45e2), SC_(-0.557931884765625e3), SC_(-0.13861566456362123983928798104717105733858371444012e138),
|
||||
SC_(0.45e2), SC_(-0.4430035400390625e3), SC_(-0.4301086017862310895138269448383055939513087622341e133),
|
||||
SC_(0.45e2), SC_(-0.383665924072265625e3), SC_(-0.66494301129444185596750408117972477105468841816721e130),
|
||||
SC_(0.45e2), SC_(0.9376299285888671875e2), SC_(0.18333784965891816055634592173380010722775781361257e103),
|
||||
SC_(0.45e2), SC_(0.944411773681640625e2), SC_(0.25377609054299635959133533485034878034770237870855e103),
|
||||
SC_(0.45e2), SC_(0.264718536376953125e3), SC_(0.37031983921392566542882397192210777179841273988766e123),
|
||||
SC_(0.45e2), SC_(0.62944732666015625e3), SC_(0.31548585244541078317730225584275069164749251087912e140),
|
||||
SC_(0.45e2), SC_(0.67001715087890625e3), SC_(0.52449010750697955051865066615853016859407067184864e141),
|
||||
SC_(0.45e2), SC_(0.8115838623046875e3), SC_(0.29243310998128485711320487541829024461612289350623e145),
|
||||
SC_(0.45e2), SC_(0.826751708984375e3), SC_(0.67284470764543020205762565613634748045278625515089e145),
|
||||
SC_(0.45e2), SC_(0.915013671875e3), SC_(0.64615138415071315639177660571353142846045239347149e147),
|
||||
SC_(0.45e2), SC_(0.92977703857421875e3), SC_(0.13278465208846749403260592878660521765302807431305e148),
|
||||
SC_(0.45e2), SC_(0.935389892578125e3), SC_(0.17409022045455533776480508364766372898141301944389e148),
|
||||
SC_(0.45e2), SC_(0.93773553466796875e3), SC_(0.19485974768216439208285778668083407454632111197255e148),
|
||||
SC_(0.45e2), SC_(0.9857625732421875e3), SC_(0.18445192865916870046874911219161320468109838186066e149),
|
||||
SC_(0.45e2), SC_(0.99292266845703125e3), SC_(0.25546176490459737663363913718086950038159915308274e149),
|
||||
SC_(0.51e2), SC_(-0.804919189453125e3), SC_(-0.35113067934471903608940090834892095681626290434468e164),
|
||||
SC_(0.51e2), SC_(-0.7460263671875e3), SC_(-0.72861035303836242811895086171124040853873378556859e162),
|
||||
SC_(0.51e2), SC_(-0.72904595947265625e3), SC_(-0.22516927484966890282733144933534878130289199412883e162),
|
||||
SC_(0.51e2), SC_(-0.623236083984375e3), SC_(-0.75700551095940008948839545651408145857924835535314e158),
|
||||
SC_(0.51e2), SC_(-0.557931884765625e3), SC_(-0.26747336473574897356349179458053032541482550593711e156),
|
||||
SC_(0.51e2), SC_(-0.4430035400390625e3), SC_(-0.20791502822466935421380862320061247482854365500361e151),
|
||||
SC_(0.51e2), SC_(-0.383665924072265625e3), SC_(-0.13560110864020767509838384997192616330691476967023e148),
|
||||
SC_(0.51e2), SC_(0.9376299285888671875e2), SC_(0.7844280896526308516074269853664693048016422885788e116),
|
||||
SC_(0.51e2), SC_(0.944411773681640625e2), SC_(0.11340516612470737945168942456374532537814010961263e117),
|
||||
SC_(0.51e2), SC_(0.264718536376953125e3), SC_(0.8139158117208128107600789052906528734475559194321e139),
|
||||
SC_(0.51e2), SC_(0.62944732666015625e3), SC_(0.12553360744823564136379193666030734806903596181629e159),
|
||||
SC_(0.51e2), SC_(0.67001715087890625e3), SC_(0.30359521798851670232517253916274343728895102603204e160),
|
||||
SC_(0.51e2), SC_(0.8115838623046875e3), SC_(0.53470343158952394904110199377387174554239573865167e164),
|
||||
SC_(0.51e2), SC_(0.826751708984375e3), SC_(0.13748486014792215950745539075543408808157303622984e165),
|
||||
SC_(0.51e2), SC_(0.915013671875e3), SC_(0.24266426827928055351392414540851775403703580214217e167),
|
||||
SC_(0.51e2), SC_(0.92977703857421875e3), SC_(0.54894541709901192178430511542775801375289469157154e167),
|
||||
SC_(0.51e2), SC_(0.935389892578125e3), SC_(0.74617320843153667181219888046018738983602740835413e167),
|
||||
SC_(0.51e2), SC_(0.93773553466796875e3), SC_(0.84784013234216460630444016007134974974311144452262e167),
|
||||
SC_(0.51e2), SC_(0.9857625732421875e3), SC_(0.10830124161130178144242398936552356375378307471608e169),
|
||||
SC_(0.51e2), SC_(0.99292266845703125e3), SC_(0.15665189838824983265666665985359283999947248743347e169),
|
||||
SC_(0.56e2), SC_(-0.804919189453125e3), SC_(0.37956952705673899523586509921906408164373807674842e180),
|
||||
SC_(0.56e2), SC_(-0.7460263671875e3), SC_(0.53865761270243895218660088472139211384451502688444e178),
|
||||
SC_(0.56e2), SC_(-0.72904595947265625e3), SC_(0.14836291945588844494615487801685475362266135705863e178),
|
||||
SC_(0.56e2), SC_(-0.623236083984375e3), SC_(0.2277004071341410372485292551385366645114538651319e174),
|
||||
SC_(0.56e2), SC_(-0.557931884765625e3), SC_(0.46254239457392849536097636343005820458364173895835e171),
|
||||
SC_(0.56e2), SC_(-0.4430035400390625e3), SC_(0.11344322644944075407583022851137024031178340092676e166),
|
||||
SC_(0.56e2), SC_(-0.383665924072265625e3), SC_(0.3604029445291060010597333365239904139445634244682e162),
|
||||
SC_(0.56e2), SC_(0.9376299285888671875e2), SC_(0.17917836479447994128429607949378029035674025577673e128),
|
||||
SC_(0.56e2), SC_(0.944411773681640625e2), SC_(0.26860211927393157242420521317036063000474023936209e128),
|
||||
SC_(0.56e2), SC_(0.264718536376953125e3), SC_(0.33793221965866674010877371813884434555285225328484e153),
|
||||
SC_(0.56e2), SC_(0.62944732666015625e3), SC_(0.3967908983994242852488795641829100505059948945886e174),
|
||||
SC_(0.56e2), SC_(0.67001715087890625e3), SC_(0.13114336111849403294532365713586373376802346102155e176),
|
||||
SC_(0.56e2), SC_(0.8115838623046875e3), SC_(0.60234123418783718853851595976503029458229189410396e180),
|
||||
SC_(0.56e2), SC_(0.826751708984375e3), SC_(0.16990109127454550637210380678211174380489674917725e181),
|
||||
SC_(0.56e2), SC_(0.915013671875e3), SC_(0.49799501294713322660639045532203723491746004194747e183),
|
||||
SC_(0.56e2), SC_(0.92977703857421875e3), SC_(0.12204125317946036746710422027579851417765551382392e184),
|
||||
SC_(0.56e2), SC_(0.935389892578125e3), SC_(0.17095713176585659186454296245218656651525776780725e184),
|
||||
SC_(0.56e2), SC_(0.93773553466796875e3), SC_(0.19669819452346534508628039944949105246308228599223e184),
|
||||
SC_(0.56e2), SC_(0.9857625732421875e3), SC_(0.32254166162174546082031232457620847112857288236855e185),
|
||||
SC_(0.56e2), SC_(0.99292266845703125e3), SC_(0.48373153428656361382291434304002503158410721745942e185),
|
||||
SC_(0.57e2), SC_(-0.804919189453125e3), SC_(-0.61101918351066762254837696533065612479073827625339e183),
|
||||
SC_(0.57e2), SC_(-0.7460263671875e3), SC_(-0.80366512793162060755260340674092236229261177996538e181),
|
||||
SC_(0.57e2), SC_(-0.72904595947265625e3), SC_(-0.21631537718132322785026887852553957902317657529606e181),
|
||||
SC_(0.57e2), SC_(-0.623236083984375e3), SC_(-0.28380175897994405792364081835185957992965246876733e177),
|
||||
SC_(0.57e2), SC_(-0.557931884765625e3), SC_(-0.51608787018272790263523340429339097513443327878663e174),
|
||||
SC_(0.57e2), SC_(-0.4430035400390625e3), SC_(-0.10049715947268959326175464756561482222757046735464e169),
|
||||
SC_(0.57e2), SC_(-0.383665924072265625e3), SC_(-0.27649604314284126019945358499982753402436545672245e165),
|
||||
SC_(0.57e2), SC_(0.9376299285888671875e2), SC_(0.33493248264114118064961943143309153369336052283655e130),
|
||||
SC_(0.57e2), SC_(0.944411773681640625e2), SC_(0.50574435912900833357638094070860620693483455185529e130),
|
||||
SC_(0.57e2), SC_(0.264718536376953125e3), SC_(0.17884232906826524447185414852294643372537962801178e156),
|
||||
SC_(0.57e2), SC_(0.62944732666015625e3), SC_(0.49948263676019952928838146649270004499157772826431e177),
|
||||
SC_(0.57e2), SC_(0.67001715087890625e3), SC_(0.17572564071949802842269744081820746771877926177782e179),
|
||||
SC_(0.57e2), SC_(0.8115838623046875e3), SC_(0.97765928672497151482926812987129698670202679297201e183),
|
||||
SC_(0.57e2), SC_(0.826751708984375e3), SC_(0.28092052643116613825516813603329050857884446218931e184),
|
||||
SC_(0.57e2), SC_(0.915013671875e3), SC_(0.91131401181535063754738627124893068439463063019439e186),
|
||||
SC_(0.57e2), SC_(0.92977703857421875e3), SC_(0.22693495921347868926954075794146960262148934686144e187),
|
||||
SC_(0.57e2), SC_(0.935389892578125e3), SC_(0.31981291103834949752057837490286659313504601339537e187),
|
||||
SC_(0.57e2), SC_(0.93773553466796875e3), SC_(0.3688900263643316286828693487885916009055229488776e187),
|
||||
SC_(0.57e2), SC_(0.9857625732421875e3), SC_(0.63588067294915941815083020546700816691123140834824e188),
|
||||
SC_(0.57e2), SC_(0.99292266845703125e3), SC_(0.96058872887019210683457681330939837205699369069038e188),
|
||||
SC_(0.58e2), SC_(-0.804919189453125e3), SC_(0.98359886093734917799148104471362134113448742301714e186),
|
||||
SC_(0.58e2), SC_(-0.7460263671875e3), SC_(0.11990493446843606374834114171768752791672975254446e185),
|
||||
SC_(0.58e2), SC_(-0.72904595947265625e3), SC_(0.31539079003887667778314531807612639455207724902675e184),
|
||||
SC_(0.58e2), SC_(-0.623236083984375e3), SC_(0.35372503594266224135242856515913702867323328261754e180),
|
||||
SC_(0.58e2), SC_(-0.557931884765625e3), SC_(0.57583102639847172932211962567906075469963542052781e177),
|
||||
SC_(0.58e2), SC_(-0.4430035400390625e3), SC_(0.89028262292728150610074140793563782680236919953946e171),
|
||||
SC_(0.58e2), SC_(-0.383665924072265625e3), SC_(0.21212313385377011281086353425598128241401586598077e168),
|
||||
SC_(0.58e2), SC_(0.9376299285888671875e2), SC_(0.62604280620315333688059710381693364286527097504684e132),
|
||||
SC_(0.58e2), SC_(0.944411773681640625e2), SC_(0.95219979030929997425749816310432879664361450597778e132),
|
||||
SC_(0.58e2), SC_(0.264718536376953125e3), SC_(0.94647234913352100793292091066282848088891601986906e158),
|
||||
SC_(0.58e2), SC_(0.62944732666015625e3), SC_(0.62875078668132942835299336264682658691294193188921e180),
|
||||
SC_(0.58e2), SC_(0.67001715087890625e3), SC_(0.23546343591932925637627633040847742798191272458582e182),
|
||||
SC_(0.58e2), SC_(0.8115838623046875e3), SC_(0.1586836332975899142098791524978601596019926315731e187),
|
||||
SC_(0.58e2), SC_(0.826751708984375e3), SC_(0.4644836819071084866920807074412876527322435540979e187),
|
||||
SC_(0.58e2), SC_(0.915013671875e3), SC_(0.16676727889331262695178791842169909031457948784922e190),
|
||||
SC_(0.58e2), SC_(0.92977703857421875e3), SC_(0.4219839159500762095101501614050659421526810441788e190),
|
||||
SC_(0.58e2), SC_(0.935389892578125e3), SC_(0.59828003988949705942467519636630498279885402269671e190),
|
||||
SC_(0.58e2), SC_(0.93773553466796875e3), SC_(0.6918201486186995412987998601049879246333891924841e190),
|
||||
SC_(0.58e2), SC_(0.9857625732421875e3), SC_(0.12536179671332495944243061484163599674602312949226e192),
|
||||
SC_(0.58e2), SC_(0.99292266845703125e3), SC_(0.19075255025241690115123922486625852876773950080745e192),
|
||||
SC_(0.63e2), SC_(-0.804919189453125e3), SC_(-0.10632339781549610479619041406969505999094943001127e203),
|
||||
SC_(0.63e2), SC_(-0.7460263671875e3), SC_(-0.88642268599629660190193212265296202307985906354271e200),
|
||||
SC_(0.63e2), SC_(-0.72904595947265625e3), SC_(-0.20780258561878800838820505487610226573992568239933e200),
|
||||
SC_(0.63e2), SC_(-0.623236083984375e3), SC_(-0.10639249520755456192441242211860915411315791499976e196),
|
||||
SC_(0.63e2), SC_(-0.557931884765625e3), SC_(-0.99573011685276296405964197038004635064052319284641e192),
|
||||
SC_(0.63e2), SC_(-0.4430035400390625e3), SC_(-0.48571536473640903389946459864193429311269021644027e186),
|
||||
SC_(0.63e2), SC_(-0.383665924072265625e3), SC_(-0.56371743060385144846172065591557429748970112940914e182),
|
||||
SC_(0.63e2), SC_(0.9376299285888671875e2), SC_(0.14271302095518395281543621141977089654954772619788e144),
|
||||
SC_(0.63e2), SC_(0.944411773681640625e2), SC_(0.22508389703746523206446686216061289081224009447363e144),
|
||||
SC_(0.63e2), SC_(0.264718536376953125e3), SC_(0.39287053618749596805247838834868920108072746443261e172),
|
||||
SC_(0.63e2), SC_(0.62944732666015625e3), SC_(0.19872890857509752124510053434485063729806672066544e196),
|
||||
SC_(0.63e2), SC_(0.67001715087890625e3), SC_(0.10170865885145417099920546695659459436546383064557e198),
|
||||
SC_(0.63e2), SC_(0.8115838623046875e3), SC_(0.17875171562625846347044457253137830450493155571305e203),
|
||||
SC_(0.63e2), SC_(0.826751708984375e3), SC_(0.57398511841594632428896306873234439485078800626987e203),
|
||||
SC_(0.63e2), SC_(0.915013671875e3), SC_(0.34223224444163024879350378835610921837107268568578e206),
|
||||
SC_(0.63e2), SC_(0.92977703857421875e3), SC_(0.93813340474969400259457231849952645213403537063766e206),
|
||||
SC_(0.63e2), SC_(0.935389892578125e3), SC_(0.13707031097909198997249615373069943591630589477967e207),
|
||||
SC_(0.63e2), SC_(0.93773553466796875e3), SC_(0.16049849565534916612881402821512234443315362144539e207),
|
||||
SC_(0.63e2), SC_(0.9857625732421875e3), SC_(0.37334450988860541714846867055901320093308859706429e208),
|
||||
SC_(0.63e2), SC_(0.99292266845703125e3), SC_(0.58902181682496407079087992188679937502927943188616e208),
|
||||
SC_(0.64e2), SC_(-0.804919189453125e3), SC_(0.17115516418393134930956957812660695576555555762758e206),
|
||||
SC_(0.64e2), SC_(-0.7460263671875e3), SC_(0.13225145321763463912506947704427473546594227919316e204),
|
||||
SC_(0.64e2), SC_(-0.72904595947265625e3), SC_(0.30297731266319142519300755555505275478042104969272e203),
|
||||
SC_(0.64e2), SC_(-0.623236083984375e3), SC_(0.13260452858231441701364025090498088686052853448746e199),
|
||||
SC_(0.64e2), SC_(-0.557931884765625e3), SC_(0.11109867155607531886714022377600211420414450985886e196),
|
||||
SC_(0.64e2), SC_(-0.4430035400390625e3), SC_(0.43027816705124422567335810872343924647776816168804e189),
|
||||
SC_(0.64e2), SC_(-0.383665924072265625e3), SC_(0.43246575293235977119550453324173254248977085615388e185),
|
||||
SC_(0.64e2), SC_(0.9376299285888671875e2), SC_(0.26666169562221769162394467872454407158823797408949e146),
|
||||
SC_(0.64e2), SC_(0.944411773681640625e2), SC_(0.42363701592310910625385021135765655947792198743379e146),
|
||||
SC_(0.64e2), SC_(0.264718536376953125e3), SC_(0.20790668653430943824657625408670573026507147506956e175),
|
||||
SC_(0.64e2), SC_(0.62944732666015625e3), SC_(0.25015886856901675365191238194104964033185766836862e199),
|
||||
SC_(0.64e2), SC_(0.67001715087890625e3), SC_(0.13628352758104430128024379960258832981315670559497e201),
|
||||
SC_(0.64e2), SC_(0.8115838623046875e3), SC_(0.29013013909125825894222647618781410860190657751511e206),
|
||||
SC_(0.64e2), SC_(0.826751708984375e3), SC_(0.94904261445892845427164871048618979106779458453012e206),
|
||||
SC_(0.64e2), SC_(0.915013671875e3), SC_(0.62627080118909857764651282371070544817106870626377e209),
|
||||
SC_(0.64e2), SC_(0.92977703857421875e3), SC_(0.17444462292196609464011437538057068543663586540673e210),
|
||||
SC_(0.64e2), SC_(0.935389892578125e3), SC_(0.2564191346937588459943377158334215703301569930735e210),
|
||||
SC_(0.64e2), SC_(0.93773553466796875e3), SC_(0.30099950210351799644573209378329679609266360231058e210),
|
||||
SC_(0.64e2), SC_(0.9857625732421875e3), SC_(0.7360342283709939198893572318455103257992843130489e211),
|
||||
SC_(0.64e2), SC_(0.99292266845703125e3), SC_(0.11696688542326119628103847394518779891392342956315e212),
|
||||
SC_(0.67e2), SC_(-0.804919189453125e3), SC_(-0.71395604865066606122013699661891426203463873068701e215),
|
||||
SC_(0.67e2), SC_(-0.7460263671875e3), SC_(-0.439214716391687364187564024021732580606512402522e213),
|
||||
SC_(0.67e2), SC_(-0.72904595947265625e3), SC_(-0.93904227402788407947934394389327512970670916128791e212),
|
||||
SC_(0.67e2), SC_(-0.623236083984375e3), SC_(-0.25674209768421442693190102856604340847503916248831e208),
|
||||
SC_(0.67e2), SC_(-0.557931884765625e3), SC_(-0.15431436217922364421260050431856648098623138071202e205),
|
||||
SC_(0.67e2), SC_(-0.4430035400390625e3), SC_(-0.29911973822576646623652589847208017875520526334749e198),
|
||||
SC_(0.67e2), SC_(-0.383665924072265625e3), SC_(-0.19526015822885353474843208279944006332888244454282e194),
|
||||
SC_(0.67e2), SC_(0.9376299285888671875e2), SC_(0.17390093432109562491103911511920483031011929481849e153),
|
||||
SC_(0.67e2), SC_(0.944411773681640625e2), SC_(0.28235446461762290115209086851319733390024540548019e153),
|
||||
SC_(0.67e2), SC_(0.264718536376953125e3), SC_(0.30811073596496146740945598370500903220318751173999e183),
|
||||
SC_(0.67e2), SC_(0.62944732666015625e3), SC_(0.498973159123135317026153053869666153823987778347e208),
|
||||
SC_(0.67e2), SC_(0.67001715087890625e3), SC_(0.3278662999965262740459597303725252570646839606698e210),
|
||||
SC_(0.67e2), SC_(0.8115838623046875e3), SC_(0.12405627888491721174744514866737147152869324775397e216),
|
||||
SC_(0.67e2), SC_(0.826751708984375e3), SC_(0.42898198132773354897094247581039524281956225063702e216),
|
||||
SC_(0.67e2), SC_(0.915013671875e3), SC_(0.3837817535891570776096316064925826289234604649913e219),
|
||||
SC_(0.67e2), SC_(0.92977703857421875e3), SC_(0.11215923554489890999502780719902857630724401847727e220),
|
||||
SC_(0.67e2), SC_(0.935389892578125e3), SC_(0.16786882000412698244055579620069098918136636351948e220),
|
||||
SC_(0.67e2), SC_(0.93773553466796875e3), SC_(0.19854032506834645795880992848204146407286886570974e220),
|
||||
SC_(0.67e2), SC_(0.9857625732421875e3), SC_(0.56397700344853850069466092015119332034498084181404e221),
|
||||
SC_(0.67e2), SC_(0.99292266845703125e3), SC_(0.91591725002034144260314292567223030779705284774582e221),
|
||||
SC_(0.68e2), SC_(-0.804919189453125e3), SC_(0.11492944165481977844160639042749889711435705439192e219),
|
||||
SC_(0.68e2), SC_(-0.7460263671875e3), SC_(0.65529207072689878516628373246771524546998394796728e216),
|
||||
SC_(0.68e2), SC_(-0.72904595947265625e3), SC_(0.13691236470932295418206009271231802321826433996401e216),
|
||||
SC_(0.68e2), SC_(-0.623236083984375e3), SC_(0.31999427611473638064153349246682256767532212572302e211),
|
||||
SC_(0.68e2), SC_(-0.557931884765625e3), SC_(0.1721752728616940687565723581862597609692534907115e208),
|
||||
SC_(0.68e2), SC_(-0.4430035400390625e3), SC_(0.26497695928277797274126269348797127034206387419765e201),
|
||||
SC_(0.68e2), SC_(-0.383665924072265625e3), SC_(0.14979523193992880308778135191580896285724901609253e197),
|
||||
SC_(0.68e2), SC_(0.9376299285888671875e2), SC_(0.32486210198364986836850518198819815917013154840805e155),
|
||||
SC_(0.68e2), SC_(0.944411773681640625e2), SC_(0.53130717007794880022412938335190211916976004706358e155),
|
||||
SC_(0.68e2), SC_(0.264718536376953125e3), SC_(0.16304722685276499354792918086631605049027512979648e186),
|
||||
SC_(0.68e2), SC_(0.62944732666015625e3), SC_(0.62810152575355789173710546297818953525375445861782e211),
|
||||
SC_(0.68e2), SC_(0.67001715087890625e3), SC_(0.43931930018461310588579182708322391145380014657504e213),
|
||||
SC_(0.68e2), SC_(0.8115838623046875e3), SC_(0.20135390598861294342717207643575046227436307960836e219),
|
||||
SC_(0.68e2), SC_(0.826751708984375e3), SC_(0.70928840597252373257415593809153908579367912600248e219),
|
||||
SC_(0.68e2), SC_(0.915013671875e3), SC_(0.70230300036076744196859829023426726976063282233909e222),
|
||||
SC_(0.68e2), SC_(0.92977703857421875e3), SC_(0.2085580812121490632054276902743441722437005132514e223),
|
||||
SC_(0.68e2), SC_(0.935389892578125e3), SC_(0.31403357047962017949167805427442757459524063192189e223),
|
||||
SC_(0.68e2), SC_(0.93773553466796875e3), SC_(0.37234244977852621303836114362570239474544522838737e223),
|
||||
SC_(0.68e2), SC_(0.9857625732421875e3), SC_(0.11118565108245626237683701654760798812770117180759e225),
|
||||
SC_(0.68e2), SC_(0.99292266845703125e3), SC_(0.18188081940210288468029442085277750466942046125126e225),
|
||||
SC_(0.69e2), SC_(-0.804919189453125e3), SC_(-0.1850081162399338654500028296297913252183226453783e222),
|
||||
SC_(0.69e2), SC_(-0.7460263671875e3), SC_(-0.97767059274089595678968982337826854278140139586519e219),
|
||||
SC_(0.69e2), SC_(-0.72904595947265625e3), SC_(-0.19961804161143040928554705782175334155063670416805e219),
|
||||
SC_(0.69e2), SC_(-0.623236083984375e3), SC_(-0.39882904216104119883607723276479909045844467958239e214),
|
||||
SC_(0.69e2), SC_(-0.557931884765625e3), SC_(-0.19210316224226509857981603548527956113322666380888e211),
|
||||
SC_(0.69e2), SC_(-0.4430035400390625e3), SC_(-0.23473078169771562662136461616843138538409966193101e204),
|
||||
SC_(0.69e2), SC_(-0.383665924072265625e3), SC_(-0.11491609678618516149736741904351620655468528386497e200),
|
||||
SC_(0.69e2), SC_(0.9376299285888671875e2), SC_(0.60683580626155093065325198848663480816576016092558e157),
|
||||
SC_(0.69e2), SC_(0.944411773681640625e2), SC_(0.99970547300737778074794585861930502873180772144862e157),
|
||||
SC_(0.69e2), SC_(0.264718536376953125e3), SC_(0.86281343445478761898014189584430395982291880632205e188),
|
||||
SC_(0.69e2), SC_(0.62944732666015625e3), SC_(0.79064579216384384919861590442204758056478775930199e214),
|
||||
SC_(0.69e2), SC_(0.67001715087890625e3), SC_(0.58865834185481932389898790561772677853802379658932e216),
|
||||
SC_(0.69e2), SC_(0.8115838623046875e3), SC_(0.32681428977081852902063701892528533163973331914428e222),
|
||||
SC_(0.69e2), SC_(0.826751708984375e3), SC_(0.11727524620517137714481833672797036884220596207432e223),
|
||||
SC_(0.69e2), SC_(0.915013671875e3), SC_(0.1285181499939382408174721290089724705670081991561e226),
|
||||
SC_(0.69e2), SC_(0.92977703857421875e3), SC_(0.38780977658427262634355280276612655888568370486454e226),
|
||||
SC_(0.69e2), SC_(0.935389892578125e3), SC_(0.58746482535419337038893161712202335100520637411516e226),
|
||||
SC_(0.69e2), SC_(0.93773553466796875e3), SC_(0.69829049096108586661576816358605949519674563343367e226),
|
||||
SC_(0.69e2), SC_(0.9857625732421875e3), SC_(0.21919763695005329034056321076749362840532324690225e228),
|
||||
SC_(0.69e2), SC_(0.99292266845703125e3), SC_(0.36117472060917448197562379204160182702204274274195e228),
|
||||
};
|
||||
#undef SC_
|
||||
|
285
test/laguerre2.ipp
Normal file
@ -0,0 +1,285 @@
|
||||
#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
|
||||
static const boost::array<boost::array<T, 3>, 280> laguerre2 = {
|
||||
SC_(0.5e1), SC_(0.9754039764404296875e2), SC_(-0.56218428868911115998451316426215010600803852349048e8),
|
||||
SC_(0.5e1), SC_(0.12698681640625e3), SC_(-0.2243354877625806499089339248835065869040287604245e9),
|
||||
SC_(0.5e1), SC_(0.1354770050048828125e3), SC_(-0.31418973293934559300911242611564538290439848722478e9),
|
||||
SC_(0.5e1), SC_(0.1883819732666015625e3), SC_(-0.17256344438562512861154328485542977773202418102338e10),
|
||||
SC_(0.5e1), SC_(0.2210340576171875e3), SC_(-0.39170586692926680364193521563384606561329196831404e10),
|
||||
SC_(0.5e1), SC_(0.27849822998046875e3), SC_(-0.12743797194803555297871516510157023166259117561797e11),
|
||||
SC_(0.5e1), SC_(0.30816705322265625e3), SC_(-0.21330001890239721242857731991140245635183835676285e11),
|
||||
SC_(0.5e1), SC_(0.5468814697265625e3), SC_(-0.38928352555423736374909603306210170085670252415611e12),
|
||||
SC_(0.5e1), SC_(0.5472205810546875e3), SC_(-0.39050320967058708332723880470821630124002299400132e12),
|
||||
SC_(0.5e1), SC_(0.6323592529296875e3), SC_(-0.8097387851220286833483200510030936982898650914701e12),
|
||||
SC_(0.5e1), SC_(0.81472369384765625e3), SC_(-0.29004794312410106580901353153584987792805041014836e13),
|
||||
SC_(0.5e1), SC_(0.835008544921875e3), SC_(-0.32824640180206380842810590985413965806061220575884e13),
|
||||
SC_(0.5e1), SC_(0.90579193115234375e3), SC_(-0.49421323240476384503475902217971923134518824327159e13),
|
||||
SC_(0.5e1), SC_(0.9133758544921875e3), SC_(-0.51537136874727263493269087352302138644536549927366e13),
|
||||
SC_(0.5e1), SC_(0.9575068359375e3), SC_(-0.65333402285178696166233025823588675962128036189824e13),
|
||||
SC_(0.5e1), SC_(0.96488848876953125e3), SC_(-0.67904577991104770306176706554532355404413293600378e13),
|
||||
SC_(0.5e1), SC_(0.9676949462890625e3), SC_(-0.68903095684447650874743766361869788199054585412876e13),
|
||||
SC_(0.5e1), SC_(0.9688677978515625e3), SC_(-0.69323852072435892067304941218115151610034557760898e13),
|
||||
SC_(0.5e1), SC_(0.99288128662109375e3), SC_(-0.78400756116163888448805990221667549169323386803558e13),
|
||||
SC_(0.5e1), SC_(0.9964613037109375e3), SC_(-0.79831715395647963750699081595768764433417262009011e13),
|
||||
SC_(0.6e1), SC_(0.9754039764404296875e2), SC_(0.80820995722555766966204481326428921093819853380883e9),
|
||||
SC_(0.6e1), SC_(0.12698681640625e3), SC_(0.43287285333593211699487383676400548034517465653989e10),
|
||||
SC_(0.6e1), SC_(0.1354770050048828125e3), SC_(0.65078719322668723671436292885961437403753159577959e10),
|
||||
SC_(0.6e1), SC_(0.1883819732666015625e3), SC_(0.50975971206548972048503974573840505796401940705308e11),
|
||||
SC_(0.6e1), SC_(0.2210340576171875e3), SC_(0.13704228670315682904098855918609456694715553605731e12),
|
||||
SC_(0.6e1), SC_(0.27849822998046875e3), SC_(0.56796012600833411397117536544899859778691289306697e12),
|
||||
SC_(0.6e1), SC_(0.30816705322265625e3), SC_(0.10561318402049538938483073960821297722447423948919e13),
|
||||
SC_(0.6e1), SC_(0.5468814697265625e3), SC_(0.34765288907987505446684019181571310232694381424255e14),
|
||||
SC_(0.6e1), SC_(0.5472205810546875e3), SC_(0.34896286395332650547095052626160857783947143332365e14),
|
||||
SC_(0.6e1), SC_(0.6323592529296875e3), SC_(0.83851035075753307874674729684024391015233495095035e14),
|
||||
SC_(0.6e1), SC_(0.81472369384765625e3), SC_(0.38851567401648686934604173193933429726823924901636e15),
|
||||
SC_(0.6e1), SC_(0.835008544921875e3), SC_(0.45077984162776358272899308358214843622672411937698e15),
|
||||
SC_(0.6e1), SC_(0.90579193115234375e3), SC_(0.73700705849391831486587833923818658629022423687651e15),
|
||||
SC_(0.6e1), SC_(0.9133758544921875e3), SC_(0.77507405395421988441046439866170936792437945158589e15),
|
||||
SC_(0.6e1), SC_(0.9575068359375e3), SC_(0.10306131640131364207923517549718197693249532864712e16),
|
||||
SC_(0.6e1), SC_(0.96488848876953125e3), SC_(0.10795269882491233868704393921117749304908016202882e16),
|
||||
SC_(0.6e1), SC_(0.9676949462890625e3), SC_(0.10986241099950023947147288133858596641922819961585e16),
|
||||
SC_(0.6e1), SC_(0.9688677978515625e3), SC_(0.11066879989104805588335103036958066630483588267248e16),
|
||||
SC_(0.6e1), SC_(0.99288128662109375e3), SC_(0.12829707187512957309933510816037300428272415242332e16),
|
||||
SC_(0.6e1), SC_(0.9964613037109375e3), SC_(0.13111507527148485594511524621819926397653608283432e16),
|
||||
SC_(0.7e1), SC_(0.9754039764404296875e2), SC_(-0.97127257986443053526417273414388194974570607385935e10),
|
||||
SC_(0.7e1), SC_(0.12698681640625e3), SC_(-0.70295995953992755265946027355243029063331213138355e11),
|
||||
SC_(0.7e1), SC_(0.1354770050048828125e3), SC_(-0.11359707497453571901517561189586228142270903451764e12),
|
||||
SC_(0.7e1), SC_(0.1883819732666015625e3), SC_(-0.12757018018175550435561074775586631022961625260251e13),
|
||||
SC_(0.7e1), SC_(0.2210340576171875e3), SC_(-0.40694229451399857384340512241235666223436876850873e13),
|
||||
SC_(0.7e1), SC_(0.27849822998046875e3), SC_(-0.21530849338789697137868260826250260284211997386438e14),
|
||||
SC_(0.7e1), SC_(0.30816705322265625e3), SC_(-0.44515334725225153366608120310697334717448915933102e14),
|
||||
SC_(0.7e1), SC_(0.5468814697265625e3), SC_(-0.26511725480730864342211918127699219873844104369464e16),
|
||||
SC_(0.7e1), SC_(0.5472205810546875e3), SC_(-0.26628530536439102004691253957341772339263353080574e16),
|
||||
SC_(0.7e1), SC_(0.6323592529296875e3), SC_(-0.74184365727412655859533662592614553371253178512618e16),
|
||||
SC_(0.7e1), SC_(0.81472369384765625e3), SC_(-0.44494974059088898431029461327818954373425462460445e17),
|
||||
SC_(0.7e1), SC_(0.835008544921875e3), SC_(-0.52932169558920439326767431099304484428916542881846e17),
|
||||
SC_(0.7e1), SC_(0.90579193115234375e3), SC_(-0.93994900318821345331729187319793077343112028474933e17),
|
||||
SC_(0.7e1), SC_(0.9133758544921875e3), SC_(-0.99689577334518532843192829626785299168262387676718e17),
|
||||
SC_(0.7e1), SC_(0.9575068359375e3), SC_(-0.13905456836803030189577542899606637451372078172117e18),
|
||||
SC_(0.7e1), SC_(0.96488848876953125e3), SC_(-0.14679265295479813112392016144737523708985227232103e18),
|
||||
SC_(0.7e1), SC_(0.9676949462890625e3), SC_(-0.1498299348323053192424220347660666492880084886241e18),
|
||||
SC_(0.7e1), SC_(0.9688677978515625e3), SC_(-0.1511151180165814270743545859553488460065643424192e18),
|
||||
SC_(0.7e1), SC_(0.99288128662109375e3), SC_(-0.17958742259050562450977760208841036922467251612191e18),
|
||||
SC_(0.7e1), SC_(0.9964613037109375e3), SC_(-0.18420258994246922874363794194214384956627167378336e18),
|
||||
SC_(0.9e1), SC_(0.9754039764404296875e2), SC_(-0.88182421198196903206078231205307338249650868832064e12),
|
||||
SC_(0.9e1), SC_(0.12698681640625e3), SC_(-0.11916795524742195589589499951943501492084977319524e14),
|
||||
SC_(0.9e1), SC_(0.1354770050048828125e3), SC_(-0.22344296397638552568674348465205379613306362764566e14),
|
||||
SC_(0.9e1), SC_(0.1883819732666015625e3), SC_(-0.52450137180856257840726851581544345839939827576715e15),
|
||||
SC_(0.9e1), SC_(0.2210340576171875e3), SC_(-0.23696400879105564578477838259302061169946747558952e16),
|
||||
SC_(0.9e1), SC_(0.27849822998046875e3), SC_(-0.2057154069965741250232756687863533313808633945305e17),
|
||||
SC_(0.9e1), SC_(0.30816705322265625e3), SC_(-0.52706299238279057416545711578165684905744102859115e17),
|
||||
SC_(0.9e1), SC_(0.5468814697265625e3), SC_(-0.10373504112979138086350224207396056466588729804516e20),
|
||||
SC_(0.9e1), SC_(0.5472205810546875e3), SC_(-0.10432528153473136570046121526504633952860788360435e20),
|
||||
SC_(0.9e1), SC_(0.6323592529296875e3), SC_(-0.39130711594017381807257779551743819698560088375668e20),
|
||||
SC_(0.9e1), SC_(0.81472369384765625e3), SC_(-0.39417960379424891896054061064677368280593070059738e21),
|
||||
SC_(0.9e1), SC_(0.835008544921875e3), SC_(-0.49304936215932770879646299983700202838606715074253e21),
|
||||
SC_(0.9e1), SC_(0.90579193115234375e3), SC_(-0.10334424643188761615583739852552783075006729859411e22),
|
||||
SC_(0.9e1), SC_(0.9133758544921875e3), SC_(-0.11148197370742169335891238953970561388157054787912e22),
|
||||
SC_(0.9e1), SC_(0.9575068359375e3), SC_(-0.17117643007530823467479808245288438345428761729566e22),
|
||||
SC_(0.9e1), SC_(0.96488848876953125e3), SC_(-0.18354699865344307677650783008677515871579118218563e22),
|
||||
SC_(0.9e1), SC_(0.9676949462890625e3), SC_(-0.18845473402555581720266649838772564615998761460957e22),
|
||||
SC_(0.9e1), SC_(0.9688677978515625e3), SC_(-0.19054005396362814451214549815853296627845049820834e22),
|
||||
SC_(0.9e1), SC_(0.99288128662109375e3), SC_(-0.2379990415149925129095832370169236951708289834945e22),
|
||||
SC_(0.9e1), SC_(0.9964613037109375e3), SC_(-0.2459080438944659678243208011185696524084223075751e22),
|
||||
SC_(0.1e2), SC_(0.9754039764404296875e2), SC_(0.68363285133790726530343716793230261010875353582126e13),
|
||||
SC_(0.1e2), SC_(0.12698681640625e3), SC_(0.12780346463262387447059318050624889749180569846779e15),
|
||||
SC_(0.1e2), SC_(0.1354770050048828125e3), SC_(0.25872514080382692007093467972049926364267470684414e15),
|
||||
SC_(0.1e2), SC_(0.1883819732666015625e3), SC_(0.88592647116085797035522910089956721973984668164933e16),
|
||||
SC_(0.1e2), SC_(0.2210340576171875e3), SC_(0.47780583657418526717172656140732828044696456184005e17),
|
||||
SC_(0.1e2), SC_(0.27849822998046875e3), SC_(0.5331900363941173927045807539300156181950112131739e18),
|
||||
SC_(0.1e2), SC_(0.30816705322265625e3), SC_(0.1522625182085023713301500547784155501632626718952e19),
|
||||
SC_(0.1e2), SC_(0.5468814697265625e3), SC_(0.54743944979053298043671516089410722749901760176246e21),
|
||||
SC_(0.1e2), SC_(0.5472205810546875e3), SC_(0.55090819795558138013756209863788327369928434403532e21),
|
||||
SC_(0.1e2), SC_(0.6323592529296875e3), SC_(0.23996032369722453090472613853380539435510387147265e22),
|
||||
SC_(0.1e2), SC_(0.81472369384765625e3), SC_(0.3136180217844875856210532455123015078868701049189e23),
|
||||
SC_(0.1e2), SC_(0.835008544921875e3), SC_(0.40228366570492581887821535861784155838787837068917e23),
|
||||
SC_(0.1e2), SC_(0.90579193115234375e3), SC_(0.91635424833598371783927550180351600428358564325103e23),
|
||||
SC_(0.1e2), SC_(0.9133758544921875e3), SC_(0.99696710750634214960945727157571811141128625200737e23),
|
||||
SC_(0.1e2), SC_(0.9575068359375e3), SC_(0.16063550635202090204108065161018414051528464203492e24),
|
||||
SC_(0.1e2), SC_(0.96488848876953125e3), SC_(0.17359930740134722080034670472759394163212119095913e24),
|
||||
SC_(0.1e2), SC_(0.9676949462890625e3), SC_(0.17876999613951749665069145752320997385967469183553e24),
|
||||
SC_(0.1e2), SC_(0.9688677978515625e3), SC_(0.18097164614992113510626725680969708377447448480682e24),
|
||||
SC_(0.1e2), SC_(0.99288128662109375e3), SC_(0.23176305706781278086716530835422934581699500133195e24),
|
||||
SC_(0.1e2), SC_(0.9964613037109375e3), SC_(0.24034525959278928207216174690071010414578307080004e24),
|
||||
SC_(0.12e2), SC_(0.9754039764404296875e2), SC_(0.28423596453596289989288243804391945134145720558303e15),
|
||||
SC_(0.12e2), SC_(0.12698681640625e3), SC_(0.10459814166195030538123822665486701112739697771504e17),
|
||||
SC_(0.12e2), SC_(0.1354770050048828125e3), SC_(0.24809961434471699525764703789755549215916991317009e17),
|
||||
SC_(0.12e2), SC_(0.1883819732666015625e3), SC_(0.18432001419367650072987948319941023048367873500947e19),
|
||||
SC_(0.12e2), SC_(0.2210340576171875e3), SC_(0.1425973246788753700961735353907762908357118808801e20),
|
||||
SC_(0.12e2), SC_(0.27849822998046875e3), SC_(0.2648612039362625663502673525170355605919867648175e21),
|
||||
SC_(0.12e2), SC_(0.30816705322265625e3), SC_(0.94207669859466343227329712354536538487224976251934e21),
|
||||
SC_(0.12e2), SC_(0.5468814697265625e3), SC_(0.11416571288332122735760393265732692757218749094333e25),
|
||||
SC_(0.12e2), SC_(0.5472205810546875e3), SC_(0.11503772311632575693339455966945777225801334633802e25),
|
||||
SC_(0.12e2), SC_(0.6323592529296875e3), SC_(0.67682817776609426691165241302499154756436610551448e25),
|
||||
SC_(0.12e2), SC_(0.81472369384765625e3), SC_(0.14925113607158546323278613008648061457814853288569e27),
|
||||
SC_(0.12e2), SC_(0.835008544921875e3), SC_(0.20137386892159007353644931592676274228203562748065e27),
|
||||
SC_(0.12e2), SC_(0.90579193115234375e3), SC_(0.5420836690576459643271287711084458171666413772841e27),
|
||||
SC_(0.12e2), SC_(0.9133758544921875e3), SC_(0.59993957244253616872158941998241312745401619591825e27),
|
||||
SC_(0.12e2), SC_(0.9575068359375e3), SC_(0.10647596238911981020997681650094944029068747024397e28),
|
||||
SC_(0.12e2), SC_(0.96488848876953125e3), SC_(0.11689245133960734996588218891178658140879248121018e28),
|
||||
SC_(0.12e2), SC_(0.9676949462890625e3), SC_(0.1210919349676828488255310851429670495905368349189e28),
|
||||
SC_(0.12e2), SC_(0.9688677978515625e3), SC_(0.12288756773958775796104364572786513910596933472569e28),
|
||||
SC_(0.12e2), SC_(0.99288128662109375e3), SC_(0.16546282318562297815258073400590724827059252937711e28),
|
||||
SC_(0.12e2), SC_(0.9964613037109375e3), SC_(0.17285799188257724376176157543505720262452819750787e28),
|
||||
SC_(0.13e2), SC_(0.9754039764404296875e2), SC_(-0.15428758327644125855292818843401569330741211168799e16),
|
||||
SC_(0.13e2), SC_(0.12698681640625e3), SC_(-0.80932019891477222056421384256018993299108719527302e17),
|
||||
SC_(0.13e2), SC_(0.1354770050048828125e3), SC_(-0.20837410443315613138060768891043617064680947230019e18),
|
||||
SC_(0.13e2), SC_(0.1883819732666015625e3), SC_(-0.23041054581252941723867939936368964100938528845819e20),
|
||||
SC_(0.13e2), SC_(0.2210340576171875e3), SC_(-0.21423018746076790532404088387932487576331298937838e21),
|
||||
SC_(0.13e2), SC_(0.27849822998046875e3), SC_(-0.51532533774072113882814592946620765040457802277968e22),
|
||||
SC_(0.13e2), SC_(0.30816705322265625e3), SC_(-0.20483743080238166781000622328713314260809968894106e23),
|
||||
SC_(0.13e2), SC_(0.5468814697265625e3), SC_(-0.45807365658624583832010377136032803302289663432229e26),
|
||||
SC_(0.13e2), SC_(0.5472205810546875e3), SC_(-0.46187271245529335025545254036134744857983676852153e26),
|
||||
SC_(0.13e2), SC_(0.6323592529296875e3), SC_(-0.31609066199338067621059954633340634981067166015523e27),
|
||||
SC_(0.13e2), SC_(0.81472369384765625e3), SC_(-0.90646159399960206374430498227033140094018657322162e28),
|
||||
SC_(0.13e2), SC_(0.835008544921875e3), SC_(-0.12544525904974860594398806285643930469586501530176e29),
|
||||
SC_(0.13e2), SC_(0.90579193115234375e3), SC_(-0.36721114150131761392182317349435587031972338255613e29),
|
||||
SC_(0.13e2), SC_(0.9133758544921875e3), SC_(-0.40990368279471938330945117709437735030275122009372e29),
|
||||
SC_(0.13e2), SC_(0.9575068359375e3), SC_(-0.76363964177698049737267049485284900489556590512731e29),
|
||||
SC_(0.13e2), SC_(0.96488848876953125e3), SC_(-0.84498458446138963220029970565385666164418294081343e29),
|
||||
SC_(0.13e2), SC_(0.9676949462890625e3), SC_(-0.87795611207460053386552725647471806319942125987039e29),
|
||||
SC_(0.13e2), SC_(0.9688677978515625e3), SC_(-0.8920838990438100428530933894339887359239837726742e29),
|
||||
SC_(0.13e2), SC_(0.99288128662109375e3), SC_(-0.12317215421451917683521586907330444625122803485384e30),
|
||||
SC_(0.13e2), SC_(0.9964613037109375e3), SC_(-0.12915328980215273183944018711642638080541797445587e30),
|
||||
SC_(0.22e2), SC_(0.9754039764404296875e2), SC_(0.53519155913211797117581773427472182753318968475881e20),
|
||||
SC_(0.22e2), SC_(0.12698681640625e3), SC_(0.1482457856077086365579374192841961715732300978721e24),
|
||||
SC_(0.22e2), SC_(0.1354770050048828125e3), SC_(0.89811862298211814442148491712564277702535951184385e24),
|
||||
SC_(0.22e2), SC_(0.1883819732666015625e3), SC_(0.53105205911452770051774832885086163468318926564375e28),
|
||||
SC_(0.22e2), SC_(0.2210340576171875e3), SC_(0.29181385527902060628744587044238065323351755162445e30),
|
||||
SC_(0.22e2), SC_(0.27849822998046875e3), SC_(0.81926383490939917849013990628644623870335123644678e32),
|
||||
SC_(0.22e2), SC_(0.30816705322265625e3), SC_(0.92559256235836508755914064074846859174102223189673e33),
|
||||
SC_(0.22e2), SC_(0.5468814697265625e3), SC_(0.60582355648139314032220922737227351534361291594301e39),
|
||||
SC_(0.22e2), SC_(0.5472205810546875e3), SC_(0.61450841386618840767372822554085603258088547262603e39),
|
||||
SC_(0.22e2), SC_(0.6323592529296875e3), SC_(0.16828697247343434191793544661262546124370931417734e41),
|
||||
SC_(0.22e2), SC_(0.81472369384765625e3), SC_(0.53252364000408391115685655166260738513117912209307e43),
|
||||
SC_(0.22e2), SC_(0.835008544921875e3), SC_(0.92881368091496514903641566811539878316737606628203e43),
|
||||
SC_(0.22e2), SC_(0.90579193115234375e3), SC_(0.58353032082389612678363416640153420485594909764931e44),
|
||||
SC_(0.22e2), SC_(0.9133758544921875e3), SC_(0.70428883480642630449395417614259444733071066152224e44),
|
||||
SC_(0.22e2), SC_(0.9575068359375e3), SC_(0.20403604900694297028065932589821789954408762498582e45),
|
||||
SC_(0.22e2), SC_(0.96488848876953125e3), SC_(0.24257231813723197693329702291105633653538223754681e45),
|
||||
SC_(0.22e2), SC_(0.9676949462890625e3), SC_(0.25897178141402988728665269659702809950051225843733e45),
|
||||
SC_(0.22e2), SC_(0.9688677978515625e3), SC_(0.26613428214690454856359092251155501252760949702349e45),
|
||||
SC_(0.22e2), SC_(0.99288128662109375e3), SC_(0.46186282958538147848573463412585781275986740408896e45),
|
||||
SC_(0.22e2), SC_(0.9964613037109375e3), SC_(0.50083750837345646151818682810006338938882917955936e45),
|
||||
SC_(0.26e2), SC_(0.9754039764404296875e2), SC_(0.21972677691719817441756091279246498916850254461527e21),
|
||||
SC_(0.26e2), SC_(0.12698681640625e3), SC_(0.1075388630949279748826454068162739903189328481612e26),
|
||||
SC_(0.26e2), SC_(0.1354770050048828125e3), SC_(0.10649057118439433153896298751085699481345412933801e27),
|
||||
SC_(0.26e2), SC_(0.1883819732666015625e3), SC_(0.5116947616838569524143836973058866982145398777318e31),
|
||||
SC_(0.26e2), SC_(0.2210340576171875e3), SC_(0.67598194000593044124785906843654997129153545590891e33),
|
||||
SC_(0.26e2), SC_(0.27849822998046875e3), SC_(0.61788821894450276203672680235188870492927609213655e36),
|
||||
SC_(0.26e2), SC_(0.30816705322265625e3), SC_(0.1143466221863025445538605244032140245989208384596e38),
|
||||
SC_(0.26e2), SC_(0.5468814697265625e3), SC_(0.10365782377701183452195461556076353497800893592323e45),
|
||||
SC_(0.26e2), SC_(0.5472205810546875e3), SC_(0.10543127968944428085136728714429047403339769641033e45),
|
||||
SC_(0.26e2), SC_(0.6323592529296875e3), SC_(0.54336316553928368949063555184249670518669259521127e46),
|
||||
SC_(0.26e2), SC_(0.81472369384765625e3), SC_(0.51097552617218427263241448611405994401811535704536e49),
|
||||
SC_(0.26e2), SC_(0.835008544921875e3), SC_(0.98954520453823509774054797214466944211629878869384e49),
|
||||
SC_(0.26e2), SC_(0.90579193115234375e3), SC_(0.87786375743747677334359888017430029312432056322196e50),
|
||||
SC_(0.26e2), SC_(0.9133758544921875e3), SC_(0.10975609743646233178198950358966597197707924620818e51),
|
||||
SC_(0.26e2), SC_(0.9575068359375e3), SC_(0.38807135479289092313349072980539966631345258500198e51),
|
||||
SC_(0.26e2), SC_(0.96488848876953125e3), SC_(0.47654821142237731628816607894656922038832987256136e51),
|
||||
SC_(0.26e2), SC_(0.9676949462890625e3), SC_(0.51503194237863964904639112627180500133770486086125e51),
|
||||
SC_(0.26e2), SC_(0.9688677978515625e3), SC_(0.53198500654007856666562730301281355378772116339286e51),
|
||||
SC_(0.26e2), SC_(0.99288128662109375e3), SC_(0.10235016527486692862890189415524722222034128311139e52),
|
||||
SC_(0.26e2), SC_(0.9964613037109375e3), SC_(0.11268082142512355561240466068867830761377375700468e52),
|
||||
SC_(0.32e2), SC_(0.9754039764404296875e2), SC_(0.57896844151857557407003122100491148696303115075994e20),
|
||||
SC_(0.32e2), SC_(0.12698681640625e3), SC_(0.42245682831545366496930901995710141383069638790405e27),
|
||||
SC_(0.32e2), SC_(0.1354770050048828125e3), SC_(0.12500869474828256329426453946772458815922358559551e29),
|
||||
SC_(0.32e2), SC_(0.1883819732666015625e3), SC_(0.28266779160071220855863136752236809118289513550655e35),
|
||||
SC_(0.32e2), SC_(0.2210340576171875e3), SC_(0.16043258633437377313296386512455676335765088879499e38),
|
||||
SC_(0.32e2), SC_(0.27849822998046875e3), SC_(0.98152083075443552200456383499687746658509404557554e41),
|
||||
SC_(0.32e2), SC_(0.30816705322265625e3), SC_(0.39660303068870304789061389710467952730805922359184e43),
|
||||
SC_(0.32e2), SC_(0.5468814697265625e3), SC_(0.2124691778655363299602608193872213697408649234399e52),
|
||||
SC_(0.32e2), SC_(0.5472205810546875e3), SC_(0.21701146117737990401627817320898898731158045140974e52),
|
||||
SC_(0.32e2), SC_(0.6323592529296875e3), SC_(0.29453956822267682637622660585710995711330784866261e54),
|
||||
SC_(0.32e2), SC_(0.81472369384765625e3), SC_(0.14579187010342463619209867543395472012389261100613e58),
|
||||
SC_(0.32e2), SC_(0.835008544921875e3), SC_(0.33104915961295333458609667123641141490590693664242e58),
|
||||
SC_(0.32e2), SC_(0.90579193115234375e3), SC_(0.49617254391613681021336977691940022261460402301085e59),
|
||||
SC_(0.32e2), SC_(0.9133758544921875e3), SC_(0.65447509655180124047279400990868215055245034097822e59),
|
||||
SC_(0.32e2), SC_(0.9575068359375e3), SC_(0.31314186002835766887651202030265122705420348145384e60),
|
||||
SC_(0.32e2), SC_(0.96488848876953125e3), SC_(0.40390183129399277888276794404622531827627609452775e60),
|
||||
SC_(0.32e2), SC_(0.9676949462890625e3), SC_(0.44470349220352623223005295792036557179541953880227e60),
|
||||
SC_(0.32e2), SC_(0.9688677978515625e3), SC_(0.46291347880797126364720392445817548485904681626203e60),
|
||||
SC_(0.32e2), SC_(0.99288128662109375e3), SC_(0.10414215853249607927566783846023113314868365327492e61),
|
||||
SC_(0.32e2), SC_(0.9964613037109375e3), SC_(0.11731839293063017507522289233426225751615807834469e61),
|
||||
SC_(0.33e2), SC_(0.9754039764404296875e2), SC_(-0.15519766552964914960282162902087252393890944756729e21),
|
||||
SC_(0.33e2), SC_(0.12698681640625e3), SC_(-0.49834394329409786429107636406724247060325054488444e27),
|
||||
SC_(0.33e2), SC_(0.1354770050048828125e3), SC_(-0.19840581047253598115611184022145906036118542457808e29),
|
||||
SC_(0.33e2), SC_(0.1883819732666015625e3), SC_(-0.98212428153399951310107146404282928611923578181199e35),
|
||||
SC_(0.33e2), SC_(0.2210340576171875e3), SC_(-0.72578044049144687694845377262857641629094641588691e38),
|
||||
SC_(0.33e2), SC_(0.27849822998046875e3), SC_(-0.62057397100619303564513894784492557621908539158042e42),
|
||||
SC_(0.33e2), SC_(0.30816705322265625e3), SC_(-0.28714296782385167119124999018599500804762523101335e44),
|
||||
SC_(0.33e2), SC_(0.5468814697265625e3), SC_(-0.30888931981090919336348667046948287489524269522361e53),
|
||||
SC_(0.33e2), SC_(0.5472205810546875e3), SC_(-0.31571691597216716720754649436373448511713945451381e53),
|
||||
SC_(0.33e2), SC_(0.6323592529296875e3), SC_(-0.50478315840421718669131419020872977517323737909924e55),
|
||||
SC_(0.33e2), SC_(0.81472369384765625e3), SC_(-0.33062025262205293767486203308022299641518265442287e59),
|
||||
SC_(0.33e2), SC_(0.835008544921875e3), SC_(-0.77112383731383286471230156867910260520520657245124e59),
|
||||
SC_(0.33e2), SC_(0.90579193115234375e3), SC_(-0.1262346064599467935961005524047195599692654321956e61),
|
||||
SC_(0.33e2), SC_(0.9133758544921875e3), SC_(-0.16801567279045565630405655696613192336457136904877e61),
|
||||
SC_(0.33e2), SC_(0.9575068359375e3), SC_(-0.84582529186776869237021206078881700754491798000552e61),
|
||||
SC_(0.33e2), SC_(0.96488848876953125e3), SC_(-0.11000226620410340743835989544374720411357868296468e62),
|
||||
SC_(0.33e2), SC_(0.9676949462890625e3), SC_(-0.12149322908840894133499880791452022966588461024746e62),
|
||||
SC_(0.33e2), SC_(0.9688677978515625e3), SC_(-0.12663293722507282266407117288015925037770799060973e62),
|
||||
SC_(0.33e2), SC_(0.99288128662109375e3), SC_(-0.29247499878319565468778047006263649127299274582216e62),
|
||||
SC_(0.33e2), SC_(0.9964613037109375e3), SC_(-0.33075364818279888462182974219279083273759877224615e62),
|
||||
SC_(0.36e2), SC_(0.9754039764404296875e2), SC_(-0.14202381258875603292784398243371786895083677644968e21),
|
||||
SC_(0.36e2), SC_(0.12698681640625e3), SC_(-0.99689260408784512857796674097683890787134923850651e23),
|
||||
SC_(0.36e2), SC_(0.1354770050048828125e3), SC_(0.33085802053384704162061389949004801316875589574167e29),
|
||||
SC_(0.36e2), SC_(0.1883819732666015625e3), SC_(0.29691002837109064218075098689453177656242661416649e37),
|
||||
SC_(0.36e2), SC_(0.2210340576171875e3), SC_(0.50722869577926074483465513588442579657337298353026e40),
|
||||
SC_(0.36e2), SC_(0.27849822998046875e3), SC_(0.12276018084343264808614960453898425578975135870535e45),
|
||||
SC_(0.36e2), SC_(0.30816705322265625e3), SC_(0.86176792520194608969749051518980054897501919421191e46),
|
||||
SC_(0.36e2), SC_(0.5468814697265625e3), SC_(0.77496906300517296899212867022166471009005365376408e56),
|
||||
SC_(0.36e2), SC_(0.5472205810546875e3), SC_(0.79380346709534996703125888877181202810222361959297e56),
|
||||
SC_(0.36e2), SC_(0.6323592529296875e3), SC_(0.20837628323063930783612574671644907853428390635937e59),
|
||||
SC_(0.36e2), SC_(0.81472369384765625e3), SC_(0.31805284832302734783735872178451062267986916005535e63),
|
||||
SC_(0.36e2), SC_(0.835008544921875e3), SC_(0.80427224577995045297081384061933456722295034711368e63),
|
||||
SC_(0.36e2), SC_(0.90579193115234375e3), SC_(0.17180125938368536870586199334103942944296763636498e65),
|
||||
SC_(0.36e2), SC_(0.9133758544921875e3), SC_(0.2349585543781729049082862094571853647181110727758e65),
|
||||
SC_(0.36e2), SC_(0.9575068359375e3), SC_(0.13788032216346989091599957999852901194859847097388e66),
|
||||
SC_(0.36e2), SC_(0.96488848876953125e3), SC_(0.18383754088256510557951005527578044897458936835611e66),
|
||||
SC_(0.36e2), SC_(0.9676949462890625e3), SC_(0.20496108373672385020966386552222912655862108987654e66),
|
||||
SC_(0.36e2), SC_(0.9688677978515625e3), SC_(0.21447176171446511024838576925006696393416059852805e66),
|
||||
SC_(0.36e2), SC_(0.99288128662109375e3), SC_(0.53619191227443818889184097649341805455543103147757e66),
|
||||
SC_(0.36e2), SC_(0.9964613037109375e3), SC_(0.6134634193224111642857607073780448563124536964454e66),
|
||||
SC_(0.38e2), SC_(0.9754039764404296875e2), SC_(0.13026109621262939918139850088931337407072881569374e21),
|
||||
SC_(0.38e2), SC_(0.12698681640625e3), SC_(-0.39045802697684580087249595226480504736900650572604e27),
|
||||
SC_(0.38e2), SC_(0.1354770050048828125e3), SC_(0.4703084156408515882792903403585270483597230661564e28),
|
||||
SC_(0.38e2), SC_(0.1883819732666015625e3), SC_(0.21811950666425589665298269088166544127028329061958e38),
|
||||
SC_(0.38e2), SC_(0.2210340576171875e3), SC_(0.68226335876612312689262066243026383595759661918497e41),
|
||||
SC_(0.38e2), SC_(0.27849822998046875e3), SC_(0.3417431296914681619225852746415756851618849310483e46),
|
||||
SC_(0.38e2), SC_(0.30816705322265625e3), SC_(0.31970819524145633109548465679514234447503951190819e48),
|
||||
SC_(0.38e2), SC_(0.5468814697265625e3), SC_(0.12178742579145686663348414006307088453127654992376e59),
|
||||
SC_(0.38e2), SC_(0.5472205810546875e3), SC_(0.12492841620300639426815182320836485753685517201536e59),
|
||||
SC_(0.38e2), SC_(0.6323592529296875e3), SC_(0.45810661530573839216333825165973798523285084973924e61),
|
||||
SC_(0.38e2), SC_(0.81472369384765625e3), SC_(0.12351347140304796554466586331231292139128275112892e66),
|
||||
SC_(0.38e2), SC_(0.835008544921875e3), SC_(0.32975853153845151581573454625890910497305801446349e66),
|
||||
SC_(0.38e2), SC_(0.90579193115234375e3), SC_(0.84216312274962467518837779101216307869158288654706e67),
|
||||
SC_(0.38e2), SC_(0.9133758544921875e3), SC_(0.11729374185740406136241147249355309364674121773484e68),
|
||||
SC_(0.38e2), SC_(0.9575068359375e3), SC_(0.76287452793236059887210998415733522854114359820263e68),
|
||||
SC_(0.38e2), SC_(0.96488848876953125e3), SC_(0.10342759141411866835170522110986503338234205828331e69),
|
||||
SC_(0.38e2), SC_(0.9676949462890625e3), SC_(0.11604186211493955868813819686880547173842867350967e69),
|
||||
SC_(0.38e2), SC_(0.9688677978515625e3), SC_(0.12174646477307642518592858476271949696633470067733e69),
|
||||
SC_(0.38e2), SC_(0.99288128662109375e3), SC_(0.32098315809650975303906367704092470560267558301581e69),
|
||||
SC_(0.38e2), SC_(0.9964613037109375e3), SC_(0.37011679718261969297940214190611219199030995011675e69),
|
||||
SC_(0.39e2), SC_(0.9754039764404296875e2), SC_(-0.81788056310459660065120382039447835033044197049489e20),
|
||||
SC_(0.39e2), SC_(0.12698681640625e3), SC_(0.22229715039776080683928576767759683825519547792559e27),
|
||||
SC_(0.39e2), SC_(0.1354770050048828125e3), SC_(0.15550461280029801190156888344119462891700106953436e29),
|
||||
SC_(0.39e2), SC_(0.1883819732666015625e3), SC_(-0.54226895058411233344275595074274527247091920347531e38),
|
||||
SC_(0.39e2), SC_(0.2210340576171875e3), SC_(-0.23342183174200163814210714804874246930233709812346e42),
|
||||
SC_(0.39e2), SC_(0.27849822998046875e3), SC_(-0.17013038203469478431364477259901167967979013129897e47),
|
||||
SC_(0.39e2), SC_(0.30816705322265625e3), SC_(-0.18429253515276943444879261921619357066598024943888e49),
|
||||
SC_(0.39e2), SC_(0.5468814697265625e3), SC_(-0.14577093593047894021012074885872239431277128765197e60),
|
||||
SC_(0.39e2), SC_(0.5472205810546875e3), SC_(-0.14963982369811780116397608759812127691336981298577e60),
|
||||
SC_(0.39e2), SC_(0.6323592529296875e3), SC_(-0.6492862403071900096406830281442380096038500168606e62),
|
||||
SC_(0.39e2), SC_(0.81472369384765625e3), SC_(-0.23301820931113238390488179765094297019115309966495e67),
|
||||
SC_(0.39e2), SC_(0.835008544921875e3), SC_(-0.6393122118320767120277111175042508309950280050084e67),
|
||||
SC_(0.39e2), SC_(0.90579193115234375e3), SC_(-0.1785926484809201389439108598459489796533771170743e69),
|
||||
SC_(0.39e2), SC_(0.9133758544921875e3), SC_(-0.25102368049271316850934544583200188325859894245069e69),
|
||||
SC_(0.39e2), SC_(0.9575068359375e3), SC_(-0.17191430467481203804500407886563167282958450012617e70),
|
||||
SC_(0.39e2), SC_(0.96488848876953125e3), SC_(-0.2350360204862166230883463530178770075607651772555e70),
|
||||
SC_(0.39e2), SC_(0.9676949462890625e3), SC_(-0.26453813089044823183666856904573749479668606778886e70),
|
||||
SC_(0.39e2), SC_(0.9688677978515625e3), SC_(-0.27790958611107454497958236687689216620181150284596e70),
|
||||
SC_(0.39e2), SC_(0.99288128662109375e3), SC_(-0.75250430660256030378942490914723092683335523198301e70),
|
||||
SC_(0.39e2), SC_(0.9964613037109375e3), SC_(-0.87109521955089946525219892186343098358449543636311e70),
|
||||
};
|
||||
#undef SC_
|
||||
|
2245
test/laguerre3.ipp
Normal file
145
test/legendre_p.ipp
Normal file
@ -0,0 +1,145 @@
|
||||
#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
|
||||
static const boost::array<boost::array<T, 4>, 140> legendre_p = {
|
||||
SC_(3), SC_(-0.804919183254241943359375), SC_(-0.09637879251279735399302410605920296560178428535437), SC_(-0.84585603807674271376114723023136351467791030262194),
|
||||
SC_(3), SC_(-0.74602639675140380859375), SC_(0.081027074619746344180737168075984167003866787126753), SC_(-0.80282652754865351221792807765781454966620965987346),
|
||||
SC_(3), SC_(-0.72904598712921142578125), SC_(0.12483445078630286253952851342405305778981983166886), SC_(-0.77778604740049228448138273219369426999256253154477),
|
||||
SC_(3), SC_(-0.62323606014251708984375), SC_(0.32965574890576083785628027375894100181596968468511), SC_(-0.54513199810739721932916528089324249381856320981233),
|
||||
SC_(3), SC_(-0.5579319000244140625), SC_(0.40270407973501426077134190961714921286329627037048), SC_(-0.36518655840013507868281802164420656404202160032323),
|
||||
SC_(3), SC_(-0.44300353527069091796875), SC_(0.44715433191447753543307951822408097264371917844983), SC_(-0.036791936427532285617966259083782977179826877960429),
|
||||
SC_(3), SC_(-0.38366591930389404296875), SC_(0.43431026413595020613207998332397363761003816762241), SC_(0.12305391050245773781086426664843252339855233834581),
|
||||
SC_(3), SC_(0.09376299381256103515625), SC_(-0.13858369755095318860018104847528497280961801152444), SC_(0.63165561565784611978985918320060987131739507929363),
|
||||
SC_(3), SC_(0.0944411754608154296875), SC_(-0.13955592906053357908142302859499928047171124489978), SC_(0.63114960637026901412475946814198954544987429570206),
|
||||
SC_(3), SC_(0.264718532562255859375), SC_(-0.35070182432271000038054645231433426033618161454797), SC_(0.39637508312826953308089998658220280933868101174524),
|
||||
SC_(3), SC_(0.62944734096527099609375), SC_(-0.32069719648529449984920462269136209876307930244366), SC_(-0.561319593950734471650860089348537659182887471015),
|
||||
SC_(3), SC_(0.67001712322235107421875), SC_(-0.25306053375130974366335052634993663112084050226258), SC_(-0.66081564793406011705012545543655510789740391137235),
|
||||
SC_(3), SC_(0.81158387660980224609375), SC_(0.11903579598709513016345544955329471825677956076106), SC_(-0.84529721625683760880474150426292608647145977571808),
|
||||
SC_(3), SC_(0.826751708984375), SC_(0.1726224256643575927228084765374660491943359375), SC_(-0.83881729781391507585288129748948101183986537673708),
|
||||
SC_(3), SC_(0.91501367092132568359375), SC_(0.54271752467888026988712457448701953488523486157646), SC_(-0.58117864722536578272928121147096403274716994164107),
|
||||
SC_(3), SC_(0.92977702617645263671875), SC_(0.61478093203605979210896718576903619002393952541752), SC_(-0.47601316933958185359002896997987802108555441085956),
|
||||
SC_(3), SC_(0.93538987636566162109375), SC_(0.6429734865180513243156944550547871042311953715398), SC_(-0.42776266738524467923677588882284251961316602328383),
|
||||
SC_(3), SC_(0.93773555755615234375), SC_(0.65488632484399120345028300071987814590102061629295), SC_(-0.40599139678289761995855284290619999445381396586062),
|
||||
SC_(3), SC_(0.98576259613037109375), SC_(0.91608863936432686136610015203984858089825138449669), SC_(0.49911743300628611193386173368321463301956284745397),
|
||||
SC_(3), SC_(0.99292266368865966796875), SC_(0.95791076106518834501582130387317692843396343960194), SC_(0.90345674705561627727354266945334737890516023119515),
|
||||
SC_(5), SC_(-0.804919183254241943359375), SC_(0.39312973382980111956333250391790337182567613112521), SC_(-0.30797722800923861903533473474484308050729533072248),
|
||||
SC_(5), SC_(-0.74602639675140380859375), SC_(0.4144532363564166856565791456062465926118819061177), SC_(0.036750999302184486102911681342167235245694654813727),
|
||||
SC_(5), SC_(-0.72904598712921142578125), SC_(0.40170549167165668611417028849058086074027575851596), SC_(0.12520396031165822675600338672833850727710544023424),
|
||||
SC_(5), SC_(-0.62323606014251708984375), SC_(0.20914641668663499200234579439954172182527145448352), SC_(0.50490192751447088632949650396821036768725468002192),
|
||||
SC_(5), SC_(-0.5579319000244140625), SC_(0.047804048918209109846499488120279081448233535491368), SC_(0.58010824986594190037517814500067698165903587991196),
|
||||
SC_(5), SC_(-0.44300353527069091796875), SC_(-0.20426834340719068505951661242682923196540890996203), SC_(0.46263002281764960331577712774593562735119375851165),
|
||||
SC_(5), SC_(-0.38366591930389404296875), SC_(-0.29067957811088193540744987867754401309946084909752), SC_(0.31516732667905959819121026003137539434799697742685),
|
||||
SC_(5), SC_(0.09376299381256103515625), SC_(0.16864990731338440263027533820227754755159887863031), SC_(-0.46423435769108284256474941359029876833900529649787),
|
||||
SC_(5), SC_(0.0944411754608154296875), SC_(0.1697659485252767697264924108060913297868060247664), SC_(-0.46324927263674125093814131181689301223878566421762),
|
||||
SC_(5), SC_(0.264718532562255859375), SC_(0.34426832813003273714672924371824224133559143244821), SC_(-0.049432441822728069543372084272506540578906568566679),
|
||||
SC_(5), SC_(0.62944734096527099609375), SC_(-0.22382279528405448977447983371074041669623686569369), SC_(0.49147664711760436466007581944059038967809611892101),
|
||||
SC_(5), SC_(0.67001712322235107421875), SC_(-0.31223652976417549895070288708720094161868379195206), SC_(0.37610337461310797969209584800253042022904925554525),
|
||||
SC_(5), SC_(0.81158387660980224609375), SC_(-0.38292680966875416452976755202641274083447045975907), SC_(-0.34885118284757894374218709400505373551960888245662),
|
||||
SC_(5), SC_(0.826751708984375), SC_(-0.35269763131671469331857533366092200943081591546502), SC_(-0.44136440965471238150156372311112451085353528866709),
|
||||
SC_(5), SC_(0.91501367092132568359375), SC_(0.063446713438062204473932078136911612759332109107889), SC_(-0.82663633769127728796241230589411701186971587004582),
|
||||
SC_(5), SC_(0.92977702617645263671875), SC_(0.18225073809630641977015280395310276646936069311641), SC_(-0.82168035297079603201814519993667772968868461426771),
|
||||
SC_(5), SC_(0.93538987636566162109375), SC_(0.23180510604150429189260138185795569842018206442858), SC_(-0.80887163427971286589959630152315983255456115675709),
|
||||
SC_(5), SC_(0.93773555755615234375), SC_(0.25325565314935514475658826960850521331006389130604), SC_(-0.80136139259062971113064196979296442577453518790514),
|
||||
SC_(5), SC_(0.98576259613037109375), SC_(0.79688047965898906667942422168075865228912496237335), SC_(-0.050056541330186097160719119175881895101011997635397),
|
||||
SC_(5), SC_(0.99292266368865966796875), SC_(0.89644489554848727542361918961404754824639399670787), SC_(0.37903738567797794270627705612855765856516256104433),
|
||||
SC_(6), SC_(-0.804919183254241943359375), SC_(-0.39836758461472829348998598547346973134856336403357), SC_(-0.11186770789341157073263552304164952167231422725269),
|
||||
SC_(6), SC_(-0.74602639675140380859375), SC_(-0.26942943612721316815918357350921061418816560550185), SC_(-0.42602747957292468844799426387152791743497741383254),
|
||||
SC_(6), SC_(-0.72904598712921142578125), SC_(-0.21840146170346573698680050916460454542235139698046), SC_(-0.48296923649820365053381714059193346150823509339657),
|
||||
SC_(6), SC_(-0.62323606014251708984375), SC_(0.11229562713036701432807908627179645376710821780817), SC_(-0.52579618536742217260788491630929608589881417853436),
|
||||
SC_(6), SC_(-0.5579319000244140625), SC_(0.25809538238812630583446736370855025636974655379774), SC_(-0.35443454005327430793711175663169328286248363280561),
|
||||
SC_(6), SC_(-0.44300353527069091796875), SC_(0.32627027269443981686050692334106934126675080884247), SC_(0.076978364356597061911602221500765420329999192593694),
|
||||
SC_(6), SC_(-0.38366591930389404296875), SC_(0.27296210523874472670236080623125046782530388804834), SC_(0.27741174731966691723650037805968774957839220262642),
|
||||
SC_(6), SC_(0.09376299381256103515625), SC_(-0.25631763331851885315854599502995062449465614809422), SC_(-0.28268746516151787527692774690914081177303614109476),
|
||||
SC_(6), SC_(0.0944411754608154296875), SC_(-0.25552408862019782534903797380377055156453603599383), SC_(-0.28448177559590539095516583083575884593430785034601),
|
||||
SC_(6), SC_(0.264718532562255859375), SC_(0.055663225234594337836693345273561919051283660765644), SC_(-0.49211101331909515135704356361137060677480116821877),
|
||||
SC_(6), SC_(0.62944734096527099609375), SC_(0.095034738211053556569114686960941777812118998024525), SC_(0.53595663488501203764878594691541436002403012434814),
|
||||
SC_(6), SC_(0.67001712322235107421875), SC_(-0.027907528859134634498084497388775217092645960712684), SC_(0.56739928086411463246848716706273921826782270933536),
|
||||
SC_(6), SC_(0.81158387660980224609375), SC_(-0.40564261599347283927948120545903068249295719183982), SC_(0.065698612969198511696728446106187822049301308842024),
|
||||
SC_(6), SC_(0.826751708984375), SC_(-0.41441668785915980661759850483046331378288487166901), SC_(-0.046051089316127435599875211778830659378778305951565),
|
||||
SC_(6), SC_(0.91501367092132568359375), SC_(-0.14534417319305000517260528484257988550512306946976), SC_(-0.73321199968869349837797508987098833755655170036581),
|
||||
SC_(6), SC_(0.92977702617645263671875), SC_(-0.02497873763140766287065827948618680160671583843944), SC_(-0.80187400193518611909857727430796462753119035734657),
|
||||
SC_(6), SC_(0.93538987636566162109375), SC_(0.028201141383986142054022312024873160606967286580461), SC_(-0.81740119198478364508466660088619509288367234232148),
|
||||
SC_(6), SC_(0.93773555755615234375), SC_(0.051703886374808225952970501830818053254301264204132), SC_(-0.82169997971024778036115328485043201232954643879117),
|
||||
SC_(6), SC_(0.98576259613037109375), SC_(0.72170038823497209265542323838206061870527088205587), SC_(-0.25448294588059600387767244854330786413565245709897),
|
||||
SC_(6), SC_(0.99292266368865966796875), SC_(0.85656129838850274253099953133227725425228299308345), SC_(0.17625410031563921455149796282056956604031098075843),
|
||||
SC_(13), SC_(-0.804919183254241943359375), SC_(-0.021346989675489582899777513316783512919027984178499), SC_(-0.44112202059370695044753367609499513618897172902607),
|
||||
SC_(13), SC_(-0.74602639675140380859375), SC_(0.24666838562906154791363844279971485004009388494544), SC_(-0.1559921230869429475133589681910169153699159544855),
|
||||
SC_(13), SC_(-0.72904598712921142578125), SC_(0.26205171362935296430727406212496048008100313584788), SC_(-0.017605179298092333976782550762974395271667547123874),
|
||||
SC_(13), SC_(-0.62323606014251708984375), SC_(-0.080372069801645230864998901272264760659582933477599), SC_(0.36425485923732018458592174575151844471405378913141),
|
||||
SC_(13), SC_(-0.5579319000244140625), SC_(-0.23583528015736737224719659667717786026703268284614), SC_(0.053245393722305081751995109192359134354871591534969),
|
||||
SC_(13), SC_(-0.44300353527069091796875), SC_(0.018972604977717555259851272576261414873385597702604), SC_(-0.35886939657929715282594368713239077257966834584912),
|
||||
SC_(13), SC_(-0.38366591930389404296875), SC_(0.18550250811451569348004068552647395938057310465493), SC_(-0.20246148054258569990560069049122417793152050446365),
|
||||
SC_(13), SC_(0.09376299381256103515625), SC_(0.20769838303968474575312727060982309147206670120161), SC_(-0.10173158142023370803559517312227984933062321078173),
|
||||
SC_(13), SC_(0.0944411754608154296875), SC_(0.20829227701017635616317556146048162430074934166827), SC_(-0.098728123460385300129782227650749493941872811511327),
|
||||
SC_(13), SC_(0.264718532562255859375), SC_(-0.1016381458266690823353213981274025318520849829061), SC_(0.30835386562966326517046404619145380164126531151263),
|
||||
SC_(13), SC_(0.62944734096527099609375), SC_(0.055159037199559177575178459223260433973722342159236), SC_(0.37691576754738027132316322394241161656121459482015),
|
||||
SC_(13), SC_(0.67001712322235107421875), SC_(-0.11980080975332609846766208424077118471193674213212), SC_(0.34804362893711095691292965673736967284289808313288),
|
||||
SC_(13), SC_(0.81158387660980224609375), SC_(0.064420961086402494165295142893303224035523617990131), SC_(-0.43419593067780672264639624363068831709493843634964),
|
||||
SC_(13), SC_(0.826751708984375), SC_(0.16013654257672660076220863480719945813853670795106), SC_(-0.37830883499601794980891054166266352530711732686068),
|
||||
SC_(13), SC_(0.91501367092132568359375), SC_(0.02981406506695430902920205723465070991144692911286), SC_(0.53391573874244763290223203488170268282792221646375),
|
||||
SC_(13), SC_(0.92977702617645263671875), SC_(-0.14928783504228836625545729908131879929441545864731), SC_(0.5094824048642415323846575901763459962675439032328),
|
||||
SC_(13), SC_(0.93538987636566162109375), SC_(-0.21821472006169780300413719938049820079476182672815), SC_(0.45809358526457816919278185678834785451752393960047),
|
||||
SC_(13), SC_(0.93773555755615234375), SC_(-0.24593495540807619378595982256918019147674926458319), SC_(0.42889513803137504816802334074350455620384537313833),
|
||||
SC_(13), SC_(0.98576259613037109375), SC_(0.06582920955682109946957491732104452005420774878568), SC_(-0.81713360182404631829162888606556475045158637145556),
|
||||
SC_(13), SC_(0.99292266368865966796875), SC_(0.45168281361591264659940935116533646174194486856019), SC_(-0.66523405291864568469611605694139032227348875420525),
|
||||
SC_(16), SC_(-0.804919183254241943359375), SC_(-0.24617676998426440746802697580367697602069689994431), SC_(-0.10342588249052076335368259863624425129111161555058),
|
||||
SC_(16), SC_(-0.74602639675140380859375), SC_(0.05589693997183205349782501045594495596630477937041), SC_(-0.36756591277520722601404123599925254242454264467136),
|
||||
SC_(16), SC_(-0.72904598712921142578125), SC_(0.1435839632236998433207972126531002284333052188772), SC_(-0.29678713314015209268198753833877314533807120416601),
|
||||
SC_(16), SC_(-0.62323606014251708984375), SC_(0.025006544465484963551355899284888512107603542872025), SC_(0.34655424303519465823894024987098609170947386899599),
|
||||
SC_(16), SC_(-0.5579319000244140625), SC_(-0.20273668414164894060160750060929827332311158866899), SC_(0.1149894928335745044316704348175343096216902152789),
|
||||
SC_(16), SC_(-0.44300353527069091796875), SC_(0.0568430344346968196836808967847074379571404518767), SC_(-0.31329734713414163463145524081279862392937646591181),
|
||||
SC_(16), SC_(-0.38366591930389404296875), SC_(0.19955350157037941974526184597940130951592808285846), SC_(-0.069121706148999889753860133645349635646774147838909),
|
||||
SC_(16), SC_(0.09376299381256103515625), SC_(0.004077511401713283600036273485948150451706308548591), SC_(0.3090887073999325166929620341518083398087059069866),
|
||||
SC_(16), SC_(0.0944411754608154296875), SC_(0.0018646455756569841632128890021862805086238621865179), SC_(0.30915113128562592599142879370578903469780546339442),
|
||||
SC_(16), SC_(0.264718532562255859375), SC_(-0.057138811421491531852629180943328986609990232285623), SC_(-0.30102711196776165823913047161703041527490961215075),
|
||||
SC_(16), SC_(0.62944734096527099609375), SC_(0.053905813652862864225047719177357021912552840167578), SC_(-0.3394893321631230893291882500714616497801870033187),
|
||||
SC_(16), SC_(0.67001712322235107421875), SC_(0.20571755182888692558409436652095184688145604215735), SC_(-0.15400029036097541197972382773740560927016105513573),
|
||||
SC_(16), SC_(0.81158387660980224609375), SC_(-0.25610293236665229776934216307688324622589786937523), SC_(0.029961309199690485279175505247898935243066233951638),
|
||||
SC_(16), SC_(0.826751708984375), SC_(-0.24467257950234667771221825741251222771947492803914), SC_(-0.14584909786233540893014977656569646339205583145946),
|
||||
SC_(16), SC_(0.91501367092132568359375), SC_(0.30042521371658467516725427482154698462078838756), SC_(0.11242410274334292000251659391599358954645603738835),
|
||||
SC_(16), SC_(0.92977702617645263671875), SC_(0.20912498055485121957345853172873004479220934035096), SC_(0.38711457227561848903449378495312209659537067985191),
|
||||
SC_(16), SC_(0.93538987636566162109375), SC_(0.14228176834914109691746234218230423568131480850111), SC_(0.46724475576348077611133336497614776597835295379528),
|
||||
SC_(16), SC_(0.93773555755615234375), SC_(0.10947822546659067656059296835577708662292349876443), SC_(0.49345958632627785174194039683464075153298036877136),
|
||||
SC_(16), SC_(0.98576259613037109375), SC_(-0.18053759743174070857427031356500616942177764243751), SC_(-0.69129540587532453519248426712601771804500778047449),
|
||||
SC_(16), SC_(0.99292266368865966796875), SC_(0.24467850628321941403216962899355195806033451938156), SC_(-0.79611153201220615596111924787398204555433320171123),
|
||||
SC_(18), SC_(-0.804919183254241943359375), SC_(-0.0091062060443244939758547861277241601517458288228401), SC_(-0.37780874716766649794749661161502596284251171176729),
|
||||
SC_(18), SC_(-0.74602639675140380859375), SC_(0.22554068680311218202775373160884926839138620763174), SC_(0.043450468136242147653982143862844811198611491554443),
|
||||
SC_(18), SC_(-0.72904598712921142578125), SC_(0.18653718888369370131458265584018026946159296567964), SC_(0.19518736469516489835563573974741507967360934238079),
|
||||
SC_(18), SC_(-0.62323606014251708984375), SC_(-0.20837325214812717413067018822585361068165851336255), SC_(-0.037088866497216472583736911887498188987603773369659),
|
||||
SC_(18), SC_(-0.5579319000244140625), SC_(0.0083537300257362812848909087265145663947906734657682), SC_(-0.31950967163170480424900959261902943297087436887194),
|
||||
SC_(18), SC_(-0.44300353527069091796875), SC_(0.11695183881480336805185423703698692829975597728824), SC_(0.24681367379374692383023201907678584193776277803732),
|
||||
SC_(18), SC_(-0.38366591930389404296875), SC_(-0.10358901613970675221183097893317277350294739582856), SC_(0.25578907869474625948919953810862798903271057530686),
|
||||
SC_(18), SC_(0.09376299381256103515625), SC_(0.030899020693203570750329014297680833991336820156792), SC_(-0.28791754441150052849520877694768651589010597918611),
|
||||
SC_(18), SC_(0.0944411754608154296875), SC_(0.033208344966164570458319052396398896477890882959009), SC_(-0.28729203288102887394022408730410045130704945170246),
|
||||
SC_(18), SC_(0.264718532562255859375), SC_(-0.045964012675459912647004385671790829004749499845969), SC_(0.28775273984847125983134846044367147353322574723096),
|
||||
SC_(18), SC_(0.62944734096527099609375), SC_(-0.21025192720175270695719746239016794207250758550671), SC_(-0.011451910307176188739521846496709015868005938376706),
|
||||
SC_(18), SC_(0.67001712322235107421875), SC_(-0.11209473575977880537554630008831322938651681961203), SC_(-0.28861574077574071045967706163764266303939167641235),
|
||||
SC_(18), SC_(0.81158387660980224609375), SC_(-0.059414308841952830929071045427642264332649709039605), SC_(0.36941533931174362399141104265754795528484218175544),
|
||||
SC_(18), SC_(0.826751708984375), SC_(-0.1661861116384618036402153021294856784649918532195), SC_(0.28742497280291907514593608858531889117823779493292),
|
||||
SC_(18), SC_(0.91501367092132568359375), SC_(0.24104179066621669826861428047478740284125071072384), SC_(-0.25816581242891276150855737931173321477113736399573),
|
||||
SC_(18), SC_(0.92977702617645263671875), SC_(0.30345956430814040115575308179633295683878952009221), SC_(0.053205379543234927660568467761641814470230916738039),
|
||||
SC_(18), SC_(0.93538987636566162109375), SC_(0.28695924419323148602457516358630434274549630594269), SC_(0.19040502613280754358590157800975680518526525190133),
|
||||
SC_(18), SC_(0.93773555755615234375), SC_(0.27214637032176476176235696410333280489913435468021), SC_(0.24695230662862708114901251701483136230530918002153),
|
||||
SC_(18), SC_(0.98576259613037109375), SC_(-0.30043454768104230746662772278855454488514250456508), SC_(-0.52586497321495004128692505709794988132542865806662),
|
||||
SC_(18), SC_(0.99292266368865966796875), SC_(0.10905904618186494808823511070262036756283922080124), SC_(-0.8190043052645567950966181297246945012178431035647),
|
||||
SC_(19), SC_(-0.804919183254241943359375), SC_(-0.13197080377202665736616914483295430386103226798339), SC_(0.30439185079461838727386102511417679445130143697504),
|
||||
SC_(19), SC_(-0.74602639675140380859375), SC_(-0.145888472515752488322967820082056444353328274887), SC_(-0.26146280837274387072049326070853702574943967213499),
|
||||
SC_(19), SC_(-0.72904598712921142578125), SC_(-0.049543273739376098938164118341034405465324305394334), SC_(-0.33399130950651187664252780722066231231086715215037),
|
||||
SC_(19), SC_(-0.62323606014251708984375), SC_(0.108462474462736719241499115773313996144190665045), SC_(0.27188868340165133975799203281538322711757069710654),
|
||||
SC_(19), SC_(-0.5579319000244140625), SC_(-0.16898700597587011902855624616392747901805702881528), SC_(0.16296957620279172219978419815087191821651266886829),
|
||||
SC_(19), SC_(-0.44300353527069091796875), SC_(0.086774244261237041187502205186727910747248943821998), SC_(-0.2669005399736008170995423913834449884708993279043),
|
||||
SC_(19), SC_(-0.38366591930389404296875), SC_(0.18518233719073980253783272267881493406790394149709), SC_(0.050815807727239433167794934837935315089529954541468),
|
||||
SC_(19), SC_(0.09376299381256103515625), SC_(-0.1749285947092888721974786955725138685456169025118), SC_(-0.073354024188019371331713593919507214584741353774141),
|
||||
SC_(19), SC_(0.0944411754608154296875), SC_(-0.17429825143908666454510603569046385180196182465626), SC_(-0.077001126265999192631865199712139132518527301044888),
|
||||
SC_(19), SC_(0.264718532562255859375), SC_(0.16022500206625985912825819052448183125933330717671), SC_(0.14198924834209712722889554522828334583526568794205),
|
||||
SC_(19), SC_(0.62944734096527099609375), SC_(-0.13438326361094362774586020859943409104199788819994), SC_(0.24300673266449070282404274854258133237165626165118),
|
||||
SC_(19), SC_(0.67001712322235107421875), SC_(-0.20602713406941943301157630033028134054188569383329), SC_(-0.060940372673870113382880029493240963759634545830116),
|
||||
SC_(19), SC_(0.81158387660980224609375), SC_(0.086971455844324875234132438927179131969983584970598), SC_(0.34508503887069582338167006750623249283260807122053),
|
||||
SC_(19), SC_(0.826751708984375), SC_(-0.033442914793680897952010218712581529745899360903155), SC_(0.37454337915916963566398826067574338174597268932648),
|
||||
SC_(19), SC_(0.91501367092132568359375), SC_(0.15007656103598576739971044779394255546718356845339), SC_(-0.37908868831917397336990106081043384870642885722423),
|
||||
SC_(19), SC_(0.92977702617645263671875), SC_(0.28693501649909716776829384064013974960722420152263), SC_(-0.12313038336912701300360856578205807776474791522058),
|
||||
SC_(19), SC_(0.93538987636566162109375), SC_(0.30324802829239922164147482899163792077902516015462), SC_(0.017801725881771420248228319415115282604840122400748),
|
||||
SC_(19), SC_(0.93773555755615234375), SC_(0.30185089350015097041813236342216465473811492066808), SC_(0.080512539757557010183574032982523614885735562454396),
|
||||
SC_(19), SC_(0.98576259613037109375), SC_(-0.34396150797274909426987918450335894287593307514199), SC_(-0.42686745322594445556165789826564473675847159812306),
|
||||
SC_(19), SC_(0.99292266368865966796875), SC_(0.043969381393564338898972458003559718667557179801894), SC_(-0.81279540498362619452519349374691829897388634698573),
|
||||
};
|
||||
#undef SC_
|
||||
|
165
test/legendre_p_large.ipp
Normal file
@ -0,0 +1,165 @@
|
||||
#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
|
||||
static const boost::array<boost::array<T, 4>, 160> legendre_p_large = {
|
||||
SC_(29), SC_(-0.74602639675140380859375), SC_(0.050915219643735786802064817454102557266509665552523), SC_(-0.27118035040452065163236941090242943684321195237749),
|
||||
SC_(29), SC_(-0.72904598712921142578125), SC_(0.15209960929167220423613043592541930303920942697128), SC_(-0.1438359066051312703697159687668902900032679225431),
|
||||
SC_(29), SC_(-0.5579319000244140625), SC_(0.15849246733249484229246386045081847903407720368835), SC_(-0.046562152771403674797644638451970346262085750814402),
|
||||
SC_(29), SC_(-0.38366591930389404296875), SC_(0.12421123432704035296982084866318407821031736589989), SC_(-0.13993608234219292039527623183264127314107515942999),
|
||||
SC_(29), SC_(0.264718532562255859375), SC_(0.14939214703729469665461134129487953904270632801499), SC_(0.011880798886655750194841085329195617037793542295307),
|
||||
SC_(29), SC_(0.62944734096527099609375), SC_(0.15752641351603055527713997332857496041323176430518), SC_(-0.085333543185746265108134728242042619782666873361817),
|
||||
SC_(29), SC_(0.67001712322235107421875), SC_(0.054837169775284662482177068305626352949947763721645), SC_(0.25355488589896471253311476119270056443895635234837),
|
||||
SC_(29), SC_(0.81158387660980224609375), SC_(0.063381360227496634467950288363046198618583970049264), SC_(0.28493842219370104406874711812243725560916796813782),
|
||||
SC_(29), SC_(0.826751708984375), SC_(-0.08420018636937566660354955907203801287585967235842), SC_(0.27769559592859630765679556893873497642068025145103),
|
||||
SC_(29), SC_(0.93773555755615234375), SC_(-0.24176816577505910452921016056528287088649954762181), SC_(0.094296671036158090707906492415425184420130303729612),
|
||||
SC_(32), SC_(-0.74602639675140380859375), SC_(-0.10624862108385367062544557604098705758947684718283), SC_(-0.21143967375447832725357384431573889445833865564692),
|
||||
SC_(32), SC_(-0.72904598712921142578125), SC_(0.025162565093345926014241859993355739041989277225088), SC_(-0.26274148479323222549160374105375114037174210402628),
|
||||
SC_(32), SC_(-0.5579319000244140625), SC_(0.14211456817063838568644446010057604214542220046016), SC_(-0.09163254161603810457705450004999666401809984055068),
|
||||
SC_(32), SC_(-0.38366591930389404296875), SC_(0.14171288019304087574298677776314705938680717437038), SC_(-0.052711866447932948820821929976771090258669811818703),
|
||||
SC_(32), SC_(0.264718532562255859375), SC_(-0.10746376970464863575465113222711354062288152228845), SC_(0.14703447108655800801097998317667773187484429086529),
|
||||
SC_(32), SC_(0.62944734096527099609375), SC_(-0.15721886386953844900014008976876572130375292635363), SC_(-0.03463115417113285817814346783115703627607698101613),
|
||||
SC_(32), SC_(0.67001712322235107421875), SC_(0.048628774250235041116639532793364743422360425715375), SC_(-0.24343097490553436355382554969125452470269482841518),
|
||||
SC_(32), SC_(0.81158387660980224609375), SC_(0.14709429758897851782623104453504062279048901484918), SC_(-0.17120780885496551232352932901235943774904473019944),
|
||||
SC_(32), SC_(0.826751708984375), SC_(0.18197608635110136442722424209924919380946511973609), SC_(0.064598428569533734464113024874557402334768980022172),
|
||||
SC_(32), SC_(0.93773555755615234375), SC_(-0.061512016664104396409494145001588438528631649237376), SC_(0.36010369834698605740012216441227373597825633684005),
|
||||
SC_(33), SC_(-0.74602639675140380859375), SC_(-0.010238220971698350467857407217583972140726845648941), SC_(0.26483415891807978747956511959896313413438051711664),
|
||||
SC_(33), SC_(-0.72904598712921142578125), SC_(-0.1308485763851203410864936505227876528881511136519), SC_(0.16199934006548616731309863119775152390583901324519),
|
||||
SC_(33), SC_(-0.5579319000244140625), SC_(-0.12577548566890528018101278253700971908249029962743), SC_(-0.13213214605592102018000812058769351569734360406003),
|
||||
SC_(33), SC_(-0.38366591930389404296875), SC_(-0.084070866208971510118625762007538569384131026389396), SC_(-0.18256278466727144314587766075483055968035831220494),
|
||||
SC_(33), SC_(0.264718532562255859375), SC_(0.060892666049180052331868898508597370624428803024817), SC_(0.19866890409777954034785008801181600022935344886198),
|
||||
SC_(33), SC_(0.62944734096527099609375), SC_(-0.11433728271514716149262038842691043741855456620044), SC_(0.16755876228487195768012212741139439591382292792337),
|
||||
SC_(33), SC_(0.67001712322235107421875), SC_(-0.081236062053488889130078168052517557727777089991736), SC_(-0.21649027108290998691804424765459226889986656795972),
|
||||
SC_(33), SC_(0.81158387660980224609375), SC_(0.054836608100875136695247613465739163323207341583917), SC_(-0.26983701252599468973584716961923532939147494467454),
|
||||
SC_(33), SC_(0.826751708984375), SC_(0.17096451544704338934795787534509579387648987239154), SC_(-0.10583253904494668067403419241018401345294284279768),
|
||||
SC_(33), SC_(0.93773555755615234375), SC_(0.021689551526675134145413087356244487320455743955836), SC_(0.36566095216176988383802606024502153062571425905414),
|
||||
SC_(38), SC_(-0.74602639675140380859375), SC_(-0.084123836557398448368713685848077796605866311328419), SC_(0.20927452879651299362933031503631704855861507328485),
|
||||
SC_(38), SC_(-0.72904598712921142578125), SC_(-0.15529625891826503441381053635222357317586896447525), SC_(0.0095728141123042996678374510905606631222574103483576),
|
||||
SC_(38), SC_(-0.5579319000244140625), SC_(0.098453621336514494698473554065871517874604718865768), SC_(-0.15887228344501787123307716070402047502579097616639),
|
||||
SC_(38), SC_(-0.38366591930389404296875), SC_(0.1142998723616291395401060145662954970184529162179), SC_(0.10927652072714659779878476348183517273638952750771),
|
||||
SC_(38), SC_(0.264718532562255859375), SC_(0.082342405948218235800013849335056084637027957309688), SC_(0.15992426917043357157539330709673818274284050011282),
|
||||
SC_(38), SC_(0.62944734096527099609375), SC_(-0.068455729281013919450961847170789295612305662562268), SC_(-0.20232791952033959865517436817152841139901171805722),
|
||||
SC_(38), SC_(0.67001712322235107421875), SC_(0.14923503774161864776328729535793778940014260423005), SC_(-0.00081555462858474175721539924197608607382214710104177),
|
||||
SC_(38), SC_(0.81158387660980224609375), SC_(-0.054544375275263481570647398342926037642622621118648), SC_(0.24995338198241340981855015694448657310842038102797),
|
||||
SC_(38), SC_(0.826751708984375), SC_(-0.16721624694409901980215061835708625790102572947942), SC_(0.059275472334568365380770389586353873529433513464428),
|
||||
SC_(38), SC_(0.93773555755615234375), SC_(0.20855301957399606773775871068964050472366514949047), SC_(-0.10030484670657737103060450542322599342156588398843),
|
||||
SC_(42), SC_(-0.74602639675140380859375), SC_(0.049566019304086784068530075774279790089365026819016), SC_(-0.2223326328142980698042327834311390349548637605267),
|
||||
SC_(42), SC_(-0.72904598712921142578125), SC_(0.14591441453221755504339013126253144361512927416181), SC_(-0.03816847032424030854934985301169674005663852971074),
|
||||
SC_(42), SC_(-0.5579319000244140625), SC_(-0.13430204358943900275964577227355331227334636201161), SC_(0.0051973684528497691222879613574650304460896053520729),
|
||||
SC_(42), SC_(-0.38366591930389404296875), SC_(0.065763896800574200794337123835235188691341407252599), SC_(-0.1713134367479732947155934942710203117432539046046),
|
||||
SC_(42), SC_(0.264718532562255859375), SC_(-0.047554509216288149280305803250205697401306151867419), SC_(0.18095441384071096874666701309266904943143926028736),
|
||||
SC_(42), SC_(0.62944734096527099609375), SC_(0.10935216508815166523730605326515550073363675346191), SC_(0.1343668237290581228732195022404437327151868599812),
|
||||
SC_(42), SC_(0.67001712322235107421875), SC_(-0.13896760821264559453299826838169576033084249809532), SC_(0.046166285445723758516981086429175967795330032118854),
|
||||
SC_(42), SC_(0.81158387660980224609375), SC_(0.13257761059856394025891806012454608734090842373859), SC_(-0.14099679657580961322235886444766213263432122864624),
|
||||
SC_(42), SC_(0.826751708984375), SC_(0.14083726257982003772240761087663193372628899052788), SC_(0.12939522669379464935358907263220136856872326106689),
|
||||
SC_(42), SC_(0.93773555755615234375), SC_(-0.030227297367381724405890694551090646808341233639839), SC_(-0.32263036348629243619745931620595788155104891833781),
|
||||
SC_(47), SC_(-0.74602639675140380859375), SC_(0.10555867750979365926641158999955582823336205722782), SC_(-0.14886382691569576113160226420850148145570650896964),
|
||||
SC_(47), SC_(-0.72904598712921142578125), SC_(0.12518796913926798559687521769888776380193823473818), SC_(0.098180244656107285818363063590386661434884234727998),
|
||||
SC_(47), SC_(-0.5579319000244140625), SC_(0.019958376774871797942991524370694468827252910590651), SC_(-0.19713453245538155745224332261651795745681090546712),
|
||||
SC_(47), SC_(-0.38366591930389404296875), SC_(-0.017374612252196858651395396286373314512171227712276), SC_(0.18725030551272538736891544492946995866076663640595),
|
||||
SC_(47), SC_(0.264718532562255859375), SC_(-0.018801793887180091986096938136652872878107965315931), SC_(0.1828072182041642441226028996345379902315722570693),
|
||||
SC_(47), SC_(0.62944734096527099609375), SC_(-0.10497355122531684338594399243517694074545593042325), SC_(0.12395441308292615650354652321967372630461017577647),
|
||||
SC_(47), SC_(0.67001712322235107421875), SC_(0.042375691594523493089898030922098260697978949901084), SC_(-0.20027976349819205062196975868907081288964978457637),
|
||||
SC_(47), SC_(0.81158387660980224609375), SC_(-0.12720249332232236538255468589569255750641552199498), SC_(0.12911204921470701304207453622146811162549192306205),
|
||||
SC_(47), SC_(0.826751708984375), SC_(-0.11972156572489977935845748400575031716451757509736), SC_(-0.15299307930087258161082851169709559917733372444518),
|
||||
SC_(47), SC_(0.93773555755615234375), SC_(-0.18448824265114203879229766781768231984156422989655), SC_(0.10574076834730194623398317285604209247245691580845),
|
||||
SC_(50), SC_(-0.74602639675140380859375), SC_(-0.015930599657360476251420277903683541838529410897537), SC_(-0.21465912896739233133099578206788459237386714150655),
|
||||
SC_(50), SC_(-0.72904598712921142578125), SC_(0.12409002491708828479268113070514774903536846383229), SC_(-0.086287169891479867966715770145964370224141052863963),
|
||||
SC_(50), SC_(-0.5579319000244140625), SC_(-0.005798165247856899753189081564247189672477629817479), SC_(-0.19337852580649058999917721542653095981057374271772),
|
||||
SC_(50), SC_(-0.38366591930389404296875), SC_(-0.059497023650103635064046099627669865791536750381894), SC_(0.15794384507010689572165607053156094367974620258235),
|
||||
SC_(50), SC_(0.264718532562255859375), SC_(-0.065209573905631036859687403696160942576965840778783), SC_(-0.14751871407424188124249576268838594921576865374728),
|
||||
SC_(50), SC_(0.62944734096527099609375), SC_(0.1254648614906361354063479552814166773167878049504), SC_(-0.034440129398110338581115403924597511980186351811602),
|
||||
SC_(50), SC_(0.67001712322235107421875), SC_(-0.10619347339517479426067516348745796102076178371881), SC_(0.11862572725603045508458932631769711812763534799817),
|
||||
SC_(50), SC_(0.81158387660980224609375), SC_(0.11273074165283415173181149763996018303702643671155), SC_(0.14790659055314203028889130297212665219056965725573),
|
||||
SC_(50), SC_(0.826751708984375), SC_(-0.066592210444900044500145874300565502648306521922739), SC_(0.21057227237727695731942424868416443302373930752217),
|
||||
SC_(50), SC_(0.93773555755615234375), SC_(-0.02964420684396612633089666751568875846128660261089), SC_(0.29554119190479578704553201067740518317569997711165),
|
||||
SC_(74), SC_(-0.74602639675140380859375), SC_(-0.11276175922769771071169791815382160822979193457584), SC_(-0.016948886125033992210699876903298192468926010338659),
|
||||
SC_(74), SC_(-0.72904598712921142578125), SC_(0.043325082362381951121810614501313351872910740229927), SC_(-0.16177588767320896275870106383776756479873939526599),
|
||||
SC_(74), SC_(-0.5579319000244140625), SC_(-0.10080435030792016569597859069478841148013073447729), SC_(0.018251782587574233476818350810881185458410525739317),
|
||||
SC_(74), SC_(-0.38366591930389404296875), SC_(0.046884436541549348713098747004974391148402679382921), SC_(-0.13193735158761539160783845591049668332581458959337),
|
||||
SC_(74), SC_(0.264718532562255859375), SC_(-0.041828012721919454058249300993966878486562319326719), SC_(-0.13246532996002790918584053275877515690218265371078),
|
||||
SC_(74), SC_(0.62944734096527099609375), SC_(-0.094030311892407800682586230577407806078989970029721), SC_(-0.072919542245915760263666497413547057327808714299635),
|
||||
SC_(74), SC_(0.67001712322235107421875), SC_(0.029245586267240350595851651237554590988267446471066), SC_(0.16214505190101967431610553130957058464946341991298),
|
||||
SC_(74), SC_(0.81158387660980224609375), SC_(-0.017184547316074253794515299386081262373448628108694), SC_(-0.18803727598401509696193566641796932606576440421714),
|
||||
SC_(74), SC_(0.826751708984375), SC_(0.11918365992241106370554467669124109309788511498893), SC_(0.049271190137184585759693541797865288317081249630842),
|
||||
SC_(74), SC_(0.93773555755615234375), SC_(0.13720035943050209633696665899170965118560455647167), SC_(-0.11934635271777084702112356352205097073497522539851),
|
||||
SC_(83), SC_(-0.74602639675140380859375), SC_(0.099722551700102296576333533087493494141629020623715), SC_(0.060920145263796023814234079688232261856372810771644),
|
||||
SC_(83), SC_(-0.72904598712921142578125), SC_(-0.082673563441569816515278309758665439909493115318683), SC_(0.10304666821416430755952808837580442197138532186102),
|
||||
SC_(83), SC_(-0.5579319000244140625), SC_(-0.071469557226080465580663942218061835065596029503675), SC_(0.10032073353554464505277586981830025137954384680805),
|
||||
SC_(83), SC_(-0.38366591930389404296875), SC_(0.090342825331683058526707865550737058600999436851883), SC_(0.015229849936687863148217151178879823068202772258005),
|
||||
SC_(83), SC_(0.264718532562255859375), SC_(0.032973965659052868308616011181565750057675408468301), SC_(-0.12971015008879036949215807951525454450331853071241),
|
||||
SC_(83), SC_(0.62944734096527099609375), SC_(-0.029540121157521228269021443084960584105688041972903), SC_(0.14851201098143861160585951812951951622661772174285),
|
||||
SC_(83), SC_(0.67001712322235107421875), SC_(0.10122142405146658235259251832888419156202562486693), SC_(0.0077420083935597411748271095780871224198331320212672),
|
||||
SC_(83), SC_(0.81158387660980224609375), SC_(0.057246164186558041309336522292709213691507098187941), SC_(-0.15527890012859959180010630068393674149758957305009),
|
||||
SC_(83), SC_(0.826751708984375), SC_(0.046180391617246980558614459450209311982173717330398), SC_(0.16785562098976736293735241808043927696415685748103),
|
||||
SC_(83), SC_(0.93773555755615234375), SC_(-0.12572490913391149598157598741888682182134531126631), SC_(0.12308046852619065606878331099164630107367082534757),
|
||||
SC_(101), SC_(-0.74602639675140380859375), SC_(0.058653496347056952338276621328805913660326830178208), SC_(0.12145297221972220508843876281155663375125894189862),
|
||||
SC_(101), SC_(-0.72904598712921142578125), SC_(-0.090473034865819302928187941359278959062428518755725), SC_(-0.049121669560248310898765467668228847931197026959131),
|
||||
SC_(101), SC_(-0.5579319000244140625), SC_(0.032856366144512093838472879802827945157670404434094), SC_(0.12642835711847836774479013663589314743072554059549),
|
||||
SC_(101), SC_(-0.38366591930389404296875), SC_(-0.063163736094262211023950792526928416942278796176713), SC_(0.08315035982603328572025956598160739433185168321863),
|
||||
SC_(101), SC_(0.264718532562255859375), SC_(0.071163045255901039101130479356531344296261959626307), SC_(0.059605104967104404152251553269156920601599226776817),
|
||||
SC_(101), SC_(0.62944734096527099609375), SC_(-0.0007727131004341142524741554693628840685676674658113), SC_(-0.14111849131537663857555529499523590733520446597943),
|
||||
SC_(101), SC_(0.67001712322235107421875), SC_(-0.070407995641034625719001861506953232343608676996959), SC_(-0.092817700559800711222725905975289230096607292859021),
|
||||
SC_(101), SC_(0.81158387660980224609375), SC_(0.099307321362112185306610136683788343902740025414221), SC_(0.046418617748086995449796412250804429903067746389578),
|
||||
SC_(101), SC_(0.826751708984375), SC_(-0.1041094321529210978436084887455176793203883621926), SC_(0.027652245608769378268189646446135419146885683214923),
|
||||
SC_(101), SC_(0.93773555755615234375), SC_(-0.10613119080999585675059148209842336075096154309699), SC_(0.12944930189574758589151748582113145300025202556463),
|
||||
SC_(103), SC_(-0.74602639675140380859375), SC_(-0.069509159753968058194042786081992949167966470822951), SC_(0.1042540571293701201528028813211055287246877892261),
|
||||
SC_(103), SC_(-0.72904598712921142578125), SC_(0.025263082930279778421327606486190138820142052030236), SC_(-0.14351968257852565285920081107438326042937783381617),
|
||||
SC_(103), SC_(-0.5579319000244140625), SC_(-0.086090797701103710780927800364190497383336250842762), SC_(0.73563687415286537614692801503996295947038747498055e-4),
|
||||
SC_(103), SC_(-0.38366591930389404296875), SC_(0.0069903138700112647861271558581807248069002924998414), SC_(-0.12772502121884169194613640292720812041466814164591),
|
||||
SC_(103), SC_(0.264718532562255859375), SC_(-0.041410666477160831448449369636364604203824717736859), SC_(-0.10726985707386768666039161492413816004770025158786),
|
||||
SC_(103), SC_(0.62944734096527099609375), SC_(-0.086869296604861708037479158615097773729001515720048), SC_(0.030189104543447976063127397009596619632060749539848),
|
||||
SC_(103), SC_(0.67001712322235107421875), SC_(-0.05108553281416170397625929563635477985617692288556), SC_(0.11834130734691348519983812797384944794665350021719),
|
||||
SC_(103), SC_(0.81158387660980224609375), SC_(0.058956687321621474446809458105596372447480179278297), SC_(-0.131908419975604481181323208249846590177155219106),
|
||||
SC_(103), SC_(0.826751708984375), SC_(-0.021621095970943942775281831322383200051308475737036), SC_(0.16069626010796515826935041981775936523380391638463),
|
||||
SC_(103), SC_(0.93773555755615234375), SC_(-0.026566877946901700789372137814260494007273459963555), SC_(0.20481046345010719355266366241281814363105606775192),
|
||||
SC_(110), SC_(-0.74602639675140380859375), SC_(-0.033942958151465668508584449603964158663794075720858), SC_(-0.13602869614463514275977560482278281839843937232776),
|
||||
SC_(110), SC_(-0.72904598712921142578125), SC_(0.061608143475272538317308473633212181102846034412592), SC_(0.10678453148405205098663916975358345244841432153652),
|
||||
SC_(110), SC_(-0.5579319000244140625), SC_(0.070207133539044196827310003993778517549356416945079), SC_(0.070477582350084174929316416542386486473261420732256),
|
||||
SC_(110), SC_(-0.38366591930389404296875), SC_(-0.070383145106891206011892398176473132776246310124518), SC_(-0.056304633257010713541779389121079213335581039992689),
|
||||
SC_(110), SC_(0.264718532562255859375), SC_(0.018413502281400223048564975179622159141770330579945), SC_(0.1179172684960028730149587291496622038750077559426),
|
||||
SC_(110), SC_(0.62944734096527099609375), SC_(-0.084946393685047629698742653748849213204262536726215), SC_(0.02212137389603911574713594832891805519677492495707),
|
||||
SC_(110), SC_(0.67001712322235107421875), SC_(-0.075205818842405280724589166472562327621104655346223), SC_(0.072065721597278484368730413339141193881824291866732),
|
||||
SC_(110), SC_(0.81158387660980224609375), SC_(0.057209406868467160414288975624360868544196124966652), SC_(0.12749587894184737263697744890517205077643805330212),
|
||||
SC_(110), SC_(0.826751708984375), SC_(-0.074856792842343494297327888969538339348549563347874), SC_(-0.10696602381164176466519470638170406570388141831222),
|
||||
SC_(110), SC_(0.93773555755615234375), SC_(0.097528283970739845680724641236094845179184947489201), SC_(-0.13210730523293428301663298753017310169984684526741),
|
||||
SC_(111), SC_(-0.74602639675140380859375), SC_(-0.032200675894540407249249527986931235112743426249519), SC_(0.13636975986133435085016449724426916756505823281803),
|
||||
SC_(111), SC_(-0.72904598712921142578125), SC_(0.0016092508123221426259782618321854563885148486902523), SC_(-0.14344152276755107203423370387654056491916060539013),
|
||||
SC_(111), SC_(-0.5579319000244140625), SC_(-0.0019266546022300930027573050620657297985689216768549), SC_(-0.13025449845936477071498681592486478446863468033711),
|
||||
SC_(111), SC_(-0.38366591930389404296875), SC_(-0.00607083307494418231810803422278831700786776274005), SC_(0.12314301905657725821736747827712979258060988004664),
|
||||
SC_(111), SC_(0.264718532562255859375), SC_(0.076917600598861354810476795406500521438714159220046), SC_(0.0033075920020254493876180380438220398526976541180716),
|
||||
SC_(111), SC_(0.62944734096527099609375), SC_(-0.042334521409296933382182292266822707946314463083643), SC_(0.11707980002880993162285312441701953239742048843854),
|
||||
SC_(111), SC_(0.67001712322235107421875), SC_(-0.01625732237213437043904647280255024284754469471479), SC_(0.13536990666014865190613699141291179267903978819174),
|
||||
SC_(111), SC_(0.81158387660980224609375), SC_(0.093429234850716867173081121412126317601100287085826), SC_(0.050740491224134820431672350744872870880796379842562),
|
||||
SC_(111), SC_(0.826751708984375), SC_(-0.099746842249768677069851749588989036311889774927283), SC_(-0.02218254391038425158040959896075971134469612198156),
|
||||
SC_(111), SC_(0.93773555755615234375), SC_(0.061960098625334578699531381570226002216446334987954), SC_(-0.17630158114468011704453109150917307426932700963538),
|
||||
SC_(115), SC_(-0.74602639675140380859375), SC_(0.011659882634088537821264971193347238274907192891989), SC_(-0.1417288093884680768867130033428123726827027042855),
|
||||
SC_(115), SC_(-0.72904598712921142578125), SC_(0.0097131893606856202751128572690136150201795716231646), SC_(0.14012961153023905234915467648238152308202483249179),
|
||||
SC_(115), SC_(-0.5579319000244140625), SC_(-0.055599872031625140506136394171510860309410123809349), SC_(0.093594483130628843819694780782575925754784924670163),
|
||||
SC_(115), SC_(-0.38366591930389404296875), SC_(0.077050446497529102420650609981634503271775399693683), SC_(0.0088565512206407663055683543736671275288183109816667),
|
||||
SC_(115), SC_(0.264718532562255859375), SC_(0.034359839114246272577599724967370326173387403660347), SC_(0.10578248128418573373870536860675213912264059240692),
|
||||
SC_(115), SC_(0.62944734096527099609375), SC_(0.0082643990325571512244908953318239675941855106132265), SC_(-0.13165640504236233394765218021604504786233485133267),
|
||||
SC_(115), SC_(0.67001712322235107421875), SC_(-0.0015721055642368064825337799606692523719130974520218), SC_(-0.1353286900783831392195565600906463227612561145681),
|
||||
SC_(115), SC_(0.81158387660980224609375), SC_(-0.054210930576897856499034808655933306801074683806062), SC_(-0.12659507936588546926051398902517626516964689218928),
|
||||
SC_(115), SC_(0.826751708984375), SC_(0.06212883372643213611372963364539976692767234086995), SC_(0.12103709534949250997508001328034108589273615963615),
|
||||
SC_(115), SC_(0.93773555755615234375), SC_(-0.09980919675793132053530446510639647979845319955803), SC_(-0.12070840338940873219064713828143611372512223844091),
|
||||
SC_(116), SC_(-0.74602639675140380859375), SC_(-0.068487247444151474237653315277483909414503521300912), SC_(0.093133560384715286625946002729620416337163521029867),
|
||||
SC_(116), SC_(-0.72904598712921142578125), SC_(0.053747789206590672037151315696697693783833792642693), SC_(-0.11211897478819628686868719378051029417346515093252),
|
||||
SC_(116), SC_(-0.5579319000244140625), SC_(0.080122819627702864075844102189789799443576781457988), SC_(0.020173351559352067990742477146036299831908728103273),
|
||||
SC_(116), SC_(-0.38366591930389404296875), SC_(-0.024249827411491278686372542928360990815946534826784), SC_(-0.11467110049800068759284312552536360348652573880772),
|
||||
SC_(116), SC_(0.264718532562255859375), SC_(0.073718014154393579573780297435185676405997097861731), SC_(-0.023941183188976671650101777466534611583995107650774),
|
||||
SC_(116), SC_(0.62944734096527099609375), SC_(-0.059668625982518363289929597563274657874779402078409), SC_(-0.09255759087664323717343674706577199358384636772319),
|
||||
SC_(116), SC_(0.67001712322235107421875), SC_(-0.064729455762043452505626574517572044801030359192088), SC_(-0.088456402518418445483355798933259689021877395507254),
|
||||
SC_(116), SC_(0.81158387660980224609375), SC_(-0.09069070444539916571162153776802786573166522696411), SC_(-0.0527625562114936996735580314666853717965865324919),
|
||||
SC_(116), SC_(0.826751708984375), SC_(0.094306540731834905126868750171910154657206855132072), SC_(0.044969460070177494430473922626932676591613349156668),
|
||||
SC_(116), SC_(0.93773555755615234375), SC_(-0.11977051432565183689355134402005152657631906753244), SC_(-0.058477756477300972556925093606746906197796783801524),
|
||||
SC_(119), SC_(-0.74602639675140380859375), SC_(0.0087647065593993755222972658179029408444330186700542), SC_(0.13981912827212672744690925773170472610548387878822),
|
||||
SC_(119), SC_(-0.72904598712921142578125), SC_(-0.020501605529893412888893201088044338252329402923723), SC_(-0.13478486824495203061528622211548575586334551817436),
|
||||
SC_(119), SC_(-0.5579319000244140625), SC_(0.080036079293206370171512732389414344286704185353321), SC_(-0.0057776707755366365863380008852867161540142918927643),
|
||||
SC_(119), SC_(-0.38366591930389404296875), SC_(0.0052218893934731418741815240011222420959400585517152), SC_(-0.11902359008249444427689952801477258632653373728298),
|
||||
SC_(119), SC_(0.264718532562255859375), SC_(-0.041958445146548813480092404170567661553263062970998), SC_(0.096369084287714671301426340819694101521306372531871),
|
||||
SC_(119), SC_(0.62944734096527099609375), SC_(0.026043742963778131871545929796683083958834802939707), SC_(0.12346064721462223505658160979882243719998039566685),
|
||||
SC_(119), SC_(0.67001712322235107421875), SC_(0.018730148385420890536233247762177938725955754094692), SC_(0.12977342706190187482418503847938799787319981967217),
|
||||
SC_(119), SC_(0.81158387660980224609375), SC_(-0.0051210369574630302606435588094752910907524904265636), SC_(0.14977897540214287229711857221722487285805056065051),
|
||||
SC_(119), SC_(0.826751708984375), SC_(0.0070994904638281005505473502488606481760552210237098), SC_(-0.15244878741668898076438519389186244649902911784835),
|
||||
SC_(119), SC_(0.93773555755615234375), SC_(-0.089511411656126705336943924861664813522610049042024), SC_(0.13442707735952316190476066030580938662981623871763),
|
||||
};
|
||||
#undef SC_
|
||||
|
1005
test/spherical_harmonic.ipp
Normal file
@ -18,6 +18,10 @@
|
||||
#include <boost/math/distributions/lognormal.hpp>
|
||||
#include <boost/math/special_functions/digamma.hpp>
|
||||
#include <boost/math/special_functions/cbrt.hpp>
|
||||
#include <boost/math/special_functions/legendre.hpp>
|
||||
#include <boost/math/special_functions/laguerre.hpp>
|
||||
#include <boost/math/special_functions/hermite.hpp>
|
||||
#include <boost/math/special_functions/spherical_harmonic.hpp>
|
||||
|
||||
//
|
||||
// The purpose of this test is to verify that our code compiles
|
||||
@ -269,6 +273,19 @@ void test_functions()
|
||||
boost::math::cbrt(v1);
|
||||
boost::math::sqrt1pm1(v1);
|
||||
boost::math::powm1(v1, v2);
|
||||
boost::math::legendre_p(1, v1);
|
||||
boost::math::legendre_p(1, 0, v1);
|
||||
boost::math::legendre_q(1, v1);
|
||||
boost::math::legendre_next(2, v1, v2, v3);
|
||||
boost::math::legendre_next(2, 2, v1, v2, v3);
|
||||
boost::math::laguerre(1, v1);
|
||||
boost::math::laguerre(2, 1, v1);
|
||||
boost::math::laguerre_next(2, v1, v2, v3);
|
||||
boost::math::laguerre_next(2, 1, v1, v2, v3);
|
||||
boost::math::hermite(1, v1);
|
||||
boost::math::hermite_next(2, v1, v2, v3);
|
||||
boost::math::spherical_harmonic_r(2, 1, v1, v2);
|
||||
boost::math::spherical_harmonic_i(2, 1, v1, v2);
|
||||
|
||||
}
|
||||
|
||||
|
190
test/test_hermite.cpp
Normal file
@ -0,0 +1,190 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#include <boost/math/concepts/real_concept.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/test/floating_point_comparison.hpp>
|
||||
#include <boost/math/special_functions/hermite.hpp>
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/lambda/lambda.hpp>
|
||||
#include <boost/lambda/bind.hpp>
|
||||
|
||||
#include "handle_test_result.hpp"
|
||||
#include "test_legendre_hooks.hpp"
|
||||
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// ~~~~~~~~~~~~
|
||||
//
|
||||
// This file tests the Hermite polynomials.
|
||||
// There are two sets of tests, spot
|
||||
// tests which compare our results with selected values computed
|
||||
// using the online special function calculator at
|
||||
// functions.wolfram.com, while the bulk of the accuracy tests
|
||||
// use values generated with NTL::RR at 1000-bit precision
|
||||
// and our generic versions of these functions.
|
||||
//
|
||||
// Note that when this file is first run on a new platform many of
|
||||
// these tests will fail: the default accuracy is 1 epsilon which
|
||||
// is too tight for most platforms. In this situation you will
|
||||
// need to cast a human eye over the error rates reported and make
|
||||
// a judgement as to whether they are acceptable. Either way please
|
||||
// report the results to the Boost mailing list. Acceptable rates of
|
||||
// error are marked up below as a series of regular expressions that
|
||||
// identify the compiler/stdlib/platform/data-type/test-data/test-function
|
||||
// along with the maximum expected peek and RMS mean errors for that
|
||||
// test.
|
||||
//
|
||||
|
||||
void expected_results()
|
||||
{
|
||||
//
|
||||
// Define the max and mean errors expected for
|
||||
// various compilers and platforms.
|
||||
//
|
||||
const char* largest_type;
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
if(boost::math::tools::digits<double>() == boost::math::tools::digits<long double>())
|
||||
{
|
||||
largest_type = "(long\\s+)?double";
|
||||
}
|
||||
else
|
||||
{
|
||||
largest_type = "long double";
|
||||
}
|
||||
#else
|
||||
largest_type = "(long\\s+)?double";
|
||||
#endif
|
||||
|
||||
//
|
||||
// Catch all cases come last:
|
||||
//
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
".*", // test data group
|
||||
"boost::math::hermite", 10, 5); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
".*", // test data group
|
||||
"boost::math::hermite", 10, 5); // test function
|
||||
//
|
||||
// Finish off by printing out the compiler/stdlib/platform names,
|
||||
// we do this to make it easier to mark up expected error rates.
|
||||
//
|
||||
std::cout << "Tests run with " << BOOST_COMPILER << ", "
|
||||
<< BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_hermite(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(unsigned, value_type);
|
||||
pg funcp = boost::math::hermite;
|
||||
|
||||
typedef unsigned (*cast_t)(value_type);
|
||||
cast_t rc = &boost::math::tools::real_cast<unsigned, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test hermite against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::hermite", test_name);
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_hermite(T, const char* name)
|
||||
{
|
||||
//
|
||||
// The actual test data is rather verbose, so it's in a separate file
|
||||
//
|
||||
// The contents are as follows, each row of data contains
|
||||
// three items, input value a, input value b and erf(a, b):
|
||||
//
|
||||
# include "hermite.ipp"
|
||||
|
||||
do_test_hermite(hermite, name, "Hermite Polynomials");
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_spots(T, const char* t)
|
||||
{
|
||||
std::cout << "Testing basic sanity checks for type " << t << std::endl;
|
||||
//
|
||||
// basic sanity checks, tolerance is 100 epsilon:
|
||||
// These spots were generated by MathCAD, precision is
|
||||
// 14-16 digits.
|
||||
//
|
||||
T tolerance = (std::max)(boost::math::tools::epsilon<T>() * 100, static_cast<T>(1e-14));
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(0, static_cast<T>(1)), static_cast<T>(1.L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(1)), static_cast<T>(2.L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(2)), static_cast<T>(4.L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(10)), static_cast<T>(20), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(100)), static_cast<T>(200), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(1e6)), static_cast<T>(2e6), tolerance);
|
||||
if(std::numeric_limits<T>::max_exponent >= std::numeric_limits<double>::max_exponent)
|
||||
{
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(1, static_cast<T>(1e307)), static_cast<T>(2e307), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(99, static_cast<T>(100)), static_cast<T>(4.967223743011310E+227L), tolerance);
|
||||
}
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(10, static_cast<T>(30)), static_cast<T>(5.896624628001300E+17L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(10, static_cast<T>(1000)), static_cast<T>(1.023976960161280E+33L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(10, static_cast<T>(10)), static_cast<T>(8.093278209760000E+12L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(10, static_cast<T>(-10)), static_cast<T>(8.093278209760000E+12L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(3, static_cast<T>(-10)), static_cast<T>(-7.880000000000000E+3L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(3, static_cast<T>(-1000)), static_cast<T>(-7.999988000000000E+9L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::hermite(3, static_cast<T>(-1000000)), static_cast<T>(-7.999999999988000E+18L), tolerance);
|
||||
}
|
||||
|
||||
int test_main(int, char* [])
|
||||
{
|
||||
test_spots(0.0F, "float");
|
||||
test_spots(0.0, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_spots(0.0L, "long double");
|
||||
test_spots(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#endif
|
||||
|
||||
expected_results();
|
||||
|
||||
test_hermite(0.1F, "float");
|
||||
test_hermite(0.1, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_hermite(0.1L, "long double");
|
||||
test_hermite(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#else
|
||||
std::cout << "<note>The long double tests have been disabled on this platform "
|
||||
"either because the long double overloads of the usual math functions are "
|
||||
"not available at all, or because they are too inaccurate for these tests "
|
||||
"to pass.</note>" << std::cout;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
266
test/test_laguerre.cpp
Normal file
@ -0,0 +1,266 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#include <boost/math/concepts/real_concept.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/test/floating_point_comparison.hpp>
|
||||
#include <boost/math/special_functions/laguerre.hpp>
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/lambda/lambda.hpp>
|
||||
#include <boost/lambda/bind.hpp>
|
||||
|
||||
#include "handle_test_result.hpp"
|
||||
#include "test_legendre_hooks.hpp"
|
||||
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// ~~~~~~~~~~~~
|
||||
//
|
||||
// This file tests the Laguerre polynomials.
|
||||
// There are two sets of tests, spot
|
||||
// tests which compare our results with selected values computed
|
||||
// using the online special function calculator at
|
||||
// functions.wolfram.com, while the bulk of the accuracy tests
|
||||
// use values generated with NTL::RR at 1000-bit precision
|
||||
// and our generic versions of these functions.
|
||||
//
|
||||
// Note that when this file is first run on a new platform many of
|
||||
// these tests will fail: the default accuracy is 1 epsilon which
|
||||
// is too tight for most platforms. In this situation you will
|
||||
// need to cast a human eye over the error rates reported and make
|
||||
// a judgement as to whether they are acceptable. Either way please
|
||||
// report the results to the Boost mailing list. Acceptable rates of
|
||||
// error are marked up below as a series of regular expressions that
|
||||
// identify the compiler/stdlib/platform/data-type/test-data/test-function
|
||||
// along with the maximum expected peek and RMS mean errors for that
|
||||
// test.
|
||||
//
|
||||
|
||||
void expected_results()
|
||||
{
|
||||
//
|
||||
// Define the max and mean errors expected for
|
||||
// various compilers and platforms.
|
||||
//
|
||||
const char* largest_type;
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
if(boost::math::tools::digits<double>() == boost::math::tools::digits<long double>())
|
||||
{
|
||||
largest_type = "(long\\s+)?double";
|
||||
}
|
||||
else
|
||||
{
|
||||
largest_type = "long double";
|
||||
}
|
||||
#else
|
||||
largest_type = "(long\\s+)?double";
|
||||
#endif
|
||||
//
|
||||
// Linux special cases, error rates seem to be much higer here
|
||||
// even though the implementation contains nothing but basic
|
||||
// arithmetic?
|
||||
//
|
||||
if((std::numeric_limits<long double>::digits <= 64)
|
||||
&& (std::numeric_limits<long double>::digits != std::numeric_limits<double>::digits))
|
||||
{
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"double", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 10, 5); // test function
|
||||
}
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
largest_type, // test type(s)
|
||||
".*", // test data group
|
||||
".*", 40000, 1000); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
"real_concept", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 40000, 1000); // test function
|
||||
|
||||
//
|
||||
// Catch all cases come last:
|
||||
//
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
".*", // test data group
|
||||
".*", 4000, 500); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 4000, 500); // test function
|
||||
|
||||
//
|
||||
// Finish off by printing out the compiler/stdlib/platform names,
|
||||
// we do this to make it easier to mark up expected error rates.
|
||||
//
|
||||
std::cout << "Tests run with " << BOOST_COMPILER << ", "
|
||||
<< BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_laguerre2(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(unsigned, value_type);
|
||||
pg funcp = boost::math::laguerre;
|
||||
|
||||
typedef unsigned (*cast_t)(value_type);
|
||||
cast_t rc = &boost::math::tools::real_cast<unsigned, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test laguerre against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::laguerre(n, x)", test_name);
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_laguerre3(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(unsigned, unsigned, value_type);
|
||||
pg funcp = boost::math::laguerre;
|
||||
|
||||
typedef unsigned (*cast_t)(value_type);
|
||||
cast_t rc = &boost::math::tools::real_cast<unsigned, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test laguerre against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::laguerre(n, m, x)", test_name);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_laguerre(T, const char* name)
|
||||
{
|
||||
//
|
||||
// The actual test data is rather verbose, so it's in a separate file
|
||||
//
|
||||
// The contents are as follows, each row of data contains
|
||||
// three items, input value a, input value b and erf(a, b):
|
||||
//
|
||||
# include "laguerre2.ipp"
|
||||
|
||||
do_test_laguerre2(laguerre2, name, "Laguerre Polynomials");
|
||||
|
||||
# include "laguerre3.ipp"
|
||||
|
||||
do_test_laguerre3(laguerre3, name, "Associated Laguerre Polynomials");
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_spots(T, const char* t)
|
||||
{
|
||||
std::cout << "Testing basic sanity checks for type " << t << std::endl;
|
||||
//
|
||||
// basic sanity checks, tolerance is 100 epsilon:
|
||||
//
|
||||
T tolerance = boost::math::tools::epsilon<T>() * 100;
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(1, static_cast<T>(0.5L)), static_cast<T>(0.5L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(4, static_cast<T>(0.5L)), static_cast<T>(-0.3307291666666666666666666666666666666667L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(7, static_cast<T>(0.5L)), static_cast<T>(-0.5183392237103174603174603174603174603175L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(20, static_cast<T>(0.5L)), static_cast<T>(0.3120174870800154148915399248893113634676L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(50, static_cast<T>(0.5L)), static_cast<T>(-0.3181388060269979064951118308575628226834L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(1, static_cast<T>(-0.5L)), static_cast<T>(1.5L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(4, static_cast<T>(-0.5L)), static_cast<T>(3.835937500000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(7, static_cast<T>(-0.5L)), static_cast<T>(7.950934709821428571428571428571428571429L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(20, static_cast<T>(-0.5L)), static_cast<T>(76.12915699869631476833699787070874048223L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(50, static_cast<T>(-0.5L)), static_cast<T>(2307.428631277506570629232863491518399720L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(1, static_cast<T>(4.5L)), static_cast<T>(-3.500000000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(4, static_cast<T>(4.5L)), static_cast<T>(0.08593750000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(7, static_cast<T>(4.5L)), static_cast<T>(-1.036928013392857142857142857142857142857L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(20, static_cast<T>(4.5L)), static_cast<T>(1.437239150257817378525582974722170737587L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(50, static_cast<T>(4.5L)), static_cast<T>(-0.7795068145562651416494321484050019245248L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(4, 5, static_cast<T>(0.5L)), static_cast<T>(88.31510416666666666666666666666666666667L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(10, 0, static_cast<T>(2.5L)), static_cast<T>(-0.8802526766660982969576719576719576719577L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(10, 1, static_cast<T>(4.5L)), static_cast<T>(1.564311458042689732142857142857142857143L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(10, 6, static_cast<T>(8.5L)), static_cast<T>(20.51596541066649098875661375661375661376L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(10, 12, static_cast<T>(12.5L)), static_cast<T>(-199.5560968456234671241181657848324514991L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::laguerre(50, 40, static_cast<T>(12.5L)), static_cast<T>(-4.996769495006119488583146995907246595400e16L), tolerance);
|
||||
}
|
||||
|
||||
int test_main(int, char* [])
|
||||
{
|
||||
test_spots(0.0F, "float");
|
||||
test_spots(0.0, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_spots(0.0L, "long double");
|
||||
test_spots(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#endif
|
||||
|
||||
expected_results();
|
||||
|
||||
test_laguerre(0.1F, "float");
|
||||
test_laguerre(0.1, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_laguerre(0.1L, "long double");
|
||||
test_laguerre(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#else
|
||||
std::cout << "<note>The long double tests have been disabled on this platform "
|
||||
"either because the long double overloads of the usual math functions are "
|
||||
"not available at all, or because they are too inaccurate for these tests "
|
||||
"to pass.</note>" << std::cout;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
401
test/test_legendre.cpp
Normal file
@ -0,0 +1,401 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#include <boost/math/concepts/real_concept.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/test/floating_point_comparison.hpp>
|
||||
#include <boost/math/special_functions/legendre.hpp>
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/lambda/lambda.hpp>
|
||||
#include <boost/lambda/bind.hpp>
|
||||
|
||||
#include "handle_test_result.hpp"
|
||||
#include "test_legendre_hooks.hpp"
|
||||
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// ~~~~~~~~~~~~
|
||||
//
|
||||
// This file tests the legendre polynomials.
|
||||
// There are two sets of tests, spot
|
||||
// tests which compare our results with selected values computed
|
||||
// using the online special function calculator at
|
||||
// functions.wolfram.com, while the bulk of the accuracy tests
|
||||
// use values generated with NTL::RR at 1000-bit precision
|
||||
// and our generic versions of these functions.
|
||||
//
|
||||
// Note that when this file is first run on a new platform many of
|
||||
// these tests will fail: the default accuracy is 1 epsilon which
|
||||
// is too tight for most platforms. In this situation you will
|
||||
// need to cast a human eye over the error rates reported and make
|
||||
// a judgement as to whether they are acceptable. Either way please
|
||||
// report the results to the Boost mailing list. Acceptable rates of
|
||||
// error are marked up below as a series of regular expressions that
|
||||
// identify the compiler/stdlib/platform/data-type/test-data/test-function
|
||||
// along with the maximum expected peek and RMS mean errors for that
|
||||
// test.
|
||||
//
|
||||
|
||||
void expected_results()
|
||||
{
|
||||
//
|
||||
// Define the max and mean errors expected for
|
||||
// various compilers and platforms.
|
||||
//
|
||||
const char* largest_type;
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
if(boost::math::tools::digits<double>() == boost::math::tools::digits<long double>())
|
||||
{
|
||||
largest_type = "(long\\s+)?double";
|
||||
}
|
||||
else
|
||||
{
|
||||
largest_type = "long double";
|
||||
}
|
||||
#else
|
||||
largest_type = "(long\\s+)?double";
|
||||
#endif
|
||||
//
|
||||
// Linux:
|
||||
//
|
||||
if((std::numeric_limits<long double>::digits <= 64)
|
||||
&& (std::numeric_limits<long double>::digits != std::numeric_limits<double>::digits))
|
||||
{
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"double", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 10, 5); // test function
|
||||
}
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_p", 1000, 200); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_q", 7000, 1000); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_p", 1000, 200); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
"linux.*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_q", 7000, 1000); // test function
|
||||
|
||||
//
|
||||
// Catch all cases come last:
|
||||
//
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_p", 400, 200); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_q", 5000, 500); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*", // test data group
|
||||
"boost::math::legendre_p", 300, 80); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Legendre Polynomials.*", // test data group
|
||||
"boost::math::legendre_q", 100, 50); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Associated Legendre Polynomials.*", // test data group
|
||||
".*", 200, 20); // test function
|
||||
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_p", 400, 200); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*Large.*", // test data group
|
||||
"boost::math::legendre_q", 5000, 500); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*", // test data group
|
||||
"boost::math::legendre_p", 300, 80); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Legendre Polynomials.*", // test data group
|
||||
"boost::math::legendre_q", 100, 50); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
"Associated Legendre Polynomials.*", // test data group
|
||||
".*", 200, 20); // test function
|
||||
//
|
||||
// Finish off by printing out the compiler/stdlib/platform names,
|
||||
// we do this to make it easier to mark up expected error rates.
|
||||
//
|
||||
std::cout << "Tests run with " << BOOST_COMPILER << ", "
|
||||
<< BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_legendre_p(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(int, value_type);
|
||||
pg funcp = boost::math::legendre_p;
|
||||
|
||||
typedef int (*cast_t)(value_type);
|
||||
cast_t rc = &boost::math::tools::real_cast<int, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test legendre_p against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_p", test_name);
|
||||
#ifdef TEST_OTHER
|
||||
if(::boost::is_floating_point<value_type>::value){
|
||||
funcp = other::legendre_p;
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]));
|
||||
print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_p");
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef value_type (*pg2)(unsigned, value_type);
|
||||
pg2 funcp2 = boost::math::legendre_q;
|
||||
|
||||
//
|
||||
// test legendre_q against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp2,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_q", test_name);
|
||||
#ifdef TEST_OTHER
|
||||
if(::boost::is_floating_point<value_type>::value){
|
||||
funcp = other::legendre_q;
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp2,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3]));
|
||||
print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_q");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_assoc_legendre_p(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(int, int, value_type);
|
||||
pg funcp = boost::math::legendre_p;
|
||||
|
||||
typedef int (*cast_t)(value_type);
|
||||
cast_t rc = &boost::math::tools::real_cast<int, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test legendre_p against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<int>(
|
||||
boost::lambda::bind(
|
||||
rc,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_p", test_name);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_legendre_p(T, const char* name)
|
||||
{
|
||||
//
|
||||
// The actual test data is rather verbose, so it's in a separate file
|
||||
//
|
||||
// The contents are as follows, each row of data contains
|
||||
// three items, input value a, input value b and erf(a, b):
|
||||
//
|
||||
# include "legendre_p.ipp"
|
||||
|
||||
do_test_legendre_p(legendre_p, name, "Legendre Polynomials: Small Values");
|
||||
|
||||
# include "legendre_p_large.ipp"
|
||||
|
||||
do_test_legendre_p(legendre_p_large, name, "Legendre Polynomials: Large Values");
|
||||
|
||||
# include "assoc_legendre_p.ipp"
|
||||
|
||||
do_test_assoc_legendre_p(assoc_legendre_p, name, "Associated Legendre Polynomials: Small Values");
|
||||
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_spots(T, const char* t)
|
||||
{
|
||||
std::cout << "Testing basic sanity checks for type " << t << std::endl;
|
||||
//
|
||||
// basic sanity checks, tolerance is 100 epsilon:
|
||||
//
|
||||
T tolerance = boost::math::tools::epsilon<T>() * 100;
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(1, static_cast<T>(0.5L)), static_cast<T>(0.5L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-1, static_cast<T>(0.5L)), static_cast<T>(1L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(4, static_cast<T>(0.5L)), static_cast<T>(-0.2890625000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-4, static_cast<T>(0.5L)), static_cast<T>(-0.4375000000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(7, static_cast<T>(0.5L)), static_cast<T>(0.2231445312500000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-7, static_cast<T>(0.5L)), static_cast<T>(0.3232421875000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(40, static_cast<T>(0.5L)), static_cast<T>(-0.09542943523261546936538467572384923220258L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-40, static_cast<T>(0.5L)), static_cast<T>(-0.1316993126940266257030910566308990611306L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(4, 2, static_cast<T>(0.5L)), static_cast<T>(4.218750000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-4, 2, static_cast<T>(0.5L)), static_cast<T>(5.625000000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(7, 5, static_cast<T>(0.5L)), static_cast<T>(-5696.789530152175143607977274672800795328L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-7, 4, static_cast<T>(0.5L)), static_cast<T>(465.1171875000000000000000000000000000000L), tolerance);
|
||||
if(std::numeric_limits<T>::max_exponent > std::numeric_limits<float>::max_exponent)
|
||||
{
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(40, 30, static_cast<T>(0.5L)), static_cast<T>(-7.855722083232252643913331343916012143461e45L), tolerance);
|
||||
}
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-40, 20, static_cast<T>(0.5L)), static_cast<T>(4.966634149702370788037088925152355134665e30L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(4, 2, static_cast<T>(-0.5L)), static_cast<T>(4.218750000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-4, 2, static_cast<T>(-0.5L)), static_cast<T>(-5.625000000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(7, 5, static_cast<T>(-0.5L)), static_cast<T>(-5696.789530152175143607977274672800795328L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-7, 4, static_cast<T>(-0.5L)), static_cast<T>(465.1171875000000000000000000000000000000L), tolerance);
|
||||
if(std::numeric_limits<T>::max_exponent > std::numeric_limits<float>::max_exponent)
|
||||
{
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(40, 30, static_cast<T>(-0.5L)), static_cast<T>(-7.855722083232252643913331343916012143461e45L), tolerance);
|
||||
}
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-40, 20, static_cast<T>(-0.5L)), static_cast<T>(-4.966634149702370788037088925152355134665e30L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(4, -2, static_cast<T>(0.5L)), static_cast<T>(0.01171875000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-4, -2, static_cast<T>(0.5L)), static_cast<T>(0.04687500000000000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(7, -5, static_cast<T>(0.5L)), static_cast<T>(0.00002378609812640364935569308025139290054701L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-7, -4, static_cast<T>(0.5L)), static_cast<T>(0.0002563476562500000000000000000000000000000L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(40, -30, static_cast<T>(0.5L)), static_cast<T>(-2.379819988646847616996471299410611801239e-48L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_p(-40, -20, static_cast<T>(0.5L)), static_cast<T>(4.356454600748202401657099008867502679122e-33L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_q(1, static_cast<T>(0.5L)), static_cast<T>(-0.7253469278329725771511886907693685738381L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_q(4, static_cast<T>(0.5L)), static_cast<T>(0.4401745259867706044988642951843745400835L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_q(7, static_cast<T>(0.5L)), static_cast<T>(-0.3439152932669753451878700644212067616780L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::legendre_q(40, static_cast<T>(0.5L)), static_cast<T>(0.1493671665503550095010454949479907886011L), tolerance);
|
||||
}
|
||||
|
||||
int test_main(int, char* [])
|
||||
{
|
||||
test_spots(0.0F, "float");
|
||||
test_spots(0.0, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_spots(0.0L, "long double");
|
||||
test_spots(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#endif
|
||||
|
||||
expected_results();
|
||||
|
||||
test_legendre_p(0.1F, "float");
|
||||
test_legendre_p(0.1, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_legendre_p(0.1L, "long double");
|
||||
test_legendre_p(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#else
|
||||
std::cout << "<note>The long double tests have been disabled on this platform "
|
||||
"either because the long double overloads of the usual math functions are "
|
||||
"not available at all, or because they are too inaccurate for these tests "
|
||||
"to pass.</note>" << std::cout;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
41
test/test_legendre_hooks.hpp
Normal file
@ -0,0 +1,41 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#ifndef BOOST_MATH_TEST_LEGENDRE_OTHER_HOOKS_HPP
|
||||
#define BOOST_MATH_TEST_LEGENDRE_OTHER_HOOKS_HPP
|
||||
|
||||
#ifdef TEST_GSL
|
||||
#include <gsl/gsl_sf_legendre.h>
|
||||
|
||||
namespace other{
|
||||
inline float legendre_p(int l, float a)
|
||||
{ return (float)gsl_sf_legendre_Pl (l, a); }
|
||||
inline double legendre_p(int l, double a)
|
||||
{ return gsl_sf_legendre_Pl (l, a); }
|
||||
inline long double legendre_p(int l, long double a)
|
||||
{ return gsl_sf_legendre_Pl (l, a); }
|
||||
|
||||
inline float legendre_q(int l, float a)
|
||||
{ return (float)gsl_sf_legendre_Ql (l, a); }
|
||||
inline double legendre_q(int l, double a)
|
||||
{ return gsl_sf_legendre_Ql (l, a); }
|
||||
inline long double legendre_q(int l, long double a)
|
||||
{ return gsl_sf_legendre_Ql (l, a); }
|
||||
|
||||
}
|
||||
#define TEST_OTHER
|
||||
#endif
|
||||
|
||||
#ifdef TEST_OTHER
|
||||
namespace other{
|
||||
boost::math::concepts::real_concept legendre_p(int, boost::math::concepts::real_concept){ return 0; }
|
||||
boost::math::concepts::real_concept legendre_q(int, boost::math::concepts::real_concept){ return 0; }
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
323
test/test_spherical_harmonic.cpp
Normal file
@ -0,0 +1,323 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
|
||||
#include <boost/math/concepts/real_concept.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/test/floating_point_comparison.hpp>
|
||||
#include <boost/math/special_functions/spherical_harmonic.hpp>
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/lambda/lambda.hpp>
|
||||
#include <boost/lambda/bind.hpp>
|
||||
|
||||
#include "handle_test_result.hpp"
|
||||
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// ~~~~~~~~~~~~
|
||||
//
|
||||
// This file tests the Spherical Harmonic Functions.
|
||||
// There are two sets of tests, spot
|
||||
// tests which compare our results with selected values computed
|
||||
// using the online special function calculator at
|
||||
// functions.wolfram.com, while the bulk of the accuracy tests
|
||||
// use values generated with NTL::RR at 1000-bit precision
|
||||
// and our generic versions of these functions.
|
||||
//
|
||||
// Note that when this file is first run on a new platform many of
|
||||
// these tests will fail: the default accuracy is 1 epsilon which
|
||||
// is too tight for most platforms. In this situation you will
|
||||
// need to cast a human eye over the error rates reported and make
|
||||
// a judgement as to whether they are acceptable. Either way please
|
||||
// report the results to the Boost mailing list. Acceptable rates of
|
||||
// error are marked up below as a series of regular expressions that
|
||||
// identify the compiler/stdlib/platform/data-type/test-data/test-function
|
||||
// along with the maximum expected peek and RMS mean errors for that
|
||||
// test.
|
||||
//
|
||||
|
||||
void expected_results()
|
||||
{
|
||||
//
|
||||
// Define the max and mean errors expected for
|
||||
// various compilers and platforms.
|
||||
//
|
||||
const char* largest_type;
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
if(boost::math::tools::digits<double>() == boost::math::tools::digits<long double>())
|
||||
{
|
||||
largest_type = "(long\\s+)?double";
|
||||
}
|
||||
else
|
||||
{
|
||||
largest_type = "long double";
|
||||
}
|
||||
#else
|
||||
largest_type = "(long\\s+)?double";
|
||||
#endif
|
||||
if((std::numeric_limits<long double>::digits <= 64) &&
|
||||
(std::numeric_limits<long double>::digits != std::numeric_limits<double>::digits))
|
||||
{
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"double", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 10, 5); // test function
|
||||
}
|
||||
//
|
||||
// Catch all cases come last:
|
||||
//
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
".*", // test data group
|
||||
".*", 30000, 1000); // test function
|
||||
add_expected_result(
|
||||
".*", // compiler
|
||||
".*", // stdlib
|
||||
".*", // platform
|
||||
"real_concept", // test type(s)
|
||||
".*", // test data group
|
||||
".*", 30000, 1000); // test function
|
||||
//
|
||||
// Finish off by printing out the compiler/stdlib/platform names,
|
||||
// we do this to make it easier to mark up expected error rates.
|
||||
//
|
||||
std::cout << "Tests run with " << BOOST_COMPILER << ", "
|
||||
<< BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void do_test_spherical_harmonic(const T& data, const char* type_name, const char* test_name)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
typedef value_type (*pg)(unsigned, int, value_type, value_type);
|
||||
pg funcp = boost::math::spherical_harmonic_r;
|
||||
typedef unsigned (*cast_t)(value_type);
|
||||
cast_t cf = &boost::math::tools::real_cast<unsigned, value_type>;
|
||||
|
||||
boost::math::tools::test_result<value_type> result;
|
||||
|
||||
std::cout << "Testing " << test_name << " with type " << type_name
|
||||
<< "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
|
||||
|
||||
//
|
||||
// test Spheric Harmonic against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
cf,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
cf,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[4]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_r", test_name);
|
||||
|
||||
funcp = boost::math::spherical_harmonic_i;
|
||||
//
|
||||
// test Spheric Harmonic against data:
|
||||
//
|
||||
result = boost::math::tools::test(
|
||||
data,
|
||||
boost::lambda::bind(funcp,
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
cf,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[0]))),
|
||||
boost::lambda::ret<unsigned>(
|
||||
boost::lambda::bind(
|
||||
cf,
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[1]))),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[2]),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[3])),
|
||||
boost::lambda::ret<value_type>(boost::lambda::_1[5]));
|
||||
handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_i", test_name);
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_complex_spherical_harmonic(const T& data, const char* name, boost::mpl::true_ const &)
|
||||
{
|
||||
typedef typename T::value_type row_type;
|
||||
typedef typename row_type::value_type value_type;
|
||||
|
||||
for(unsigned i = 0; i < sizeof(data) / sizeof(data[0]); ++i)
|
||||
{
|
||||
//
|
||||
// Sanity check that the complex version does the same thing as the real
|
||||
// and imaginary versions:
|
||||
//
|
||||
std::complex<value_type> r = boost::math::spherical_harmonic(
|
||||
boost::math::tools::real_cast<unsigned>(data[i][0]),
|
||||
boost::math::tools::real_cast<unsigned>(data[i][1]),
|
||||
data[i][2],
|
||||
data[i][3]);
|
||||
value_type re = boost::math::spherical_harmonic_r(
|
||||
boost::math::tools::real_cast<unsigned>(data[i][0]),
|
||||
boost::math::tools::real_cast<unsigned>(data[i][1]),
|
||||
data[i][2],
|
||||
data[i][3]);
|
||||
value_type im = boost::math::spherical_harmonic_i(
|
||||
boost::math::tools::real_cast<unsigned>(data[i][0]),
|
||||
boost::math::tools::real_cast<unsigned>(data[i][1]),
|
||||
data[i][2],
|
||||
data[i][3]);
|
||||
BOOST_CHECK_CLOSE_FRACTION(std::real(r), re, value_type(5));
|
||||
BOOST_CHECK_CLOSE_FRACTION(std::imag(r), im, value_type(5));
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_complex_spherical_harmonic(const T& data, const char* name, boost::mpl::false_ const &)
|
||||
{
|
||||
// T is not a built in type, can't use std::complex with it...
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_spherical_harmonic(T, const char* name)
|
||||
{
|
||||
//
|
||||
// The actual test data is rather verbose, so it's in a separate file
|
||||
//
|
||||
// The contents are as follows, each row of data contains
|
||||
// three items, input value a, input value b and erf(a, b):
|
||||
//
|
||||
# include "spherical_harmonic.ipp"
|
||||
|
||||
do_test_spherical_harmonic(spherical_harmonic, name, "Spherical Harmonics");
|
||||
|
||||
test_complex_spherical_harmonic(spherical_harmonic, name, boost::is_floating_point<T>());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void test_spots(T, const char* t)
|
||||
{
|
||||
std::cout << "Testing basic sanity checks for type " << t << std::endl;
|
||||
//
|
||||
// basic sanity checks, tolerance is 100 epsilon:
|
||||
//
|
||||
T tolerance = boost::math::tools::epsilon<T>() * 100;
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(3, 2, static_cast<T>(0.5), static_cast<T>(0)), static_cast<T>(0.2061460599687871330692286791802688341213L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 10, static_cast<T>(0.75), static_cast<T>(-0.25)), static_cast<T>(0.06197787102219208244041677775577045124092L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 10, static_cast<T>(0.75), static_cast<T>(-0.25)), static_cast<T>(0.04629885158895932341185988759669916977920L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(-0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, 15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, 15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, 15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, 15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, 15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(-0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, 15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.2933918444656603582282372590387544902135L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(-0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.0293201066685263879566422194539567289974L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(39, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.1757594233240278196989039119899901986211L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(39, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(-0.1837126108841860058078729532035715580790L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(39, 15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.1757594233240278196989039119899901986211L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(39, 15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.1837126108841860058078729532035715580790L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(39, 15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.1757594233240278196989039119899901986211L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(39, 15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.1837126108841860058078729532035715580790L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(39, 15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(-0.1757594233240278196989039119899901986211L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(39, 15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.1837126108841860058078729532035715580790L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(19, 14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.2341701030303444033808969389588343934828L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(19, 14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.0197340092863212879172432610952871202640L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(19, 14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.2341701030303444033808969389588343934828L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(19, 14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(-0.0197340092863212879172432610952871202640L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(19, 14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(0.2341701030303444033808969389588343934828L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(19, 14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.0197340092863212879172432610952871202640L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(19, 14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.2341701030303444033808969389588343934828L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(19, 14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.0197340092863212879172432610952871202640L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, -15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(-0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, -15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(-0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, -15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(-0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, -15, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, -15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, -15, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(-0.2933918444656603582282372590387544902135L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(40, -15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.2806904825045745687343492963236868973484L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(40, -15, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.2933918444656603582282372590387544902135L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, -14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, -14, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(-0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, -14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, -14, static_cast<T>(-0.75), static_cast<T>(-2.25)), static_cast<T>(0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, -14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, -14, static_cast<T>(0.75), static_cast<T>(-2.25)), static_cast<T>(0.0293201066685263879566422194539567289974L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, -14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(0.3479218186133435466692822481919867452442L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, -14, static_cast<T>(0.75), static_cast<T>(2.25)), static_cast<T>(-0.0293201066685263879566422194539567289974L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(-4), static_cast<T>(2.25)), static_cast<T>(0.5253373768014719124617844890495875474590L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(-4), static_cast<T>(2.25)), static_cast<T>(0.0442712905622650144694916590407495495699L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(-4), static_cast<T>(-2.25)), static_cast<T>(0.5253373768014719124617844890495875474590L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(-4), static_cast<T>(-2.25)), static_cast<T>(-0.0442712905622650144694916590407495495699L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(4), static_cast<T>(-2.25)), static_cast<T>(0.5253373768014719124617844890495875474590L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(4), static_cast<T>(-2.25)), static_cast<T>(-0.0442712905622650144694916590407495495699L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 14, static_cast<T>(4), static_cast<T>(2.25)), static_cast<T>(0.5253373768014719124617844890495875474590L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 14, static_cast<T>(4), static_cast<T>(2.25)), static_cast<T>(0.0442712905622650144694916590407495495699L), tolerance);
|
||||
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 15, static_cast<T>(-4), static_cast<T>(2.25)), static_cast<T>(-0.2991140325667575801827063718821420263438L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 15, static_cast<T>(-4), static_cast<T>(2.25)), static_cast<T>(0.3126490678888350710506307405826667514065L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 15, static_cast<T>(-4), static_cast<T>(-2.25)), static_cast<T>(-0.2991140325667575801827063718821420263438L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 15, static_cast<T>(-4), static_cast<T>(-2.25)), static_cast<T>(-0.3126490678888350710506307405826667514065L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 15, static_cast<T>(4), static_cast<T>(-2.25)), static_cast<T>(0.2991140325667575801827063718821420263438L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 15, static_cast<T>(4), static_cast<T>(-2.25)), static_cast<T>(0.3126490678888350710506307405826667514065L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(20, 15, static_cast<T>(4), static_cast<T>(2.25)), static_cast<T>(0.2991140325667575801827063718821420263438L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(20, 15, static_cast<T>(4), static_cast<T>(2.25)), static_cast<T>(-0.3126490678888350710506307405826667514065L), tolerance);
|
||||
|
||||
BOOST_CHECK_EQUAL(::boost::math::spherical_harmonic_r(10, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0));
|
||||
BOOST_CHECK_EQUAL(::boost::math::spherical_harmonic_i(10, 15, static_cast<T>(-0.75), static_cast<T>(2.25)), static_cast<T>(0));
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_r(53, 42, static_cast<T>(-8.75), static_cast<T>(-2.25)), static_cast<T>(-0.0008147976618889536159592309471859037113647L), tolerance);
|
||||
BOOST_CHECK_CLOSE_FRACTION(::boost::math::spherical_harmonic_i(53, 42, static_cast<T>(-8.75), static_cast<T>(-2.25)), static_cast<T>(0.0002099802242493057018193798824353982612756L), tolerance);
|
||||
}
|
||||
|
||||
int test_main(int, char* [])
|
||||
{
|
||||
test_spots(0.0F, "float");
|
||||
test_spots(0.0, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_spots(0.0L, "long double");
|
||||
test_spots(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#endif
|
||||
|
||||
expected_results();
|
||||
|
||||
test_spherical_harmonic(0.1F, "float");
|
||||
test_spherical_harmonic(0.1, "double");
|
||||
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
|
||||
test_spherical_harmonic(0.1L, "long double");
|
||||
test_spherical_harmonic(boost::math::concepts::real_concept(0.1), "real_concept");
|
||||
#else
|
||||
std::cout << "<note>The long double tests have been disabled on this platform "
|
||||
"either because the long double overloads of the usual math functions are "
|
||||
"not available at all, or because they are too inaccurate for these tests "
|
||||
"to pass.</note>" << std::cout;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
69
tools/hermite_data.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
#include <boost/math/tools/ntl.hpp>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/math/special_functions/hermite.hpp>
|
||||
#include <fstream>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/tr1/random.hpp>
|
||||
|
||||
using namespace boost::math::tools;
|
||||
using namespace boost::math;
|
||||
using namespace std;
|
||||
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T> hermite_data(T n, T x)
|
||||
{
|
||||
n = floor(n);
|
||||
T r1 = hermite(boost::math::tools::real_cast<unsigned>(n), x);
|
||||
return std::tr1::make_tuple(n, x, r1);
|
||||
}
|
||||
|
||||
int test_main(int argc, char*argv [])
|
||||
{
|
||||
using namespace boost::math::tools;
|
||||
|
||||
NTL::RR::SetOutputPrecision(50);
|
||||
NTL::RR::SetPrecision(1000);
|
||||
|
||||
parameter_info<NTL::RR> arg1, arg2, arg3;
|
||||
test_data<NTL::RR> data;
|
||||
|
||||
std::cout << boost::math::hermite(10, static_cast<NTL::RR>(1e300)) << std::endl;
|
||||
|
||||
bool cont;
|
||||
std::string line;
|
||||
|
||||
if(argc < 1)
|
||||
return 1;
|
||||
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "n"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg2, "x"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
|
||||
data.insert(&hermite_data<NTL::RR>, arg1, arg2);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
|
||||
std::cout << "Enter name of test data file [default=hermite.ipp]";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
if(line == "")
|
||||
line = "hermite.ipp";
|
||||
std::ofstream ofs(line.c_str());
|
||||
line.erase(line.find('.'));
|
||||
ofs << std::scientific;
|
||||
write_code(ofs, data, line.c_str());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
102
tools/laguerre_data.cpp
Normal file
@ -0,0 +1,102 @@
|
||||
|
||||
#include <boost/math/tools/ntl.hpp>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/math/special_functions/laguerre.hpp>
|
||||
#include <boost/math/special_functions/gamma.hpp>
|
||||
#include <fstream>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/tr1/random.hpp>
|
||||
|
||||
using namespace boost::math::tools;
|
||||
using namespace boost::math;
|
||||
using namespace std;
|
||||
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T> laguerre2_data(T n, T x)
|
||||
{
|
||||
n = floor(n);
|
||||
T r1 = laguerre(boost::math::tools::real_cast<unsigned>(n), x);
|
||||
return std::tr1::make_tuple(n, x, r1);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T, T> laguerre3_data(T n, T m, T x)
|
||||
{
|
||||
n = floor(n);
|
||||
m = floor(m);
|
||||
T r1 = laguerre(real_cast<unsigned>(n), real_cast<unsigned>(m), x);
|
||||
return std::tr1::make_tuple(n, m, x, r1);
|
||||
}
|
||||
|
||||
int test_main(int argc, char*argv [])
|
||||
{
|
||||
using namespace boost::math::tools;
|
||||
|
||||
NTL::RR::SetOutputPrecision(50);
|
||||
NTL::RR::SetPrecision(1000);
|
||||
|
||||
parameter_info<NTL::RR> arg1, arg2, arg3;
|
||||
test_data<NTL::RR> data;
|
||||
|
||||
bool cont;
|
||||
std::string line;
|
||||
|
||||
if(argc < 1)
|
||||
return 1;
|
||||
|
||||
if(strcmp(argv[1], "--laguerre2") == 0)
|
||||
{
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "n"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg2, "x"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
|
||||
data.insert(&laguerre2_data<NTL::RR>, arg1, arg2);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
}
|
||||
else if(strcmp(argv[1], "--laguerre3") == 0)
|
||||
{
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "n"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg2, "m"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg3, "x"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
arg3.type |= dummy_param;
|
||||
|
||||
data.insert(&laguerre3_data<NTL::RR>, arg1, arg2, arg3);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
}
|
||||
|
||||
|
||||
std::cout << "Enter name of test data file [default=laguerre.ipp]";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
if(line == "")
|
||||
line = "laguerre.ipp";
|
||||
std::ofstream ofs(line.c_str());
|
||||
line.erase(line.find('.'));
|
||||
ofs << std::scientific;
|
||||
write_code(ofs, data, line.c_str());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
101
tools/legendre_data.cpp
Normal file
@ -0,0 +1,101 @@
|
||||
|
||||
#include <boost/math/tools/ntl.hpp>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/math/special_functions/legendre.hpp>
|
||||
#include <boost/math/special_functions/gamma.hpp>
|
||||
#include <fstream>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/tr1/random.hpp>
|
||||
|
||||
using namespace boost::math::tools;
|
||||
using namespace boost::math;
|
||||
using namespace std;
|
||||
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T, T> legendre_p_data(T n, T x)
|
||||
{
|
||||
n = floor(n);
|
||||
T r1 = legendre_p(boost::math::tools::real_cast<int>(n), x);
|
||||
T r2 = legendre_q(boost::math::tools::real_cast<int>(n), x);
|
||||
return std::tr1::make_tuple(n, x, r1, r2);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T, T> assoc_legendre_p_data(T n, T x)
|
||||
{
|
||||
static tr1::mt19937 r;
|
||||
int l = real_cast<int>(floor(n));
|
||||
tr1::uniform_int<> ui((std::max)(-l, -40), (std::min)(l, 40));
|
||||
int m = ui(r);
|
||||
T r1 = legendre_p(l, m, x);
|
||||
return std::tr1::make_tuple(n, m, x, r1);
|
||||
}
|
||||
|
||||
int test_main(int argc, char*argv [])
|
||||
{
|
||||
using namespace boost::math::tools;
|
||||
|
||||
NTL::RR::SetOutputPrecision(50);
|
||||
NTL::RR::SetPrecision(1000);
|
||||
|
||||
parameter_info<NTL::RR> arg1, arg2;
|
||||
test_data<NTL::RR> data;
|
||||
|
||||
bool cont;
|
||||
std::string line;
|
||||
|
||||
if(argc < 1)
|
||||
return 1;
|
||||
|
||||
if(strcmp(argv[1], "--legendre2") == 0)
|
||||
{
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "l"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg2, "x"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
|
||||
data.insert(&legendre_p_data<NTL::RR>, arg1, arg2);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
}
|
||||
else if(strcmp(argv[1], "--legendre3") == 0)
|
||||
{
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "l"))
|
||||
return 1;
|
||||
if(0 == get_user_parameter_info(arg2, "x"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
|
||||
data.insert(&assoc_legendre_p_data<NTL::RR>, arg1, arg2);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
}
|
||||
|
||||
|
||||
std::cout << "Enter name of test data file [default=legendre_p.ipp]";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
if(line == "")
|
||||
line = "legendre_p.ipp";
|
||||
std::ofstream ofs(line.c_str());
|
||||
line.erase(line.find('.'));
|
||||
write_code(ofs, data, line.c_str());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
87
tools/spherical_harmonic_data.cpp
Normal file
@ -0,0 +1,87 @@
|
||||
|
||||
#include <boost/math/tools/ntl.hpp>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/test/included/test_exec_monitor.hpp>
|
||||
#include <boost/math/special_functions/spherical_harmonic.hpp>
|
||||
#include <fstream>
|
||||
#include <boost/math/tools/test_data.hpp>
|
||||
#include <boost/tr1/random.hpp>
|
||||
|
||||
using namespace boost::math::tools;
|
||||
using namespace boost::math;
|
||||
using namespace std;
|
||||
|
||||
float extern_val;
|
||||
// confuse the compilers optimiser, and force a truncation to float precision:
|
||||
float truncate_to_float(float const * pf)
|
||||
{
|
||||
extern_val = *pf;
|
||||
return *pf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
template<class T>
|
||||
std::tr1::tuple<T, T, T, T, T, T> spherical_harmonic_data(T i)
|
||||
{
|
||||
static tr1::mt19937 r;
|
||||
|
||||
int n = real_cast<int>(floor(i));
|
||||
tr1::uniform_int<> ui(0, (std::min)(n, 40));
|
||||
int m = ui(r);
|
||||
|
||||
std::tr1::uniform_real<float> ur(-2*constants::pi<float>(), 2*constants::pi<float>());
|
||||
float _theta = ur(r);
|
||||
float _phi = ur(r);
|
||||
T theta = truncate_to_float(&_theta);
|
||||
T phi = truncate_to_float(&_phi);
|
||||
|
||||
T r1 = spherical_harmonic_r(n, m, theta, phi);
|
||||
T r2 = spherical_harmonic_i(n, m, theta, phi);
|
||||
return std::tr1::make_tuple(n, m, theta, phi, r1, r2);
|
||||
}
|
||||
|
||||
int test_main(int argc, char*argv [])
|
||||
{
|
||||
using namespace boost::math::tools;
|
||||
|
||||
NTL::RR::SetOutputPrecision(50);
|
||||
NTL::RR::SetPrecision(1000);
|
||||
|
||||
parameter_info<NTL::RR> arg1, arg2, arg3;
|
||||
test_data<NTL::RR> data;
|
||||
|
||||
bool cont;
|
||||
std::string line;
|
||||
|
||||
if(argc < 1)
|
||||
return 1;
|
||||
|
||||
do{
|
||||
if(0 == get_user_parameter_info(arg1, "n"))
|
||||
return 1;
|
||||
arg1.type |= dummy_param;
|
||||
arg2.type |= dummy_param;
|
||||
arg3 = arg2;
|
||||
|
||||
data.insert(&spherical_harmonic_data<NTL::RR>, arg1);
|
||||
|
||||
std::cout << "Any more data [y/n]?";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
cont = (line == "y");
|
||||
}while(cont);
|
||||
|
||||
std::cout << "Enter name of test data file [default=spherical_harmonic.ipp]";
|
||||
std::getline(std::cin, line);
|
||||
boost::algorithm::trim(line);
|
||||
if(line == "")
|
||||
line = "spherical_harmonic.ipp";
|
||||
std::ofstream ofs(line.c_str());
|
||||
line.erase(line.find('.'));
|
||||
ofs << std::scientific;
|
||||
write_code(ofs, data, line.c_str());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|