]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [section:tr1_ref TR1 C Functions Quick Reference] |
2 | ||
3 | ||
4 | [h4 Supported TR1 Functions] | |
5 | ||
6 | namespace boost{ namespace math{ namespace tr1{ extern "C"{ | |
7 | ||
8 | // [5.2.1.1] associated Laguerre polynomials: | |
9 | double assoc_laguerre(unsigned n, unsigned m, double x); | |
10 | float assoc_laguerref(unsigned n, unsigned m, float x); | |
11 | long double assoc_laguerrel(unsigned n, unsigned m, long double x); | |
12 | ||
13 | // [5.2.1.2] associated Legendre functions: | |
14 | double assoc_legendre(unsigned l, unsigned m, double x); | |
15 | float assoc_legendref(unsigned l, unsigned m, float x); | |
16 | long double assoc_legendrel(unsigned l, unsigned m, long double x); | |
17 | ||
18 | // [5.2.1.3] beta function: | |
19 | double beta(double x, double y); | |
20 | float betaf(float x, float y); | |
21 | long double betal(long double x, long double y); | |
22 | ||
23 | // [5.2.1.4] (complete) elliptic integral of the first kind: | |
24 | double comp_ellint_1(double k); | |
25 | float comp_ellint_1f(float k); | |
26 | long double comp_ellint_1l(long double k); | |
27 | ||
28 | // [5.2.1.5] (complete) elliptic integral of the second kind: | |
29 | double comp_ellint_2(double k); | |
30 | float comp_ellint_2f(float k); | |
31 | long double comp_ellint_2l(long double k); | |
32 | ||
33 | // [5.2.1.6] (complete) elliptic integral of the third kind: | |
34 | double comp_ellint_3(double k, double nu); | |
35 | float comp_ellint_3f(float k, float nu); | |
36 | long double comp_ellint_3l(long double k, long double nu); | |
37 | ||
38 | // [5.2.1.8] regular modified cylindrical Bessel functions: | |
39 | double cyl_bessel_i(double nu, double x); | |
40 | float cyl_bessel_if(float nu, float x); | |
41 | long double cyl_bessel_il(long double nu, long double x); | |
42 | ||
43 | // [5.2.1.9] cylindrical Bessel functions (of the first kind): | |
44 | double cyl_bessel_j(double nu, double x); | |
45 | float cyl_bessel_jf(float nu, float x); | |
46 | long double cyl_bessel_jl(long double nu, long double x); | |
47 | ||
48 | // [5.2.1.10] irregular modified cylindrical Bessel functions: | |
49 | double cyl_bessel_k(double nu, double x); | |
50 | float cyl_bessel_kf(float nu, float x); | |
51 | long double cyl_bessel_kl(long double nu, long double x); | |
52 | ||
53 | // [5.2.1.11] cylindrical Neumann functions; | |
54 | // cylindrical Bessel functions (of the second kind): | |
55 | double cyl_neumann(double nu, double x); | |
56 | float cyl_neumannf(float nu, float x); | |
57 | long double cyl_neumannl(long double nu, long double x); | |
58 | ||
59 | // [5.2.1.12] (incomplete) elliptic integral of the first kind: | |
60 | double ellint_1(double k, double phi); | |
61 | float ellint_1f(float k, float phi); | |
62 | long double ellint_1l(long double k, long double phi); | |
63 | ||
64 | // [5.2.1.13] (incomplete) elliptic integral of the second kind: | |
65 | double ellint_2(double k, double phi); | |
66 | float ellint_2f(float k, float phi); | |
67 | long double ellint_2l(long double k, long double phi); | |
68 | ||
69 | // [5.2.1.14] (incomplete) elliptic integral of the third kind: | |
70 | double ellint_3(double k, double nu, double phi); | |
71 | float ellint_3f(float k, float nu, float phi); | |
72 | long double ellint_3l(long double k, long double nu, long double phi); | |
73 | ||
74 | // [5.2.1.15] exponential integral: | |
75 | double expint(double x); | |
76 | float expintf(float x); | |
77 | long double expintl(long double x); | |
78 | ||
79 | // [5.2.1.16] Hermite polynomials: | |
80 | double hermite(unsigned n, double x); | |
81 | float hermitef(unsigned n, float x); | |
82 | long double hermitel(unsigned n, long double x); | |
83 | ||
84 | // [5.2.1.18] Laguerre polynomials: | |
85 | double laguerre(unsigned n, double x); | |
86 | float laguerref(unsigned n, float x); | |
87 | long double laguerrel(unsigned n, long double x); | |
88 | ||
89 | // [5.2.1.19] Legendre polynomials: | |
90 | double legendre(unsigned l, double x); | |
91 | float legendref(unsigned l, float x); | |
92 | long double legendrel(unsigned l, long double x); | |
93 | ||
94 | // [5.2.1.20] Riemann zeta function: | |
95 | double riemann_zeta(double); | |
96 | float riemann_zetaf(float); | |
97 | long double riemann_zetal(long double); | |
98 | ||
99 | // [5.2.1.21] spherical Bessel functions (of the first kind): | |
100 | double sph_bessel(unsigned n, double x); | |
101 | float sph_besself(unsigned n, float x); | |
102 | long double sph_bessell(unsigned n, long double x); | |
103 | ||
104 | // [5.2.1.22] spherical associated Legendre functions: | |
105 | double sph_legendre(unsigned l, unsigned m, double theta); | |
106 | float sph_legendref(unsigned l, unsigned m, float theta); | |
107 | long double sph_legendrel(unsigned l, unsigned m, long double theta); | |
108 | ||
109 | // [5.2.1.23] spherical Neumann functions; | |
110 | // spherical Bessel functions (of the second kind): | |
111 | double sph_neumann(unsigned n, double x); | |
112 | float sph_neumannf(unsigned n, float x); | |
113 | long double sph_neumannl(unsigned n, long double x); | |
114 | ||
115 | }}}} // namespaces | |
116 | ||
117 | In addition sufficient additional overloads of the `double` versions of the | |
118 | above functions are provided, so that calling the function with any mixture | |
119 | of `float`, `double`, `long double`, or /integer/ arguments is supported, with the | |
120 | return type determined by the __arg_promotion_rules. | |
121 | ||
122 | For example: | |
123 | ||
124 | expintf(2.0f); // float version, returns float. | |
125 | expint(2.0f); // also calls the float version and returns float. | |
126 | expint(2.0); // double version, returns double. | |
127 | expintl(2.0L); // long double version, returns a long double. | |
128 | expint(2.0L); // also calls the long double version. | |
129 | expint(2); // integer argument is treated as a double, returns double. | |
130 | ||
131 | [h4 Quick Reference] | |
132 | ||
133 | // [5.2.1.1] associated Laguerre polynomials: | |
134 | double assoc_laguerre(unsigned n, unsigned m, double x); | |
135 | float assoc_laguerref(unsigned n, unsigned m, float x); | |
136 | long double assoc_laguerrel(unsigned n, unsigned m, long double x); | |
137 | ||
138 | The assoc_laguerre functions return: | |
139 | ||
140 | [equation laguerre_1] | |
141 | ||
142 | See also __laguerre for the full template (header only) version of this function. | |
143 | ||
144 | // [5.2.1.2] associated Legendre functions: | |
145 | double assoc_legendre(unsigned l, unsigned m, double x); | |
146 | float assoc_legendref(unsigned l, unsigned m, float x); | |
147 | long double assoc_legendrel(unsigned l, unsigned m, long double x); | |
148 | ||
149 | The assoc_legendre functions return: | |
150 | ||
151 | [equation legendre_1b] | |
152 | ||
153 | See also __legendre for the full template (header only) version of this function. | |
154 | ||
155 | // [5.2.1.3] beta function: | |
156 | double beta(double x, double y); | |
157 | float betaf(float x, float y); | |
158 | long double betal(long double x, long double y); | |
159 | ||
160 | Returns the beta function of /x/ and /y/: | |
161 | ||
162 | [equation beta1] | |
163 | ||
164 | See also __beta for the full template (header only) version of this function. | |
165 | ||
166 | // [5.2.1.4] (complete) elliptic integral of the first kind: | |
167 | double comp_ellint_1(double k); | |
168 | float comp_ellint_1f(float k); | |
169 | long double comp_ellint_1l(long double k); | |
170 | ||
171 | Returns the complete elliptic integral of the first kind of /k/: | |
172 | ||
173 | [equation ellint6] | |
174 | ||
175 | See also __ellint_1 for the full template (header only) version of this function. | |
176 | ||
177 | // [5.2.1.5] (complete) elliptic integral of the second kind: | |
178 | double comp_ellint_2(double k); | |
179 | float comp_ellint_2f(float k); | |
180 | long double comp_ellint_2l(long double k); | |
181 | ||
182 | Returns the complete elliptic integral of the second kind of /k/: | |
183 | ||
184 | [equation ellint7] | |
185 | ||
186 | See also __ellint_2 for the full template (header only) version of this function. | |
187 | ||
188 | // [5.2.1.6] (complete) elliptic integral of the third kind: | |
189 | double comp_ellint_3(double k, double nu); | |
190 | float comp_ellint_3f(float k, float nu); | |
191 | long double comp_ellint_3l(long double k, long double nu); | |
192 | ||
193 | Returns the complete elliptic integral of the third kind of /k/ and /nu/: | |
194 | ||
195 | [equation ellint8] | |
196 | ||
197 | See also __ellint_3 for the full template (header only) version of this function. | |
198 | ||
199 | // [5.2.1.8] regular modified cylindrical Bessel functions: | |
200 | double cyl_bessel_i(double nu, double x); | |
201 | float cyl_bessel_if(float nu, float x); | |
202 | long double cyl_bessel_il(long double nu, long double x); | |
203 | ||
204 | Returns the modified bessel function of the first kind of /nu/ and /x/: | |
205 | ||
206 | [equation mbessel2] | |
207 | ||
208 | See also __cyl_bessel_i for the full template (header only) version of this function. | |
209 | ||
210 | // [5.2.1.9] cylindrical Bessel functions (of the first kind): | |
211 | double cyl_bessel_j(double nu, double x); | |
212 | float cyl_bessel_jf(float nu, float x); | |
213 | long double cyl_bessel_jl(long double nu, long double x); | |
214 | ||
215 | Returns the bessel function of the first kind of /nu/ and /x/: | |
216 | ||
217 | [equation bessel2] | |
218 | ||
219 | See also __cyl_bessel_j for the full template (header only) version of this function. | |
220 | ||
221 | // [5.2.1.10] irregular modified cylindrical Bessel functions: | |
222 | double cyl_bessel_k(double nu, double x); | |
223 | float cyl_bessel_kf(float nu, float x); | |
224 | long double cyl_bessel_kl(long double nu, long double x); | |
225 | ||
226 | Returns the modified bessel function of the second kind of /nu/ and /x/: | |
227 | ||
228 | [equation mbessel3] | |
229 | ||
230 | See also __cyl_bessel_k for the full template (header only) version of this function. | |
231 | ||
232 | // [5.2.1.11] cylindrical Neumann functions; | |
233 | // cylindrical Bessel functions (of the second kind): | |
234 | double cyl_neumann(double nu, double x); | |
235 | float cyl_neumannf(float nu, float x); | |
236 | long double cyl_neumannl(long double nu, long double x); | |
237 | ||
238 | Returns the bessel function of the second kind (Neumann function) of /nu/ and /x/: | |
239 | ||
240 | [equation bessel3] | |
241 | ||
242 | See also __cyl_neumann for the full template (header only) version of this function. | |
243 | ||
244 | // [5.2.1.12] (incomplete) elliptic integral of the first kind: | |
245 | double ellint_1(double k, double phi); | |
246 | float ellint_1f(float k, float phi); | |
247 | long double ellint_1l(long double k, long double phi); | |
248 | ||
249 | Returns the incomplete elliptic integral of the first kind of /k/ and /phi/: | |
250 | ||
251 | [equation ellint2] | |
252 | ||
253 | See also __ellint_1 for the full template (header only) version of this function. | |
254 | ||
255 | // [5.2.1.13] (incomplete) elliptic integral of the second kind: | |
256 | double ellint_2(double k, double phi); | |
257 | float ellint_2f(float k, float phi); | |
258 | long double ellint_2l(long double k, long double phi); | |
259 | ||
260 | Returns the incomplete elliptic integral of the second kind of /k/ and /phi/: | |
261 | ||
262 | [equation ellint3] | |
263 | ||
264 | See also __ellint_2 for the full template (header only) version of this function. | |
265 | ||
266 | // [5.2.1.14] (incomplete) elliptic integral of the third kind: | |
267 | double ellint_3(double k, double nu, double phi); | |
268 | float ellint_3f(float k, float nu, float phi); | |
269 | long double ellint_3l(long double k, long double nu, long double phi); | |
270 | ||
271 | Returns the incomplete elliptic integral of the third kind of /k/, /nu/ and /phi/: | |
272 | ||
273 | [equation ellint4] | |
274 | ||
275 | See also __ellint_3 for the full template (header only) version of this function. | |
276 | ||
277 | // [5.2.1.15] exponential integral: | |
278 | double expint(double x); | |
279 | float expintf(float x); | |
280 | long double expintl(long double x); | |
281 | ||
282 | Returns the exponential integral Ei of /x/: | |
283 | ||
284 | [equation expint_i_1] | |
285 | ||
286 | See also __expint for the full template (header only) version of this function. | |
287 | ||
288 | // [5.2.1.16] Hermite polynomials: | |
289 | double hermite(unsigned n, double x); | |
290 | float hermitef(unsigned n, float x); | |
291 | long double hermitel(unsigned n, long double x); | |
292 | ||
293 | Returns the n'th Hermite polynomial of /x/: | |
294 | ||
295 | [equation hermite_0] | |
296 | ||
297 | See also __hermite for the full template (header only) version of this function. | |
298 | ||
299 | // [5.2.1.18] Laguerre polynomials: | |
300 | double laguerre(unsigned n, double x); | |
301 | float laguerref(unsigned n, float x); | |
302 | long double laguerrel(unsigned n, long double x); | |
303 | ||
304 | Returns the n'th Laguerre polynomial of /x/: | |
305 | ||
306 | [equation laguerre_0] | |
307 | ||
308 | See also __laguerre for the full template (header only) version of this function. | |
309 | ||
310 | // [5.2.1.19] Legendre polynomials: | |
311 | double legendre(unsigned l, double x); | |
312 | float legendref(unsigned l, float x); | |
313 | long double legendrel(unsigned l, long double x); | |
314 | ||
315 | Returns the l'th Legendre polynomial of /x/: | |
316 | ||
317 | [equation legendre_0] | |
318 | ||
319 | See also __legendre for the full template (header only) version of this function. | |
320 | ||
321 | // [5.2.1.20] Riemann zeta function: | |
322 | double riemann_zeta(double); | |
323 | float riemann_zetaf(float); | |
324 | long double riemann_zetal(long double); | |
325 | ||
326 | Returns the Riemann Zeta function of /x/: | |
327 | ||
328 | [equation zeta1] | |
329 | ||
330 | See also __zeta for the full template (header only) version of this function. | |
331 | ||
332 | // [5.2.1.21] spherical Bessel functions (of the first kind): | |
333 | double sph_bessel(unsigned n, double x); | |
334 | float sph_besself(unsigned n, float x); | |
335 | long double sph_bessell(unsigned n, long double x); | |
336 | ||
337 | Returns the spherical Bessel function of the first kind of /x/ j[sub n](x): | |
338 | ||
339 | [equation sbessel2] | |
340 | ||
341 | See also __sph_bessel for the full template (header only) version of this function. | |
342 | ||
343 | // [5.2.1.22] spherical associated Legendre functions: | |
344 | double sph_legendre(unsigned l, unsigned m, double theta); | |
345 | float sph_legendref(unsigned l, unsigned m, float theta); | |
346 | long double sph_legendrel(unsigned l, unsigned m, long double theta); | |
347 | ||
348 | Returns the spherical associated Legendre function of /l/, /m/ and /theta/: | |
349 | ||
350 | [equation spherical_3] | |
351 | ||
352 | See also __spherical_harmonic for the full template (header only) version of this function. | |
353 | ||
354 | // [5.2.1.23] spherical Neumann functions; | |
355 | // spherical Bessel functions (of the second kind): | |
356 | double sph_neumann(unsigned n, double x); | |
357 | float sph_neumannf(unsigned n, float x); | |
358 | long double sph_neumannl(unsigned n, long double x); | |
359 | ||
360 | Returns the spherical Neumann function of /x/ y[sub n](x): | |
361 | ||
362 | [equation sbessel2] | |
363 | ||
364 | See also __sph_bessel for the full template (header only) version of this function. | |
365 | ||
366 | ||
367 | ||
368 | [h4 Currently Unsupported TR1 Functions] | |
369 | ||
370 | // [5.2.1.7] confluent hypergeometric functions: | |
371 | double conf_hyperg(double a, double c, double x); | |
372 | float conf_hypergf(float a, float c, float x); | |
373 | long double conf_hypergl(long double a, long double c, long double x); | |
374 | ||
375 | // [5.2.1.17] hypergeometric functions: | |
376 | double hyperg(double a, double b, double c, double x); | |
377 | float hypergf(float a, float b, float c, float x); | |
378 | long double hypergl(long double a, long double b, long double c, | |
379 | long double x); | |
380 | ||
381 | [note These two functions are not implemented as they are not believed | |
382 | to be numerically stable.] | |
383 | ||
384 | ||
385 | [endsect] | |
386 | ||
387 | [/ | |
388 | Copyright 2008, 2009 John Maddock and Paul A. Bristow. | |
389 | Distributed under the Boost Software License, Version 1.0. | |
390 | (See accompanying file LICENSE_1_0.txt or copy at | |
391 | http://www.boost.org/LICENSE_1_0.txt). | |
392 | ] | |
393 |