Lines Matching refs:_Tp

69     template <typename _Tp>
70 _Tp
74 static const _Tp __num[28] = { in __bernoulli_series()
75 _Tp(1UL), -_Tp(1UL) / _Tp(2UL), in __bernoulli_series()
76 _Tp(1UL) / _Tp(6UL), _Tp(0UL), in __bernoulli_series()
77 -_Tp(1UL) / _Tp(30UL), _Tp(0UL), in __bernoulli_series()
78 _Tp(1UL) / _Tp(42UL), _Tp(0UL), in __bernoulli_series()
79 -_Tp(1UL) / _Tp(30UL), _Tp(0UL), in __bernoulli_series()
80 _Tp(5UL) / _Tp(66UL), _Tp(0UL), in __bernoulli_series()
81 -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), in __bernoulli_series()
82 _Tp(7UL) / _Tp(6UL), _Tp(0UL), in __bernoulli_series()
83 -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), in __bernoulli_series()
84 _Tp(43867UL) / _Tp(798UL), _Tp(0UL), in __bernoulli_series()
85 -_Tp(174611) / _Tp(330UL), _Tp(0UL), in __bernoulli_series()
86 _Tp(854513UL) / _Tp(138UL), _Tp(0UL), in __bernoulli_series()
87 -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), in __bernoulli_series()
88 _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) in __bernoulli_series()
92 return _Tp(1); in __bernoulli_series()
95 return -_Tp(1) / _Tp(2); in __bernoulli_series()
99 return _Tp(0); in __bernoulli_series()
106 _Tp __fact = _Tp(1); in __bernoulli_series()
108 __fact *= _Tp(-1); in __bernoulli_series()
110 __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); in __bernoulli_series()
111 __fact *= _Tp(2); in __bernoulli_series()
113 _Tp __sum = _Tp(0); in __bernoulli_series()
116 _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); in __bernoulli_series()
117 if (__term < std::numeric_limits<_Tp>::epsilon()) in __bernoulli_series()
132 template<typename _Tp>
133 inline _Tp
135 { return __bernoulli_series<_Tp>(__n); } in __bernoulli()
146 template<typename _Tp>
147 _Tp
148 __log_gamma_bernoulli(_Tp __x) in __log_gamma_bernoulli()
150 _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x in __log_gamma_bernoulli()
151 + _Tp(0.5L) * std::log(_Tp(2) in __log_gamma_bernoulli()
152 * __numeric_constants<_Tp>::__pi()); in __log_gamma_bernoulli()
154 const _Tp __xx = __x * __x; in __log_gamma_bernoulli()
155 _Tp __help = _Tp(1) / __x; in __log_gamma_bernoulli()
158 const _Tp __2i = _Tp(2 * __i); in __log_gamma_bernoulli()
159 __help /= __2i * (__2i - _Tp(1)) * __xx; in __log_gamma_bernoulli()
160 __lg += __bernoulli<_Tp>(2 * __i) * __help; in __log_gamma_bernoulli()
174 template<typename _Tp>
175 _Tp
176 __log_gamma_lanczos(_Tp __x) in __log_gamma_lanczos()
178 const _Tp __xm1 = __x - _Tp(1); in __log_gamma_lanczos()
180 static const _Tp __lanczos_cheb_7[9] = { in __log_gamma_lanczos()
181 _Tp( 0.99999999999980993227684700473478L), in __log_gamma_lanczos()
182 _Tp( 676.520368121885098567009190444019L), in __log_gamma_lanczos()
183 _Tp(-1259.13921672240287047156078755283L), in __log_gamma_lanczos()
184 _Tp( 771.3234287776530788486528258894L), in __log_gamma_lanczos()
185 _Tp(-176.61502916214059906584551354L), in __log_gamma_lanczos()
186 _Tp( 12.507343278686904814458936853L), in __log_gamma_lanczos()
187 _Tp(-0.13857109526572011689554707L), in __log_gamma_lanczos()
188 _Tp( 9.984369578019570859563e-6L), in __log_gamma_lanczos()
189 _Tp( 1.50563273514931155834e-7L) in __log_gamma_lanczos()
192 static const _Tp __LOGROOT2PI in __log_gamma_lanczos()
193 = _Tp(0.9189385332046727417803297364056176L); in __log_gamma_lanczos()
195 _Tp __sum = __lanczos_cheb_7[0]; in __log_gamma_lanczos()
199 const _Tp __term1 = (__xm1 + _Tp(0.5L)) in __log_gamma_lanczos()
200 * std::log((__xm1 + _Tp(7.5L)) in __log_gamma_lanczos()
201 / __numeric_constants<_Tp>::__euler()); in __log_gamma_lanczos()
202 const _Tp __term2 = __LOGROOT2PI + std::log(__sum); in __log_gamma_lanczos()
203 const _Tp __result = __term1 + (__term2 - _Tp(7)); in __log_gamma_lanczos()
218 template<typename _Tp>
219 _Tp
220 __log_gamma(_Tp __x) in __log_gamma()
222 if (__x > _Tp(0.5L)) in __log_gamma()
226 const _Tp __sin_fact in __log_gamma()
227 = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); in __log_gamma()
228 if (__sin_fact == _Tp(0)) in __log_gamma()
231 return __numeric_constants<_Tp>::__lnpi() in __log_gamma()
233 - __log_gamma_lanczos(_Tp(1) - __x); in __log_gamma()
245 template<typename _Tp>
246 _Tp
247 __log_gamma_sign(_Tp __x) in __log_gamma_sign()
249 if (__x > _Tp(0)) in __log_gamma_sign()
250 return _Tp(1); in __log_gamma_sign()
253 const _Tp __sin_fact in __log_gamma_sign()
254 = std::sin(__numeric_constants<_Tp>::__pi() * __x); in __log_gamma_sign()
255 if (__sin_fact > _Tp(0)) in __log_gamma_sign()
257 else if (__sin_fact < _Tp(0)) in __log_gamma_sign()
258 return -_Tp(1); in __log_gamma_sign()
260 return _Tp(0); in __log_gamma_sign()
276 template<typename _Tp>
277 _Tp
281 static const _Tp __max_bincoeff in __log_bincoef()
282 = std::numeric_limits<_Tp>::max_exponent10 in __log_bincoef()
283 * std::log(_Tp(10)) - _Tp(1); in __log_bincoef()
285 _Tp __coeff = std::tr1::lgamma(_Tp(1 + __n)) in __log_bincoef()
286 - std::tr1::lgamma(_Tp(1 + __k)) in __log_bincoef()
287 - std::tr1::lgamma(_Tp(1 + __n - __k)); in __log_bincoef()
289 _Tp __coeff = __log_gamma(_Tp(1 + __n)) in __log_bincoef()
290 - __log_gamma(_Tp(1 + __k)) in __log_bincoef()
291 - __log_gamma(_Tp(1 + __n - __k)); in __log_bincoef()
307 template<typename _Tp>
308 _Tp
312 static const _Tp __max_bincoeff in __bincoef()
313 = std::numeric_limits<_Tp>::max_exponent10 in __bincoef()
314 * std::log(_Tp(10)) - _Tp(1); in __bincoef()
316 const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); in __bincoef()
318 return std::numeric_limits<_Tp>::quiet_NaN(); in __bincoef()
330 template<typename _Tp>
331 inline _Tp
332 __gamma(_Tp __x) in __gamma()
349 template<typename _Tp>
350 _Tp
351 __psi_series(_Tp __x) in __psi_series()
353 _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; in __psi_series()
357 const _Tp __term = __x / (__k * (__k + __x)); in __psi_series()
359 if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) in __psi_series()
379 template<typename _Tp>
380 _Tp
381 __psi_asymp(_Tp __x) in __psi_asymp()
383 _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; in __psi_asymp()
384 const _Tp __xx = __x * __x; in __psi_asymp()
385 _Tp __xp = __xx; in __psi_asymp()
389 const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); in __psi_asymp()
391 if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) in __psi_asymp()
410 template<typename _Tp>
411 _Tp
412 __psi(_Tp __x) in __psi()
415 const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); in __psi()
416 if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) in __psi()
417 return std::numeric_limits<_Tp>::quiet_NaN(); in __psi()
418 else if (__x < _Tp(0)) in __psi()
420 const _Tp __pi = __numeric_constants<_Tp>::__pi(); in __psi()
421 return __psi(_Tp(1) - __x) in __psi()
424 else if (__x > _Tp(100)) in __psi()
439 template<typename _Tp>
440 _Tp
441 __psi(unsigned int __n, _Tp __x) in __psi()
443 if (__x <= _Tp(0)) in __psi()
450 const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); in __psi()
452 const _Tp __ln_nfact = std::tr1::lgamma(_Tp(__n + 1)); in __psi()
454 const _Tp __ln_nfact = __log_gamma(_Tp(__n + 1)); in __psi()
456 _Tp __result = std::exp(__ln_nfact) * __hzeta; in __psi()