libstdc++
tr1/cmath
Go to the documentation of this file.
1 // TR1 cmath -*- C++ -*-
2 
3 // Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
10 
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
19 
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 // <http://www.gnu.org/licenses/>.
24 
25 /** @file tr1/cmath
26  * This is a TR1 C++ Library header.
27  */
28 
29 #ifndef _GLIBCXX_TR1_CMATH
30 #define _GLIBCXX_TR1_CMATH 1
31 
32 #pragma GCC system_header
33 
34 #if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
35 # error TR1 header cannot be included from C++0x header
36 #endif
37 
38 #include <cmath>
39 
40 #if defined(_GLIBCXX_INCLUDE_AS_TR1)
41 # include <tr1_impl/cmath>
42 #else
43 # define _GLIBCXX_INCLUDE_AS_TR1
44 # define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
45 # define _GLIBCXX_END_NAMESPACE_TR1 }
46 # define _GLIBCXX_TR1 tr1::
47 # include <tr1_impl/cmath>
48 # undef _GLIBCXX_TR1
49 # undef _GLIBCXX_END_NAMESPACE_TR1
50 # undef _GLIBCXX_BEGIN_NAMESPACE_TR1
51 # undef _GLIBCXX_INCLUDE_AS_TR1
52 #endif
53 
54 namespace std
55 {
56 namespace tr1
57 {
58  // DR 550. What should the return type of pow(float,int) be?
59  // NB: C++0x and TR1 != C++03.
60  inline double
61  pow(double __x, double __y)
62  { return std::pow(__x, __y); }
63 
64  inline float
65  pow(float __x, float __y)
66  { return std::pow(__x, __y); }
67 
68  inline long double
69  pow(long double __x, long double __y)
70  { return std::pow(__x, __y); }
71 
72  template<typename _Tp, typename _Up>
73  inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
74  pow(_Tp __x, _Up __y)
75  {
76  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
77  return std::pow(__type(__x), __type(__y));
78  }
79 }
80 }
81 
82 #include <bits/stl_algobase.h>
83 #include <limits>
84 #include <tr1/type_traits>
85 
86 #include <tr1/gamma.tcc>
87 #include <tr1/bessel_function.tcc>
88 #include <tr1/beta_function.tcc>
89 #include <tr1/ell_integral.tcc>
90 #include <tr1/exp_integral.tcc>
91 #include <tr1/hypergeometric.tcc>
94 #include <tr1/poly_hermite.tcc>
95 #include <tr1/poly_laguerre.tcc>
96 #include <tr1/riemann_zeta.tcc>
97 
98 namespace std
99 {
100 namespace tr1
101 {
102  /**
103  * @defgroup tr1_math_spec_func Mathematical Special Functions
104  * @ingroup numerics
105  *
106  * A collection of advanced mathematical special functions.
107  * @{
108  */
109 
110  inline float
111  assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
112  { return __detail::__assoc_laguerre<float>(__n, __m, __x); }
113 
114  inline long double
115  assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
116  {
117  return __detail::__assoc_laguerre<long double>(__n, __m, __x);
118  }
119 
120  /// 5.2.1.1 Associated Laguerre polynomials.
121  template<typename _Tp>
122  inline typename __gnu_cxx::__promote<_Tp>::__type
123  assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
124  {
125  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
126  return __detail::__assoc_laguerre<__type>(__n, __m, __x);
127  }
128 
129  inline float
130  assoc_legendref(unsigned int __l, unsigned int __m, float __x)
131  { return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
132 
133  inline long double
134  assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
135  { return __detail::__assoc_legendre_p<long double>(__l, __m, __x); }
136 
137  /// 5.2.1.2 Associated Legendre functions.
138  template<typename _Tp>
139  inline typename __gnu_cxx::__promote<_Tp>::__type
140  assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
141  {
142  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
143  return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
144  }
145 
146  inline float
147  betaf(float __x, float __y)
148  { return __detail::__beta<float>(__x, __y); }
149 
150  inline long double
151  betal(long double __x, long double __y)
152  { return __detail::__beta<long double>(__x, __y); }
153 
154  /// 5.2.1.3 Beta functions.
155  template<typename _Tpx, typename _Tpy>
156  inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type
157  beta(_Tpx __x, _Tpy __y)
158  {
159  typedef typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type __type;
160  return __detail::__beta<__type>(__x, __y);
161  }
162 
163  inline float
164  comp_ellint_1f(float __k)
165  { return __detail::__comp_ellint_1<float>(__k); }
166 
167  inline long double
168  comp_ellint_1l(long double __k)
169  { return __detail::__comp_ellint_1<long double>(__k); }
170 
171  /// 5.2.1.4 Complete elliptic integrals of the first kind.
172  template<typename _Tp>
173  inline typename __gnu_cxx::__promote<_Tp>::__type
174  comp_ellint_1(_Tp __k)
175  {
176  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
177  return __detail::__comp_ellint_1<__type>(__k);
178  }
179 
180  inline float
181  comp_ellint_2f(float __k)
182  { return __detail::__comp_ellint_2<float>(__k); }
183 
184  inline long double
185  comp_ellint_2l(long double __k)
186  { return __detail::__comp_ellint_2<long double>(__k); }
187 
188  /// 5.2.1.5 Complete elliptic integrals of the second kind.
189  template<typename _Tp>
190  inline typename __gnu_cxx::__promote<_Tp>::__type
191  comp_ellint_2(_Tp __k)
192  {
193  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
194  return __detail::__comp_ellint_2<__type>(__k);
195  }
196 
197  inline float
198  comp_ellint_3f(float __k, float __nu)
199  { return __detail::__comp_ellint_3<float>(__k, __nu); }
200 
201  inline long double
202  comp_ellint_3l(long double __k, long double __nu)
203  { return __detail::__comp_ellint_3<long double>(__k, __nu); }
204 
205  /// 5.2.1.6 Complete elliptic integrals of the third kind.
206  template<typename _Tp, typename _Tpn>
207  inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
208  comp_ellint_3(_Tp __k, _Tpn __nu)
209  {
210  typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;
211  return __detail::__comp_ellint_3<__type>(__k, __nu);
212  }
213 
214  inline float
215  conf_hypergf(float __a, float __c, float __x)
216  { return __detail::__conf_hyperg<float>(__a, __c, __x); }
217 
218  inline long double
219  conf_hypergl(long double __a, long double __c, long double __x)
220  { return __detail::__conf_hyperg<long double>(__a, __c, __x); }
221 
222  /// 5.2.1.7 Confluent hypergeometric functions.
223  template<typename _Tpa, typename _Tpc, typename _Tp>
224  inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
225  conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
226  {
227  typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type;
228  return __detail::__conf_hyperg<__type>(__a, __c, __x);
229  }
230 
231  inline float
232  cyl_bessel_if(float __nu, float __x)
233  { return __detail::__cyl_bessel_i<float>(__nu, __x); }
234 
235  inline long double
236  cyl_bessel_il(long double __nu, long double __x)
237  { return __detail::__cyl_bessel_i<long double>(__nu, __x); }
238 
239  /// 5.2.1.8 Regular modified cylindrical Bessel functions.
240  template<typename _Tpnu, typename _Tp>
241  inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
242  cyl_bessel_i(_Tpnu __nu, _Tp __x)
243  {
244  typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
245  return __detail::__cyl_bessel_i<__type>(__nu, __x);
246  }
247 
248  inline float
249  cyl_bessel_jf(float __nu, float __x)
250  { return __detail::__cyl_bessel_j<float>(__nu, __x); }
251 
252  inline long double
253  cyl_bessel_jl(long double __nu, long double __x)
254  { return __detail::__cyl_bessel_j<long double>(__nu, __x); }
255 
256  /// 5.2.1.9 Cylindrical Bessel functions (of the first kind).
257  template<typename _Tpnu, typename _Tp>
258  inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
259  cyl_bessel_j(_Tpnu __nu, _Tp __x)
260  {
261  typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
262  return __detail::__cyl_bessel_j<__type>(__nu, __x);
263  }
264 
265  inline float
266  cyl_bessel_kf(float __nu, float __x)
267  { return __detail::__cyl_bessel_k<float>(__nu, __x); }
268 
269  inline long double
270  cyl_bessel_kl(long double __nu, long double __x)
271  { return __detail::__cyl_bessel_k<long double>(__nu, __x); }
272 
273  /// 5.2.1.10 Irregular modified cylindrical Bessel functions.
274  template<typename _Tpnu, typename _Tp>
275  inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
276  cyl_bessel_k(_Tpnu __nu, _Tp __x)
277  {
278  typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
279  return __detail::__cyl_bessel_k<__type>(__nu, __x);
280  }
281 
282  inline float
283  cyl_neumannf(float __nu, float __x)
284  { return __detail::__cyl_neumann_n<float>(__nu, __x); }
285 
286  inline long double
287  cyl_neumannl(long double __nu, long double __x)
288  { return __detail::__cyl_neumann_n<long double>(__nu, __x); }
289 
290  /// 5.2.1.11 Cylindrical Neumann functions.
291  template<typename _Tpnu, typename _Tp>
292  inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
293  cyl_neumann(_Tpnu __nu, _Tp __x)
294  {
295  typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
296  return __detail::__cyl_neumann_n<__type>(__nu, __x);
297  }
298 
299  inline float
300  ellint_1f(float __k, float __phi)
301  { return __detail::__ellint_1<float>(__k, __phi); }
302 
303  inline long double
304  ellint_1l(long double __k, long double __phi)
305  { return __detail::__ellint_1<long double>(__k, __phi); }
306 
307  /// 5.2.1.12 Incomplete elliptic integrals of the first kind.
308  template<typename _Tp, typename _Tpp>
309  inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
310  ellint_1(_Tp __k, _Tpp __phi)
311  {
312  typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
313  return __detail::__ellint_1<__type>(__k, __phi);
314  }
315 
316  inline float
317  ellint_2f(float __k, float __phi)
318  { return __detail::__ellint_2<float>(__k, __phi); }
319 
320  inline long double
321  ellint_2l(long double __k, long double __phi)
322  { return __detail::__ellint_2<long double>(__k, __phi); }
323 
324  /// 5.2.1.13 Incomplete elliptic integrals of the second kind.
325  template<typename _Tp, typename _Tpp>
326  inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
327  ellint_2(_Tp __k, _Tpp __phi)
328  {
329  typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
330  return __detail::__ellint_2<__type>(__k, __phi);
331  }
332 
333  inline float
334  ellint_3f(float __k, float __nu, float __phi)
335  { return __detail::__ellint_3<float>(__k, __nu, __phi); }
336 
337  inline long double
338  ellint_3l(long double __k, long double __nu, long double __phi)
339  { return __detail::__ellint_3<long double>(__k, __nu, __phi); }
340 
341  /// 5.2.1.14 Incomplete elliptic integrals of the third kind.
342  template<typename _Tp, typename _Tpn, typename _Tpp>
343  inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
344  ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
345  {
346  typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;
347  return __detail::__ellint_3<__type>(__k, __nu, __phi);
348  }
349 
350  inline float
351  expintf(float __x)
352  { return __detail::__expint<float>(__x); }
353 
354  inline long double
355  expintl(long double __x)
356  { return __detail::__expint<long double>(__x); }
357 
358  /// 5.2.1.15 Exponential integrals.
359  template<typename _Tp>
360  inline typename __gnu_cxx::__promote<_Tp>::__type
361  expint(_Tp __x)
362  {
363  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
364  return __detail::__expint<__type>(__x);
365  }
366 
367  inline float
368  hermitef(unsigned int __n, float __x)
369  { return __detail::__poly_hermite<float>(__n, __x); }
370 
371  inline long double
372  hermitel(unsigned int __n, long double __x)
373  { return __detail::__poly_hermite<long double>(__n, __x); }
374 
375  /// 5.2.1.16 Hermite polynomials.
376  template<typename _Tp>
377  inline typename __gnu_cxx::__promote<_Tp>::__type
378  hermite(unsigned int __n, _Tp __x)
379  {
380  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
381  return __detail::__poly_hermite<__type>(__n, __x);
382  }
383 
384  inline float
385  hypergf(float __a, float __b, float __c, float __x)
386  { return __detail::__hyperg<float>(__a, __b, __c, __x); }
387 
388  inline long double
389  hypergl(long double __a, long double __b, long double __c, long double __x)
390  { return __detail::__hyperg<long double>(__a, __b, __c, __x); }
391 
392  /// 5.2.1.17 Hypergeometric functions.
393  template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>
394  inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
395  hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
396  {
397  typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type __type;
398  return __detail::__hyperg<__type>(__a, __b, __c, __x);
399  }
400 
401  inline float
402  laguerref(unsigned int __n, float __x)
403  { return __detail::__laguerre<float>(__n, __x); }
404 
405  inline long double
406  laguerrel(unsigned int __n, long double __x)
407  { return __detail::__laguerre<long double>(__n, __x); }
408 
409  /// 5.2.1.18 Laguerre polynomials.
410  template<typename _Tp>
411  inline typename __gnu_cxx::__promote<_Tp>::__type
412  laguerre(unsigned int __n, _Tp __x)
413  {
414  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
415  return __detail::__laguerre<__type>(__n, __x);
416  }
417 
418  inline float
419  legendref(unsigned int __n, float __x)
420  { return __detail::__poly_legendre_p<float>(__n, __x); }
421 
422  inline long double
423  legendrel(unsigned int __n, long double __x)
424  { return __detail::__poly_legendre_p<long double>(__n, __x); }
425 
426  /// 5.2.1.19 Legendre polynomials.
427  template<typename _Tp>
428  inline typename __gnu_cxx::__promote<_Tp>::__type
429  legendre(unsigned int __n, _Tp __x)
430  {
431  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
432  return __detail::__poly_legendre_p<__type>(__n, __x);
433  }
434 
435  inline float
436  riemann_zetaf(float __x)
437  { return __detail::__riemann_zeta<float>(__x); }
438 
439  inline long double
440  riemann_zetal(long double __x)
441  { return __detail::__riemann_zeta<long double>(__x); }
442 
443  /// 5.2.1.20 Riemann zeta function.
444  template<typename _Tp>
445  inline typename __gnu_cxx::__promote<_Tp>::__type
446  riemann_zeta(_Tp __x)
447  {
448  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
449  return __detail::__riemann_zeta<__type>(__x);
450  }
451 
452  inline float
453  sph_besself(unsigned int __n, float __x)
454  { return __detail::__sph_bessel<float>(__n, __x); }
455 
456  inline long double
457  sph_bessell(unsigned int __n, long double __x)
458  { return __detail::__sph_bessel<long double>(__n, __x); }
459 
460  /// 5.2.1.21 Spherical Bessel functions.
461  template<typename _Tp>
462  inline typename __gnu_cxx::__promote<_Tp>::__type
463  sph_bessel(unsigned int __n, _Tp __x)
464  {
465  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
466  return __detail::__sph_bessel<__type>(__n, __x);
467  }
468 
469  inline float
470  sph_legendref(unsigned int __l, unsigned int __m, float __theta)
471  { return __detail::__sph_legendre<float>(__l, __m, __theta); }
472 
473  inline long double
474  sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
475  { return __detail::__sph_legendre<long double>(__l, __m, __theta); }
476 
477  /// 5.2.1.22 Spherical associated Legendre functions.
478  template<typename _Tp>
479  inline typename __gnu_cxx::__promote<_Tp>::__type
480  sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
481  {
482  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
483  return __detail::__sph_legendre<__type>(__l, __m, __theta);
484  }
485 
486  inline float
487  sph_neumannf(unsigned int __n, float __x)
488  { return __detail::__sph_neumann<float>(__n, __x); }
489 
490  inline long double
491  sph_neumannl(unsigned int __n, long double __x)
492  { return __detail::__sph_neumann<long double>(__n, __x); }
493 
494  /// 5.2.1.23 Spherical Neumann functions.
495  template<typename _Tp>
496  inline typename __gnu_cxx::__promote<_Tp>::__type
497  sph_neumann(unsigned int __n, _Tp __x)
498  {
499  typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
500  return __detail::__sph_neumann<__type>(__n, __x);
501  }
502 
503  /* @} */ // tr1_math_spec_func
504 }
505 }
506 
507 #endif // _GLIBCXX_TR1_CMATH
__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
5.2.1.2 Associated Legendre functions.
Definition: tr1/cmath:140
__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
5.2.1.17 Hypergeometric functions.
Definition: tr1/cmath:395
__gnu_cxx::__promote_2< _Tpx, _Tpy >::__type beta(_Tpx __x, _Tpy __y)
5.2.1.3 Beta functions.
Definition: tr1/cmath:157
__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)
5.2.1.16 Hermite polynomials.
Definition: tr1/cmath:378
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)
5.2.1.10 Irregular modified cylindrical Bessel functions.
Definition: tr1/cmath:276
__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __n, _Tp __x)
5.2.1.19 Legendre polynomials.
Definition: tr1/cmath:429
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)
5.2.1.13 Incomplete elliptic integrals of the second kind.
Definition: tr1/cmath:327
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)
5.2.1.6 Complete elliptic integrals of the third kind.
Definition: tr1/cmath:208
__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)
5.2.1.21 Spherical Bessel functions.
Definition: tr1/cmath:463
__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
5.2.1.1 Associated Laguerre polynomials.
Definition: tr1/cmath:123
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)
5.2.1.5 Complete elliptic integrals of the second kind.
Definition: tr1/cmath:191
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)
5.2.1.8 Regular modified cylindrical Bessel functions.
Definition: tr1/cmath:242
__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __x)
5.2.1.20 Riemann zeta function.
Definition: tr1/cmath:446
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)
5.2.1.9 Cylindrical Bessel functions (of the first kind).
Definition: tr1/cmath:259
__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
5.2.1.22 Spherical associated Legendre functions.
Definition: tr1/cmath:480
complex< _Tp > pow(const complex< _Tp > &, const _Tp &)
Return x to the y'th power.
Definition: complex:964
__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)
5.2.1.15 Exponential integrals.
Definition: tr1/cmath:361
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
5.2.1.14 Incomplete elliptic integrals of the third kind.
Definition: tr1/cmath:344
__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
5.2.1.7 Confluent hypergeometric functions.
Definition: tr1/cmath:225
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)
5.2.1.12 Incomplete elliptic integrals of the first kind.
Definition: tr1/cmath:310
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)
5.2.1.11 Cylindrical Neumann functions.
Definition: tr1/cmath:293
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)
5.2.1.4 Complete elliptic integrals of the first kind.
Definition: tr1/cmath:174
__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)
5.2.1.23 Spherical Neumann functions.
Definition: tr1/cmath:497
__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)
5.2.1.18 Laguerre polynomials.
Definition: tr1/cmath:412