*/
template<typename _Tpa, typename _Tp>
_Tp
- __poly_laguerre_large_n(const unsigned __n, const _Tpa __alpha,
+ __poly_laguerre_large_n(const unsigned __n, const _Tpa __alpha1,
const _Tp __x)
{
const _Tp __a = -_Tp(__n);
- const _Tp __b = _Tp(__alpha) + _Tp(1);
+ const _Tp __b = _Tp(__alpha1) + _Tp(1);
const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a;
const _Tp __cos2th = __x / __eta;
const _Tp __sin2th = _Tp(1) - __cos2th;
*/
template<typename _Tpa, typename _Tp>
_Tp
- __poly_laguerre_hyperg(const unsigned int __n, const _Tpa __alpha, const _Tp __x)
+ __poly_laguerre_hyperg(const unsigned int __n, const _Tpa __alpha1,
+ const _Tp __x)
{
- const _Tp __b = _Tp(__alpha) + _Tp(1);
+ const _Tp __b = _Tp(__alpha1) + _Tp(1);
const _Tp __mx = -__x;
const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1)
: ((__n % 2 == 1) ? -_Tp(1) : _Tp(1)));
template<typename _Tpa, typename _Tp>
_Tp
__poly_laguerre_recursion(const unsigned int __n,
- const _Tpa __alpha, const _Tp __x)
+ const _Tpa __alpha1, const _Tp __x)
{
// Compute l_0.
_Tp __l_0 = _Tp(1);
return __l_0;
// Compute l_1^alpha.
- _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha);
+ _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1);
if (__n == 1)
return __l_1;
_Tp __l_n = _Tp(0);
for (unsigned int __nn = 2; __nn <= __n; ++__nn)
{
- __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha) - __x)
+ __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x)
* __l_n1 / _Tp(__nn)
- - (_Tp(__nn - 1) + _Tp(__alpha)) * __l_n2 / _Tp(__nn);
+ - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn);
__l_n2 = __l_n1;
__l_n1 = __l_n;
}
*/
template<typename _Tpa, typename _Tp>
inline _Tp
- __poly_laguerre(const unsigned int __n, const _Tpa __alpha,
+ __poly_laguerre(const unsigned int __n, const _Tpa __alpha1,
const _Tp __x)
{
if (__x < _Tp(0))
else if (__n == 0)
return _Tp(1);
else if (__n == 1)
- return _Tp(1) + _Tp(__alpha) - __x;
+ return _Tp(1) + _Tp(__alpha1) - __x;
else if (__x == _Tp(0))
{
- _Tp __prod = _Tp(__alpha) + _Tp(1);
+ _Tp __prod = _Tp(__alpha1) + _Tp(1);
for (unsigned int __k = 2; __k <= __n; ++__k)
- __prod *= (_Tp(__alpha) + _Tp(__k)) / _Tp(__k);
+ __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k);
return __prod;
}
- else if (__n > 10000000 && _Tp(__alpha) > -_Tp(1)
- && __x < _Tp(2) * (_Tp(__alpha) + _Tp(1)) + _Tp(4 * __n))
- return __poly_laguerre_large_n(__n, __alpha, __x);
+ else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1)
+ && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n))
+ return __poly_laguerre_large_n(__n, __alpha1, __x);
else if (_Tp(__alpha) >= _Tp(0)
- || (__x > _Tp(0) && _Tp(__alpha) < -_Tp(__n + 1)))
- return __poly_laguerre_recursion(__n, __alpha, __x);
+ || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1)))
+ return __poly_laguerre_recursion(__n, __alpha1, __x);
else
- return __poly_laguerre_hyperg(__n, __alpha, __x);
+ return __poly_laguerre_hyperg(__n, __alpha1, __x);
}