Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
b118dfdb
Commit
b118dfdb
authored
May 07, 2018
by
Edward Smith-Rowland
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert 20001.
From-SVN: r260002
parent
c69c7d03
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
2484 additions
and
328 deletions
+2484
-328
libstdc++-v3/ChangeLog
+0
-6
libstdc++-v3/include/bits/random.tcc
+2
-2
libstdc++-v3/include/std/complex
+33
-32
libstdc++-v3/include/tr1/bessel_function.tcc
+35
-9
libstdc++-v3/include/tr1/legendre_function.tcc
+11
-12
libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
+267
-267
libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
+21
-0
libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
+21
-0
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
+2052
-0
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
+21
-0
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
+21
-0
No files found.
libstdc++-v3/ChangeLog
View file @
b118dfdb
2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
Moar PR libstdc++/80506
* include/bits/random.tcc (gamma_distribution::__generate_impl()):
Fix magic number used in loop condition.
2018-05-04 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
...
...
libstdc++-v3/include/bits/random.tcc
View file @
b118dfdb
...
...
@@ -2408,7 +2408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__v = __v * __v * __v;
__u = __aurng();
}
while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n
while (__u > result_type(1.0) - 0.
0
331 * __n * __n * __n * __n
&& (std::log(__u) > (0.5 * __n * __n + __a1
* (1.0 - __v + std::log(__v)))));
...
...
@@ -2429,7 +2429,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__v = __v * __v * __v;
__u = __aurng();
}
while (__u > result_type(1.0) - 0.331 * __n * __n * __n * __n
while (__u > result_type(1.0) - 0.
0
331 * __n * __n * __n * __n
&& (std::log(__u) > (0.5 * __n * __n + __a1
* (1.0 - __v + std::log(__v)))));
...
...
libstdc++-v3/include/std/complex
View file @
b118dfdb
...
...
@@ -70,7 +70,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// Return phase angle of @a z.
template<typename _Tp> _Tp arg(const complex<_Tp>&);
/// Return @a z magnitude squared.
template<typename _Tp> _Tp norm(const complex<_Tp>&);
template<typename _Tp> _Tp
_GLIBCXX_CONSTEXPR
norm(const complex<_Tp>&);
/// Return complex conjugate of @a z.
template<typename _Tp> complex<_Tp> conj(const complex<_Tp>&);
...
...
@@ -322,7 +322,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
//@{
/// Return new complex value @a x plus @a y.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator+(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -331,7 +331,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator+(const complex<_Tp>& __x, const _Tp& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -340,7 +340,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator+(const _Tp& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __y;
...
...
@@ -352,7 +352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
//@{
/// Return new complex value @a x minus @a y.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator-(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -361,7 +361,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator-(const complex<_Tp>& __x, const _Tp& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -370,7 +370,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator-(const _Tp& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r(__x, -__y.imag());
...
...
@@ -382,7 +382,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
//@{
/// Return new complex value @a x times @a y.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -391,7 +391,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
inline
_GLIBCXX_CONSTEXPR
complex<_Tp>
operator*(const complex<_Tp>& __x, const _Tp& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -400,7 +400,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator*(const _Tp& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __y;
...
...
@@ -412,7 +412,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
//@{
/// Return new complex value @a x divided by @a y.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator/(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -421,7 +421,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator/(const complex<_Tp>& __x, const _Tp& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -430,7 +430,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator/(const _Tp& __x, const complex<_Tp>& __y)
{
complex<_Tp> __r = __x;
...
...
@@ -441,30 +441,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// Return @a x.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator+(const complex<_Tp>& __x)
{ return __x; }
/// Return complex negation of @a x.
template<typename _Tp>
inline complex<_Tp>
_GLIBCXX_CONSTEXPR
inline complex<_Tp>
operator-(const complex<_Tp>& __x)
{ return complex<_Tp>(-__x.real(), -__x.imag()); }
//@{
/// Return true if @a x is equal to @a y.
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator==(const complex<_Tp>& __x, const complex<_Tp>& __y)
{ return __x.real() == __y.real() && __x.imag() == __y.imag(); }
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator==(const complex<_Tp>& __x, const _Tp& __y)
{ return __x.real() == __y && __x.imag() == _Tp(); }
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator==(const _Tp& __x, const complex<_Tp>& __y)
{ return __x == __y.real() && _Tp() == __y.imag(); }
//@}
...
...
@@ -472,17 +472,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
//@{
/// Return false if @a x is equal to @a y.
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator!=(const complex<_Tp>& __x, const complex<_Tp>& __y)
{ return __x.real() != __y.real() || __x.imag() != __y.imag(); }
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator!=(const complex<_Tp>& __x, const _Tp& __y)
{ return __x.real() != __y || __x.imag() != _Tp(); }
template<typename _Tp>
inline _GLIBCXX_CONSTEXPR
bool
_GLIBCXX_CONSTEXPR inline
bool
operator!=(const _Tp& __x, const complex<_Tp>& __y)
{ return __x != __y.real() || _Tp() != __y.imag(); }
//@}
...
...
@@ -658,7 +658,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct _Norm_helper
{
template<typename _Tp>
static inline _Tp _S_do_it(const complex<_Tp>& __z)
static
_GLIBCXX_CONSTEXPR
inline _Tp _S_do_it(const complex<_Tp>& __z)
{
const _Tp __x = __z.real();
const _Tp __y = __z.imag();
...
...
@@ -670,7 +670,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct _Norm_helper<true>
{
template<typename _Tp>
static inline _Tp _S_do_it(const complex<_Tp>& __z)
static
_GLIBCXX_CONSTEXPR
inline _Tp _S_do_it(const complex<_Tp>& __z)
{
_Tp __res = std::abs(__z);
return __res * __res;
...
...
@@ -678,7 +678,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
template<typename _Tp>
inline _Tp
_GLIBCXX_CONSTEXPR
inline _Tp
norm(const complex<_Tp>& __z)
{
return _Norm_helper<__is_floating<_Tp>::__value
...
...
@@ -1866,7 +1866,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return _Tp(); }
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
_GLIBCXX_CONSTEXPR
inline typename __gnu_cxx::__promote<_Tp>::__type
norm(_Tp __x)
{
typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
...
...
@@ -1905,10 +1905,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Forward declarations.
// DR 781.
template<typename _Tp> std::complex<_Tp> proj(const std::complex<_Tp>&);
template<typename _Tp>
_GLIBCXX_CONSTEXPR std::complex<_Tp> proj(const std::complex<_Tp>&);
template<typename _Tp>
std::complex<_Tp>
_GLIBCXX_CONSTEXPR
std::complex<_Tp>
__complex_proj(const std::complex<_Tp>& __z)
{
const _Tp __den = (__z.real() * __z.real()
...
...
@@ -1919,25 +1920,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
_GLIBCXX_CONSTEXPR
inline __complex__ float
__complex_proj(__complex__ float __z)
{ return __builtin_cprojf(__z); }
inline __complex__ double
_GLIBCXX_CONSTEXPR
inline __complex__ double
__complex_proj(__complex__ double __z)
{ return __builtin_cproj(__z); }
inline __complex__ long double
_GLIBCXX_CONSTEXPR
inline __complex__ long double
__complex_proj(const __complex__ long double& __z)
{ return __builtin_cprojl(__z); }
template<typename _Tp>
inline std::complex<_Tp>
_GLIBCXX_CONSTEXPR
inline std::complex<_Tp>
proj(const std::complex<_Tp>& __z)
{ return __complex_proj(__z.__rep()); }
#else
template<typename _Tp>
inline std::complex<_Tp>
_GLIBCXX_CONSTEXPR
inline std::complex<_Tp>
proj(const std::complex<_Tp>& __z)
{ return __complex_proj(__z); }
#endif
...
...
libstdc++-v3/include/tr1/bessel_function.tcc
View file @
b118dfdb
...
...
@@ -353,21 +353,47 @@ namespace tr1
* @param __x The argument of the Bessel functions.
* @param __Jnu The output Bessel function of the first kind.
* @param __Nnu The output Neumann function (Bessel function of the second kind).
*
* Adapted for libstdc++ from GNU GSL version 2.4 specfunc/bessel_j.c
* Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003 Gerard Jungman
*/
template <typename _Tp>
void
__cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu)
{
const _Tp __mu = _Tp(4) * __nu * __nu;
const _Tp __mum1 = __mu - _Tp(1);
const _Tp __mum9 = __mu - _Tp(9);
const _Tp __mum25 = __mu - _Tp(25);
const _Tp __mum49 = __mu - _Tp(49);
const _Tp __xx = _Tp(64) * __x * __x;
const _Tp __P = _Tp(1) - __mum1 * __mum9 / (_Tp(2) * __xx)
* (_Tp(1) - __mum25 * __mum49 / (_Tp(12) * __xx));
const _Tp __Q = __mum1 / (_Tp(8) * __x)
* (_Tp(1) - __mum9 * __mum25 / (_Tp(6) * __xx));
const _Tp __8x = _Tp(8) * __x;
_Tp __P = _Tp(0);
_Tp __Q = _Tp(0);
_Tp k = _Tp(0);
_Tp __term = _Tp(1);
int __epsP = 0;
int __epsQ = 0;
_Tp __eps = std::numeric_limits<_Tp>::epsilon();
do
{
__term *= (k == 0) ? _Tp(1) : -(__mu - (2 * k - 1) * (2 * k - 1)) / (k * __8x);
__epsP = std::abs(__term) < std::abs(__eps * __P);
__P += __term;
k++;
__term *= (__mu - (2 * k - 1) * (2 * k - 1)) / (k * __8x);
__epsQ = std::abs(__term) < std::abs(__eps * __Q);
__Q += __term;
if (__epsP && __epsQ && k > __nu / 2.)
break;
k++;
}
while (k < 1000);
const _Tp __chi = __x - (__nu + _Tp(0.5L))
* __numeric_constants<_Tp>::__pi_2();
...
...
libstdc++-v3/include/tr1/legendre_function.tcc
View file @
b118dfdb
...
...
@@ -65,7 +65,7 @@ namespace tr1
namespace __detail
{
/**
* @brief Return the Legendre polynomial by recursion on
degree
* @brief Return the Legendre polynomial by recursion on
order
* @f$ l @f$.
*
* The Legendre function of @f$ l @f$ and @f$ x @f$,
...
...
@@ -74,7 +74,7 @@ namespace tr1
* P_l(x) = \frac{1}{2^l l!}\frac{d^l}{dx^l}(x^2 - 1)^{l}
* @f]
*
* @param l The
degree
of the Legendre polynomial. @f$l >= 0@f$.
* @param l The
order
of the Legendre polynomial. @f$l >= 0@f$.
* @param x The argument of the Legendre polynomial. @f$|x| <= 1@f$.
*/
template<typename _Tp>
...
...
@@ -127,19 +127,16 @@ namespace tr1
* P_l^m(x) = (1 - x^2)^{m/2}\frac{d^m}{dx^m}P_l(x)
* @f]
*
* @param l The
degree
of the associated Legendre function.
* @param l The
order
of the associated Legendre function.
* @f$ l >= 0 @f$.
* @param m The order of the associated Legendre function.
* @f$ m <= l @f$.
* @param x The argument of the associated Legendre function.
* @f$ |x| <= 1 @f$.
* @param phase The phase of the associated Legendre function.
* Use -1 for the Condon-Shortley phase convention.
*/
template<typename _Tp>
_Tp
__assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x,
_Tp __phase = _Tp{+1})
__assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x)
{
if (__x < _Tp(-1) || __x > _Tp(+1))
...
...
@@ -163,7 +160,7 @@ namespace tr1
_Tp __fact = _Tp(1);
for (unsigned int __i = 1; __i <= __m; ++__i)
{
__p_mm *=
__phase *
__fact * __root;
__p_mm *=
-
__fact * __root;
__fact += _Tp(2);
}
}
...
...
@@ -208,10 +205,8 @@ namespace tr1
* but this factor is rather large for large @f$ l @f$ and @f$ m @f$
* and so this function is stable for larger differences of @f$ l @f$
* and @f$ m @f$.
* @note Unlike the case for __assoc_legendre_p the Condon-Shortley
* phase factor @f$ (-1)^m @f$ is present here.
*
* @param l The
degree
of the spherical associated Legendre function.
* @param l The
order
of the spherical associated Legendre function.
* @f$ l >= 0 @f$.
* @param m The order of the spherical associated Legendre function.
* @f$ m <= l @f$.
...
...
@@ -270,15 +265,19 @@ namespace tr1
const _Tp __lnpre_val =
-_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi()
+ _Tp(0.5L) * (__lnpoch + __m * __lncirc);
const
_Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m)
_Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m)
/ (_Tp(4) * __numeric_constants<_Tp>::__pi()));
_Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val);
_Tp __y_mp1m = __y_mp1m_factor * __y_mm;
if (__l == __m)
{
return __y_mm;
}
else if (__l == __m + 1)
{
return __y_mp1m;
}
else
{
_Tp __y_lm = _Tp(0);
...
...
libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
View file @
b118dfdb
// { dg-do run { target c++11 } }
// { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__
-ffp-contract=off
" }
// { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
//
// Copyright (C) 2016-2018 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
...
...
@@ -30,7 +30,7 @@
{ \
std::cout << "line " << __LINE__ \
<< " max_abs_frac = " << max_abs_frac \
<<
'\n'
; \
<<
std::endl
; \
}
#else
# include <testsuite_hooks.h>
...
...
@@ -148,53 +148,53 @@ const double toler002 = 2.5000000000000020e-13;
// Test data for l=1, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.4227052612512390e-16
// mean(f - f_GSL):
-
1.0573552615477681e-17
// mean(f - f_GSL): 1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data003
[
21
]
=
{
{
0.0000000000000000
,
1
,
1
,
{
-
0.0000000000000000
,
1
,
1
,
-
1.0000000000000000
,
0.0
},
{
0.43588989435406728
,
1
,
1
,
{
-
0.43588989435406728
,
1
,
1
,
-
0.90000000000000002
,
0.0
},
{
0.59999999999999987
,
1
,
1
,
{
-
0.59999999999999987
,
1
,
1
,
-
0.80000000000000004
,
0.0
},
{
0.71414284285428509
,
1
,
1
,
{
-
0.71414284285428509
,
1
,
1
,
-
0.69999999999999996
,
0.0
},
{
0.80000000000000004
,
1
,
1
,
{
-
0.80000000000000004
,
1
,
1
,
-
0.59999999999999998
,
0.0
},
{
0.86602540378443860
,
1
,
1
,
{
-
0.86602540378443860
,
1
,
1
,
-
0.50000000000000000
,
0.0
},
{
0.91651513899116799
,
1
,
1
,
{
-
0.91651513899116799
,
1
,
1
,
-
0.39999999999999991
,
0.0
},
{
0.95393920141694555
,
1
,
1
,
{
-
0.95393920141694555
,
1
,
1
,
-
0.29999999999999993
,
0.0
},
{
0.97979589711327120
,
1
,
1
,
{
-
0.97979589711327120
,
1
,
1
,
-
0.19999999999999996
,
0.0
},
{
0.99498743710661997
,
1
,
1
,
{
-
0.99498743710661997
,
1
,
1
,
-
0.099999999999999978
,
0.0
},
{
1.0000000000000000
,
1
,
1
,
{
-
1.0000000000000000
,
1
,
1
,
0.0000000000000000
,
0.0
},
{
0.99498743710661997
,
1
,
1
,
{
-
0.99498743710661997
,
1
,
1
,
0.10000000000000009
,
0.0
},
{
0.97979589711327120
,
1
,
1
,
{
-
0.97979589711327120
,
1
,
1
,
0.20000000000000018
,
0.0
},
{
0.95393920141694577
,
1
,
1
,
{
-
0.95393920141694577
,
1
,
1
,
0.30000000000000004
,
0.0
},
{
0.91651513899116788
,
1
,
1
,
{
-
0.91651513899116788
,
1
,
1
,
0.40000000000000013
,
0.0
},
{
0.86602540378443860
,
1
,
1
,
{
-
0.86602540378443860
,
1
,
1
,
0.50000000000000000
,
0.0
},
{
0.79999999999999993
,
1
,
1
,
{
-
0.79999999999999993
,
1
,
1
,
0.60000000000000009
,
0.0
},
{
0.71414284285428475
,
1
,
1
,
{
-
0.71414284285428475
,
1
,
1
,
0.70000000000000018
,
0.0
},
{
0.59999999999999987
,
1
,
1
,
{
-
0.59999999999999987
,
1
,
1
,
0.80000000000000004
,
0.0
},
{
0.43588989435406711
,
1
,
1
,
{
-
0.43588989435406711
,
1
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
1
,
1
,
{
-
0.0000000000000000
,
1
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler003
=
2.5000000000000020e-13
;
...
...
@@ -256,53 +256,53 @@ const double toler004 = 2.5000000000000020e-13;
// Test data for l=2, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 3
// max(|f - f_GSL| / |f_GSL|): 3.7770554319736585e-16
// mean(f - f_GSL): 1.0573552615477681e-17
// mean(f - f_GSL):
-
1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data005
[
21
]
=
{
{
-
0.0000000000000000
,
2
,
1
,
{
0.0000000000000000
,
2
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
1.1769027147559816
,
2
,
1
,
{
1.1769027147559816
,
2
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
1.4399999999999999
,
2
,
1
,
{
1.4399999999999999
,
2
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
1.4996999699939983
,
2
,
1
,
{
1.4996999699939983
,
2
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
1.4399999999999999
,
2
,
1
,
{
1.4399999999999999
,
2
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
1.2990381056766580
,
2
,
1
,
{
1.2990381056766580
,
2
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
1.0998181667894014
,
2
,
1
,
{
1.0998181667894014
,
2
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
0.85854528127525076
,
2
,
1
,
{
0.85854528127525076
,
2
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
0.58787753826796263
,
2
,
1
,
{
0.58787753826796263
,
2
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
0.29849623113198592
,
2
,
1
,
{
0.29849623113198592
,
2
,
1
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
2
,
1
,
{
-
0.0000000000000000
,
2
,
1
,
0.0000000000000000
,
0.0
},
{
0.29849623113198626
,
2
,
1
,
{
-
0.29849623113198626
,
2
,
1
,
0.10000000000000009
,
0.0
},
{
0.58787753826796330
,
2
,
1
,
{
-
0.58787753826796330
,
2
,
1
,
0.20000000000000018
,
0.0
},
{
0.85854528127525132
,
2
,
1
,
{
-
0.85854528127525132
,
2
,
1
,
0.30000000000000004
,
0.0
},
{
1.0998181667894018
,
2
,
1
,
{
-
1.0998181667894018
,
2
,
1
,
0.40000000000000013
,
0.0
},
{
1.2990381056766580
,
2
,
1
,
{
-
1.2990381056766580
,
2
,
1
,
0.50000000000000000
,
0.0
},
{
1.4400000000000002
,
2
,
1
,
{
-
1.4400000000000002
,
2
,
1
,
0.60000000000000009
,
0.0
},
{
1.4996999699939983
,
2
,
1
,
{
-
1.4996999699939983
,
2
,
1
,
0.70000000000000018
,
0.0
},
{
1.4399999999999999
,
2
,
1
,
{
-
1.4399999999999999
,
2
,
1
,
0.80000000000000004
,
0.0
},
{
1.1769027147559812
,
2
,
1
,
{
-
1.1769027147559812
,
2
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
2
,
1
,
{
-
0.0000000000000000
,
2
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler005
=
2.5000000000000020e-13
;
...
...
@@ -418,53 +418,53 @@ const double toler007 = 2.5000000000000020e-13;
// Test data for l=5, m=1.
// max(|f - f_GSL|): 6.6613381477509392e-16 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.5186908001167120e-16
// mean(f - f_GSL): 1.0573552615477681e-17
// mean(f - f_GSL):
-
1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data008
[
21
]
=
{
{
-
0.0000000000000000
,
5
,
1
,
{
0.0000000000000000
,
5
,
1
,
-
1.0000000000000000
,
0.0
},
{
2.8099369608350981
,
5
,
1
,
{
-
2.8099369608350981
,
5
,
1
,
-
0.90000000000000002
,
0.0
},
{
0.72180000000000089
,
5
,
1
,
{
-
0.72180000000000089
,
5
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
1.0951826834447254
,
5
,
1
,
{
1.0951826834447254
,
5
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
1.9775999999999998
,
5
,
1
,
{
1.9775999999999998
,
5
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
1.9282596881137892
,
5
,
1
,
{
1.9282596881137892
,
5
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
1.2070504380513671
,
5
,
1
,
{
1.2070504380513671
,
5
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
0.16079837663884300
,
5
,
1
,
{
0.16079837663884300
,
5
,
1
,
-
0.29999999999999993
,
0.0
},
{
0.87005875663658538
,
5
,
1
,
{
-
0.87005875663658538
,
5
,
1
,
-
0.19999999999999996
,
0.0
},
{
1.6083350053680323
,
5
,
1
,
{
-
1.6083350053680323
,
5
,
1
,
-
0.099999999999999978
,
0.0
},
{
1.8750000000000000
,
5
,
1
,
{
-
1.8750000000000000
,
5
,
1
,
0.0000000000000000
,
0.0
},
{
1.6083350053680314
,
5
,
1
,
{
-
1.6083350053680314
,
5
,
1
,
0.10000000000000009
,
0.0
},
{
0.87005875663658327
,
5
,
1
,
{
-
0.87005875663658327
,
5
,
1
,
0.20000000000000018
,
0.0
},
{
-
0.16079837663884422
,
5
,
1
,
{
0.16079837663884422
,
5
,
1
,
0.30000000000000004
,
0.0
},
{
-
1.2070504380513694
,
5
,
1
,
{
1.2070504380513694
,
5
,
1
,
0.40000000000000013
,
0.0
},
{
-
1.9282596881137892
,
5
,
1
,
{
1.9282596881137892
,
5
,
1
,
0.50000000000000000
,
0.0
},
{
-
1.9775999999999998
,
5
,
1
,
{
1.9775999999999998
,
5
,
1
,
0.60000000000000009
,
0.0
},
{
-
1.0951826834447216
,
5
,
1
,
{
1.0951826834447216
,
5
,
1
,
0.70000000000000018
,
0.0
},
{
0.72180000000000089
,
5
,
1
,
{
-
0.72180000000000089
,
5
,
1
,
0.80000000000000004
,
0.0
},
{
2.8099369608350999
,
5
,
1
,
{
-
2.8099369608350999
,
5
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
5
,
1
,
{
0.0000000000000000
,
5
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler008
=
2.5000000000000020e-13
;
...
...
@@ -526,53 +526,53 @@ const double toler009 = 2.5000000000000020e-13;
// Test data for l=5, m=5.
// max(|f - f_GSL|): 1.0231815394945443e-12 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.1990652164995755e-15
// mean(f - f_GSL):
-
3.1128538899966297e-14
// mean(f - f_GSL): 3.1128538899966297e-14
// variance(f - f_GSL): 5.0871761537452526e-29
// stddev(f - f_GSL): 7.1324442891236469e-15
const
testcase_assoc_legendre
<
double
>
data010
[
21
]
=
{
{
0.0000000000000000
,
5
,
5
,
{
-
0.0000000000000000
,
5
,
5
,
-
1.0000000000000000
,
0.0
},
{
14.870165800941818
,
5
,
5
,
{
-
14.870165800941818
,
5
,
5
,
-
0.90000000000000002
,
0.0
},
{
73.483199999999925
,
5
,
5
,
{
-
73.483199999999925
,
5
,
5
,
-
0.80000000000000004
,
0.0
},
{
175.53238298794764
,
5
,
5
,
{
-
175.53238298794764
,
5
,
5
,
-
0.69999999999999996
,
0.0
},
{
309.65760000000006
,
5
,
5
,
{
-
309.65760000000006
,
5
,
5
,
-
0.59999999999999998
,
0.0
},
{
460.34662869916559
,
5
,
5
,
{
-
460.34662869916559
,
5
,
5
,
-
0.50000000000000000
,
0.0
},
{
611.12496255819883
,
5
,
5
,
{
-
611.12496255819883
,
5
,
5
,
-
0.39999999999999991
,
0.0
},
{
746.50941479523703
,
5
,
5
,
{
-
746.50941479523703
,
5
,
5
,
-
0.29999999999999993
,
0.0
},
{
853.31600434671316
,
5
,
5
,
{
-
853.31600434671316
,
5
,
5
,
-
0.19999999999999996
,
0.0
},
{
921.55189181724734
,
5
,
5
,
{
-
921.55189181724734
,
5
,
5
,
-
0.099999999999999978
,
0.0
},
{
945.00000000000000
,
5
,
5
,
{
-
945.00000000000000
,
5
,
5
,
0.0000000000000000
,
0.0
},
{
921.55189181724734
,
5
,
5
,
{
-
921.55189181724734
,
5
,
5
,
0.10000000000000009
,
0.0
},
{
853.31600434671316
,
5
,
5
,
{
-
853.31600434671316
,
5
,
5
,
0.20000000000000018
,
0.0
},
{
746.50941479523760
,
5
,
5
,
{
-
746.50941479523760
,
5
,
5
,
0.30000000000000004
,
0.0
},
{
611.12496255819838
,
5
,
5
,
{
-
611.12496255819838
,
5
,
5
,
0.40000000000000013
,
0.0
},
{
460.34662869916559
,
5
,
5
,
{
-
460.34662869916559
,
5
,
5
,
0.50000000000000000
,
0.0
},
{
309.65759999999989
,
5
,
5
,
{
-
309.65759999999989
,
5
,
5
,
0.60000000000000009
,
0.0
},
{
175.53238298794724
,
5
,
5
,
{
-
175.53238298794724
,
5
,
5
,
0.70000000000000018
,
0.0
},
{
73.483199999999925
,
5
,
5
,
{
-
73.483199999999925
,
5
,
5
,
0.80000000000000004
,
0.0
},
{
14.870165800941789
,
5
,
5
,
{
-
14.870165800941789
,
5
,
5
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
5
,
5
,
{
-
0.0000000000000000
,
5
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler010
=
2.5000000000000020e-13
;
...
...
@@ -634,53 +634,53 @@ const double toler011 = 2.5000000000000020e-13;
// Test data for l=10, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.3672431731635395e-16
// mean(f - f_GSL):
-
6.3441315692866085e-17
// mean(f - f_GSL): 6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const
testcase_assoc_legendre
<
double
>
data012
[
21
]
=
{
{
0.0000000000000000
,
10
,
1
,
{
-
0.0000000000000000
,
10
,
1
,
-
1.0000000000000000
,
0.0
},
{
3.0438748781479039
,
10
,
1
,
{
-
3.0438748781479039
,
10
,
1
,
-
0.90000000000000002
,
0.0
},
{
0.87614260800000254
,
10
,
1
,
{
-
0.87614260800000254
,
10
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
2.9685359952934527
,
10
,
1
,
{
2.9685359952934527
,
10
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
1.2511825919999997
,
10
,
1
,
{
1.2511825919999997
,
10
,
1
,
-
0.59999999999999998
,
0.0
},
{
2.0066877394361260
,
10
,
1
,
{
-
2.0066877394361260
,
10
,
1
,
-
0.50000000000000000
,
0.0
},
{
2.4822196173476647
,
10
,
1
,
{
-
2.4822196173476647
,
10
,
1
,
-
0.39999999999999991
,
0.0
},
{
0.12309508907433593
,
10
,
1
,
{
-
0.12309508907433593
,
10
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
2.2468221751958413
,
10
,
1
,
{
2.2468221751958413
,
10
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
2.2472659777983512
,
10
,
1
,
{
2.2472659777983512
,
10
,
1
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
10
,
1
,
{
-
0.0000000000000000
,
10
,
1
,
0.0000000000000000
,
0.0
},
{
2.2472659777983535
,
10
,
1
,
{
-
2.2472659777983535
,
10
,
1
,
0.10000000000000009
,
0.0
},
{
2.2468221751958377
,
10
,
1
,
{
-
2.2468221751958377
,
10
,
1
,
0.20000000000000018
,
0.0
},
{
-
0.12309508907433910
,
10
,
1
,
{
0.12309508907433910
,
10
,
1
,
0.30000000000000004
,
0.0
},
{
-
2.4822196173476669
,
10
,
1
,
{
2.4822196173476669
,
10
,
1
,
0.40000000000000013
,
0.0
},
{
-
2.0066877394361260
,
10
,
1
,
{
2.0066877394361260
,
10
,
1
,
0.50000000000000000
,
0.0
},
{
1.2511825920000037
,
10
,
1
,
{
-
1.2511825920000037
,
10
,
1
,
0.60000000000000009
,
0.0
},
{
2.9685359952934505
,
10
,
1
,
{
-
2.9685359952934505
,
10
,
1
,
0.70000000000000018
,
0.0
},
{
-
0.87614260800000254
,
10
,
1
,
{
0.87614260800000254
,
10
,
1
,
0.80000000000000004
,
0.0
},
{
-
3.0438748781478981
,
10
,
1
,
{
3.0438748781478981
,
10
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
10
,
1
,
{
0.0000000000000000
,
10
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler012
=
2.5000000000000020e-13
;
...
...
@@ -742,53 +742,53 @@ const double toler013 = 2.5000000000000020e-13;
// Test data for l=10, m=5.
// max(|f - f_GSL|): 2.9103830456733704e-11 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.4825078449301893e-15
// mean(f - f_GSL):
-
2.4253192047278085e-12
// mean(f - f_GSL): 2.4253192047278085e-12
// variance(f - f_GSL): 3.0881409535313035e-25
// stddev(f - f_GSL): 5.5571044200476413e-13
const
testcase_assoc_legendre
<
double
>
data014
[
21
]
=
{
{
-
0.0000000000000000
,
10
,
5
,
{
0.0000000000000000
,
10
,
5
,
-
1.0000000000000000
,
0.0
},
{
-
21343.618518164680
,
10
,
5
,
{
21343.618518164680
,
10
,
5
,
-
0.90000000000000002
,
0.0
},
{
-
40457.016407807983
,
10
,
5
,
{
40457.016407807983
,
10
,
5
,
-
0.80000000000000004
,
0.0
},
{
-
20321.279317331315
,
10
,
5
,
{
20321.279317331315
,
10
,
5
,
-
0.69999999999999996
,
0.0
},
{
14410.820616192004
,
10
,
5
,
{
-
14410.820616192004
,
10
,
5
,
-
0.59999999999999998
,
0.0
},
{
30086.169706116176
,
10
,
5
,
{
-
30086.169706116176
,
10
,
5
,
-
0.50000000000000000
,
0.0
},
{
17177.549337582834
,
10
,
5
,
{
-
17177.549337582834
,
10
,
5
,
-
0.39999999999999991
,
0.0
},
{
-
9272.5119495412546
,
10
,
5
,
{
9272.5119495412546
,
10
,
5
,
-
0.29999999999999993
,
0.0
},
{
-
26591.511184414714
,
10
,
5
,
{
26591.511184414714
,
10
,
5
,
-
0.19999999999999996
,
0.0
},
{
-
21961.951238504211
,
10
,
5
,
{
21961.951238504211
,
10
,
5
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
10
,
5
,
{
-
0.0000000000000000
,
10
,
5
,
0.0000000000000000
,
0.0
},
{
21961.951238504229
,
10
,
5
,
{
-
21961.951238504229
,
10
,
5
,
0.10000000000000009
,
0.0
},
{
26591.511184414703
,
10
,
5
,
{
-
26591.511184414703
,
10
,
5
,
0.20000000000000018
,
0.0
},
{
9272.5119495412364
,
10
,
5
,
{
-
9272.5119495412364
,
10
,
5
,
0.30000000000000004
,
0.0
},
{
-
17177.549337582877
,
10
,
5
,
{
17177.549337582877
,
10
,
5
,
0.40000000000000013
,
0.0
},
{
-
30086.169706116176
,
10
,
5
,
{
30086.169706116176
,
10
,
5
,
0.50000000000000000
,
0.0
},
{
-
14410.820616191972
,
10
,
5
,
{
14410.820616191972
,
10
,
5
,
0.60000000000000009
,
0.0
},
{
20321.279317331391
,
10
,
5
,
{
-
20321.279317331391
,
10
,
5
,
0.70000000000000018
,
0.0
},
{
40457.016407807983
,
10
,
5
,
{
-
40457.016407807983
,
10
,
5
,
0.80000000000000004
,
0.0
},
{
21343.618518164636
,
10
,
5
,
{
-
21343.618518164636
,
10
,
5
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
10
,
5
,
{
0.0000000000000000
,
10
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler014
=
2.5000000000000020e-13
;
...
...
@@ -904,53 +904,53 @@ const double toler016 = 2.5000000000000020e-13;
// Test data for l=20, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.0752784502271902e-15
// mean(f - f_GSL):
-
1.4274296030894871e-16
// mean(f - f_GSL): 1.4274296030894871e-16
// variance(f - f_GSL): 1.0697165176825104e-33
// stddev(f - f_GSL): 3.2706521026891724e-17
const
testcase_assoc_legendre
<
double
>
data017
[
21
]
=
{
{
-
0.0000000000000000
,
20
,
1
,
{
0.0000000000000000
,
20
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
4.3838334818220499
,
20
,
1
,
{
4.3838334818220499
,
20
,
1
,
-
0.90000000000000002
,
0.0
},
{
0.63138296146340844
,
20
,
1
,
{
-
0.63138296146340844
,
20
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
0.72274871413391395
,
20
,
1
,
{
0.72274871413391395
,
20
,
1
,
-
0.69999999999999996
,
0.0
},
{
2.3203528743824910
,
20
,
1
,
{
-
2.3203528743824910
,
20
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
3.7399919228791405
,
20
,
1
,
{
3.7399919228791405
,
20
,
1
,
-
0.50000000000000000
,
0.0
},
{
3.1692202279270085
,
20
,
1
,
{
-
3.1692202279270085
,
20
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
0.15804468835345031
,
20
,
1
,
{
0.15804468835345031
,
20
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
3.0366182393271171
,
20
,
1
,
{
3.0366182393271171
,
20
,
1
,
-
0.19999999999999996
,
0.0
},
{
3.2115523815580209
,
20
,
1
,
{
-
3.2115523815580209
,
20
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
20
,
1
,
{
0.0000000000000000
,
20
,
1
,
0.0000000000000000
,
0.0
},
{
-
3.2115523815580169
,
20
,
1
,
{
3.2115523815580169
,
20
,
1
,
0.10000000000000009
,
0.0
},
{
3.0366182393271259
,
20
,
1
,
{
-
3.0366182393271259
,
20
,
1
,
0.20000000000000018
,
0.0
},
{
0.15804468835344135
,
20
,
1
,
{
-
0.15804468835344135
,
20
,
1
,
0.30000000000000004
,
0.0
},
{
-
3.1692202279269970
,
20
,
1
,
{
3.1692202279269970
,
20
,
1
,
0.40000000000000013
,
0.0
},
{
3.7399919228791405
,
20
,
1
,
{
-
3.7399919228791405
,
20
,
1
,
0.50000000000000000
,
0.0
},
{
-
2.3203528743824995
,
20
,
1
,
{
2.3203528743824995
,
20
,
1
,
0.60000000000000009
,
0.0
},
{
0.72274871413393793
,
20
,
1
,
{
-
0.72274871413393793
,
20
,
1
,
0.70000000000000018
,
0.0
},
{
-
0.63138296146340844
,
20
,
1
,
{
0.63138296146340844
,
20
,
1
,
0.80000000000000004
,
0.0
},
{
4.3838334818220686
,
20
,
1
,
{
-
4.3838334818220686
,
20
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
20
,
1
,
{
0.0000000000000000
,
20
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler017
=
2.5000000000000020e-13
;
...
...
@@ -1012,53 +1012,53 @@ const double toler018 = 2.5000000000000020e-13;
// Test data for l=20, m=5.
// max(|f - f_GSL|): 1.2805685400962830e-09 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0861530799041223e-15
// mean(f - f_GSL):
-
1.1641532182693481e-10
// mean(f - f_GSL): 1.1641532182693481e-10
// variance(f - f_GSL): 7.1150767569361226e-22
// stddev(f - f_GSL): 2.6674101216228678e-11
const
testcase_assoc_legendre
<
double
>
data019
[
21
]
=
{
{
0.0000000000000000
,
20
,
5
,
{
-
0.0000000000000000
,
20
,
5
,
-
1.0000000000000000
,
0.0
},
{
315702.32715134218
,
20
,
5
,
{
-
315702.32715134218
,
20
,
5
,
-
0.90000000000000002
,
0.0
},
{
-
503060.91484852589
,
20
,
5
,
{
503060.91484852589
,
20
,
5
,
-
0.80000000000000004
,
0.0
},
{
298127.28360361955
,
20
,
5
,
{
-
298127.28360361955
,
20
,
5
,
-
0.69999999999999996
,
0.0
},
{
114444.61447464029
,
20
,
5
,
{
-
114444.61447464029
,
20
,
5
,
-
0.59999999999999998
,
0.0
},
{
-
543428.40914592845
,
20
,
5
,
{
543428.40914592845
,
20
,
5
,
-
0.50000000000000000
,
0.0
},
{
613842.07728185481
,
20
,
5
,
{
-
613842.07728185481
,
20
,
5
,
-
0.39999999999999991
,
0.0
},
{
-
143765.42411271061
,
20
,
5
,
{
143765.42411271061
,
20
,
5
,
-
0.29999999999999993
,
0.0
},
{
-
472600.45321372285
,
20
,
5
,
{
472600.45321372285
,
20
,
5
,
-
0.19999999999999996
,
0.0
},
{
563861.76771496492
,
20
,
5
,
{
-
563861.76771496492
,
20
,
5
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
20
,
5
,
{
0.0000000000000000
,
20
,
5
,
0.0000000000000000
,
0.0
},
{
-
563861.76771496458
,
20
,
5
,
{
563861.76771496458
,
20
,
5
,
0.10000000000000009
,
0.0
},
{
472600.45321372483
,
20
,
5
,
{
-
472600.45321372483
,
20
,
5
,
0.20000000000000018
,
0.0
},
{
143765.42411270936
,
20
,
5
,
{
-
143765.42411270936
,
20
,
5
,
0.30000000000000004
,
0.0
},
{
-
613842.07728185353
,
20
,
5
,
{
613842.07728185353
,
20
,
5
,
0.40000000000000013
,
0.0
},
{
543428.40914592845
,
20
,
5
,
{
-
543428.40914592845
,
20
,
5
,
0.50000000000000000
,
0.0
},
{
-
114444.61447464178
,
20
,
5
,
{
114444.61447464178
,
20
,
5
,
0.60000000000000009
,
0.0
},
{
-
298127.28360361519
,
20
,
5
,
{
298127.28360361519
,
20
,
5
,
0.70000000000000018
,
0.0
},
{
503060.91484852589
,
20
,
5
,
{
-
503060.91484852589
,
20
,
5
,
0.80000000000000004
,
0.0
},
{
-
315702.32715133618
,
20
,
5
,
{
315702.32715133618
,
20
,
5
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
20
,
5
,
{
0.0000000000000000
,
20
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler019
=
2.5000000000000020e-13
;
...
...
@@ -1228,53 +1228,53 @@ const double toler022 = 2.5000000000000020e-13;
// Test data for l=50, m=1.
// max(|f - f_GSL|): 4.4408920985006262e-15 at index 3
// max(|f - f_GSL| / |f_GSL|): 6.6657627150738456e-16
// mean(f - f_GSL):
-
6.3441315692866085e-17
// mean(f - f_GSL): 6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const
testcase_assoc_legendre
<
double
>
data023
[
21
]
=
{
{
-
0.0000000000000000
,
50
,
1
,
{
0.0000000000000000
,
50
,
1
,
-
1.0000000000000000
,
0.0
},
{
0.13424149984449490
,
50
,
1
,
{
-
0.13424149984449490
,
50
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
2.2011219672413018
,
50
,
1
,
{
2.2011219672413018
,
50
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
6.6622414993232004
,
50
,
1
,
{
6.6622414993232004
,
50
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
5.5772846936919249
,
50
,
1
,
{
5.5772846936919249
,
50
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
5.8787148815607608
,
50
,
1
,
{
5.8787148815607608
,
50
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
5.5473459458634080
,
50
,
1
,
{
5.5473459458634080
,
50
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
1.8444956647620248
,
50
,
1
,
{
1.8444956647620248
,
50
,
1
,
-
0.29999999999999993
,
0.0
},
{
3.8722014306642127
,
50
,
1
,
{
-
3.8722014306642127
,
50
,
1
,
-
0.19999999999999996
,
0.0
},
{
5.3488751322285628
,
50
,
1
,
{
-
5.3488751322285628
,
50
,
1
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
50
,
1
,
{
-
0.0000000000000000
,
50
,
1
,
0.0000000000000000
,
0.0
},
{
-
5.3488751322285522
,
50
,
1
,
{
5.3488751322285522
,
50
,
1
,
0.10000000000000009
,
0.0
},
{
-
3.8722014306642620
,
50
,
1
,
{
3.8722014306642620
,
50
,
1
,
0.20000000000000018
,
0.0
},
{
1.8444956647619930
,
50
,
1
,
{
-
1.8444956647619930
,
50
,
1
,
0.30000000000000004
,
0.0
},
{
5.5473459458633814
,
50
,
1
,
{
-
5.5473459458633814
,
50
,
1
,
0.40000000000000013
,
0.0
},
{
5.8787148815607608
,
50
,
1
,
{
-
5.8787148815607608
,
50
,
1
,
0.50000000000000000
,
0.0
},
{
5.5772846936919453
,
50
,
1
,
{
-
5.5772846936919453
,
50
,
1
,
0.60000000000000009
,
0.0
},
{
6.6622414993232182
,
50
,
1
,
{
-
6.6622414993232182
,
50
,
1
,
0.70000000000000018
,
0.0
},
{
2.2011219672413018
,
50
,
1
,
{
-
2.2011219672413018
,
50
,
1
,
0.80000000000000004
,
0.0
},
{
-
0.13424149984438935
,
50
,
1
,
{
0.13424149984438935
,
50
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
50
,
1
,
{
0.0000000000000000
,
50
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler023
=
2.5000000000000020e-13
;
...
...
@@ -1336,53 +1336,53 @@ const double toler024 = 5.0000000000000039e-13;
// Test data for l=50, m=5.
// max(|f - f_GSL|): 7.4505805969238281e-08 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0088060426072767e-15
// mean(f - f_GSL): 6.3862119402204238e-09
// mean(f - f_GSL):
-
6.3862119402204238e-09
// variance(f - f_GSL): 2.1411444046342303e-18
// stddev(f - f_GSL): 1.4632649810045447e-09
const
testcase_assoc_legendre
<
double
>
data025
[
21
]
=
{
{
0.0000000000000000
,
50
,
5
,
{
-
0.0000000000000000
,
50
,
5
,
-
1.0000000000000000
,
0.0
},
{
27340473.952132829
,
50
,
5
,
{
-
27340473.952132829
,
50
,
5
,
-
0.90000000000000002
,
0.0
},
{
-
27753716.768532373
,
50
,
5
,
{
27753716.768532373
,
50
,
5
,
-
0.80000000000000004
,
0.0
},
{
-
40808153.913493633
,
50
,
5
,
{
40808153.913493633
,
50
,
5
,
-
0.69999999999999996
,
0.0
},
{
-
32071189.035790090
,
50
,
5
,
{
32071189.035790090
,
50
,
5
,
-
0.59999999999999998
,
0.0
},
{
-
36265736.218529105
,
50
,
5
,
{
36265736.218529105
,
50
,
5
,
-
0.50000000000000000
,
0.0
},
{
-
37089596.700204931
,
50
,
5
,
{
37089596.700204931
,
50
,
5
,
-
0.39999999999999991
,
0.0
},
{
-
14562029.629244687
,
50
,
5
,
{
14562029.629244687
,
50
,
5
,
-
0.29999999999999993
,
0.0
},
{
23686895.217517190
,
50
,
5
,
{
-
23686895.217517190
,
50
,
5
,
-
0.19999999999999996
,
0.0
},
{
34878992.965676002
,
50
,
5
,
{
-
34878992.965676002
,
50
,
5
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
50
,
5
,
{
-
0.0000000000000000
,
50
,
5
,
0.0000000000000000
,
0.0
},
{
-
34878992.965675958
,
50
,
5
,
{
34878992.965675958
,
50
,
5
,
0.10000000000000009
,
0.0
},
{
-
23686895.217517529
,
50
,
5
,
{
23686895.217517529
,
50
,
5
,
0.20000000000000018
,
0.0
},
{
14562029.629244499
,
50
,
5
,
{
-
14562029.629244499
,
50
,
5
,
0.30000000000000004
,
0.0
},
{
37089596.700204782
,
50
,
5
,
{
-
37089596.700204782
,
50
,
5
,
0.40000000000000013
,
0.0
},
{
36265736.218529105
,
50
,
5
,
{
-
36265736.218529105
,
50
,
5
,
0.50000000000000000
,
0.0
},
{
32071189.035790242
,
50
,
5
,
{
-
32071189.035790242
,
50
,
5
,
0.60000000000000009
,
0.0
},
{
40808153.913493834
,
50
,
5
,
{
-
40808153.913493834
,
50
,
5
,
0.70000000000000018
,
0.0
},
{
27753716.768532373
,
50
,
5
,
{
-
27753716.768532373
,
50
,
5
,
0.80000000000000004
,
0.0
},
{
-
27340473.952132136
,
50
,
5
,
{
27340473.952132136
,
50
,
5
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
50
,
5
,
{
0.0000000000000000
,
50
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler025
=
2.5000000000000020e-13
;
...
...
@@ -1606,53 +1606,53 @@ const double toler029 = 5.0000000000000039e-13;
// Test data for l=100, m=1.
// max(|f - f_GSL|): 1.1546319456101628e-14 at index 3
// max(|f - f_GSL| / |f_GSL|): 2.1111954004946762e-15
// mean(f - f_GSL): 8.0358999877630379e-16
// mean(f - f_GSL):
-
8.0358999877630379e-16
// variance(f - f_GSL): 3.3902236521998243e-32
// stddev(f - f_GSL): 1.8412559985509414e-16
const
testcase_assoc_legendre
<
double
>
data030
[
21
]
=
{
{
0.0000000000000000
,
100
,
1
,
{
-
0.0000000000000000
,
100
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
6.5200167187780345
,
100
,
1
,
{
6.5200167187780345
,
100
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
9.0065170007027486
,
100
,
1
,
{
9.0065170007027486
,
100
,
1
,
-
0.80000000000000004
,
0.0
},
{
5.4690908541180976
,
100
,
1
,
{
-
5.4690908541180976
,
100
,
1
,
-
0.69999999999999996
,
0.0
},
{
8.6275439170430790
,
100
,
1
,
{
-
8.6275439170430790
,
100
,
1
,
-
0.59999999999999998
,
0.0
},
{
6.0909031663448454
,
100
,
1
,
{
-
6.0909031663448454
,
100
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
4.1160338699560395
,
100
,
1
,
{
4.1160338699560395
,
100
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
5.8491043010758634
,
100
,
1
,
{
5.8491043010758634
,
100
,
1
,
-
0.29999999999999993
,
0.0
},
{
7.9435138723089826
,
100
,
1
,
{
-
7.9435138723089826
,
100
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
4.7996285823989355
,
100
,
1
,
{
4.7996285823989355
,
100
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
100
,
1
,
{
0.0000000000000000
,
100
,
1
,
0.0000000000000000
,
0.0
},
{
4.7996285823990101
,
100
,
1
,
{
-
4.7996285823990101
,
100
,
1
,
0.10000000000000009
,
0.0
},
{
-
7.9435138723090155
,
100
,
1
,
{
7.9435138723090155
,
100
,
1
,
0.20000000000000018
,
0.0
},
{
5.8491043010758013
,
100
,
1
,
{
-
5.8491043010758013
,
100
,
1
,
0.30000000000000004
,
0.0
},
{
4.1160338699562162
,
100
,
1
,
{
-
4.1160338699562162
,
100
,
1
,
0.40000000000000013
,
0.0
},
{
-
6.0909031663448454
,
100
,
1
,
{
6.0909031663448454
,
100
,
1
,
0.50000000000000000
,
0.0
},
{
-
8.6275439170430470
,
100
,
1
,
{
8.6275439170430470
,
100
,
1
,
0.60000000000000009
,
0.0
},
{
-
5.4690908541178693
,
100
,
1
,
{
5.4690908541178693
,
100
,
1
,
0.70000000000000018
,
0.0
},
{
9.0065170007027486
,
100
,
1
,
{
-
9.0065170007027486
,
100
,
1
,
0.80000000000000004
,
0.0
},
{
6.5200167187777787
,
100
,
1
,
{
-
6.5200167187777787
,
100
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
100
,
1
,
{
0.0000000000000000
,
100
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler030
=
2.5000000000000020e-13
;
...
...
@@ -1714,53 +1714,53 @@ const double toler031 = 2.5000000000000020e-13;
// Test data for l=100, m=5.
// max(|f - f_GSL|): 1.4305114746093750e-06 at index 14
// max(|f - f_GSL| / |f_GSL|): 3.7628882298853693e-15
// mean(f - f_GSL): 5.1089695521763390e-08
// mean(f - f_GSL):
-
5.1089695521763390e-08
// variance(f - f_GSL): 1.3703324189659077e-16
// stddev(f - f_GSL): 1.1706119848036358e-08
const
testcase_assoc_legendre
<
double
>
data032
[
21
]
=
{
{
-
0.0000000000000000
,
100
,
5
,
{
0.0000000000000000
,
100
,
5
,
-
1.0000000000000000
,
0.0
},
{
-
900551126.09653807
,
100
,
5
,
{
900551126.09653807
,
100
,
5
,
-
0.90000000000000002
,
0.0
},
{
-
988567431.55756140
,
100
,
5
,
{
988567431.55756140
,
100
,
5
,
-
0.80000000000000004
,
0.0
},
{
645646451.90344620
,
100
,
5
,
{
-
645646451.90344620
,
100
,
5
,
-
0.69999999999999996
,
0.0
},
{
897114585.29920685
,
100
,
5
,
{
-
897114585.29920685
,
100
,
5
,
-
0.59999999999999998
,
0.0
},
{
661710744.42483854
,
100
,
5
,
{
-
661710744.42483854
,
100
,
5
,
-
0.50000000000000000
,
0.0
},
{
-
380163158.51424754
,
100
,
5
,
{
380163158.51424754
,
100
,
5
,
-
0.39999999999999991
,
0.0
},
{
-
617391071.36633193
,
100
,
5
,
{
617391071.36633193
,
100
,
5
,
-
0.29999999999999993
,
0.0
},
{
805288801.85509109
,
100
,
5
,
{
-
805288801.85509109
,
100
,
5
,
-
0.19999999999999996
,
0.0
},
{
-
481041740.16728652
,
100
,
5
,
{
481041740.16728652
,
100
,
5
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
100
,
5
,
{
0.0000000000000000
,
100
,
5
,
0.0000000000000000
,
0.0
},
{
481041740.16729391
,
100
,
5
,
{
-
481041740.16729391
,
100
,
5
,
0.10000000000000009
,
0.0
},
{
-
805288801.85509515
,
100
,
5
,
{
805288801.85509515
,
100
,
5
,
0.20000000000000018
,
0.0
},
{
617391071.36632574
,
100
,
5
,
{
-
617391071.36632574
,
100
,
5
,
0.30000000000000004
,
0.0
},
{
380163158.51426536
,
100
,
5
,
{
-
380163158.51426536
,
100
,
5
,
0.40000000000000013
,
0.0
},
{
-
661710744.42483854
,
100
,
5
,
{
661710744.42483854
,
100
,
5
,
0.50000000000000000
,
0.0
},
{
-
897114585.29920483
,
100
,
5
,
{
897114585.29920483
,
100
,
5
,
0.60000000000000009
,
0.0
},
{
-
645646451.90342283
,
100
,
5
,
{
645646451.90342283
,
100
,
5
,
0.70000000000000018
,
0.0
},
{
988567431.55756140
,
100
,
5
,
{
-
988567431.55756140
,
100
,
5
,
0.80000000000000004
,
0.0
},
{
900551126.09651637
,
100
,
5
,
{
-
900551126.09651637
,
100
,
5
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
100
,
5
,
{
0.0000000000000000
,
100
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler032
=
2.5000000000000020e-13
;
...
...
libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
View file @
b118dfdb
...
...
@@ -698,6 +698,26 @@ data026[21] =
};
const
double
toler026
=
1.0000000000000006e-11
;
// Test data for nu=100.00000000000000.
// max(|f - f_GSL|): 2.5857788132910287e-14
// max(|f - f_GSL| / |f_GSL|): 1.6767662425535933e-11
const
testcase_cyl_bessel_j
<
double
>
data027
[
11
]
=
{
{
0.0116761350077845
,
100.0000000000000000
,
1000.0000000000000000
,
0.0
},
{
-
0.0116998547780258
,
100.0000000000000000
,
1100.0000000000000000
,
0.0
},
{
-
0.0228014834050837
,
100.0000000000000000
,
1200.0000000000000000
,
0.0
},
{
-
0.0169735007873739
,
100.0000000000000000
,
1300.0000000000000000
,
0.0
},
{
-
0.0014154528803530
,
100.0000000000000000
,
1400.0000000000000000
,
0.0
},
{
0.0133337265844988
,
100.0000000000000000
,
1500.0000000000000000
,
0.0
},
{
0.0198025620201474
,
100.0000000000000000
,
1600.0000000000000000
,
0.0
},
{
0.0161297712798388
,
100.0000000000000000
,
1700.0000000000000000
,
0.0
},
{
0.0053753369281577
,
100.0000000000000000
,
1800.0000000000000000
,
0.0
},
{
-
0.0069238868725646
,
100.0000000000000000
,
1900.0000000000000000
,
0.0
},
{
-
0.0154878717200738
,
100.0000000000000000
,
2000.0000000000000000
,
0.0
},
};
const
double
toler027
=
1.0000000000000006e-10
;
template
<
typename
Ret
,
unsigned
int
Num
>
void
test
(
const
testcase_cyl_bessel_j
<
Ret
>
(
&
data
)[
Num
],
Ret
toler
)
...
...
@@ -748,5 +768,6 @@ main()
test
(
data024
,
toler024
);
test
(
data025
,
toler025
);
test
(
data026
,
toler026
);
test
(
data027
,
toler027
);
return
0
;
}
libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
View file @
b118dfdb
...
...
@@ -742,6 +742,26 @@ data028[20] =
};
const
double
toler028
=
1.0000000000000006e-11
;
// Test data for nu=100.00000000000000.
// max(|f - f_GSL|): 3.1049815496508870e-14
// max(|f - f_GSL| / |f_GSL|): 8.4272302674970308e-12
const
testcase_cyl_neumann
<
double
>
data029
[
11
]
=
{
{
-
0.0224386882577326
,
100.0000000000000000
,
1000.0000000000000000
,
0.0
},
{
-
0.0210775951598200
,
100.0000000000000000
,
1100.0000000000000000
,
0.0
},
{
-
0.0035299439206693
,
100.0000000000000000
,
1200.0000000000000000
,
0.0
},
{
0.0142500193265366
,
100.0000000000000000
,
1300.0000000000000000
,
0.0
},
{
0.0213046790897353
,
100.0000000000000000
,
1400.0000000000000000
,
0.0
},
{
0.0157343950779022
,
100.0000000000000000
,
1500.0000000000000000
,
0.0
},
{
0.0025544633636228
,
100.0000000000000000
,
1600.0000000000000000
,
0.0
},
{
-
0.0107220455248494
,
100.0000000000000000
,
1700.0000000000000000
,
0.0
},
{
-
0.0180369192432256
,
100.0000000000000000
,
1800.0000000000000000
,
0.0
},
{
-
0.0169584155930798
,
100.0000000000000000
,
1900.0000000000000000
,
0.0
},
{
-
0.0088788704566206
,
100.0000000000000000
,
2000.0000000000000000
,
0.0
},
};
const
double
toler029
=
1.0000000000000006e-11
;
template
<
typename
Ret
,
unsigned
int
Num
>
void
test
(
const
testcase_cyl_neumann
<
Ret
>
(
&
data
)[
Num
],
Ret
toler
)
...
...
@@ -794,5 +814,6 @@ main()
test
(
data026
,
toler026
);
test
(
data027
,
toler027
);
test
(
data028
,
toler028
);
test
(
data029
,
toler029
);
return
0
;
}
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
0 → 100644
View file @
b118dfdb
// { dg-do run { target c++11 } }
// { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
//
// Copyright (C) 2016-2018 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// assoc_legendre
// Compare against values generated by the GNU Scientific Library.
// The GSL can be found on the web: http://www.gnu.org/software/gsl/
#include <limits>
#include <tr1/cmath>
#if defined(__TEST_DEBUG)
# include <iostream>
# define VERIFY(A) \
if (!(A)) \
{ \
std::cout << "line " << __LINE__ \
<< " max_abs_frac = " << max_abs_frac \
<< std::endl; \
}
#else
# include <testsuite_hooks.h>
#endif
#include <specfun_testcase.h>
// Test data for l=0, m=0.
// max(|f - f_GSL|): 0.0000000000000000 at index 0
// max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
// mean(f - f_GSL): 0.0000000000000000
// variance(f - f_GSL): 0.0000000000000000
// stddev(f - f_GSL): 0.0000000000000000
const
testcase_assoc_legendre
<
double
>
data001
[
21
]
=
{
{
1.0000000000000000
,
0
,
0
,
-
1.0000000000000000
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.90000000000000002
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.80000000000000004
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.69999999999999996
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.59999999999999998
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.50000000000000000
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.39999999999999991
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.29999999999999993
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.19999999999999996
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
-
0.099999999999999978
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.0000000000000000
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.10000000000000009
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.20000000000000018
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.30000000000000004
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.40000000000000013
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.50000000000000000
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.60000000000000009
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.70000000000000018
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.80000000000000004
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
0
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler001
=
2.5000000000000020e-13
;
// Test data for l=1, m=0.
// max(|f - f_GSL|): 0.0000000000000000 at index 0
// max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
// mean(f - f_GSL): 0.0000000000000000
// variance(f - f_GSL): 0.0000000000000000
// stddev(f - f_GSL): 0.0000000000000000
const
testcase_assoc_legendre
<
double
>
data002
[
21
]
=
{
{
-
1.0000000000000000
,
1
,
0
,
-
1.0000000000000000
,
0.0
},
{
-
0.90000000000000002
,
1
,
0
,
-
0.90000000000000002
,
0.0
},
{
-
0.80000000000000004
,
1
,
0
,
-
0.80000000000000004
,
0.0
},
{
-
0.69999999999999996
,
1
,
0
,
-
0.69999999999999996
,
0.0
},
{
-
0.59999999999999998
,
1
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.50000000000000000
,
1
,
0
,
-
0.50000000000000000
,
0.0
},
{
-
0.39999999999999991
,
1
,
0
,
-
0.39999999999999991
,
0.0
},
{
-
0.29999999999999993
,
1
,
0
,
-
0.29999999999999993
,
0.0
},
{
-
0.19999999999999996
,
1
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.099999999999999978
,
1
,
0
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
1
,
0
,
0.0000000000000000
,
0.0
},
{
0.10000000000000009
,
1
,
0
,
0.10000000000000009
,
0.0
},
{
0.20000000000000018
,
1
,
0
,
0.20000000000000018
,
0.0
},
{
0.30000000000000004
,
1
,
0
,
0.30000000000000004
,
0.0
},
{
0.40000000000000013
,
1
,
0
,
0.40000000000000013
,
0.0
},
{
0.50000000000000000
,
1
,
0
,
0.50000000000000000
,
0.0
},
{
0.60000000000000009
,
1
,
0
,
0.60000000000000009
,
0.0
},
{
0.70000000000000018
,
1
,
0
,
0.70000000000000018
,
0.0
},
{
0.80000000000000004
,
1
,
0
,
0.80000000000000004
,
0.0
},
{
0.90000000000000013
,
1
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
1
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler002
=
2.5000000000000020e-13
;
// Test data for l=1, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.4227052612512390e-16
// mean(f - f_GSL): 1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data003
[
21
]
=
{
{
-
0.0000000000000000
,
1
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
0.43588989435406728
,
1
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
0.59999999999999987
,
1
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
0.71414284285428509
,
1
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
0.80000000000000004
,
1
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
0.86602540378443860
,
1
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
0.91651513899116799
,
1
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
0.95393920141694555
,
1
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
0.97979589711327120
,
1
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
0.99498743710661997
,
1
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
1.0000000000000000
,
1
,
1
,
0.0000000000000000
,
0.0
},
{
-
0.99498743710661997
,
1
,
1
,
0.10000000000000009
,
0.0
},
{
-
0.97979589711327120
,
1
,
1
,
0.20000000000000018
,
0.0
},
{
-
0.95393920141694577
,
1
,
1
,
0.30000000000000004
,
0.0
},
{
-
0.91651513899116788
,
1
,
1
,
0.40000000000000013
,
0.0
},
{
-
0.86602540378443860
,
1
,
1
,
0.50000000000000000
,
0.0
},
{
-
0.79999999999999993
,
1
,
1
,
0.60000000000000009
,
0.0
},
{
-
0.71414284285428475
,
1
,
1
,
0.70000000000000018
,
0.0
},
{
-
0.59999999999999987
,
1
,
1
,
0.80000000000000004
,
0.0
},
{
-
0.43588989435406711
,
1
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
1
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler003
=
2.5000000000000020e-13
;
// Test data for l=2, m=0.
// max(|f - f_GSL|): 1.1102230246251565e-16 at index 17
// max(|f - f_GSL| / |f_GSL|): 1.3877787807814482e-15
// mean(f - f_GSL): 1.8503717077085941e-17
// variance(f - f_GSL): 1.7975346147614202e-35
// stddev(f - f_GSL): 4.2397342071896678e-18
const
testcase_assoc_legendre
<
double
>
data004
[
21
]
=
{
{
1.0000000000000000
,
2
,
0
,
-
1.0000000000000000
,
0.0
},
{
0.71500000000000008
,
2
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.46000000000000019
,
2
,
0
,
-
0.80000000000000004
,
0.0
},
{
0.23499999999999988
,
2
,
0
,
-
0.69999999999999996
,
0.0
},
{
0.039999999999999925
,
2
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.12500000000000000
,
2
,
0
,
-
0.50000000000000000
,
0.0
},
{
-
0.26000000000000012
,
2
,
0
,
-
0.39999999999999991
,
0.0
},
{
-
0.36500000000000005
,
2
,
0
,
-
0.29999999999999993
,
0.0
},
{
-
0.44000000000000006
,
2
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.48499999999999999
,
2
,
0
,
-
0.099999999999999978
,
0.0
},
{
-
0.50000000000000000
,
2
,
0
,
0.0000000000000000
,
0.0
},
{
-
0.48499999999999999
,
2
,
0
,
0.10000000000000009
,
0.0
},
{
-
0.43999999999999989
,
2
,
0
,
0.20000000000000018
,
0.0
},
{
-
0.36499999999999999
,
2
,
0
,
0.30000000000000004
,
0.0
},
{
-
0.25999999999999984
,
2
,
0
,
0.40000000000000013
,
0.0
},
{
-
0.12500000000000000
,
2
,
0
,
0.50000000000000000
,
0.0
},
{
0.040000000000000147
,
2
,
0
,
0.60000000000000009
,
0.0
},
{
0.23500000000000032
,
2
,
0
,
0.70000000000000018
,
0.0
},
{
0.46000000000000019
,
2
,
0
,
0.80000000000000004
,
0.0
},
{
0.71500000000000030
,
2
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
2
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler004
=
2.5000000000000020e-13
;
// Test data for l=2, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 3
// max(|f - f_GSL| / |f_GSL|): 3.7770554319736585e-16
// mean(f - f_GSL): -1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data005
[
21
]
=
{
{
0.0000000000000000
,
2
,
1
,
-
1.0000000000000000
,
0.0
},
{
1.1769027147559816
,
2
,
1
,
-
0.90000000000000002
,
0.0
},
{
1.4399999999999999
,
2
,
1
,
-
0.80000000000000004
,
0.0
},
{
1.4996999699939983
,
2
,
1
,
-
0.69999999999999996
,
0.0
},
{
1.4399999999999999
,
2
,
1
,
-
0.59999999999999998
,
0.0
},
{
1.2990381056766580
,
2
,
1
,
-
0.50000000000000000
,
0.0
},
{
1.0998181667894014
,
2
,
1
,
-
0.39999999999999991
,
0.0
},
{
0.85854528127525076
,
2
,
1
,
-
0.29999999999999993
,
0.0
},
{
0.58787753826796263
,
2
,
1
,
-
0.19999999999999996
,
0.0
},
{
0.29849623113198592
,
2
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
2
,
1
,
0.0000000000000000
,
0.0
},
{
-
0.29849623113198626
,
2
,
1
,
0.10000000000000009
,
0.0
},
{
-
0.58787753826796330
,
2
,
1
,
0.20000000000000018
,
0.0
},
{
-
0.85854528127525132
,
2
,
1
,
0.30000000000000004
,
0.0
},
{
-
1.0998181667894018
,
2
,
1
,
0.40000000000000013
,
0.0
},
{
-
1.2990381056766580
,
2
,
1
,
0.50000000000000000
,
0.0
},
{
-
1.4400000000000002
,
2
,
1
,
0.60000000000000009
,
0.0
},
{
-
1.4996999699939983
,
2
,
1
,
0.70000000000000018
,
0.0
},
{
-
1.4399999999999999
,
2
,
1
,
0.80000000000000004
,
0.0
},
{
-
1.1769027147559812
,
2
,
1
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
2
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler005
=
2.5000000000000020e-13
;
// Test data for l=2, m=2.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 12
// max(|f - f_GSL| / |f_GSL|): 5.2867763077388426e-16
// mean(f - f_GSL): -8.4588420923821446e-17
// variance(f - f_GSL): 3.7564805010524372e-34
// stddev(f - f_GSL): 1.9381642090009910e-17
const
testcase_assoc_legendre
<
double
>
data006
[
21
]
=
{
{
0.0000000000000000
,
2
,
2
,
-
1.0000000000000000
,
0.0
},
{
0.56999999999999984
,
2
,
2
,
-
0.90000000000000002
,
0.0
},
{
1.0799999999999996
,
2
,
2
,
-
0.80000000000000004
,
0.0
},
{
1.5300000000000005
,
2
,
2
,
-
0.69999999999999996
,
0.0
},
{
1.9200000000000004
,
2
,
2
,
-
0.59999999999999998
,
0.0
},
{
2.2500000000000000
,
2
,
2
,
-
0.50000000000000000
,
0.0
},
{
2.5200000000000000
,
2
,
2
,
-
0.39999999999999991
,
0.0
},
{
2.7299999999999995
,
2
,
2
,
-
0.29999999999999993
,
0.0
},
{
2.8799999999999999
,
2
,
2
,
-
0.19999999999999996
,
0.0
},
{
2.9700000000000002
,
2
,
2
,
-
0.099999999999999978
,
0.0
},
{
3.0000000000000000
,
2
,
2
,
0.0000000000000000
,
0.0
},
{
2.9700000000000002
,
2
,
2
,
0.10000000000000009
,
0.0
},
{
2.8799999999999999
,
2
,
2
,
0.20000000000000018
,
0.0
},
{
2.7300000000000004
,
2
,
2
,
0.30000000000000004
,
0.0
},
{
2.5199999999999991
,
2
,
2
,
0.40000000000000013
,
0.0
},
{
2.2500000000000000
,
2
,
2
,
0.50000000000000000
,
0.0
},
{
1.9199999999999997
,
2
,
2
,
0.60000000000000009
,
0.0
},
{
1.5299999999999989
,
2
,
2
,
0.70000000000000018
,
0.0
},
{
1.0799999999999996
,
2
,
2
,
0.80000000000000004
,
0.0
},
{
0.56999999999999929
,
2
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
2
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler006
=
2.5000000000000020e-13
;
// Test data for l=5, m=0.
// max(|f - f_GSL|): 2.0122792321330962e-16 at index 19
// max(|f - f_GSL| / |f_GSL|): 4.8911475274405560e-15
// mean(f - f_GSL): -2.3129646346357427e-18
// variance(f - f_GSL): 2.8086478355647191e-37
// stddev(f - f_GSL): 5.2996677589870847e-19
const
testcase_assoc_legendre
<
double
>
data007
[
21
]
=
{
{
-
1.0000000000000000
,
5
,
0
,
-
1.0000000000000000
,
0.0
},
{
0.041141250000000087
,
5
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.39951999999999993
,
5
,
0
,
-
0.80000000000000004
,
0.0
},
{
0.36519874999999991
,
5
,
0
,
-
0.69999999999999996
,
0.0
},
{
0.15263999999999994
,
5
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.089843750000000000
,
5
,
0
,
-
0.50000000000000000
,
0.0
},
{
-
0.27064000000000010
,
5
,
0
,
-
0.39999999999999991
,
0.0
},
{
-
0.34538624999999995
,
5
,
0
,
-
0.29999999999999993
,
0.0
},
{
-
0.30751999999999996
,
5
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.17882874999999995
,
5
,
0
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
5
,
0
,
0.0000000000000000
,
0.0
},
{
0.17882875000000015
,
5
,
0
,
0.10000000000000009
,
0.0
},
{
0.30752000000000013
,
5
,
0
,
0.20000000000000018
,
0.0
},
{
0.34538625000000001
,
5
,
0
,
0.30000000000000004
,
0.0
},
{
0.27063999999999988
,
5
,
0
,
0.40000000000000013
,
0.0
},
{
0.089843750000000000
,
5
,
0
,
0.50000000000000000
,
0.0
},
{
-
0.15264000000000016
,
5
,
0
,
0.60000000000000009
,
0.0
},
{
-
0.36519875000000024
,
5
,
0
,
0.70000000000000018
,
0.0
},
{
-
0.39951999999999993
,
5
,
0
,
0.80000000000000004
,
0.0
},
{
-
0.041141249999999151
,
5
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
5
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler007
=
2.5000000000000020e-13
;
// Test data for l=5, m=1.
// max(|f - f_GSL|): 6.6613381477509392e-16 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.5186908001167120e-16
// mean(f - f_GSL): -1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const
testcase_assoc_legendre
<
double
>
data008
[
21
]
=
{
{
0.0000000000000000
,
5
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
2.8099369608350981
,
5
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
0.72180000000000089
,
5
,
1
,
-
0.80000000000000004
,
0.0
},
{
1.0951826834447254
,
5
,
1
,
-
0.69999999999999996
,
0.0
},
{
1.9775999999999998
,
5
,
1
,
-
0.59999999999999998
,
0.0
},
{
1.9282596881137892
,
5
,
1
,
-
0.50000000000000000
,
0.0
},
{
1.2070504380513671
,
5
,
1
,
-
0.39999999999999991
,
0.0
},
{
0.16079837663884300
,
5
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
0.87005875663658538
,
5
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
1.6083350053680323
,
5
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
1.8750000000000000
,
5
,
1
,
0.0000000000000000
,
0.0
},
{
-
1.6083350053680314
,
5
,
1
,
0.10000000000000009
,
0.0
},
{
-
0.87005875663658327
,
5
,
1
,
0.20000000000000018
,
0.0
},
{
0.16079837663884422
,
5
,
1
,
0.30000000000000004
,
0.0
},
{
1.2070504380513694
,
5
,
1
,
0.40000000000000013
,
0.0
},
{
1.9282596881137892
,
5
,
1
,
0.50000000000000000
,
0.0
},
{
1.9775999999999998
,
5
,
1
,
0.60000000000000009
,
0.0
},
{
1.0951826834447216
,
5
,
1
,
0.70000000000000018
,
0.0
},
{
-
0.72180000000000089
,
5
,
1
,
0.80000000000000004
,
0.0
},
{
-
2.8099369608350999
,
5
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
5
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler008
=
2.5000000000000020e-13
;
// Test data for l=5, m=2.
// max(|f - f_GSL|): 3.5527136788005009e-15 at index 12
// max(|f - f_GSL| / |f_GSL|): 5.4136589391245733e-16
// mean(f - f_GSL): 0.0000000000000000
// variance(f - f_GSL): 0.0000000000000000
// stddev(f - f_GSL): 0.0000000000000000
const
testcase_assoc_legendre
<
double
>
data009
[
21
]
=
{
{
0.0000000000000000
,
5
,
2
,
-
1.0000000000000000
,
0.0
},
{
-
12.837825000000000
,
5
,
2
,
-
0.90000000000000002
,
0.0
},
{
-
13.910400000000001
,
5
,
2
,
-
0.80000000000000004
,
0.0
},
{
-
8.8089749999999967
,
5
,
2
,
-
0.69999999999999996
,
0.0
},
{
-
1.6128000000000000
,
5
,
2
,
-
0.59999999999999998
,
0.0
},
{
4.9218750000000000
,
5
,
2
,
-
0.50000000000000000
,
0.0
},
{
9.1728000000000005
,
5
,
2
,
-
0.39999999999999991
,
0.0
},
{
10.462724999999997
,
5
,
2
,
-
0.29999999999999993
,
0.0
},
{
8.8703999999999983
,
5
,
2
,
-
0.19999999999999996
,
0.0
},
{
5.0415749999999990
,
5
,
2
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
5
,
2
,
0.0000000000000000
,
0.0
},
{
-
5.0415750000000044
,
5
,
2
,
0.10000000000000009
,
0.0
},
{
-
8.8704000000000054
,
5
,
2
,
0.20000000000000018
,
0.0
},
{
-
10.462725000000001
,
5
,
2
,
0.30000000000000004
,
0.0
},
{
-
9.1727999999999970
,
5
,
2
,
0.40000000000000013
,
0.0
},
{
-
4.9218750000000000
,
5
,
2
,
0.50000000000000000
,
0.0
},
{
1.6128000000000047
,
5
,
2
,
0.60000000000000009
,
0.0
},
{
8.8089750000000109
,
5
,
2
,
0.70000000000000018
,
0.0
},
{
13.910400000000001
,
5
,
2
,
0.80000000000000004
,
0.0
},
{
12.837824999999990
,
5
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
5
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler009
=
2.5000000000000020e-13
;
// Test data for l=5, m=5.
// max(|f - f_GSL|): 1.0231815394945443e-12 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.1990652164995755e-15
// mean(f - f_GSL): 3.1128538899966297e-14
// variance(f - f_GSL): 5.0871761537452526e-29
// stddev(f - f_GSL): 7.1324442891236469e-15
const
testcase_assoc_legendre
<
double
>
data010
[
21
]
=
{
{
-
0.0000000000000000
,
5
,
5
,
-
1.0000000000000000
,
0.0
},
{
-
14.870165800941818
,
5
,
5
,
-
0.90000000000000002
,
0.0
},
{
-
73.483199999999925
,
5
,
5
,
-
0.80000000000000004
,
0.0
},
{
-
175.53238298794764
,
5
,
5
,
-
0.69999999999999996
,
0.0
},
{
-
309.65760000000006
,
5
,
5
,
-
0.59999999999999998
,
0.0
},
{
-
460.34662869916559
,
5
,
5
,
-
0.50000000000000000
,
0.0
},
{
-
611.12496255819883
,
5
,
5
,
-
0.39999999999999991
,
0.0
},
{
-
746.50941479523703
,
5
,
5
,
-
0.29999999999999993
,
0.0
},
{
-
853.31600434671316
,
5
,
5
,
-
0.19999999999999996
,
0.0
},
{
-
921.55189181724734
,
5
,
5
,
-
0.099999999999999978
,
0.0
},
{
-
945.00000000000000
,
5
,
5
,
0.0000000000000000
,
0.0
},
{
-
921.55189181724734
,
5
,
5
,
0.10000000000000009
,
0.0
},
{
-
853.31600434671316
,
5
,
5
,
0.20000000000000018
,
0.0
},
{
-
746.50941479523760
,
5
,
5
,
0.30000000000000004
,
0.0
},
{
-
611.12496255819838
,
5
,
5
,
0.40000000000000013
,
0.0
},
{
-
460.34662869916559
,
5
,
5
,
0.50000000000000000
,
0.0
},
{
-
309.65759999999989
,
5
,
5
,
0.60000000000000009
,
0.0
},
{
-
175.53238298794724
,
5
,
5
,
0.70000000000000018
,
0.0
},
{
-
73.483199999999925
,
5
,
5
,
0.80000000000000004
,
0.0
},
{
-
14.870165800941789
,
5
,
5
,
0.90000000000000013
,
0.0
},
{
-
0.0000000000000000
,
5
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler010
=
2.5000000000000020e-13
;
// Test data for l=10, m=0.
// max(|f - f_GSL|): 3.8857805861880479e-16 at index 19
// max(|f - f_GSL| / |f_GSL|): 1.4766655123690915e-15
// mean(f - f_GSL): -2.5112187461759493e-17
// variance(f - f_GSL): 3.3107652853513909e-35
// stddev(f - f_GSL): 5.7539249954716919e-18
const
testcase_assoc_legendre
<
double
>
data011
[
21
]
=
{
{
1.0000000000000000
,
10
,
0
,
-
1.0000000000000000
,
0.0
},
{
-
0.26314561785585960
,
10
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.30052979560000004
,
10
,
0
,
-
0.80000000000000004
,
0.0
},
{
0.085805795531640333
,
10
,
0
,
-
0.69999999999999996
,
0.0
},
{
-
0.24366274560000001
,
10
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.18822860717773438
,
10
,
0
,
-
0.50000000000000000
,
0.0
},
{
0.096839064400000258
,
10
,
0
,
-
0.39999999999999991
,
0.0
},
{
0.25147634951601561
,
10
,
0
,
-
0.29999999999999993
,
0.0
},
{
0.12907202559999983
,
10
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.12212499738710943
,
10
,
0
,
-
0.099999999999999978
,
0.0
},
{
-
0.24609375000000000
,
10
,
0
,
0.0000000000000000
,
0.0
},
{
-
0.12212499738710922
,
10
,
0
,
0.10000000000000009
,
0.0
},
{
0.12907202560000042
,
10
,
0
,
0.20000000000000018
,
0.0
},
{
0.25147634951601561
,
10
,
0
,
0.30000000000000004
,
0.0
},
{
0.096839064399999633
,
10
,
0
,
0.40000000000000013
,
0.0
},
{
-
0.18822860717773438
,
10
,
0
,
0.50000000000000000
,
0.0
},
{
-
0.24366274559999984
,
10
,
0
,
0.60000000000000009
,
0.0
},
{
0.085805795531641277
,
10
,
0
,
0.70000000000000018
,
0.0
},
{
0.30052979560000004
,
10
,
0
,
0.80000000000000004
,
0.0
},
{
-
0.26314561785586010
,
10
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
10
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler011
=
2.5000000000000020e-13
;
// Test data for l=10, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.3672431731635395e-16
// mean(f - f_GSL): 6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const
testcase_assoc_legendre
<
double
>
data012
[
21
]
=
{
{
-
0.0000000000000000
,
10
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
3.0438748781479039
,
10
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
0.87614260800000254
,
10
,
1
,
-
0.80000000000000004
,
0.0
},
{
2.9685359952934527
,
10
,
1
,
-
0.69999999999999996
,
0.0
},
{
1.2511825919999997
,
10
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
2.0066877394361260
,
10
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
2.4822196173476647
,
10
,
1
,
-
0.39999999999999991
,
0.0
},
{
-
0.12309508907433593
,
10
,
1
,
-
0.29999999999999993
,
0.0
},
{
2.2468221751958413
,
10
,
1
,
-
0.19999999999999996
,
0.0
},
{
2.2472659777983512
,
10
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
10
,
1
,
0.0000000000000000
,
0.0
},
{
-
2.2472659777983535
,
10
,
1
,
0.10000000000000009
,
0.0
},
{
-
2.2468221751958377
,
10
,
1
,
0.20000000000000018
,
0.0
},
{
0.12309508907433910
,
10
,
1
,
0.30000000000000004
,
0.0
},
{
2.4822196173476669
,
10
,
1
,
0.40000000000000013
,
0.0
},
{
2.0066877394361260
,
10
,
1
,
0.50000000000000000
,
0.0
},
{
-
1.2511825920000037
,
10
,
1
,
0.60000000000000009
,
0.0
},
{
-
2.9685359952934505
,
10
,
1
,
0.70000000000000018
,
0.0
},
{
0.87614260800000254
,
10
,
1
,
0.80000000000000004
,
0.0
},
{
3.0438748781478981
,
10
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
10
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler012
=
2.5000000000000020e-13
;
// Test data for l=10, m=2.
// max(|f - f_GSL|): 1.2434497875801753e-14 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.9632900580960751e-15
// mean(f - f_GSL): -8.4588420923821446e-17
// variance(f - f_GSL): 3.7564805010524372e-34
// stddev(f - f_GSL): 1.9381642090009910e-17
const
testcase_assoc_legendre
<
double
>
data013
[
21
]
=
{
{
0.0000000000000000
,
10
,
2
,
-
1.0000000000000000
,
0.0
},
{
16.376387762496137
,
10
,
2
,
-
0.90000000000000002
,
0.0
},
{
-
35.394657804000005
,
10
,
2
,
-
0.80000000000000004
,
0.0
},
{
-
3.6191429423788648
,
10
,
2
,
-
0.69999999999999996
,
0.0
},
{
28.679675904000014
,
10
,
2
,
-
0.59999999999999998
,
0.0
},
{
18.388023376464844
,
10
,
2
,
-
0.50000000000000000
,
0.0
},
{
-
12.818955996000021
,
10
,
2
,
-
0.39999999999999991
,
0.0
},
{
-
27.739821675972646
,
10
,
2
,
-
0.29999999999999993
,
0.0
},
{
-
13.280661503999987
,
10
,
2
,
-
0.19999999999999996
,
0.0
},
{
13.885467170308601
,
10
,
2
,
-
0.099999999999999978
,
0.0
},
{
27.070312500000000
,
10
,
2
,
0.0000000000000000
,
0.0
},
{
13.885467170308573
,
10
,
2
,
0.10000000000000009
,
0.0
},
{
-
13.280661504000051
,
10
,
2
,
0.20000000000000018
,
0.0
},
{
-
27.739821675972664
,
10
,
2
,
0.30000000000000004
,
0.0
},
{
-
12.818955995999961
,
10
,
2
,
0.40000000000000013
,
0.0
},
{
18.388023376464844
,
10
,
2
,
0.50000000000000000
,
0.0
},
{
28.679675904000000
,
10
,
2
,
0.60000000000000009
,
0.0
},
{
-
3.6191429423789856
,
10
,
2
,
0.70000000000000018
,
0.0
},
{
-
35.394657804000005
,
10
,
2
,
0.80000000000000004
,
0.0
},
{
16.376387762496201
,
10
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
10
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler013
=
2.5000000000000020e-13
;
// Test data for l=10, m=5.
// max(|f - f_GSL|): 2.9103830456733704e-11 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.4825078449301893e-15
// mean(f - f_GSL): 2.4253192047278085e-12
// variance(f - f_GSL): 3.0881409535313035e-25
// stddev(f - f_GSL): 5.5571044200476413e-13
const
testcase_assoc_legendre
<
double
>
data014
[
21
]
=
{
{
0.0000000000000000
,
10
,
5
,
-
1.0000000000000000
,
0.0
},
{
21343.618518164680
,
10
,
5
,
-
0.90000000000000002
,
0.0
},
{
40457.016407807983
,
10
,
5
,
-
0.80000000000000004
,
0.0
},
{
20321.279317331315
,
10
,
5
,
-
0.69999999999999996
,
0.0
},
{
-
14410.820616192004
,
10
,
5
,
-
0.59999999999999998
,
0.0
},
{
-
30086.169706116176
,
10
,
5
,
-
0.50000000000000000
,
0.0
},
{
-
17177.549337582834
,
10
,
5
,
-
0.39999999999999991
,
0.0
},
{
9272.5119495412546
,
10
,
5
,
-
0.29999999999999993
,
0.0
},
{
26591.511184414714
,
10
,
5
,
-
0.19999999999999996
,
0.0
},
{
21961.951238504211
,
10
,
5
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
10
,
5
,
0.0000000000000000
,
0.0
},
{
-
21961.951238504229
,
10
,
5
,
0.10000000000000009
,
0.0
},
{
-
26591.511184414703
,
10
,
5
,
0.20000000000000018
,
0.0
},
{
-
9272.5119495412364
,
10
,
5
,
0.30000000000000004
,
0.0
},
{
17177.549337582877
,
10
,
5
,
0.40000000000000013
,
0.0
},
{
30086.169706116176
,
10
,
5
,
0.50000000000000000
,
0.0
},
{
14410.820616191972
,
10
,
5
,
0.60000000000000009
,
0.0
},
{
-
20321.279317331391
,
10
,
5
,
0.70000000000000018
,
0.0
},
{
-
40457.016407807983
,
10
,
5
,
0.80000000000000004
,
0.0
},
{
-
21343.618518164636
,
10
,
5
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
10
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler014
=
2.5000000000000020e-13
;
// Test data for l=10, m=10.
// max(|f - f_GSL|): 1.1920928955078125e-06 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.3944993944674592e-15
// mean(f - f_GSL): -1.5610740298316593e-08
// variance(f - f_GSL): 1.2793998664727994e-17
// stddev(f - f_GSL): 3.5768699535666649e-09
const
testcase_assoc_legendre
<
double
>
data015
[
21
]
=
{
{
0.0000000000000000
,
10
,
10
,
-
1.0000000000000000
,
0.0
},
{
162117.40078784220
,
10
,
10
,
-
0.90000000000000002
,
0.0
},
{
3958896.3481267113
,
10
,
10
,
-
0.80000000000000004
,
0.0
},
{
22589806.343887307
,
10
,
10
,
-
0.69999999999999996
,
0.0
},
{
70300999.121633321
,
10
,
10
,
-
0.59999999999999998
,
0.0
},
{
155370278.54003900
,
10
,
10
,
-
0.50000000000000000
,
0.0
},
{
273815518.20150518
,
10
,
10
,
-
0.39999999999999991
,
0.0
},
{
408571989.13158852
,
10
,
10
,
-
0.29999999999999993
,
0.0
},
{
533848212.07990247
,
10
,
10
,
-
0.19999999999999996
,
0.0
},
{
622640835.70523083
,
10
,
10
,
-
0.099999999999999978
,
0.0
},
{
654729075.00000000
,
10
,
10
,
0.0000000000000000
,
0.0
},
{
622640835.70523083
,
10
,
10
,
0.10000000000000009
,
0.0
},
{
533848212.07990247
,
10
,
10
,
0.20000000000000018
,
0.0
},
{
408571989.13158917
,
10
,
10
,
0.30000000000000004
,
0.0
},
{
273815518.20150483
,
10
,
10
,
0.40000000000000013
,
0.0
},
{
155370278.54003900
,
10
,
10
,
0.50000000000000000
,
0.0
},
{
70300999.121633217
,
10
,
10
,
0.60000000000000009
,
0.0
},
{
22589806.343887202
,
10
,
10
,
0.70000000000000018
,
0.0
},
{
3958896.3481267113
,
10
,
10
,
0.80000000000000004
,
0.0
},
{
162117.40078784159
,
10
,
10
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
10
,
10
,
1.0000000000000000
,
0.0
},
};
const
double
toler015
=
2.5000000000000020e-13
;
// Test data for l=20, m=0.
// max(|f - f_GSL|): 3.6082248300317588e-16 at index 19
// max(|f - f_GSL| / |f_GSL|): 2.4166281401316513e-15
// mean(f - f_GSL): 0.0000000000000000
// variance(f - f_GSL): 4.9424644697959907e-65
// stddev(f - f_GSL): 7.0302663319365015e-33
const
testcase_assoc_legendre
<
double
>
data016
[
21
]
=
{
{
1.0000000000000000
,
20
,
0
,
-
1.0000000000000000
,
0.0
},
{
-
0.14930823530984835
,
20
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.22420460541741347
,
20
,
0
,
-
0.80000000000000004
,
0.0
},
{
-
0.20457394463834172
,
20
,
0
,
-
0.69999999999999996
,
0.0
},
{
0.15916752910098109
,
20
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.048358381067373557
,
20
,
0
,
-
0.50000000000000000
,
0.0
},
{
-
0.10159261558628112
,
20
,
0
,
-
0.39999999999999991
,
0.0
},
{
0.18028715947998047
,
20
,
0
,
-
0.29999999999999993
,
0.0
},
{
-
0.098042194344594796
,
20
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.082077130944527663
,
20
,
0
,
-
0.099999999999999978
,
0.0
},
{
0.17619705200195312
,
20
,
0
,
0.0000000000000000
,
0.0
},
{
-
0.082077130944528023
,
20
,
0
,
0.10000000000000009
,
0.0
},
{
-
0.098042194344594089
,
20
,
0
,
0.20000000000000018
,
0.0
},
{
0.18028715947998042
,
20
,
0
,
0.30000000000000004
,
0.0
},
{
-
0.10159261558628192
,
20
,
0
,
0.40000000000000013
,
0.0
},
{
-
0.048358381067373557
,
20
,
0
,
0.50000000000000000
,
0.0
},
{
0.15916752910098075
,
20
,
0
,
0.60000000000000009
,
0.0
},
{
-
0.20457394463834136
,
20
,
0
,
0.70000000000000018
,
0.0
},
{
0.22420460541741347
,
20
,
0
,
0.80000000000000004
,
0.0
},
{
-
0.14930823530984758
,
20
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
20
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler016
=
2.5000000000000020e-13
;
// Test data for l=20, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.0752784502271902e-15
// mean(f - f_GSL): 1.4274296030894871e-16
// variance(f - f_GSL): 1.0697165176825104e-33
// stddev(f - f_GSL): 3.2706521026891724e-17
const
testcase_assoc_legendre
<
double
>
data017
[
21
]
=
{
{
0.0000000000000000
,
20
,
1
,
-
1.0000000000000000
,
0.0
},
{
4.3838334818220499
,
20
,
1
,
-
0.90000000000000002
,
0.0
},
{
-
0.63138296146340844
,
20
,
1
,
-
0.80000000000000004
,
0.0
},
{
0.72274871413391395
,
20
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
2.3203528743824910
,
20
,
1
,
-
0.59999999999999998
,
0.0
},
{
3.7399919228791405
,
20
,
1
,
-
0.50000000000000000
,
0.0
},
{
-
3.1692202279270085
,
20
,
1
,
-
0.39999999999999991
,
0.0
},
{
0.15804468835345031
,
20
,
1
,
-
0.29999999999999993
,
0.0
},
{
3.0366182393271171
,
20
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
3.2115523815580209
,
20
,
1
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
20
,
1
,
0.0000000000000000
,
0.0
},
{
3.2115523815580169
,
20
,
1
,
0.10000000000000009
,
0.0
},
{
-
3.0366182393271259
,
20
,
1
,
0.20000000000000018
,
0.0
},
{
-
0.15804468835344135
,
20
,
1
,
0.30000000000000004
,
0.0
},
{
3.1692202279269970
,
20
,
1
,
0.40000000000000013
,
0.0
},
{
-
3.7399919228791405
,
20
,
1
,
0.50000000000000000
,
0.0
},
{
2.3203528743824995
,
20
,
1
,
0.60000000000000009
,
0.0
},
{
-
0.72274871413393793
,
20
,
1
,
0.70000000000000018
,
0.0
},
{
0.63138296146340844
,
20
,
1
,
0.80000000000000004
,
0.0
},
{
-
4.3838334818220686
,
20
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
20
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler017
=
2.5000000000000020e-13
;
// Test data for l=20, m=2.
// max(|f - f_GSL|): 2.4868995751603507e-14 at index 5
// max(|f - f_GSL| / |f_GSL|): 1.0097407175524082e-15
// mean(f - f_GSL): -2.0301221021717147e-15
// variance(f - f_GSL): 2.1637327686062039e-31
// stddev(f - f_GSL): 4.6515941016023782e-16
const
testcase_assoc_legendre
<
double
>
data018
[
21
]
=
{
{
0.0000000000000000
,
20
,
2
,
-
1.0000000000000000
,
0.0
},
{
80.812425587310102
,
20
,
2
,
-
0.90000000000000002
,
0.0
},
{
-
95.849622172549374
,
20
,
2
,
-
0.80000000000000004
,
0.0
},
{
87.337927630325510
,
20
,
2
,
-
0.69999999999999996
,
0.0
},
{
-
70.330891533985834
,
20
,
2
,
-
0.59999999999999998
,
0.0
},
{
24.629090735179489
,
20
,
2
,
-
0.50000000000000000
,
0.0
},
{
39.902576338912247
,
20
,
2
,
-
0.39999999999999991
,
0.0
},
{
-
75.621201471396546
,
20
,
2
,
-
0.29999999999999993
,
0.0
},
{
42.417415829726494
,
20
,
2
,
-
0.19999999999999996
,
0.0
},
{
33.826848678871293
,
20
,
2
,
-
0.099999999999999978
,
0.0
},
{
-
74.002761840820312
,
20
,
2
,
0.0000000000000000
,
0.0
},
{
33.826848678871464
,
20
,
2
,
0.10000000000000009
,
0.0
},
{
42.417415829726188
,
20
,
2
,
0.20000000000000018
,
0.0
},
{
-
75.621201471396603
,
20
,
2
,
0.30000000000000004
,
0.0
},
{
39.902576338912553
,
20
,
2
,
0.40000000000000013
,
0.0
},
{
24.629090735179489
,
20
,
2
,
0.50000000000000000
,
0.0
},
{
-
70.330891533985721
,
20
,
2
,
0.60000000000000009
,
0.0
},
{
87.337927630325453
,
20
,
2
,
0.70000000000000018
,
0.0
},
{
-
95.849622172549374
,
20
,
2
,
0.80000000000000004
,
0.0
},
{
80.812425587309747
,
20
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
20
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler018
=
2.5000000000000020e-13
;
// Test data for l=20, m=5.
// max(|f - f_GSL|): 1.2805685400962830e-09 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0861530799041223e-15
// mean(f - f_GSL): 1.1641532182693481e-10
// variance(f - f_GSL): 7.1150767569361226e-22
// stddev(f - f_GSL): 2.6674101216228678e-11
const
testcase_assoc_legendre
<
double
>
data019
[
21
]
=
{
{
-
0.0000000000000000
,
20
,
5
,
-
1.0000000000000000
,
0.0
},
{
-
315702.32715134218
,
20
,
5
,
-
0.90000000000000002
,
0.0
},
{
503060.91484852589
,
20
,
5
,
-
0.80000000000000004
,
0.0
},
{
-
298127.28360361955
,
20
,
5
,
-
0.69999999999999996
,
0.0
},
{
-
114444.61447464029
,
20
,
5
,
-
0.59999999999999998
,
0.0
},
{
543428.40914592845
,
20
,
5
,
-
0.50000000000000000
,
0.0
},
{
-
613842.07728185481
,
20
,
5
,
-
0.39999999999999991
,
0.0
},
{
143765.42411271061
,
20
,
5
,
-
0.29999999999999993
,
0.0
},
{
472600.45321372285
,
20
,
5
,
-
0.19999999999999996
,
0.0
},
{
-
563861.76771496492
,
20
,
5
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
20
,
5
,
0.0000000000000000
,
0.0
},
{
563861.76771496458
,
20
,
5
,
0.10000000000000009
,
0.0
},
{
-
472600.45321372483
,
20
,
5
,
0.20000000000000018
,
0.0
},
{
-
143765.42411270936
,
20
,
5
,
0.30000000000000004
,
0.0
},
{
613842.07728185353
,
20
,
5
,
0.40000000000000013
,
0.0
},
{
-
543428.40914592845
,
20
,
5
,
0.50000000000000000
,
0.0
},
{
114444.61447464178
,
20
,
5
,
0.60000000000000009
,
0.0
},
{
298127.28360361519
,
20
,
5
,
0.70000000000000018
,
0.0
},
{
-
503060.91484852589
,
20
,
5
,
0.80000000000000004
,
0.0
},
{
315702.32715133618
,
20
,
5
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
20
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler019
=
2.5000000000000020e-13
;
// Test data for l=20, m=10.
// max(|f - f_GSL|): 0.0039062500000000000 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.6634565089260680e-15
// mean(f - f_GSL): -0.00043596540178571431
// variance(f - f_GSL): 9.9784562846311215e-09
// stddev(f - f_GSL): 9.9892223344117843e-05
const
testcase_assoc_legendre
<
double
>
data020
[
21
]
=
{
{
-
0.0000000000000000
,
20
,
10
,
-
1.0000000000000000
,
0.0
},
{
990017476694.99084
,
20
,
10
,
-
0.90000000000000002
,
0.0
},
{
2392757933281.0498
,
20
,
10
,
-
0.80000000000000004
,
0.0
},
{
-
1548364524949.5808
,
20
,
10
,
-
0.69999999999999996
,
0.0
},
{
-
424471915195.05627
,
20
,
10
,
-
0.59999999999999998
,
0.0
},
{
1744502295946.2073
,
20
,
10
,
-
0.50000000000000000
,
0.0
},
{
-
899973487310.55530
,
20
,
10
,
-
0.39999999999999991
,
0.0
},
{
-
1092420454297.7119
,
20
,
10
,
-
0.29999999999999993
,
0.0
},
{
1466609267659.8816
,
20
,
10
,
-
0.19999999999999996
,
0.0
},
{
356041756390.71674
,
20
,
10
,
-
0.099999999999999978
,
0.0
},
{
-
1612052956674.3164
,
20
,
10
,
0.0000000000000000
,
0.0
},
{
356041756390.71985
,
20
,
10
,
0.10000000000000009
,
0.0
},
{
1466609267659.8796
,
20
,
10
,
0.20000000000000018
,
0.0
},
{
-
1092420454297.7161
,
20
,
10
,
0.30000000000000004
,
0.0
},
{
-
899973487310.54810
,
20
,
10
,
0.40000000000000013
,
0.0
},
{
1744502295946.2073
,
20
,
10
,
0.50000000000000000
,
0.0
},
{
-
424471915195.05896
,
20
,
10
,
0.60000000000000009
,
0.0
},
{
-
1548364524949.5730
,
20
,
10
,
0.70000000000000018
,
0.0
},
{
2392757933281.0498
,
20
,
10
,
0.80000000000000004
,
0.0
},
{
990017476694.98828
,
20
,
10
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
20
,
10
,
1.0000000000000000
,
0.0
},
};
const
double
toler020
=
2.5000000000000020e-13
;
// Test data for l=20, m=20.
// max(|f - f_GSL|): 838860800.00000000 at index 12
// max(|f - f_GSL| / |f_GSL|): 4.3488507135833189e-15
// mean(f - f_GSL): -2855497.1428571427
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data021
[
21
]
=
{
{
0.0000000000000000
,
20
,
20
,
-
1.0000000000000000
,
0.0
},
{
19609049712023808.
,
20
,
20
,
-
0.90000000000000002
,
0.0
},
{
1.1693527616833221e+19
,
20
,
20
,
-
0.80000000000000004
,
0.0
},
{
3.8073455880620691e+20
,
20
,
20
,
-
0.69999999999999996
,
0.0
},
{
3.6874002249007927e+21
,
20
,
20
,
-
0.59999999999999998
,
0.0
},
{
1.8010806978179592e+22
,
20
,
20
,
-
0.50000000000000000
,
0.0
},
{
5.5938832584012466e+22
,
20
,
20
,
-
0.39999999999999991
,
0.0
},
{
1.2454734132297759e+23
,
20
,
20
,
-
0.29999999999999993
,
0.0
},
{
2.1263407800797497e+23
,
20
,
20
,
-
0.19999999999999996
,
0.0
},
{
2.8924941146976873e+23
,
20
,
20
,
-
0.099999999999999978
,
0.0
},
{
3.1983098677287775e+23
,
20
,
20
,
0.0000000000000000
,
0.0
},
{
2.8924941146976873e+23
,
20
,
20
,
0.10000000000000009
,
0.0
},
{
2.1263407800797497e+23
,
20
,
20
,
0.20000000000000018
,
0.0
},
{
1.2454734132297811e+23
,
20
,
20
,
0.30000000000000004
,
0.0
},
{
5.5938832584012366e+22
,
20
,
20
,
0.40000000000000013
,
0.0
},
{
1.8010806978179592e+22
,
20
,
20
,
0.50000000000000000
,
0.0
},
{
3.6874002249007807e+21
,
20
,
20
,
0.60000000000000009
,
0.0
},
{
3.8073455880620343e+20
,
20
,
20
,
0.70000000000000018
,
0.0
},
{
1.1693527616833221e+19
,
20
,
20
,
0.80000000000000004
,
0.0
},
{
19609049712023672.
,
20
,
20
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
20
,
20
,
1.0000000000000000
,
0.0
},
};
const
double
toler021
=
2.5000000000000020e-13
;
// Test data for l=50, m=0.
// max(|f - f_GSL|): 1.6653345369377348e-16 at index 2
// max(|f - f_GSL| / |f_GSL|): 1.6665460706897444e-15
// mean(f - f_GSL): -8.0953762212251003e-18
// variance(f - f_GSL): 3.4405935985667807e-36
// stddev(f - f_GSL): 1.8548837156454796e-18
const
testcase_assoc_legendre
<
double
>
data022
[
21
]
=
{
{
1.0000000000000000
,
50
,
0
,
-
1.0000000000000000
,
0.0
},
{
-
0.17003765994383671
,
50
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.13879737345093113
,
50
,
0
,
-
0.80000000000000004
,
0.0
},
{
-
0.014572731645892852
,
50
,
0
,
-
0.69999999999999996
,
0.0
},
{
-
0.058860798844002096
,
50
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.031059099239609811
,
50
,
0
,
-
0.50000000000000000
,
0.0
},
{
0.041569033381824674
,
50
,
0
,
-
0.39999999999999991
,
0.0
},
{
0.10911051574714790
,
50
,
0
,
-
0.29999999999999993
,
0.0
},
{
0.083432272204197494
,
50
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.038205812661313600
,
50
,
0
,
-
0.099999999999999978
,
0.0
},
{
-
0.11227517265921705
,
50
,
0
,
0.0000000000000000
,
0.0
},
{
-
0.038205812661314155
,
50
,
0
,
0.10000000000000009
,
0.0
},
{
0.083432272204196564
,
50
,
0
,
0.20000000000000018
,
0.0
},
{
0.10911051574714797
,
50
,
0
,
0.30000000000000004
,
0.0
},
{
0.041569033381826007
,
50
,
0
,
0.40000000000000013
,
0.0
},
{
-
0.031059099239609811
,
50
,
0
,
0.50000000000000000
,
0.0
},
{
-
0.058860798844001430
,
50
,
0
,
0.60000000000000009
,
0.0
},
{
-
0.014572731645890737
,
50
,
0
,
0.70000000000000018
,
0.0
},
{
0.13879737345093113
,
50
,
0
,
0.80000000000000004
,
0.0
},
{
-
0.17003765994383679
,
50
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
50
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler022
=
2.5000000000000020e-13
;
// Test data for l=50, m=1.
// max(|f - f_GSL|): 4.4408920985006262e-15 at index 3
// max(|f - f_GSL| / |f_GSL|): 6.6657627150738456e-16
// mean(f - f_GSL): 6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const
testcase_assoc_legendre
<
double
>
data023
[
21
]
=
{
{
0.0000000000000000
,
50
,
1
,
-
1.0000000000000000
,
0.0
},
{
-
0.13424149984449490
,
50
,
1
,
-
0.90000000000000002
,
0.0
},
{
2.2011219672413018
,
50
,
1
,
-
0.80000000000000004
,
0.0
},
{
6.6622414993232004
,
50
,
1
,
-
0.69999999999999996
,
0.0
},
{
5.5772846936919249
,
50
,
1
,
-
0.59999999999999998
,
0.0
},
{
5.8787148815607608
,
50
,
1
,
-
0.50000000000000000
,
0.0
},
{
5.5473459458634080
,
50
,
1
,
-
0.39999999999999991
,
0.0
},
{
1.8444956647620248
,
50
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
3.8722014306642127
,
50
,
1
,
-
0.19999999999999996
,
0.0
},
{
-
5.3488751322285628
,
50
,
1
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
50
,
1
,
0.0000000000000000
,
0.0
},
{
5.3488751322285522
,
50
,
1
,
0.10000000000000009
,
0.0
},
{
3.8722014306642620
,
50
,
1
,
0.20000000000000018
,
0.0
},
{
-
1.8444956647619930
,
50
,
1
,
0.30000000000000004
,
0.0
},
{
-
5.5473459458633814
,
50
,
1
,
0.40000000000000013
,
0.0
},
{
-
5.8787148815607608
,
50
,
1
,
0.50000000000000000
,
0.0
},
{
-
5.5772846936919453
,
50
,
1
,
0.60000000000000009
,
0.0
},
{
-
6.6622414993232182
,
50
,
1
,
0.70000000000000018
,
0.0
},
{
-
2.2011219672413018
,
50
,
1
,
0.80000000000000004
,
0.0
},
{
0.13424149984438935
,
50
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler023
=
2.5000000000000020e-13
;
// Test data for l=50, m=2.
// max(|f - f_GSL|): 3.0553337637684308e-13 at index 3
// max(|f - f_GSL| / |f_GSL|): 6.0837685805857877e-15
// mean(f - f_GSL): -3.3835368369528578e-16
// variance(f - f_GSL): 6.0103688016838995e-33
// stddev(f - f_GSL): 7.7526568360039641e-17
const
testcase_assoc_legendre
<
double
>
data024
[
21
]
=
{
{
0.0000000000000000
,
50
,
2
,
-
1.0000000000000000
,
0.0
},
{
433.04168483713511
,
50
,
2
,
-
0.90000000000000002
,
0.0
},
{
-
348.06364372056424
,
50
,
2
,
-
0.80000000000000004
,
0.0
},
{
50.221071418108444
,
50
,
2
,
-
0.69999999999999996
,
0.0
},
{
158.46096409274352
,
50
,
2
,
-
0.59999999999999998
,
0.0
},
{
85.988858299721457
,
50
,
2
,
-
0.50000000000000000
,
0.0
},
{
-
101.15891460879088
,
50
,
2
,
-
0.39999999999999991
,
0.0
},
{
-
277.07168105316526
,
50
,
2
,
-
0.29999999999999993
,
0.0
},
{
-
214.33311373510401
,
50
,
2
,
-
0.19999999999999996
,
0.0
},
{
96.349657930951665
,
50
,
2
,
-
0.099999999999999978
,
0.0
},
{
286.30169028100346
,
50
,
2
,
0.0000000000000000
,
0.0
},
{
96.349657930953242
,
50
,
2
,
0.10000000000000009
,
0.0
},
{
-
214.33311373510165
,
50
,
2
,
0.20000000000000018
,
0.0
},
{
-
277.07168105316617
,
50
,
2
,
0.30000000000000004
,
0.0
},
{
-
101.15891460879435
,
50
,
2
,
0.40000000000000013
,
0.0
},
{
85.988858299721457
,
50
,
2
,
0.50000000000000000
,
0.0
},
{
158.46096409274153
,
50
,
2
,
0.60000000000000009
,
0.0
},
{
50.221071418103143
,
50
,
2
,
0.70000000000000018
,
0.0
},
{
-
348.06364372056424
,
50
,
2
,
0.80000000000000004
,
0.0
},
{
433.04168483713596
,
50
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler024
=
5.0000000000000039e-13
;
// Test data for l=50, m=5.
// max(|f - f_GSL|): 7.4505805969238281e-08 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0088060426072767e-15
// mean(f - f_GSL): -6.3862119402204238e-09
// variance(f - f_GSL): 2.1411444046342303e-18
// stddev(f - f_GSL): 1.4632649810045447e-09
const
testcase_assoc_legendre
<
double
>
data025
[
21
]
=
{
{
-
0.0000000000000000
,
50
,
5
,
-
1.0000000000000000
,
0.0
},
{
-
27340473.952132829
,
50
,
5
,
-
0.90000000000000002
,
0.0
},
{
27753716.768532373
,
50
,
5
,
-
0.80000000000000004
,
0.0
},
{
40808153.913493633
,
50
,
5
,
-
0.69999999999999996
,
0.0
},
{
32071189.035790090
,
50
,
5
,
-
0.59999999999999998
,
0.0
},
{
36265736.218529105
,
50
,
5
,
-
0.50000000000000000
,
0.0
},
{
37089596.700204931
,
50
,
5
,
-
0.39999999999999991
,
0.0
},
{
14562029.629244687
,
50
,
5
,
-
0.29999999999999993
,
0.0
},
{
-
23686895.217517190
,
50
,
5
,
-
0.19999999999999996
,
0.0
},
{
-
34878992.965676002
,
50
,
5
,
-
0.099999999999999978
,
0.0
},
{
-
0.0000000000000000
,
50
,
5
,
0.0000000000000000
,
0.0
},
{
34878992.965675958
,
50
,
5
,
0.10000000000000009
,
0.0
},
{
23686895.217517529
,
50
,
5
,
0.20000000000000018
,
0.0
},
{
-
14562029.629244499
,
50
,
5
,
0.30000000000000004
,
0.0
},
{
-
37089596.700204782
,
50
,
5
,
0.40000000000000013
,
0.0
},
{
-
36265736.218529105
,
50
,
5
,
0.50000000000000000
,
0.0
},
{
-
32071189.035790242
,
50
,
5
,
0.60000000000000009
,
0.0
},
{
-
40808153.913493834
,
50
,
5
,
0.70000000000000018
,
0.0
},
{
-
27753716.768532373
,
50
,
5
,
0.80000000000000004
,
0.0
},
{
27340473.952132136
,
50
,
5
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler025
=
2.5000000000000020e-13
;
// Test data for l=50, m=10.
// max(|f - f_GSL|): 22.000000000000000 at index 3
// max(|f - f_GSL| / |f_GSL|): 2.2163032493360465e-15
// mean(f - f_GSL): -1.9821428571428572
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data026
[
21
]
=
{
{
-
0.0000000000000000
,
50
,
10
,
-
1.0000000000000000
,
0.0
},
{
-
8994661710093155.0
,
50
,
10
,
-
0.90000000000000002
,
0.0
},
{
932311375306569.62
,
50
,
10
,
-
0.80000000000000004
,
0.0
},
{
12153535011507012.
,
50
,
10
,
-
0.69999999999999996
,
0.0
},
{
12176690755542240.
,
50
,
10
,
-
0.59999999999999998
,
0.0
},
{
9180035388465754.0
,
50
,
10
,
-
0.50000000000000000
,
0.0
},
{
889201701866984.00
,
50
,
10
,
-
0.39999999999999991
,
0.0
},
{
-
9451384032851544.0
,
50
,
10
,
-
0.29999999999999993
,
0.0
},
{
-
9926439446673564.0
,
50
,
10
,
-
0.19999999999999996
,
0.0
},
{
2794368162749970.5
,
50
,
10
,
-
0.099999999999999978
,
0.0
},
{
11452238249246346.
,
50
,
10
,
0.0000000000000000
,
0.0
},
{
2794368162750031.0
,
50
,
10
,
0.10000000000000009
,
0.0
},
{
-
9926439446673506.0
,
50
,
10
,
0.20000000000000018
,
0.0
},
{
-
9451384032851604.0
,
50
,
10
,
0.30000000000000004
,
0.0
},
{
889201701866835.25
,
50
,
10
,
0.40000000000000013
,
0.0
},
{
9180035388465754.0
,
50
,
10
,
0.50000000000000000
,
0.0
},
{
12176690755542214.
,
50
,
10
,
0.60000000000000009
,
0.0
},
{
12153535011506908.
,
50
,
10
,
0.70000000000000018
,
0.0
},
{
932311375306569.62
,
50
,
10
,
0.80000000000000004
,
0.0
},
{
-
8994661710093013.0
,
50
,
10
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
10
,
1.0000000000000000
,
0.0
},
};
const
double
toler026
=
2.5000000000000020e-13
;
// Test data for l=50, m=20.
// max(|f - f_GSL|): 3.6028797018963968e+18 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.0227025739283085e-15
// mean(f - f_GSL): -1.8529095609752899e+17
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data027
[
21
]
=
{
{
0.0000000000000000
,
50
,
20
,
-
1.0000000000000000
,
0.0
},
{
1.6630925158645501e+33
,
50
,
20
,
-
0.90000000000000002
,
0.0
},
{
1.0622676657892052e+33
,
50
,
20
,
-
0.80000000000000004
,
0.0
},
{
8.6022521164717112e+32
,
50
,
20
,
-
0.69999999999999996
,
0.0
},
{
4.0860128756808466e+32
,
50
,
20
,
-
0.59999999999999998
,
0.0
},
{
-
4.0169860814274459e+32
,
50
,
20
,
-
0.50000000000000000
,
0.0
},
{
-
8.2324325279773994e+32
,
50
,
20
,
-
0.39999999999999991
,
0.0
},
{
-
4.0054067236247267e+31
,
50
,
20
,
-
0.29999999999999993
,
0.0
},
{
7.9309266056434309e+32
,
50
,
20
,
-
0.19999999999999996
,
0.0
},
{
5.4151358290898977e+31
,
50
,
20
,
-
0.099999999999999978
,
0.0
},
{
-
7.8735935697332210e+32
,
50
,
20
,
0.0000000000000000
,
0.0
},
{
5.4151358290894924e+31
,
50
,
20
,
0.10000000000000009
,
0.0
},
{
7.9309266056434453e+32
,
50
,
20
,
0.20000000000000018
,
0.0
},
{
-
4.0054067236243731e+31
,
50
,
20
,
0.30000000000000004
,
0.0
},
{
-
8.2324325279773893e+32
,
50
,
20
,
0.40000000000000013
,
0.0
},
{
-
4.0169860814274459e+32
,
50
,
20
,
0.50000000000000000
,
0.0
},
{
4.0860128756807846e+32
,
50
,
20
,
0.60000000000000009
,
0.0
},
{
8.6022521164716291e+32
,
50
,
20
,
0.70000000000000018
,
0.0
},
{
1.0622676657892052e+33
,
50
,
20
,
0.80000000000000004
,
0.0
},
{
1.6630925158645541e+33
,
50
,
20
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
20
,
1.0000000000000000
,
0.0
},
};
const
double
toler027
=
5.0000000000000039e-13
;
// Test data for l=50, m=50.
// max(|f - f_GSL|): 1.0695779622587839e+64 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.1061123055945194e-14
// mean(f - f_GSL): -2.0817504896587826e+62
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data028
[
21
]
=
{
{
0.0000000000000000
,
50
,
50
,
-
1.0000000000000000
,
0.0
},
{
2.5366994974431341e+60
,
50
,
50
,
-
0.90000000000000002
,
0.0
},
{
2.2028834403101213e+67
,
50
,
50
,
-
0.80000000000000004
,
0.0
},
{
1.3325496559566651e+71
,
50
,
50
,
-
0.69999999999999996
,
0.0
},
{
3.8898096431781969e+73
,
50
,
50
,
-
0.59999999999999998
,
0.0
},
{
2.0509760257037188e+75
,
50
,
50
,
-
0.50000000000000000
,
0.0
},
{
3.4866724533443283e+76
,
50
,
50
,
-
0.39999999999999991
,
0.0
},
{
2.5790740224149893e+77
,
50
,
50
,
-
0.29999999999999993
,
0.0
},
{
9.8222237931680989e+77
,
50
,
50
,
-
0.19999999999999996
,
0.0
},
{
2.1198682190366617e+78
,
50
,
50
,
-
0.099999999999999978
,
0.0
},
{
2.7253921397507295e+78
,
50
,
50
,
0.0000000000000000
,
0.0
},
{
2.1198682190366617e+78
,
50
,
50
,
0.10000000000000009
,
0.0
},
{
9.8222237931680989e+77
,
50
,
50
,
0.20000000000000018
,
0.0
},
{
2.5790740224150207e+77
,
50
,
50
,
0.30000000000000004
,
0.0
},
{
3.4866724533443123e+76
,
50
,
50
,
0.40000000000000013
,
0.0
},
{
2.0509760257037188e+75
,
50
,
50
,
0.50000000000000000
,
0.0
},
{
3.8898096431781724e+73
,
50
,
50
,
0.60000000000000009
,
0.0
},
{
1.3325496559566344e+71
,
50
,
50
,
0.70000000000000018
,
0.0
},
{
2.2028834403101213e+67
,
50
,
50
,
0.80000000000000004
,
0.0
},
{
2.5366994974430855e+60
,
50
,
50
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
50
,
50
,
1.0000000000000000
,
0.0
},
};
const
double
toler028
=
1.0000000000000008e-12
;
// Test data for l=100, m=0.
// max(|f - f_GSL|): 3.4694469519536142e-16 at index 2
// max(|f - f_GSL| / |f_GSL|): 6.8214063779431592e-15
// mean(f - f_GSL): -4.1385545784018113e-17
// variance(f - f_GSL): 8.9920078491655612e-35
// stddev(f - f_GSL): 9.4826198116161765e-18
const
testcase_assoc_legendre
<
double
>
data029
[
21
]
=
{
{
1.0000000000000000
,
100
,
0
,
-
1.0000000000000000
,
0.0
},
{
0.10226582055871893
,
100
,
0
,
-
0.90000000000000002
,
0.0
},
{
0.050861167913584228
,
100
,
0
,
-
0.80000000000000004
,
0.0
},
{
-
0.077132507199778641
,
100
,
0
,
-
0.69999999999999996
,
0.0
},
{
-
0.023747023905133141
,
100
,
0
,
-
0.59999999999999998
,
0.0
},
{
-
0.060518025961861198
,
100
,
0
,
-
0.50000000000000000
,
0.0
},
{
-
0.072258202125685025
,
100
,
0
,
-
0.39999999999999991
,
0.0
},
{
0.057127392202801046
,
100
,
0
,
-
0.29999999999999993
,
0.0
},
{
0.014681835355659706
,
100
,
0
,
-
0.19999999999999996
,
0.0
},
{
-
0.063895098434750205
,
100
,
0
,
-
0.099999999999999978
,
0.0
},
{
0.079589237387178727
,
100
,
0
,
0.0000000000000000
,
0.0
},
{
-
0.063895098434749761
,
100
,
0
,
0.10000000000000009
,
0.0
},
{
0.014681835355657875
,
100
,
0
,
0.20000000000000018
,
0.0
},
{
0.057127392202801566
,
100
,
0
,
0.30000000000000004
,
0.0
},
{
-
0.072258202125684082
,
100
,
0
,
0.40000000000000013
,
0.0
},
{
-
0.060518025961861198
,
100
,
0
,
0.50000000000000000
,
0.0
},
{
-
0.023747023905134217
,
100
,
0
,
0.60000000000000009
,
0.0
},
{
-
0.077132507199780501
,
100
,
0
,
0.70000000000000018
,
0.0
},
{
0.050861167913584228
,
100
,
0
,
0.80000000000000004
,
0.0
},
{
0.10226582055872063
,
100
,
0
,
0.90000000000000013
,
0.0
},
{
1.0000000000000000
,
100
,
0
,
1.0000000000000000
,
0.0
},
};
const
double
toler029
=
5.0000000000000039e-13
;
// Test data for l=100, m=1.
// max(|f - f_GSL|): 1.1546319456101628e-14 at index 3
// max(|f - f_GSL| / |f_GSL|): 2.1111954004946762e-15
// mean(f - f_GSL): -8.0358999877630379e-16
// variance(f - f_GSL): 3.3902236521998243e-32
// stddev(f - f_GSL): 1.8412559985509414e-16
const
testcase_assoc_legendre
<
double
>
data030
[
21
]
=
{
{
-
0.0000000000000000
,
100
,
1
,
-
1.0000000000000000
,
0.0
},
{
6.5200167187780345
,
100
,
1
,
-
0.90000000000000002
,
0.0
},
{
9.0065170007027486
,
100
,
1
,
-
0.80000000000000004
,
0.0
},
{
-
5.4690908541180976
,
100
,
1
,
-
0.69999999999999996
,
0.0
},
{
-
8.6275439170430790
,
100
,
1
,
-
0.59999999999999998
,
0.0
},
{
-
6.0909031663448454
,
100
,
1
,
-
0.50000000000000000
,
0.0
},
{
4.1160338699560395
,
100
,
1
,
-
0.39999999999999991
,
0.0
},
{
5.8491043010758634
,
100
,
1
,
-
0.29999999999999993
,
0.0
},
{
-
7.9435138723089826
,
100
,
1
,
-
0.19999999999999996
,
0.0
},
{
4.7996285823989355
,
100
,
1
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
100
,
1
,
0.0000000000000000
,
0.0
},
{
-
4.7996285823990101
,
100
,
1
,
0.10000000000000009
,
0.0
},
{
7.9435138723090155
,
100
,
1
,
0.20000000000000018
,
0.0
},
{
-
5.8491043010758013
,
100
,
1
,
0.30000000000000004
,
0.0
},
{
-
4.1160338699562162
,
100
,
1
,
0.40000000000000013
,
0.0
},
{
6.0909031663448454
,
100
,
1
,
0.50000000000000000
,
0.0
},
{
8.6275439170430470
,
100
,
1
,
0.60000000000000009
,
0.0
},
{
5.4690908541178693
,
100
,
1
,
0.70000000000000018
,
0.0
},
{
-
9.0065170007027486
,
100
,
1
,
0.80000000000000004
,
0.0
},
{
-
6.5200167187777787
,
100
,
1
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
1
,
1.0000000000000000
,
0.0
},
};
const
double
toler030
=
2.5000000000000020e-13
;
// Test data for l=100, m=2.
// max(|f - f_GSL|): 6.8212102632969618e-13 at index 5
// max(|f - f_GSL| / |f_GSL|): 2.0632212207447263e-15
// mean(f - f_GSL): 8.2558298821649733e-14
// variance(f - f_GSL): 3.5783331697705263e-28
// stddev(f - f_GSL): 1.8916482679849673e-14
const
testcase_assoc_legendre
<
double
>
data031
[
21
]
=
{
{
0.0000000000000000
,
100
,
2
,
-
1.0000000000000000
,
0.0
},
{
-
1005.9604880761002
,
100
,
2
,
-
0.90000000000000002
,
0.0
},
{
-
489.68041725865947
,
100
,
2
,
-
0.80000000000000004
,
0.0
},
{
768.31676011669924
,
100
,
2
,
-
0.69999999999999996
,
0.0
},
{
226.90362556627937
,
100
,
2
,
-
0.59999999999999998
,
0.0
},
{
604.19889304940341
,
100
,
2
,
-
0.50000000000000000
,
0.0
},
{
733.40061037838518
,
100
,
2
,
-
0.39999999999999991
,
0.0
},
{
-
573.30774483995629
,
100
,
2
,
-
0.29999999999999993
,
0.0
},
{
-
151.52946305080880
,
100
,
2
,
-
0.19999999999999996
,
0.0
},
{
646.30525583587985
,
100
,
2
,
-
0.099999999999999978
,
0.0
},
{
-
803.85129761050518
,
100
,
2
,
0.0000000000000000
,
0.0
},
{
646.30525583587439
,
100
,
2
,
0.10000000000000009
,
0.0
},
{
-
151.52946305079013
,
100
,
2
,
0.20000000000000018
,
0.0
},
{
-
573.30774483996390
,
100
,
2
,
0.30000000000000004
,
0.0
},
{
733.40061037837552
,
100
,
2
,
0.40000000000000013
,
0.0
},
{
604.19889304940341
,
100
,
2
,
0.50000000000000000
,
0.0
},
{
226.90362556629168
,
100
,
2
,
0.60000000000000009
,
0.0
},
{
768.31676011671766
,
100
,
2
,
0.70000000000000018
,
0.0
},
{
-
489.68041725865947
,
100
,
2
,
0.80000000000000004
,
0.0
},
{
-
1005.9604880761161
,
100
,
2
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
2
,
1.0000000000000000
,
0.0
},
};
const
double
toler031
=
2.5000000000000020e-13
;
// Test data for l=100, m=5.
// max(|f - f_GSL|): 1.4305114746093750e-06 at index 14
// max(|f - f_GSL| / |f_GSL|): 3.7628882298853693e-15
// mean(f - f_GSL): -5.1089695521763390e-08
// variance(f - f_GSL): 1.3703324189659077e-16
// stddev(f - f_GSL): 1.1706119848036358e-08
const
testcase_assoc_legendre
<
double
>
data032
[
21
]
=
{
{
0.0000000000000000
,
100
,
5
,
-
1.0000000000000000
,
0.0
},
{
900551126.09653807
,
100
,
5
,
-
0.90000000000000002
,
0.0
},
{
988567431.55756140
,
100
,
5
,
-
0.80000000000000004
,
0.0
},
{
-
645646451.90344620
,
100
,
5
,
-
0.69999999999999996
,
0.0
},
{
-
897114585.29920685
,
100
,
5
,
-
0.59999999999999998
,
0.0
},
{
-
661710744.42483854
,
100
,
5
,
-
0.50000000000000000
,
0.0
},
{
380163158.51424754
,
100
,
5
,
-
0.39999999999999991
,
0.0
},
{
617391071.36633193
,
100
,
5
,
-
0.29999999999999993
,
0.0
},
{
-
805288801.85509109
,
100
,
5
,
-
0.19999999999999996
,
0.0
},
{
481041740.16728652
,
100
,
5
,
-
0.099999999999999978
,
0.0
},
{
0.0000000000000000
,
100
,
5
,
0.0000000000000000
,
0.0
},
{
-
481041740.16729391
,
100
,
5
,
0.10000000000000009
,
0.0
},
{
805288801.85509515
,
100
,
5
,
0.20000000000000018
,
0.0
},
{
-
617391071.36632574
,
100
,
5
,
0.30000000000000004
,
0.0
},
{
-
380163158.51426536
,
100
,
5
,
0.40000000000000013
,
0.0
},
{
661710744.42483854
,
100
,
5
,
0.50000000000000000
,
0.0
},
{
897114585.29920483
,
100
,
5
,
0.60000000000000009
,
0.0
},
{
645646451.90342283
,
100
,
5
,
0.70000000000000018
,
0.0
},
{
-
988567431.55756140
,
100
,
5
,
0.80000000000000004
,
0.0
},
{
-
900551126.09651637
,
100
,
5
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
5
,
1.0000000000000000
,
0.0
},
};
const
double
toler032
=
2.5000000000000020e-13
;
// Test data for l=100, m=10.
// max(|f - f_GSL|): 14336.000000000000 at index 14
// max(|f - f_GSL| / |f_GSL|): 3.4905902237930355e-15
// mean(f - f_GSL): 341.33333333333331
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data033
[
21
]
=
{
{
0.0000000000000000
,
100
,
10
,
-
1.0000000000000000
,
0.0
},
{
2.5643395957658602e+17
,
100
,
10
,
-
0.90000000000000002
,
0.0
},
{
1.5778673545673485e+18
,
100
,
10
,
-
0.80000000000000004
,
0.0
},
{
4.4355048487496801e+18
,
100
,
10
,
-
0.69999999999999996
,
0.0
},
{
-
9.5936111659124288e+17
,
100
,
10
,
-
0.59999999999999998
,
0.0
},
{
4.2387123021963438e+18
,
100
,
10
,
-
0.50000000000000000
,
0.0
},
{
8.2370834618426767e+18
,
100
,
10
,
-
0.39999999999999991
,
0.0
},
{
-
4.9089358388051978e+18
,
100
,
10
,
-
0.29999999999999993
,
0.0
},
{
-
2.3468810358091274e+18
,
100
,
10
,
-
0.19999999999999996
,
0.0
},
{
6.8627855225034568e+18
,
100
,
10
,
-
0.099999999999999978
,
0.0
},
{
-
8.2494597181670380e+18
,
100
,
10
,
0.0000000000000000
,
0.0
},
{
6.8627855225034056e+18
,
100
,
10
,
0.10000000000000009
,
0.0
},
{
-
2.3468810358089518e+18
,
100
,
10
,
0.20000000000000018
,
0.0
},
{
-
4.9089358388052941e+18
,
100
,
10
,
0.30000000000000004
,
0.0
},
{
8.2370834618426112e+18
,
100
,
10
,
0.40000000000000013
,
0.0
},
{
4.2387123021963438e+18
,
100
,
10
,
0.50000000000000000
,
0.0
},
{
-
9.5936111659112640e+17
,
100
,
10
,
0.60000000000000009
,
0.0
},
{
4.4355048487499668e+18
,
100
,
10
,
0.70000000000000018
,
0.0
},
{
1.5778673545673485e+18
,
100
,
10
,
0.80000000000000004
,
0.0
},
{
2.5643395957630058e+17
,
100
,
10
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
10
,
1.0000000000000000
,
0.0
},
};
const
double
toler033
=
2.5000000000000020e-13
;
// Test data for l=100, m=20.
// max(|f - f_GSL|): 3.9290089137475448e+24 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.1615589395022552e-15
// mean(f - f_GSL): -5.0371909150609551e+23
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data034
[
21
]
=
{
{
0.0000000000000000
,
100
,
20
,
-
1.0000000000000000
,
0.0
},
{
7.1604344878780134e+37
,
100
,
20
,
-
0.90000000000000002
,
0.0
},
{
-
8.3963895116962231e+38
,
100
,
20
,
-
0.80000000000000004
,
0.0
},
{
7.9022236853110145e+38
,
100
,
20
,
-
0.69999999999999996
,
0.0
},
{
8.2680005574121013e+38
,
100
,
20
,
-
0.59999999999999998
,
0.0
},
{
3.0750497039999552e+38
,
100
,
20
,
-
0.50000000000000000
,
0.0
},
{
-
7.6120586043843556e+38
,
100
,
20
,
-
0.39999999999999991
,
0.0
},
{
1.1474496891900921e+38
,
100
,
20
,
-
0.29999999999999993
,
0.0
},
{
4.3966251307444241e+38
,
100
,
20
,
-
0.19999999999999996
,
0.0
},
{
-
7.0503266451702591e+38
,
100
,
20
,
-
0.099999999999999978
,
0.0
},
{
7.7727439836159581e+38
,
100
,
20
,
0.0000000000000000
,
0.0
},
{
-
7.0503266451702213e+38
,
100
,
20
,
0.10000000000000009
,
0.0
},
{
4.3966251307442783e+38
,
100
,
20
,
0.20000000000000018
,
0.0
},
{
1.1474496891901797e+38
,
100
,
20
,
0.30000000000000004
,
0.0
},
{
-
7.6120586043844176e+38
,
100
,
20
,
0.40000000000000013
,
0.0
},
{
3.0750497039999552e+38
,
100
,
20
,
0.50000000000000000
,
0.0
},
{
8.2680005574120394e+38
,
100
,
20
,
0.60000000000000009
,
0.0
},
{
7.9022236853108422e+38
,
100
,
20
,
0.70000000000000018
,
0.0
},
{
-
8.3963895116962231e+38
,
100
,
20
,
0.80000000000000004
,
0.0
},
{
7.1604344878751847e+37
,
100
,
20
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
20
,
1.0000000000000000
,
0.0
},
};
const
double
toler034
=
5.0000000000000039e-13
;
// Test data for l=100, m=50.
// max(|f - f_GSL|): 6.8296953242310788e+83 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0345950516284159e-14
// mean(f - f_GSL): 7.0103750947133818e+82
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data035
[
21
]
=
{
{
0.0000000000000000
,
100
,
50
,
-
1.0000000000000000
,
0.0
},
{
9.3231278516893716e+96
,
100
,
50
,
-
0.90000000000000002
,
0.0
},
{
-
1.1029797977454281e+98
,
100
,
50
,
-
0.80000000000000004
,
0.0
},
{
1.8089333903465606e+97
,
100
,
50
,
-
0.69999999999999996
,
0.0
},
{
5.9364045925669405e+97
,
100
,
50
,
-
0.59999999999999998
,
0.0
},
{
-
8.2252620339727118e+97
,
100
,
50
,
-
0.50000000000000000
,
0.0
},
{
7.1431385093740728e+97
,
100
,
50
,
-
0.39999999999999991
,
0.0
},
{
-
3.3520602067479935e+97
,
100
,
50
,
-
0.29999999999999993
,
0.0
},
{
-
2.7791149588121382e+97
,
100
,
50
,
-
0.19999999999999996
,
0.0
},
{
9.0119338550180417e+97
,
100
,
50
,
-
0.099999999999999978
,
0.0
},
{
-
1.1712145031578381e+98
,
100
,
50
,
0.0000000000000000
,
0.0
},
{
9.0119338550181207e+97
,
100
,
50
,
0.10000000000000009
,
0.0
},
{
-
2.7791149588123644e+97
,
100
,
50
,
0.20000000000000018
,
0.0
},
{
-
3.3520602067479344e+97
,
100
,
50
,
0.30000000000000004
,
0.0
},
{
7.1431385093738816e+97
,
100
,
50
,
0.40000000000000013
,
0.0
},
{
-
8.2252620339727118e+97
,
100
,
50
,
0.50000000000000000
,
0.0
},
{
5.9364045925668024e+97
,
100
,
50
,
0.60000000000000009
,
0.0
},
{
1.8089333903469005e+97
,
100
,
50
,
0.70000000000000018
,
0.0
},
{
-
1.1029797977454281e+98
,
100
,
50
,
0.80000000000000004
,
0.0
},
{
9.3231278516892938e+96
,
100
,
50
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
50
,
1.0000000000000000
,
0.0
},
};
const
double
toler035
=
2.5000000000000015e-12
;
// Test data for l=100, m=100.
// max(|f - f_GSL|): 1.9201920817492002e+172 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.3348104188683898e-14
// mean(f - f_GSL): -4.0709851490379341e+170
// variance(f - f_GSL): inf
// stddev(f - f_GSL): inf
const
testcase_assoc_legendre
<
double
>
data036
[
21
]
=
{
{
0.0000000000000000
,
100
,
100
,
-
1.0000000000000000
,
0.0
},
{
5.7751792255758316e+150
,
100
,
100
,
-
0.90000000000000002
,
0.0
},
{
4.3552236041585515e+164
,
100
,
100
,
-
0.80000000000000004
,
0.0
},
{
1.5936546850595123e+172
,
100
,
100
,
-
0.69999999999999996
,
0.0
},
{
1.3579510590289176e+177
,
100
,
100
,
-
0.59999999999999998
,
0.0
},
{
3.7752749682889513e+180
,
100
,
100
,
-
0.50000000000000000
,
0.0
},
{
1.0910627330458913e+183
,
100
,
100
,
-
0.39999999999999991
,
0.0
},
{
5.9697347526821064e+184
,
100
,
100
,
-
0.29999999999999993
,
0.0
},
{
8.6585879147526714e+185
,
100
,
100
,
-
0.19999999999999996
,
0.0
},
{
4.0331571908057011e+186
,
100
,
100
,
-
0.099999999999999978
,
0.0
},
{
6.6663086700729543e+186
,
100
,
100
,
0.0000000000000000
,
0.0
},
{
4.0331571908057011e+186
,
100
,
100
,
0.10000000000000009
,
0.0
},
{
8.6585879147526714e+185
,
100
,
100
,
0.20000000000000018
,
0.0
},
{
5.9697347526822483e+184
,
100
,
100
,
0.30000000000000004
,
0.0
},
{
1.0910627330458797e+183
,
100
,
100
,
0.40000000000000013
,
0.0
},
{
3.7752749682889513e+180
,
100
,
100
,
0.50000000000000000
,
0.0
},
{
1.3579510590289000e+177
,
100
,
100
,
0.60000000000000009
,
0.0
},
{
1.5936546850594382e+172
,
100
,
100
,
0.70000000000000018
,
0.0
},
{
4.3552236041585515e+164
,
100
,
100
,
0.80000000000000004
,
0.0
},
{
5.7751792255756128e+150
,
100
,
100
,
0.90000000000000013
,
0.0
},
{
0.0000000000000000
,
100
,
100
,
1.0000000000000000
,
0.0
},
};
const
double
toler036
=
2.5000000000000015e-12
;
template
<
typename
Ret
,
unsigned
int
Num
>
void
test
(
const
testcase_assoc_legendre
<
Ret
>
(
&
data
)[
Num
],
Ret
toler
)
{
bool
test
__attribute__
((
unused
))
=
true
;
const
Ret
eps
=
std
::
numeric_limits
<
Ret
>::
epsilon
();
Ret
max_abs_diff
=
-
Ret
(
1
);
Ret
max_abs_frac
=
-
Ret
(
1
);
unsigned
int
num_datum
=
Num
;
for
(
unsigned
int
i
=
0
;
i
<
num_datum
;
++
i
)
{
const
Ret
f
=
std
::
tr1
::
assoc_legendre
(
data
[
i
].
l
,
data
[
i
].
m
,
data
[
i
].
x
);
const
Ret
f0
=
data
[
i
].
f0
;
const
Ret
diff
=
f
-
f0
;
if
(
std
::
abs
(
diff
)
>
max_abs_diff
)
max_abs_diff
=
std
::
abs
(
diff
);
if
(
std
::
abs
(
f0
)
>
Ret
(
10
)
*
eps
&&
std
::
abs
(
f
)
>
Ret
(
10
)
*
eps
)
{
const
Ret
frac
=
diff
/
f0
;
if
(
std
::
abs
(
frac
)
>
max_abs_frac
)
max_abs_frac
=
std
::
abs
(
frac
);
}
}
VERIFY
(
max_abs_frac
<
toler
);
}
int
main
()
{
test
(
data001
,
toler001
);
test
(
data002
,
toler002
);
test
(
data003
,
toler003
);
test
(
data004
,
toler004
);
test
(
data005
,
toler005
);
test
(
data006
,
toler006
);
test
(
data007
,
toler007
);
test
(
data008
,
toler008
);
test
(
data009
,
toler009
);
test
(
data010
,
toler010
);
test
(
data011
,
toler011
);
test
(
data012
,
toler012
);
test
(
data013
,
toler013
);
test
(
data014
,
toler014
);
test
(
data015
,
toler015
);
test
(
data016
,
toler016
);
test
(
data017
,
toler017
);
test
(
data018
,
toler018
);
test
(
data019
,
toler019
);
test
(
data020
,
toler020
);
test
(
data021
,
toler021
);
test
(
data022
,
toler022
);
test
(
data023
,
toler023
);
test
(
data024
,
toler024
);
test
(
data025
,
toler025
);
test
(
data026
,
toler026
);
test
(
data027
,
toler027
);
test
(
data028
,
toler028
);
test
(
data029
,
toler029
);
test
(
data030
,
toler030
);
test
(
data031
,
toler031
);
test
(
data032
,
toler032
);
test
(
data033
,
toler033
);
test
(
data034
,
toler034
);
test
(
data035
,
toler035
);
test
(
data036
,
toler036
);
return
0
;
}
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
View file @
b118dfdb
...
...
@@ -698,6 +698,26 @@ data026[21] =
};
const
double
toler026
=
1.0000000000000006e-11
;
// Test data for nu=100.00000000000000.
// max(|f - f_GSL|): 2.5857788132910287e-14
// max(|f - f_GSL| / |f_GSL|): 1.6767662425535933e-11
const
testcase_cyl_bessel_j
<
double
>
data027
[
11
]
=
{
{
0.0116761350077845
,
100.0000000000000000
,
1000.0000000000000000
,
0.0
},
{
-
0.0116998547780258
,
100.0000000000000000
,
1100.0000000000000000
,
0.0
},
{
-
0.0228014834050837
,
100.0000000000000000
,
1200.0000000000000000
,
0.0
},
{
-
0.0169735007873739
,
100.0000000000000000
,
1300.0000000000000000
,
0.0
},
{
-
0.0014154528803530
,
100.0000000000000000
,
1400.0000000000000000
,
0.0
},
{
0.0133337265844988
,
100.0000000000000000
,
1500.0000000000000000
,
0.0
},
{
0.0198025620201474
,
100.0000000000000000
,
1600.0000000000000000
,
0.0
},
{
0.0161297712798388
,
100.0000000000000000
,
1700.0000000000000000
,
0.0
},
{
0.0053753369281577
,
100.0000000000000000
,
1800.0000000000000000
,
0.0
},
{
-
0.0069238868725646
,
100.0000000000000000
,
1900.0000000000000000
,
0.0
},
{
-
0.0154878717200738
,
100.0000000000000000
,
2000.0000000000000000
,
0.0
},
};
const
double
toler027
=
1.0000000000000006e-10
;
template
<
typename
Ret
,
unsigned
int
Num
>
void
test
(
const
testcase_cyl_bessel_j
<
Ret
>
(
&
data
)[
Num
],
Ret
toler
)
...
...
@@ -748,5 +768,6 @@ main()
test
(
data024
,
toler024
);
test
(
data025
,
toler025
);
test
(
data026
,
toler026
);
test
(
data027
,
toler027
);
return
0
;
}
libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
View file @
b118dfdb
...
...
@@ -742,6 +742,26 @@ data028[20] =
};
const
double
toler028
=
1.0000000000000006e-11
;
// Test data for nu=100.00000000000000.
// max(|f - f_GSL|): 3.1049815496508870e-14
// max(|f - f_GSL| / |f_GSL|): 8.4272302674970308e-12
const
testcase_cyl_neumann
<
double
>
data029
[
11
]
=
{
{
-
0.0224386882577326
,
100.0000000000000000
,
1000.0000000000000000
,
0.0
},
{
-
0.0210775951598200
,
100.0000000000000000
,
1100.0000000000000000
,
0.0
},
{
-
0.0035299439206693
,
100.0000000000000000
,
1200.0000000000000000
,
0.0
},
{
0.0142500193265366
,
100.0000000000000000
,
1300.0000000000000000
,
0.0
},
{
0.0213046790897353
,
100.0000000000000000
,
1400.0000000000000000
,
0.0
},
{
0.0157343950779022
,
100.0000000000000000
,
1500.0000000000000000
,
0.0
},
{
0.0025544633636228
,
100.0000000000000000
,
1600.0000000000000000
,
0.0
},
{
-
0.0107220455248494
,
100.0000000000000000
,
1700.0000000000000000
,
0.0
},
{
-
0.0180369192432256
,
100.0000000000000000
,
1800.0000000000000000
,
0.0
},
{
-
0.0169584155930798
,
100.0000000000000000
,
1900.0000000000000000
,
0.0
},
{
-
0.0088788704566206
,
100.0000000000000000
,
2000.0000000000000000
,
0.0
},
};
const
double
toler029
=
1.0000000000000006e-11
;
template
<
typename
Ret
,
unsigned
int
Num
>
void
test
(
const
testcase_cyl_neumann
<
Ret
>
(
&
data
)[
Num
],
Ret
toler
)
...
...
@@ -794,5 +814,6 @@ main()
test
(
data026
,
toler026
);
test
(
data027
,
toler027
);
test
(
data028
,
toler028
);
test
(
data029
,
toler029
);
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment