• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  Copyright John Maddock 2008.
2 //  Use, modification and distribution are subject to the
3 //  Boost Software License, Version 1.0. (See accompanying file
4 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 //
6 // Basic sanity check that header <boost/math/tr1.hpp>
7 // #includes all the files that it needs to.
8 //
9 #include <boost/math/tr1.hpp>
10 //
11 // Note this header includes no other headers, this is
12 // important if this test is to be meaningful:
13 //
14 #include "test_compile_result.hpp"
15 
compile_and_link_test()16 void compile_and_link_test()
17 {
18    unsigned ui = 0;
19 
20    check_result<float>(boost::math::tr1::assoc_laguerre(ui, ui, f));
21    check_result<float>(boost::math::tr1::assoc_laguerref(ui, ui, f));
22    check_result<double>(boost::math::tr1::assoc_laguerre(ui, ui, d));
23    check_result<long double>(boost::math::tr1::assoc_laguerre(ui, ui, l));
24    check_result<long double>(boost::math::tr1::assoc_laguerrel(ui, ui, l));
25    check_result<double>(boost::math::tr1::assoc_laguerre(ui, ui, i));
26    check_result<double>(boost::math::tr1::assoc_laguerre(ui, ui, ui));
27 
28    check_result<float>(boost::math::tr1::assoc_legendre(ui, ui, f));
29    check_result<float>(boost::math::tr1::assoc_legendref(ui, ui, f));
30    check_result<double>(boost::math::tr1::assoc_legendre(ui, ui, d));
31    check_result<long double>(boost::math::tr1::assoc_legendre(ui, ui, l));
32    check_result<long double>(boost::math::tr1::assoc_legendrel(ui, ui, l));
33    check_result<double>(boost::math::tr1::assoc_legendre(ui, ui, i));
34    check_result<double>(boost::math::tr1::assoc_legendre(ui, ui, ui));
35 
36    check_result<float>(boost::math::tr1::beta(f, f));
37    check_result<float>(boost::math::tr1::betaf(f, f));
38    check_result<double>(boost::math::tr1::beta(d, d));
39    check_result<long double>(boost::math::tr1::beta(l, l));
40    check_result<long double>(boost::math::tr1::betal(l, l));
41    check_result<double>(boost::math::tr1::beta(ui, ui));
42    check_result<double>(boost::math::tr1::beta(i, ui));
43    check_result<double>(boost::math::tr1::beta(f, d));
44    check_result<long double>(boost::math::tr1::beta(l, d));
45 
46    check_result<float>(boost::math::tr1::comp_ellint_1(f));
47    check_result<float>(boost::math::tr1::comp_ellint_1f(f));
48    check_result<double>(boost::math::tr1::comp_ellint_1(d));
49    check_result<long double>(boost::math::tr1::comp_ellint_1(l));
50    check_result<long double>(boost::math::tr1::comp_ellint_1l(l));
51    check_result<double>(boost::math::tr1::comp_ellint_1(ui));
52    check_result<double>(boost::math::tr1::comp_ellint_1(i));
53 
54    check_result<float>(boost::math::tr1::comp_ellint_2(f));
55    check_result<float>(boost::math::tr1::comp_ellint_2f(f));
56    check_result<double>(boost::math::tr1::comp_ellint_2(d));
57    check_result<long double>(boost::math::tr1::comp_ellint_2(l));
58    check_result<long double>(boost::math::tr1::comp_ellint_2l(l));
59    check_result<double>(boost::math::tr1::comp_ellint_2(ui));
60    check_result<double>(boost::math::tr1::comp_ellint_2(i));
61 
62    check_result<float>(boost::math::tr1::comp_ellint_3(f, f));
63    check_result<float>(boost::math::tr1::comp_ellint_3f(f, f));
64    check_result<double>(boost::math::tr1::comp_ellint_3(d, d));
65    check_result<long double>(boost::math::tr1::comp_ellint_3(l, l));
66    check_result<long double>(boost::math::tr1::comp_ellint_3l(l, l));
67    check_result<double>(boost::math::tr1::comp_ellint_3(ui, ui));
68    check_result<double>(boost::math::tr1::comp_ellint_3(i, ui));
69    check_result<double>(boost::math::tr1::comp_ellint_3(f, d));
70    check_result<long double>(boost::math::tr1::comp_ellint_3(l, d));
71 
72    check_result<float>(boost::math::tr1::cyl_bessel_i(f, f));
73    check_result<float>(boost::math::tr1::cyl_bessel_if(f, f));
74    check_result<double>(boost::math::tr1::cyl_bessel_i(d, d));
75    check_result<long double>(boost::math::tr1::cyl_bessel_i(l, l));
76    check_result<long double>(boost::math::tr1::cyl_bessel_il(l, l));
77    check_result<double>(boost::math::tr1::cyl_bessel_i(ui, ui));
78    check_result<double>(boost::math::tr1::cyl_bessel_i(i, ui));
79    check_result<double>(boost::math::tr1::cyl_bessel_i(f, d));
80    check_result<long double>(boost::math::tr1::cyl_bessel_i(l, d));
81 
82    check_result<float>(boost::math::tr1::cyl_bessel_j(f, f));
83    check_result<float>(boost::math::tr1::cyl_bessel_jf(f, f));
84    check_result<double>(boost::math::tr1::cyl_bessel_j(d, d));
85    check_result<long double>(boost::math::tr1::cyl_bessel_j(l, l));
86    check_result<long double>(boost::math::tr1::cyl_bessel_jl(l, l));
87    check_result<double>(boost::math::tr1::cyl_bessel_j(ui, ui));
88    check_result<double>(boost::math::tr1::cyl_bessel_j(i, ui));
89    check_result<double>(boost::math::tr1::cyl_bessel_j(f, d));
90    check_result<long double>(boost::math::tr1::cyl_bessel_j(l, d));
91 
92    check_result<float>(boost::math::tr1::cyl_bessel_k(f, f));
93    check_result<float>(boost::math::tr1::cyl_bessel_kf(f, f));
94    check_result<double>(boost::math::tr1::cyl_bessel_k(d, d));
95    check_result<long double>(boost::math::tr1::cyl_bessel_k(l, l));
96    check_result<long double>(boost::math::tr1::cyl_bessel_kl(l, l));
97    check_result<double>(boost::math::tr1::cyl_bessel_k(ui, ui));
98    check_result<double>(boost::math::tr1::cyl_bessel_k(i, ui));
99    check_result<double>(boost::math::tr1::cyl_bessel_k(f, d));
100    check_result<long double>(boost::math::tr1::cyl_bessel_k(l, d));
101 
102    check_result<float>(boost::math::tr1::cyl_neumann(f, f));
103    check_result<float>(boost::math::tr1::cyl_neumannf(f, f));
104    check_result<double>(boost::math::tr1::cyl_neumann(d, d));
105    check_result<long double>(boost::math::tr1::cyl_neumann(l, l));
106    check_result<long double>(boost::math::tr1::cyl_neumannl(l, l));
107    check_result<double>(boost::math::tr1::cyl_neumann(ui, ui));
108    check_result<double>(boost::math::tr1::cyl_neumann(i, ui));
109    check_result<double>(boost::math::tr1::cyl_neumann(f, d));
110    check_result<long double>(boost::math::tr1::cyl_neumann(l, d));
111 
112    check_result<float>(boost::math::tr1::ellint_1(f, f));
113    check_result<float>(boost::math::tr1::ellint_1f(f, f));
114    check_result<double>(boost::math::tr1::ellint_1(d, d));
115    check_result<long double>(boost::math::tr1::ellint_1(l, l));
116    check_result<long double>(boost::math::tr1::ellint_1l(l, l));
117    check_result<double>(boost::math::tr1::ellint_1(ui, ui));
118    check_result<double>(boost::math::tr1::ellint_1(i, ui));
119    check_result<double>(boost::math::tr1::ellint_1(f, d));
120    check_result<long double>(boost::math::tr1::ellint_1(l, d));
121 
122    check_result<float>(boost::math::tr1::ellint_2(f, f));
123    check_result<float>(boost::math::tr1::ellint_2f(f, f));
124    check_result<double>(boost::math::tr1::ellint_2(d, d));
125    check_result<long double>(boost::math::tr1::ellint_2(l, l));
126    check_result<long double>(boost::math::tr1::ellint_2l(l, l));
127    check_result<double>(boost::math::tr1::ellint_2(ui, ui));
128    check_result<double>(boost::math::tr1::ellint_2(i, ui));
129    check_result<double>(boost::math::tr1::ellint_2(f, d));
130    check_result<long double>(boost::math::tr1::ellint_2(l, d));
131 
132    check_result<float>(boost::math::tr1::ellint_3(f, f, f));
133    check_result<float>(boost::math::tr1::ellint_3f(f, f, f));
134    check_result<double>(boost::math::tr1::ellint_3(d, d, d));
135    check_result<long double>(boost::math::tr1::ellint_3(l, l, l));
136    check_result<long double>(boost::math::tr1::ellint_3l(l, l, l));
137    check_result<double>(boost::math::tr1::ellint_3(ui, ui, i));
138    check_result<double>(boost::math::tr1::ellint_3(i, ui, f));
139    check_result<double>(boost::math::tr1::ellint_3(f, d, i));
140    check_result<long double>(boost::math::tr1::ellint_3(l, d, f));
141 
142    check_result<float>(boost::math::tr1::expint(f));
143    check_result<float>(boost::math::tr1::expintf(f));
144    check_result<double>(boost::math::tr1::expint(d));
145    check_result<long double>(boost::math::tr1::expint(l));
146    check_result<long double>(boost::math::tr1::expintl(l));
147    check_result<double>(boost::math::tr1::expint(ui));
148    check_result<double>(boost::math::tr1::expint(i));
149 
150    check_result<float>(boost::math::tr1::hermite(ui, f));
151    check_result<float>(boost::math::tr1::hermitef(ui, f));
152    check_result<double>(boost::math::tr1::hermite(ui, d));
153    check_result<long double>(boost::math::tr1::hermite(ui, l));
154    check_result<long double>(boost::math::tr1::hermitel(ui, l));
155    check_result<double>(boost::math::tr1::hermite(ui, i));
156    check_result<double>(boost::math::tr1::hermite(ui, ui));
157 
158    check_result<float>(boost::math::tr1::laguerre(ui, f));
159    check_result<float>(boost::math::tr1::laguerref(ui, f));
160    check_result<double>(boost::math::tr1::laguerre(ui, d));
161    check_result<long double>(boost::math::tr1::laguerre(ui, l));
162    check_result<long double>(boost::math::tr1::laguerrel(ui, l));
163    check_result<double>(boost::math::tr1::laguerre(ui, i));
164    check_result<double>(boost::math::tr1::laguerre(ui, ui));
165 
166    check_result<float>(boost::math::tr1::legendre(ui, f));
167    check_result<float>(boost::math::tr1::legendref(ui, f));
168    check_result<double>(boost::math::tr1::legendre(ui, d));
169    check_result<long double>(boost::math::tr1::legendre(ui, l));
170    check_result<long double>(boost::math::tr1::legendrel(ui, l));
171    check_result<double>(boost::math::tr1::legendre(ui, i));
172    check_result<double>(boost::math::tr1::legendre(ui, ui));
173 
174    check_result<float>(boost::math::tr1::riemann_zeta(f));
175    check_result<float>(boost::math::tr1::riemann_zetaf(f));
176    check_result<double>(boost::math::tr1::riemann_zeta(d));
177    check_result<long double>(boost::math::tr1::riemann_zeta(l));
178    check_result<long double>(boost::math::tr1::riemann_zetal(l));
179    check_result<double>(boost::math::tr1::riemann_zeta(ui));
180    check_result<double>(boost::math::tr1::riemann_zeta(i));
181 
182    check_result<float>(boost::math::tr1::sph_bessel(ui, f));
183    check_result<float>(boost::math::tr1::sph_besself(ui, f));
184    check_result<double>(boost::math::tr1::sph_bessel(ui, d));
185    check_result<long double>(boost::math::tr1::sph_bessel(ui, l));
186    check_result<long double>(boost::math::tr1::sph_bessell(ui, l));
187    check_result<double>(boost::math::tr1::sph_bessel(ui, i));
188    check_result<double>(boost::math::tr1::sph_bessel(ui, ui));
189 
190    check_result<float>(boost::math::tr1::sph_legendre(ui, ui, f));
191    check_result<float>(boost::math::tr1::sph_legendref(ui, ui, f));
192    check_result<double>(boost::math::tr1::sph_legendre(ui, ui, d));
193    check_result<long double>(boost::math::tr1::sph_legendre(ui, ui, l));
194    check_result<long double>(boost::math::tr1::sph_legendrel(ui, ui, l));
195    check_result<double>(boost::math::tr1::sph_legendre(ui, ui, i));
196    check_result<double>(boost::math::tr1::sph_legendre(ui, ui, ui));
197 
198    check_result<float>(boost::math::tr1::sph_neumann(ui, f));
199    check_result<float>(boost::math::tr1::sph_neumannf(ui, f));
200    check_result<double>(boost::math::tr1::sph_neumann(ui, d));
201    check_result<long double>(boost::math::tr1::sph_neumann(ui, l));
202    check_result<long double>(boost::math::tr1::sph_neumannl(ui, l));
203    check_result<double>(boost::math::tr1::sph_neumann(ui, i));
204    check_result<double>(boost::math::tr1::sph_neumann(ui, ui));
205 
206    check_result<float>(boost::math::tr1::acosh(f));
207    check_result<float>(boost::math::tr1::acoshf(f));
208    check_result<double>(boost::math::tr1::acosh(d));
209    check_result<long double>(boost::math::tr1::acosh(l));
210    check_result<long double>(boost::math::tr1::acoshl(l));
211    check_result<double>(boost::math::tr1::acosh(ui));
212    check_result<double>(boost::math::tr1::acosh(i));
213 
214    check_result<float>(boost::math::tr1::asinh(f));
215    check_result<float>(boost::math::tr1::asinhf(f));
216    check_result<double>(boost::math::tr1::asinh(d));
217    check_result<long double>(boost::math::tr1::asinh(l));
218    check_result<long double>(boost::math::tr1::asinhl(l));
219    check_result<double>(boost::math::tr1::asinh(ui));
220    check_result<double>(boost::math::tr1::asinh(i));
221 
222    check_result<float>(boost::math::tr1::atanh(f));
223    check_result<float>(boost::math::tr1::atanhf(f));
224    check_result<double>(boost::math::tr1::atanh(d));
225    check_result<long double>(boost::math::tr1::atanh(l));
226    check_result<long double>(boost::math::tr1::atanhl(l));
227    check_result<double>(boost::math::tr1::atanh(ui));
228    check_result<double>(boost::math::tr1::atanh(i));
229 
230    check_result<float>(boost::math::tr1::cbrt(f));
231    check_result<float>(boost::math::tr1::cbrtf(f));
232    check_result<double>(boost::math::tr1::cbrt(d));
233    check_result<long double>(boost::math::tr1::cbrt(l));
234    check_result<long double>(boost::math::tr1::cbrtl(l));
235    check_result<double>(boost::math::tr1::cbrt(ui));
236    check_result<double>(boost::math::tr1::cbrt(i));
237 
238    check_result<float>(boost::math::tr1::copysign(f, f));
239    check_result<float>(boost::math::tr1::copysignf(f, f));
240    check_result<double>(boost::math::tr1::copysign(d, d));
241    check_result<long double>(boost::math::tr1::copysign(l, l));
242    check_result<long double>(boost::math::tr1::copysignl(l, l));
243    check_result<double>(boost::math::tr1::copysign(d, i));
244    check_result<double>(boost::math::tr1::copysign(ui, f));
245 
246    check_result<float>(boost::math::tr1::erf(f));
247    check_result<float>(boost::math::tr1::erff(f));
248    check_result<double>(boost::math::tr1::erf(d));
249    check_result<long double>(boost::math::tr1::erf(l));
250    check_result<long double>(boost::math::tr1::erfl(l));
251    check_result<double>(boost::math::tr1::erf(ui));
252    check_result<double>(boost::math::tr1::erf(i));
253 
254    check_result<float>(boost::math::tr1::erfc(f));
255    check_result<float>(boost::math::tr1::erfcf(f));
256    check_result<double>(boost::math::tr1::erfc(d));
257    check_result<long double>(boost::math::tr1::erfc(l));
258    check_result<long double>(boost::math::tr1::erfcl(l));
259    check_result<double>(boost::math::tr1::erfc(ui));
260    check_result<double>(boost::math::tr1::erfc(i));
261 
262    check_result<float>(boost::math::tr1::expm1(f));
263    check_result<float>(boost::math::tr1::expm1f(f));
264    check_result<double>(boost::math::tr1::expm1(d));
265    check_result<long double>(boost::math::tr1::expm1(l));
266    check_result<long double>(boost::math::tr1::expm1l(l));
267    check_result<double>(boost::math::tr1::expm1(ui));
268    check_result<double>(boost::math::tr1::expm1(i));
269 
270    check_result<float>(boost::math::tr1::fmin(f, f));
271    check_result<float>(boost::math::tr1::fminf(f, f));
272    check_result<double>(boost::math::tr1::fmin(d, d));
273    check_result<long double>(boost::math::tr1::fmin(l, l));
274    check_result<long double>(boost::math::tr1::fminl(l, l));
275    check_result<double>(boost::math::tr1::fmin(d, i));
276    check_result<double>(boost::math::tr1::fmin(ui, f));
277 
278    check_result<float>(boost::math::tr1::fmax(f, f));
279    check_result<float>(boost::math::tr1::fmaxf(f, f));
280    check_result<double>(boost::math::tr1::fmax(d, d));
281    check_result<long double>(boost::math::tr1::fmax(l, l));
282    check_result<long double>(boost::math::tr1::fmaxl(l, l));
283    check_result<double>(boost::math::tr1::fmax(d, i));
284    check_result<double>(boost::math::tr1::fmax(ui, f));
285 
286    check_result<float>(boost::math::tr1::hypot(f, f));
287    check_result<float>(boost::math::tr1::hypotf(f, f));
288    check_result<double>(boost::math::tr1::hypot(d, d));
289    check_result<long double>(boost::math::tr1::hypot(l, l));
290    check_result<long double>(boost::math::tr1::hypotl(l, l));
291    check_result<double>(boost::math::tr1::hypot(d, i));
292    check_result<double>(boost::math::tr1::hypot(ui, f));
293 
294    check_result<float>(boost::math::tr1::lgamma(f));
295    check_result<float>(boost::math::tr1::lgammaf(f));
296    check_result<double>(boost::math::tr1::lgamma(d));
297    check_result<long double>(boost::math::tr1::lgamma(l));
298    check_result<long double>(boost::math::tr1::lgammal(l));
299    check_result<double>(boost::math::tr1::lgamma(ui));
300    check_result<double>(boost::math::tr1::lgamma(i));
301 
302    check_result<long long>(boost::math::tr1::llround(f));
303    check_result<long long>(boost::math::tr1::llroundf(f));
304    check_result<long long>(boost::math::tr1::llround(d));
305    check_result<long long>(boost::math::tr1::llround(l));
306    check_result<long long>(boost::math::tr1::llroundl(l));
307    check_result<long long>(boost::math::tr1::llround(ui));
308    check_result<long long>(boost::math::tr1::llround(i));
309 
310    check_result<float>(boost::math::tr1::log1p(f));
311    check_result<float>(boost::math::tr1::log1pf(f));
312    check_result<double>(boost::math::tr1::log1p(d));
313    check_result<long double>(boost::math::tr1::log1p(l));
314    check_result<long double>(boost::math::tr1::log1pl(l));
315    check_result<double>(boost::math::tr1::log1p(ui));
316    check_result<double>(boost::math::tr1::log1p(i));
317 
318    check_result<long>(boost::math::tr1::lround(f));
319    check_result<long>(boost::math::tr1::lroundf(f));
320    check_result<long>(boost::math::tr1::lround(d));
321    check_result<long>(boost::math::tr1::lround(l));
322    check_result<long>(boost::math::tr1::lroundl(l));
323    check_result<long>(boost::math::tr1::lround(ui));
324    check_result<long>(boost::math::tr1::lround(i));
325 
326    check_result<float>(boost::math::tr1::round(f));
327    check_result<float>(boost::math::tr1::roundf(f));
328    check_result<double>(boost::math::tr1::round(d));
329    check_result<long double>(boost::math::tr1::round(l));
330    check_result<long double>(boost::math::tr1::roundl(l));
331    check_result<double>(boost::math::tr1::round(ui));
332    check_result<double>(boost::math::tr1::round(i));
333 
334    check_result<float>(boost::math::tr1::nextafter(f, f));
335    check_result<float>(boost::math::tr1::nextafterf(f, f));
336    check_result<double>(boost::math::tr1::nextafter(d, d));
337    check_result<long double>(boost::math::tr1::nextafter(l, l));
338    check_result<long double>(boost::math::tr1::nextafterl(l, l));
339    check_result<double>(boost::math::tr1::nextafter(d, i));
340    check_result<double>(boost::math::tr1::nextafter(ui, f));
341 
342    check_result<float>(boost::math::tr1::nexttoward(f, f));
343    check_result<float>(boost::math::tr1::nexttowardf(f, f));
344    check_result<double>(boost::math::tr1::nexttoward(d, d));
345    check_result<long double>(boost::math::tr1::nexttoward(l, l));
346    check_result<long double>(boost::math::tr1::nexttowardl(l, l));
347    check_result<double>(boost::math::tr1::nexttoward(d, i));
348    check_result<double>(boost::math::tr1::nexttoward(ui, f));
349 
350    check_result<float>(boost::math::tr1::tgamma(f));
351    check_result<float>(boost::math::tr1::tgammaf(f));
352    check_result<double>(boost::math::tr1::tgamma(d));
353    check_result<long double>(boost::math::tr1::tgamma(l));
354    check_result<long double>(boost::math::tr1::tgammal(l));
355    check_result<double>(boost::math::tr1::tgamma(ui));
356    check_result<double>(boost::math::tr1::tgamma(i));
357 
358    check_result<float>(boost::math::tr1::trunc(f));
359    check_result<float>(boost::math::tr1::truncf(f));
360    check_result<double>(boost::math::tr1::trunc(d));
361    check_result<long double>(boost::math::tr1::trunc(l));
362    check_result<long double>(boost::math::tr1::truncl(l));
363    check_result<double>(boost::math::tr1::trunc(ui));
364    check_result<double>(boost::math::tr1::trunc(i));
365 
366 }
367