1 // Copyright John Maddock 2006.
2 // Copyright Paul A. Bristow 2007, 2010.
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7 #ifndef BOOST_LIBS_MATH_TEST_INSTANTIATE_HPP
8 #define BOOST_LIBS_MATH_TEST_INSTANTIATE_HPP
9
10 #ifndef BOOST_MATH_ASSERT_UNDEFINED_POLICY
11 # define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
12 #endif
13
14 #include <boost/math/distributions.hpp>
15
16 #include <boost/math/special_functions.hpp>
17 #include <boost/math/concepts/distributions.hpp>
18 #include <boost/concept_archetype.hpp>
19
20 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
21
22 typedef boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false> > test_policy;
23
24 namespace test{
25
26 BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(test_policy)
27
28 }
29
30 namespace dist_test{
31
32 BOOST_MATH_DECLARE_DISTRIBUTIONS(double, test_policy)
33
34 }
35 #endif
36
37 #if !defined(TEST_GROUP_1) && !defined(TEST_GROUP_2) && !defined(TEST_GROUP_3) \
38 && !defined(TEST_GROUP_4) && !defined(TEST_GROUP_5) && !defined(TEST_GROUP_6) \
39 && !defined(TEST_GROUP_7) && !defined(TEST_GROUP_8) && !defined(TEST_GROUP_9)
40 # define TEST_GROUP_1
41 # define TEST_GROUP_2
42 # define TEST_GROUP_3
43 # define TEST_GROUP_4
44 # define TEST_GROUP_5
45 # define TEST_GROUP_6
46 # define TEST_GROUP_7
47 # define TEST_GROUP_8
48 # define TEST_GROUP_9
49 #endif
50
51 template <class RealType>
instantiate(RealType)52 void instantiate(RealType)
53 {
54 using namespace boost;
55 using namespace boost::math;
56 using namespace boost::math::concepts;
57 #ifdef TEST_GROUP_1
58 function_requires<DistributionConcept<arcsine_distribution<RealType> > >();
59 function_requires<DistributionConcept<bernoulli_distribution<RealType> > >();
60 function_requires<DistributionConcept<beta_distribution<RealType> > >();
61 function_requires<DistributionConcept<binomial_distribution<RealType> > >();
62 function_requires<DistributionConcept<cauchy_distribution<RealType> > >();
63 function_requires<DistributionConcept<chi_squared_distribution<RealType> > >();
64 function_requires<DistributionConcept<exponential_distribution<RealType> > >();
65 function_requires<DistributionConcept<extreme_value_distribution<RealType> > >();
66 function_requires<DistributionConcept<fisher_f_distribution<RealType> > >();
67 function_requires<DistributionConcept<gamma_distribution<RealType> > >();
68 function_requires<DistributionConcept<geometric_distribution<RealType> > >();
69 function_requires<DistributionConcept<hypergeometric_distribution<RealType> > >();
70 function_requires<DistributionConcept<hyperexponential_distribution<RealType> > >();
71 function_requires<DistributionConcept<inverse_chi_squared_distribution<RealType> > >();
72 function_requires<DistributionConcept<inverse_gamma_distribution<RealType> > >();
73 function_requires<DistributionConcept<inverse_gaussian_distribution<RealType> > >();
74 function_requires<DistributionConcept<laplace_distribution<RealType> > >();
75 function_requires<DistributionConcept<logistic_distribution<RealType> > >();
76 function_requires<DistributionConcept<lognormal_distribution<RealType> > >();
77 function_requires<DistributionConcept<negative_binomial_distribution<RealType> > >();
78 function_requires<DistributionConcept<non_central_chi_squared_distribution<RealType> > >();
79 function_requires<DistributionConcept<non_central_beta_distribution<RealType> > >();
80 function_requires<DistributionConcept<non_central_f_distribution<RealType> > >();
81 function_requires<DistributionConcept<non_central_t_distribution<RealType> > >();
82 function_requires<DistributionConcept<normal_distribution<RealType> > >();
83 function_requires<DistributionConcept<pareto_distribution<RealType> > >();
84 function_requires<DistributionConcept<poisson_distribution<RealType> > >();
85 function_requires<DistributionConcept<rayleigh_distribution<RealType> > >();
86 function_requires<DistributionConcept<students_t_distribution<RealType> > >();
87 function_requires<DistributionConcept<skew_normal_distribution<RealType> > >();
88 function_requires<DistributionConcept<triangular_distribution<RealType> > >();
89 function_requires<DistributionConcept<uniform_distribution<RealType> > >();
90 function_requires<DistributionConcept<weibull_distribution<RealType> > >();
91 #endif
92 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
93 #ifdef TEST_GROUP_2
94 function_requires<DistributionConcept<arcsine_distribution<RealType> > >();
95 function_requires<DistributionConcept<bernoulli_distribution<RealType, test_policy> > >();
96 function_requires<DistributionConcept<beta_distribution<RealType, test_policy> > >();
97 function_requires<DistributionConcept<binomial_distribution<RealType, test_policy> > >();
98 function_requires<DistributionConcept<cauchy_distribution<RealType, test_policy> > >();
99 function_requires<DistributionConcept<chi_squared_distribution<RealType, test_policy> > >();
100 function_requires<DistributionConcept<exponential_distribution<RealType, test_policy> > >();
101 function_requires<DistributionConcept<extreme_value_distribution<RealType, test_policy> > >();
102 function_requires<DistributionConcept<fisher_f_distribution<RealType, test_policy> > >();
103 function_requires<DistributionConcept<gamma_distribution<RealType, test_policy> > >();
104 function_requires<DistributionConcept<geometric_distribution<RealType, test_policy> > >();
105 function_requires<DistributionConcept<hypergeometric_distribution<RealType, test_policy> > >();
106 function_requires<DistributionConcept<inverse_chi_squared_distribution<RealType, test_policy> > >();
107 function_requires<DistributionConcept<inverse_gamma_distribution<RealType, test_policy> > >();
108 function_requires<DistributionConcept<inverse_gaussian_distribution<RealType, test_policy> > >();
109 function_requires<DistributionConcept<laplace_distribution<RealType, test_policy> > >();
110 function_requires<DistributionConcept<logistic_distribution<RealType, test_policy> > >();
111 function_requires<DistributionConcept<lognormal_distribution<RealType, test_policy> > >();
112 function_requires<DistributionConcept<negative_binomial_distribution<RealType, test_policy> > >();
113 function_requires<DistributionConcept<non_central_chi_squared_distribution<RealType, test_policy> > >();
114 function_requires<DistributionConcept<non_central_beta_distribution<RealType, test_policy> > >();
115 function_requires<DistributionConcept<non_central_f_distribution<RealType, test_policy> > >();
116 function_requires<DistributionConcept<non_central_t_distribution<RealType, test_policy> > >();
117 function_requires<DistributionConcept<normal_distribution<RealType, test_policy> > >();
118 function_requires<DistributionConcept<pareto_distribution<RealType, test_policy> > >();
119 function_requires<DistributionConcept<poisson_distribution<RealType, test_policy> > >();
120 function_requires<DistributionConcept<rayleigh_distribution<RealType, test_policy> > >();
121 function_requires<DistributionConcept<skew_normal_distribution<RealType, test_policy> > >();
122 function_requires<DistributionConcept<students_t_distribution<RealType, test_policy> > >();
123 function_requires<DistributionConcept<triangular_distribution<RealType, test_policy> > >();
124 function_requires<DistributionConcept<uniform_distribution<RealType, test_policy> > >();
125 function_requires<DistributionConcept<weibull_distribution<RealType, test_policy> > >();
126 #endif
127 #ifdef TEST_GROUP_3
128 function_requires<DistributionConcept<dist_test::arcsine > >();
129 function_requires<DistributionConcept<dist_test::bernoulli > >();
130 function_requires<DistributionConcept<dist_test::beta > >();
131 function_requires<DistributionConcept<dist_test::binomial > >();
132 function_requires<DistributionConcept<dist_test::cauchy > >();
133 function_requires<DistributionConcept<dist_test::chi_squared > >();
134 function_requires<DistributionConcept<dist_test::exponential > >();
135 function_requires<DistributionConcept<dist_test::extreme_value > >();
136 function_requires<DistributionConcept<dist_test::fisher_f > >();
137 function_requires<DistributionConcept<dist_test::gamma > >();
138 function_requires<DistributionConcept<dist_test::geometric > >();
139 function_requires<DistributionConcept<dist_test::hypergeometric > >();
140 function_requires<DistributionConcept<dist_test::inverse_chi_squared > >();
141 function_requires<DistributionConcept<dist_test::inverse_gamma > >();
142 function_requires<DistributionConcept<dist_test::inverse_gaussian > >();
143 function_requires<DistributionConcept<dist_test::laplace > >();
144 function_requires<DistributionConcept<dist_test::logistic > >();
145 function_requires<DistributionConcept<dist_test::lognormal > >();
146 function_requires<DistributionConcept<dist_test::negative_binomial > >();
147 function_requires<DistributionConcept<dist_test::non_central_chi_squared > >();
148 function_requires<DistributionConcept<dist_test::non_central_beta > >();
149 function_requires<DistributionConcept<dist_test::non_central_f > >();
150 function_requires<DistributionConcept<dist_test::non_central_t > >();
151 function_requires<DistributionConcept<dist_test::normal > >();
152 function_requires<DistributionConcept<dist_test::pareto > >();
153 function_requires<DistributionConcept<dist_test::poisson > >();
154 function_requires<DistributionConcept<dist_test::rayleigh > >();
155 function_requires<DistributionConcept<dist_test::students_t > >();
156 function_requires<DistributionConcept<dist_test::triangular > >();
157 function_requires<DistributionConcept<dist_test::uniform > >();
158 function_requires<DistributionConcept<dist_test::weibull > >();
159 function_requires<DistributionConcept<dist_test::hypergeometric > >();
160 #endif
161 #endif
162 int i;
163 RealType v1(0.5), v2(0.5), v3(0.5);
164 boost::detail::dummy_constructor dc;
165 boost::output_iterator_archetype<RealType> oi(dc);
166 #ifdef TEST_GROUP_4
167 boost::math::tgamma(v1);
168 boost::math::tgamma1pm1(v1);
169 boost::math::lgamma(v1);
170 boost::math::lgamma(v1, &i);
171 boost::math::digamma(v1);
172 boost::math::trigamma(v1);
173 boost::math::polygamma(i, v1);
174 boost::math::tgamma_ratio(v1, v2);
175 boost::math::tgamma_delta_ratio(v1, v2);
176 boost::math::factorial<RealType>(i);
177 boost::math::unchecked_factorial<RealType>(i);
178 i = boost::math::max_factorial<RealType>::value;
179 boost::math::double_factorial<RealType>(i);
180 boost::math::rising_factorial(v1, i);
181 boost::math::falling_factorial(v1, i);
182 boost::math::tgamma(v1, v2);
183 boost::math::tgamma_lower(v1, v2);
184 boost::math::gamma_p(v1, v2);
185 boost::math::gamma_q(v1, v2);
186 boost::math::gamma_p_inv(v1, v2);
187 boost::math::gamma_q_inv(v1, v2);
188 boost::math::gamma_p_inva(v1, v2);
189 boost::math::gamma_q_inva(v1, v2);
190 boost::math::erf(v1);
191 boost::math::erfc(v1);
192 boost::math::erf_inv(v1);
193 boost::math::erfc_inv(v1);
194 boost::math::beta(v1, v2);
195 boost::math::beta(v1, v2, v3);
196 boost::math::betac(v1, v2, v3);
197 boost::math::ibeta(v1, v2, v3);
198 boost::math::ibetac(v1, v2, v3);
199 boost::math::ibeta_inv(v1, v2, v3);
200 boost::math::ibetac_inv(v1, v2, v3);
201 boost::math::ibeta_inva(v1, v2, v3);
202 boost::math::ibetac_inva(v1, v2, v3);
203 boost::math::ibeta_invb(v1, v2, v3);
204 boost::math::ibetac_invb(v1, v2, v3);
205 boost::math::gamma_p_derivative(v2, v3);
206 boost::math::ibeta_derivative(v1, v2, v3);
207 boost::math::binomial_coefficient<RealType>(i, i);
208 (boost::math::fpclassify)(v1);
209 (boost::math::isfinite)(v1);
210 (boost::math::isnormal)(v1);
211 (boost::math::isnan)(v1);
212 (boost::math::isinf)(v1);
213 (boost::math::signbit)(v1);
214 (boost::math::copysign)(v1, v2);
215 (boost::math::changesign)(v1);
216 (boost::math::sign)(v1);
217 boost::math::log1p(v1);
218 boost::math::expm1(v1);
219 boost::math::cbrt(v1);
220 boost::math::sqrt1pm1(v1);
221 boost::math::powm1(v1, v2);
222 boost::math::legendre_p(1, v1);
223 boost::math::legendre_p(1, 0, v1);
224 boost::math::legendre_q(1, v1);
225 boost::math::legendre_next(2, v1, v2, v3);
226 boost::math::legendre_next(2, 2, v1, v2, v3);
227 boost::math::laguerre(1, v1);
228 boost::math::laguerre(2, 1, v1);
229 boost::math::laguerre(2u, 1u, v1);
230 boost::math::laguerre_next(2, v1, v2, v3);
231 boost::math::laguerre_next(2, 1, v1, v2, v3);
232 boost::math::hermite(1, v1);
233 boost::math::hermite_next(2, v1, v2, v3);
234 boost::math::spherical_harmonic_r(2, 1, v1, v2);
235 boost::math::spherical_harmonic_i(2, 1, v1, v2);
236 boost::math::ellint_1(v1);
237 boost::math::ellint_1(v1, v2);
238 boost::math::ellint_2(v1);
239 boost::math::ellint_2(v1, v2);
240 boost::math::ellint_3(v1, v2);
241 boost::math::ellint_3(v1, v2, v3);
242 boost::math::ellint_d(v1);
243 boost::math::ellint_d(v1, v2);
244 boost::math::jacobi_zeta(v1, v2);
245 boost::math::heuman_lambda(v1, v2);
246 boost::math::ellint_rc(v1, v2);
247 boost::math::ellint_rd(v1, v2, v3);
248 boost::math::ellint_rf(v1, v2, v3);
249 boost::math::ellint_rg(v1, v2, v3);
250 boost::math::ellint_rj(v1, v2, v3, v1);
251 boost::math::jacobi_elliptic(v1, v2, &v1, &v2);
252 boost::math::jacobi_cd(v1, v2);
253 boost::math::jacobi_cn(v1, v2);
254 boost::math::jacobi_cs(v1, v2);
255 boost::math::jacobi_dc(v1, v2);
256 boost::math::jacobi_dn(v1, v2);
257 boost::math::jacobi_ds(v1, v2);
258 boost::math::jacobi_nc(v1, v2);
259 boost::math::jacobi_nd(v1, v2);
260 boost::math::jacobi_ns(v1, v2);
261 boost::math::jacobi_sc(v1, v2);
262 boost::math::jacobi_sd(v1, v2);
263 boost::math::jacobi_sn(v1, v2);
264 boost::math::hypot(v1, v2);
265 boost::math::sinc_pi(v1);
266 boost::math::sinhc_pi(v1);
267 boost::math::asinh(v1);
268 boost::math::acosh(v1);
269 boost::math::atanh(v1);
270 boost::math::sin_pi(v1);
271 boost::math::cos_pi(v1);
272 boost::math::cyl_neumann(v1, v2);
273 boost::math::cyl_neumann(i, v2);
274 boost::math::cyl_bessel_j(v1, v2);
275 boost::math::cyl_bessel_j(i, v2);
276 boost::math::cyl_bessel_i(v1, v2);
277 boost::math::cyl_bessel_i(i, v2);
278 boost::math::cyl_bessel_k(v1, v2);
279 boost::math::cyl_bessel_k(i, v2);
280 boost::math::sph_bessel(i, v2);
281 boost::math::sph_bessel(i, 1);
282 boost::math::sph_neumann(i, v2);
283 boost::math::sph_neumann(i, i);
284 boost::math::cyl_neumann_prime(v1, v2);
285 boost::math::cyl_neumann_prime(i, v2);
286 boost::math::cyl_bessel_j_prime(v1, v2);
287 boost::math::cyl_bessel_j_prime(i, v2);
288 boost::math::cyl_bessel_i_prime(v1, v2);
289 boost::math::cyl_bessel_i_prime(i, v2);
290 boost::math::cyl_bessel_k_prime(v1, v2);
291 boost::math::cyl_bessel_k_prime(i, v2);
292 boost::math::sph_bessel_prime(i, v2);
293 boost::math::sph_bessel_prime(i, 1);
294 boost::math::sph_neumann_prime(i, v2);
295 boost::math::sph_neumann_prime(i, i);
296 boost::math::cyl_bessel_j_zero(v1, i);
297 boost::math::cyl_bessel_j_zero(v1, i, i, oi);
298 boost::math::cyl_neumann_zero(v1, i);
299 boost::math::cyl_neumann_zero(v1, i, i, oi);
300 #ifdef TEST_COMPLEX
301 boost::math::cyl_hankel_1(v1, v2);
302 boost::math::cyl_hankel_1(i, v2);
303 boost::math::cyl_hankel_2(v1, v2);
304 boost::math::cyl_hankel_2(i, v2);
305 boost::math::sph_hankel_1(v1, v2);
306 boost::math::sph_hankel_1(i, v2);
307 boost::math::sph_hankel_2(v1, v2);
308 boost::math::sph_hankel_2(i, v2);
309 #endif
310 boost::math::airy_ai(v1);
311 boost::math::airy_bi(v1);
312 boost::math::airy_ai_prime(v1);
313 boost::math::airy_bi_prime(v1);
314
315 boost::math::airy_ai_zero<RealType>(i);
316 boost::math::airy_bi_zero<RealType>(i);
317 boost::math::airy_ai_zero<RealType>(i, i, oi);
318 boost::math::airy_bi_zero<RealType>(i, i, oi);
319
320 boost::math::expint(v1);
321 boost::math::expint(i);
322 boost::math::expint(i, v2);
323 boost::math::expint(i, i);
324 boost::math::zeta(v1);
325 boost::math::zeta(i);
326 boost::math::owens_t(v1, v2);
327 boost::math::trunc(v1);
328 boost::math::itrunc(v1);
329 boost::math::ltrunc(v1);
330 boost::math::round(v1);
331 boost::math::iround(v1);
332 boost::math::lround(v1);
333 boost::math::modf(v1, &v1);
334 boost::math::modf(v1, &i);
335 long l;
336 boost::math::modf(v1, &l);
337 #ifdef BOOST_HAS_LONG_LONG
338 boost::math::lltrunc(v1);
339 boost::math::llround(v1);
340 boost::long_long_type ll;
341 boost::math::modf(v1, &ll);
342 #endif
343 boost::math::pow<2>(v1);
344 boost::math::nextafter(v1, v1);
345 boost::math::float_next(v1);
346 boost::math::float_prior(v1);
347 boost::math::float_distance(v1, v1);
348
349 boost::math::unchecked_bernoulli_b2n<RealType>(i);
350 boost::math::bernoulli_b2n<RealType>(i);
351 boost::math::bernoulli_b2n<RealType>(i, i, &v1);
352 boost::math::tangent_t2n<RealType>(i);
353 boost::math::tangent_t2n<RealType>(i, i, &v1);
354
355 #endif
356 #ifdef TEST_GROUP_9
357 //
358 // Over again, but arguments may be expression templates:
359 //
360 boost::math::tgamma(v1 + 0);
361 boost::math::tgamma1pm1(v1 + 0);
362 boost::math::lgamma(v1 * 1);
363 boost::math::lgamma(v1 * 1, &i);
364 boost::math::digamma(v1 * 1);
365 boost::math::trigamma(v1 * 1);
366 boost::math::polygamma(i, v1 * 1);
367 boost::math::tgamma_ratio(v1 * 1, v2 + 0);
368 boost::math::tgamma_delta_ratio(v1 * 1, v2 + 0);
369 boost::math::factorial<RealType>(i);
370 boost::math::unchecked_factorial<RealType>(i);
371 i = boost::math::max_factorial<RealType>::value;
372 boost::math::double_factorial<RealType>(i);
373 boost::math::rising_factorial(v1 * 1, i);
374 boost::math::falling_factorial(v1 * 1, i);
375 boost::math::tgamma(v1 * 1, v2 + 0);
376 boost::math::tgamma_lower(v1 * 1, v2 - 0);
377 boost::math::gamma_p(v1 * 1, v2 + 0);
378 boost::math::gamma_q(v1 * 1, v2 + 0);
379 boost::math::gamma_p_inv(v1 * 1, v2 + 0);
380 boost::math::gamma_q_inv(v1 * 1, v2 + 0);
381 boost::math::gamma_p_inva(v1 * 1, v2 + 0);
382 boost::math::gamma_q_inva(v1 * 1, v2 + 0);
383 boost::math::erf(v1 * 1);
384 boost::math::erfc(v1 * 1);
385 boost::math::erf_inv(v1 * 1);
386 boost::math::erfc_inv(v1 * 1);
387 boost::math::beta(v1 * 1, v2 + 0);
388 boost::math::beta(v1 * 1, v2 + 0, v3 / 1);
389 boost::math::betac(v1 * 1, v2 + 0, v3 / 1);
390 boost::math::ibeta(v1 * 1, v2 + 0, v3 / 1);
391 boost::math::ibetac(v1 * 1, v2 + 0, v3 / 1);
392 boost::math::ibeta_inv(v1 * 1, v2 + 0, v3 / 1);
393 boost::math::ibetac_inv(v1 * 1, v2 + 0, v3 / 1);
394 boost::math::ibeta_inva(v1 * 1, v2 + 0, v3 / 1);
395 boost::math::ibetac_inva(v1 * 1, v2 + 0, v3 / 1);
396 boost::math::ibeta_invb(v1 * 1, v2 + 0, v3 / 1);
397 boost::math::ibetac_invb(v1 * 1, v2 + 0, v3 / 1);
398 boost::math::gamma_p_derivative(v2 * 1, v3 + 0);
399 boost::math::ibeta_derivative(v1 * 1, v2 + 0, v3 / 1);
400 (boost::math::fpclassify)(v1 * 1);
401 (boost::math::isfinite)(v1 * 1);
402 (boost::math::isnormal)(v1 * 1);
403 (boost::math::isnan)(v1 * 1);
404 (boost::math::isinf)(v1 * 1);
405 (boost::math::signbit)(v1 * 1);
406 (boost::math::copysign)(v1 * 1, v2 + 0);
407 (boost::math::changesign)(v1 * 1);
408 (boost::math::sign)(v1 * 1);
409 boost::math::log1p(v1 * 1);
410 boost::math::expm1(v1 * 1);
411 boost::math::cbrt(v1 * 1);
412 boost::math::sqrt1pm1(v1 * 1);
413 boost::math::powm1(v1 * 1, v2 + 0);
414 boost::math::legendre_p(1, v1 * 1);
415 boost::math::legendre_p(1, 0, v1 * 1);
416 boost::math::legendre_q(1, v1 * 1);
417 boost::math::legendre_next(2, v1 * 1, v2 + 0, v3 / 1);
418 boost::math::legendre_next(2, 2, v1 * 1, v2 + 0, v3 / 1);
419 boost::math::laguerre(1, v1 * 1);
420 boost::math::laguerre(2, 1, v1 * 1);
421 boost::math::laguerre(2u, 1u, v1 * 1);
422 boost::math::laguerre_next(2, v1 * 1, v2 + 0, v3 / 1);
423 boost::math::laguerre_next(2, 1, v1 * 1, v2 + 0, v3 / 1);
424 boost::math::hermite(1, v1 * 1);
425 boost::math::hermite_next(2, v1 * 1, v2 + 0, v3 / 1);
426 boost::math::spherical_harmonic_r(2, 1, v1 * 1, v2 + 0);
427 boost::math::spherical_harmonic_i(2, 1, v1 * 1, v2 + 0);
428 boost::math::ellint_1(v1 * 1);
429 boost::math::ellint_1(v1 * 1, v2 + 0);
430 boost::math::ellint_2(v1 * 1);
431 boost::math::ellint_2(v1 * 1, v2 + 0);
432 boost::math::ellint_3(v1 * 1, v2 + 0);
433 boost::math::ellint_3(v1 * 1, v2 + 0, v3 / 1);
434 boost::math::ellint_rc(v1 * 1, v2 + 0);
435 boost::math::ellint_rd(v1 * 1, v2 + 0, v3 / 1);
436 boost::math::ellint_rf(v1 * 1, v2 + 0, v3 / 1);
437 boost::math::ellint_rg(v1 * 1, v2 + 0, v3 / 1);
438 boost::math::ellint_rj(v1 * 1, v2 + 0, v3 / 1, v1 * 1);
439 boost::math::ellint_d(v1 * 1);
440 boost::math::ellint_d(v1 * 1, v2 + 0);
441 boost::math::jacobi_zeta(v1 * 1, v2 + 0);
442 boost::math::heuman_lambda(v1 * 1, v2 + 0);
443 boost::math::jacobi_elliptic(v1 * 1, v2 + 0, &v1, &v2);
444 boost::math::jacobi_cd(v1 * 1, v2 + 0);
445 boost::math::jacobi_cn(v1 * 1, v2 + 0);
446 boost::math::jacobi_cs(v1 * 1, v2 + 0);
447 boost::math::jacobi_dc(v1 * 1, v2 + 0);
448 boost::math::jacobi_dn(v1 * 1, v2 + 0);
449 boost::math::jacobi_ds(v1 * 1, v2 + 0);
450 boost::math::jacobi_nc(v1 * 1, v2 + 0);
451 boost::math::jacobi_nd(v1 * 1, v2 + 0);
452 boost::math::jacobi_ns(v1 * 1, v2 + 0);
453 boost::math::jacobi_sc(v1 * 1, v2 + 0);
454 boost::math::jacobi_sd(v1 * 1, v2 + 0);
455 boost::math::jacobi_sn(v1 * 1, v2 + 0);
456 boost::math::hypot(v1 * 1, v2 + 0);
457 boost::math::sinc_pi(v1 * 1);
458 boost::math::sinhc_pi(v1 * 1);
459 boost::math::asinh(v1 * 1);
460 boost::math::acosh(v1 * 1);
461 boost::math::atanh(v1 * 1);
462 boost::math::sin_pi(v1 * 1);
463 boost::math::cos_pi(v1 * 1);
464 boost::math::cyl_neumann(v1 * 1, v2 + 0);
465 boost::math::cyl_neumann(i, v2 * 1);
466 boost::math::cyl_bessel_j(v1 * 1, v2 + 0);
467 boost::math::cyl_bessel_j(i, v2 * 1);
468 boost::math::cyl_bessel_i(v1 * 1, v2 + 0);
469 boost::math::cyl_bessel_i(i, v2 * 1);
470 boost::math::cyl_bessel_k(v1 * 1, v2 + 0);
471 boost::math::cyl_bessel_k(i, v2 * 1);
472 boost::math::sph_bessel(i, v2 * 1);
473 boost::math::sph_bessel(i, 1);
474 boost::math::sph_neumann(i, v2 * 1);
475 boost::math::sph_neumann(i, i);
476 boost::math::cyl_neumann_prime(v1 * 1, v2 + 0);
477 boost::math::cyl_neumann_prime(i, v2 * 1);
478 boost::math::cyl_bessel_j_prime(v1 * 1, v2 + 0);
479 boost::math::cyl_bessel_j_prime(i, v2 * 1);
480 boost::math::cyl_bessel_i_prime(v1 * 1, v2 + 0);
481 boost::math::cyl_bessel_i_prime(i, v2 * 1);
482 boost::math::cyl_bessel_k_prime(v1 * 1, v2 + 0);
483 boost::math::cyl_bessel_k_prime(i, v2 * 1);
484 boost::math::sph_bessel_prime(i, v2 * 1);
485 boost::math::sph_bessel_prime(i, 1);
486 boost::math::sph_neumann_prime(i, v2 * 1);
487 boost::math::sph_neumann_prime(i, i);
488 boost::math::cyl_bessel_j_zero(v1 * 1, i);
489 boost::math::cyl_bessel_j_zero(v1 * 1, i, i, oi);
490 boost::math::cyl_neumann_zero(v1 * 1, i);
491 boost::math::cyl_neumann_zero(v1 * 1, i, i, oi);
492 #ifdef TEST_COMPLEX
493 boost::math::cyl_hankel_1(v1, v2);
494 boost::math::cyl_hankel_1(i, v2);
495 boost::math::cyl_hankel_2(v1, v2);
496 boost::math::cyl_hankel_2(i, v2);
497 boost::math::sph_hankel_1(v1, v2);
498 boost::math::sph_hankel_1(i, v2);
499 boost::math::sph_hankel_2(v1, v2);
500 boost::math::sph_hankel_2(i, v2);
501 #endif
502 boost::math::airy_ai(v1 * 1);
503 boost::math::airy_bi(v1 * 1);
504 boost::math::airy_ai_prime(v1 * 1);
505 boost::math::airy_bi_prime(v1 * 1);
506 boost::math::expint(v1 * 1);
507 boost::math::expint(i);
508 boost::math::expint(i, v2 * 1);
509 boost::math::expint(i, i);
510 boost::math::zeta(v1 * 1);
511 boost::math::zeta(i);
512 boost::math::owens_t(v1 * 1, v2 + 0);
513 boost::math::trunc(v1 * 1);
514 boost::math::itrunc(v1 * 1);
515 boost::math::ltrunc(v1 * 1);
516 boost::math::round(v1 * 1);
517 boost::math::iround(v1 * 1);
518 boost::math::lround(v1 * 1);
519 //boost::math::modf(v1 * 1, &v1);
520 //boost::math::modf(v1 * 1, &i);
521 //long l;
522 //boost::math::modf(v1 * 1, &l);
523 #ifdef BOOST_HAS_LONG_LONG
524 boost::math::lltrunc(v1 * 1);
525 boost::math::llround(v1 * 1);
526 //boost::long_long_type ll;
527 //boost::math::modf(v1 * 1, &ll);
528 #endif
529 boost::math::pow<2>(v1 * 1);
530 boost::math::nextafter(v1 * 1, v1 + 0);
531 boost::math::float_next(v1 * 1);
532 boost::math::float_prior(v1 * 1);
533 boost::math::float_distance(v1 * 1, v1 * 1);
534 #endif
535 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
536 #ifdef TEST_GROUP_5
537 //
538 // All over again, with a policy this time:
539 //
540 test_policy pol;
541 boost::math::tgamma(v1, pol);
542 boost::math::tgamma1pm1(v1, pol);
543 boost::math::lgamma(v1, pol);
544 boost::math::lgamma(v1, &i, pol);
545 boost::math::digamma(v1, pol);
546 boost::math::trigamma(v1, pol);
547 boost::math::polygamma(i, v1, pol);
548 boost::math::tgamma_ratio(v1, v2, pol);
549 boost::math::tgamma_delta_ratio(v1, v2, pol);
550 boost::math::factorial<RealType>(i, pol);
551 boost::math::unchecked_factorial<RealType>(i);
552 i = boost::math::max_factorial<RealType>::value;
553 boost::math::double_factorial<RealType>(i, pol);
554 boost::math::rising_factorial(v1, i, pol);
555 boost::math::falling_factorial(v1, i, pol);
556 boost::math::tgamma(v1, v2, pol);
557 boost::math::tgamma_lower(v1, v2, pol);
558 boost::math::gamma_p(v1, v2, pol);
559 boost::math::gamma_q(v1, v2, pol);
560 boost::math::gamma_p_inv(v1, v2, pol);
561 boost::math::gamma_q_inv(v1, v2, pol);
562 boost::math::gamma_p_inva(v1, v2, pol);
563 boost::math::gamma_q_inva(v1, v2, pol);
564 boost::math::erf(v1, pol);
565 boost::math::erfc(v1, pol);
566 boost::math::erf_inv(v1, pol);
567 boost::math::erfc_inv(v1, pol);
568 boost::math::beta(v1, v2, pol);
569 boost::math::beta(v1, v2, v3, pol);
570 boost::math::betac(v1, v2, v3, pol);
571 boost::math::ibeta(v1, v2, v3, pol);
572 boost::math::ibetac(v1, v2, v3, pol);
573 boost::math::ibeta_inv(v1, v2, v3, pol);
574 boost::math::ibetac_inv(v1, v2, v3, pol);
575 boost::math::ibeta_inva(v1, v2, v3, pol);
576 boost::math::ibetac_inva(v1, v2, v3, pol);
577 boost::math::ibeta_invb(v1, v2, v3, pol);
578 boost::math::ibetac_invb(v1, v2, v3, pol);
579 boost::math::gamma_p_derivative(v2, v3, pol);
580 boost::math::ibeta_derivative(v1, v2, v3, pol);
581 boost::math::binomial_coefficient<RealType>(i, i, pol);
582 boost::math::log1p(v1, pol);
583 boost::math::expm1(v1, pol);
584 boost::math::cbrt(v1, pol);
585 boost::math::sqrt1pm1(v1, pol);
586 boost::math::powm1(v1, v2, pol);
587 boost::math::legendre_p(1, v1, pol);
588 boost::math::legendre_p(1, 0, v1, pol);
589 boost::math::legendre_q(1, v1, pol);
590 boost::math::legendre_next(2, v1, v2, v3);
591 boost::math::legendre_next(2, 2, v1, v2, v3);
592 boost::math::laguerre(1, v1, pol);
593 boost::math::laguerre(2, 1, v1, pol);
594 boost::math::laguerre_next(2, v1, v2, v3);
595 boost::math::laguerre_next(2, 1, v1, v2, v3);
596 boost::math::hermite(1, v1, pol);
597 boost::math::hermite_next(2, v1, v2, v3);
598 boost::math::spherical_harmonic_r(2, 1, v1, v2, pol);
599 boost::math::spherical_harmonic_i(2, 1, v1, v2, pol);
600 boost::math::ellint_1(v1, pol);
601 boost::math::ellint_1(v1, v2, pol);
602 boost::math::ellint_2(v1, pol);
603 boost::math::ellint_2(v1, v2, pol);
604 boost::math::ellint_3(v1, v2, pol);
605 boost::math::ellint_3(v1, v2, v3, pol);
606 boost::math::ellint_d(v1, pol);
607 boost::math::ellint_d(v1, v2, pol);
608 boost::math::jacobi_zeta(v1, v2, pol);
609 boost::math::heuman_lambda(v1, v2, pol);
610 boost::math::ellint_rc(v1, v2, pol);
611 boost::math::ellint_rd(v1, v2, v3, pol);
612 boost::math::ellint_rf(v1, v2, v3, pol);
613 boost::math::ellint_rg(v1, v2, v3, pol);
614 boost::math::ellint_rj(v1, v2, v3, v1, pol);
615 boost::math::jacobi_elliptic(v1, v2, &v1, &v2, pol);
616 boost::math::jacobi_cd(v1, v2, pol);
617 boost::math::jacobi_cn(v1, v2, pol);
618 boost::math::jacobi_cs(v1, v2, pol);
619 boost::math::jacobi_dc(v1, v2, pol);
620 boost::math::jacobi_dn(v1, v2, pol);
621 boost::math::jacobi_ds(v1, v2, pol);
622 boost::math::jacobi_nc(v1, v2, pol);
623 boost::math::jacobi_nd(v1, v2, pol);
624 boost::math::jacobi_ns(v1, v2, pol);
625 boost::math::jacobi_sc(v1, v2, pol);
626 boost::math::jacobi_sd(v1, v2, pol);
627 boost::math::jacobi_sn(v1, v2, pol);
628 boost::math::hypot(v1, v2, pol);
629 boost::math::sinc_pi(v1, pol);
630 boost::math::sinhc_pi(v1, pol);
631 boost::math::asinh(v1, pol);
632 boost::math::acosh(v1, pol);
633 boost::math::atanh(v1, pol);
634 boost::math::sin_pi(v1, pol);
635 boost::math::cos_pi(v1, pol);
636 boost::math::cyl_neumann(v1, v2, pol);
637 boost::math::cyl_neumann(i, v2, pol);
638 boost::math::cyl_bessel_j(v1, v2, pol);
639 boost::math::cyl_bessel_j(i, v2, pol);
640 boost::math::cyl_bessel_i(v1, v2, pol);
641 boost::math::cyl_bessel_i(i, v2, pol);
642 boost::math::cyl_bessel_k(v1, v2, pol);
643 boost::math::cyl_bessel_k(i, v2, pol);
644 boost::math::sph_bessel(i, v2, pol);
645 boost::math::sph_bessel(i, 1, pol);
646 boost::math::sph_neumann(i, v2, pol);
647 boost::math::sph_neumann(i, i, pol);
648 boost::math::cyl_neumann_prime(v1, v2, pol);
649 boost::math::cyl_neumann_prime(i, v2, pol);
650 boost::math::cyl_bessel_j_prime(v1, v2, pol);
651 boost::math::cyl_bessel_j_prime(i, v2, pol);
652 boost::math::cyl_bessel_i_prime(v1, v2, pol);
653 boost::math::cyl_bessel_i_prime(i, v2, pol);
654 boost::math::cyl_bessel_k_prime(v1, v2, pol);
655 boost::math::cyl_bessel_k_prime(i, v2, pol);
656 boost::math::sph_bessel_prime(i, v2, pol);
657 boost::math::sph_bessel_prime(i, 1, pol);
658 boost::math::sph_neumann_prime(i, v2, pol);
659 boost::math::sph_neumann_prime(i, i, pol);
660 boost::math::cyl_bessel_j_zero(v1, i, pol);
661 boost::math::cyl_bessel_j_zero(v1, i, i, oi, pol);
662 boost::math::cyl_neumann_zero(v1, i, pol);
663 boost::math::cyl_neumann_zero(v1, i, i, oi, pol);
664 #ifdef TEST_COMPLEX
665 boost::math::cyl_hankel_1(v1, v2, pol);
666 boost::math::cyl_hankel_1(i, v2, pol);
667 boost::math::cyl_hankel_2(v1, v2, pol);
668 boost::math::cyl_hankel_2(i, v2, pol);
669 boost::math::sph_hankel_1(v1, v2, pol);
670 boost::math::sph_hankel_1(i, v2, pol);
671 boost::math::sph_hankel_2(v1, v2, pol);
672 boost::math::sph_hankel_2(i, v2, pol);
673 #endif
674 boost::math::airy_ai(v1, pol);
675 boost::math::airy_bi(v1, pol);
676 boost::math::airy_ai_prime(v1, pol);
677 boost::math::airy_bi_prime(v1, pol);
678
679 boost::math::airy_ai_zero<RealType>(i, pol);
680 boost::math::airy_bi_zero<RealType>(i, pol);
681 boost::math::airy_ai_zero<RealType>(i, i, oi, pol);
682 boost::math::airy_bi_zero<RealType>(i, i, oi, pol);
683
684 boost::math::expint(v1, pol);
685 boost::math::expint(i, pol);
686 boost::math::expint(i, v2, pol);
687 boost::math::expint(i, i, pol);
688 boost::math::zeta(v1, pol);
689 boost::math::zeta(i, pol);
690 boost::math::owens_t(v1, v2, pol);
691 //
692 // These next functions are intended to be found via ADL:
693 //
694 BOOST_MATH_STD_USING
695 trunc(v1, pol);
696 itrunc(v1, pol);
697 ltrunc(v1, pol);
698 round(v1, pol);
699 iround(v1, pol);
700 lround(v1, pol);
701 modf(v1, &v1, pol);
702 modf(v1, &i, pol);
703 modf(v1, &l, pol);
704 #ifdef BOOST_HAS_LONG_LONG
705 using boost::math::lltrunc;
706 using boost::math::llround;
707 lltrunc(v1, pol);
708 llround(v1, pol);
709 modf(v1, &ll, pol);
710 #endif
711 boost::math::pow<2>(v1, pol);
712 boost::math::nextafter(v1, v1, pol);
713 boost::math::float_next(v1, pol);
714 boost::math::float_prior(v1, pol);
715 boost::math::float_distance(v1, v1, pol);
716
717 boost::math::bernoulli_b2n<RealType>(i, pol);
718 boost::math::bernoulli_b2n<RealType>(i, i, &v1, pol);
719 boost::math::tangent_t2n<RealType>(i, pol);
720 boost::math::tangent_t2n<RealType>(i, i, &v1, pol);
721 #endif
722 #ifdef TEST_GROUP_6
723 //
724 // All over again with the versions in test::
725 //
726 test::tgamma(v1);
727 test::tgamma1pm1(v1);
728 test::lgamma(v1);
729 test::lgamma(v1, &i);
730 test::digamma(v1);
731 test::trigamma(v1);
732 test::polygamma(i, v1);
733 test::tgamma_ratio(v1, v2);
734 test::tgamma_delta_ratio(v1, v2);
735 test::factorial<RealType>(i);
736 test::unchecked_factorial<RealType>(i);
737 i = test::max_factorial<RealType>::value;
738 test::double_factorial<RealType>(i);
739 test::rising_factorial(v1, i);
740 test::falling_factorial(v1, i);
741 test::tgamma(v1, v2);
742 test::tgamma_lower(v1, v2);
743 test::gamma_p(v1, v2);
744 test::gamma_q(v1, v2);
745 test::gamma_p_inv(v1, v2);
746 test::gamma_q_inv(v1, v2);
747 test::gamma_p_inva(v1, v2);
748 test::gamma_q_inva(v1, v2);
749 test::erf(v1);
750 test::erfc(v1);
751 test::erf_inv(v1);
752 test::erfc_inv(v1);
753 test::beta(v1, v2);
754 test::beta(v1, v2, v3);
755 test::betac(v1, v2, v3);
756 test::ibeta(v1, v2, v3);
757 test::ibetac(v1, v2, v3);
758 test::ibeta_inv(v1, v2, v3);
759 test::ibetac_inv(v1, v2, v3);
760 test::ibeta_inva(v1, v2, v3);
761 test::ibetac_inva(v1, v2, v3);
762 test::ibeta_invb(v1, v2, v3);
763 test::ibetac_invb(v1, v2, v3);
764 test::gamma_p_derivative(v2, v3);
765 test::ibeta_derivative(v1, v2, v3);
766 test::binomial_coefficient<RealType>(i, i);
767 (test::fpclassify)(v1);
768 (test::isfinite)(v1);
769 (test::isnormal)(v1);
770 (test::isnan)(v1);
771 (test::isinf)(v1);
772 (test::signbit)(v1);
773 (test::copysign)(v1, v2);
774 (test::changesign)(v1);
775 (test::sign)(v1);
776 test::log1p(v1);
777 test::expm1(v1);
778 test::cbrt(v1);
779 test::sqrt1pm1(v1);
780 test::powm1(v1, v2);
781 test::legendre_p(1, v1);
782 test::legendre_p(1, 0, v1);
783 test::legendre_q(1, v1);
784 test::legendre_next(2, v1, v2, v3);
785 test::legendre_next(2, 2, v1, v2, v3);
786 test::laguerre(1, v1);
787 test::laguerre(2, 1, v1);
788 test::laguerre_next(2, v1, v2, v3);
789 test::laguerre_next(2, 1, v1, v2, v3);
790 test::hermite(1, v1);
791 test::hermite_next(2, v1, v2, v3);
792 test::spherical_harmonic_r(2, 1, v1, v2);
793 test::spherical_harmonic_i(2, 1, v1, v2);
794 test::ellint_1(v1);
795 test::ellint_1(v1, v2);
796 test::ellint_2(v1);
797 test::ellint_2(v1, v2);
798 test::ellint_3(v1, v2);
799 test::ellint_3(v1, v2, v3);
800 test::ellint_d(v1);
801 test::ellint_d(v1, v2);
802 test::jacobi_zeta(v1, v2);
803 test::heuman_lambda(v1, v2);
804 test::ellint_rc(v1, v2);
805 test::ellint_rd(v1, v2, v3);
806 test::ellint_rf(v1, v2, v3);
807 test::ellint_rg(v1, v2, v3);
808 test::ellint_rj(v1, v2, v3, v1);
809 test::jacobi_elliptic(v1, v2, &v1, &v2);
810 test::jacobi_cd(v1, v2);
811 test::jacobi_cn(v1, v2);
812 test::jacobi_cs(v1, v2);
813 test::jacobi_dc(v1, v2);
814 test::jacobi_dn(v1, v2);
815 test::jacobi_ds(v1, v2);
816 test::jacobi_nc(v1, v2);
817 test::jacobi_nd(v1, v2);
818 test::jacobi_ns(v1, v2);
819 test::jacobi_sc(v1, v2);
820 test::jacobi_sd(v1, v2);
821 test::jacobi_sn(v1, v2);
822 test::hypot(v1, v2);
823 test::sinc_pi(v1);
824 test::sinhc_pi(v1);
825 test::asinh(v1);
826 test::acosh(v1);
827 test::atanh(v1);
828 test::sin_pi(v1);
829 test::cos_pi(v1);
830 test::cyl_neumann(v1, v2);
831 test::cyl_neumann(i, v2);
832 test::cyl_bessel_j(v1, v2);
833 test::cyl_bessel_j(i, v2);
834 test::cyl_bessel_i(v1, v2);
835 test::cyl_bessel_i(i, v2);
836 test::cyl_bessel_k(v1, v2);
837 test::cyl_bessel_k(i, v2);
838 test::sph_bessel(i, v2);
839 test::sph_bessel(i, 1);
840 test::sph_neumann(i, v2);
841 test::sph_neumann(i, i);
842 test::cyl_neumann_prime(v1, v2);
843 test::cyl_neumann_prime(i, v2);
844 test::cyl_bessel_j_prime(v1, v2);
845 test::cyl_bessel_j_prime(i, v2);
846 test::cyl_bessel_i_prime(v1, v2);
847 test::cyl_bessel_i_prime(i, v2);
848 test::cyl_bessel_k_prime(v1, v2);
849 test::cyl_bessel_k_prime(i, v2);
850 test::sph_bessel_prime(i, v2);
851 test::sph_bessel_prime(i, 1);
852 test::sph_neumann_prime(i, v2);
853 test::sph_neumann_prime(i, i);
854 test::cyl_bessel_j_zero(v1, i);
855 test::cyl_bessel_j_zero(v1, i, i, oi);
856 test::cyl_neumann_zero(v1, i);
857 test::cyl_neumann_zero(v1, i, i, oi);
858 #ifdef TEST_COMPLEX
859 test::cyl_hankel_1(v1, v2);
860 test::cyl_hankel_1(i, v2);
861 test::cyl_hankel_2(v1, v2);
862 test::cyl_hankel_2(i, v2);
863 test::sph_hankel_1(v1, v2);
864 test::sph_hankel_1(i, v2);
865 test::sph_hankel_2(v1, v2);
866 test::sph_hankel_2(i, v2);
867 #endif
868 test::airy_ai(i);
869 test::airy_bi(i);
870 test::airy_ai_prime(i);
871 test::airy_bi_prime(i);
872
873 test::airy_ai_zero<RealType>(i);
874 test::airy_bi_zero<RealType>(i);
875 test::airy_ai_zero<RealType>(i, i, oi);
876 test::airy_bi_zero<RealType>(i, i, oi);
877
878 test::expint(v1);
879 test::expint(i);
880 test::expint(i, v2);
881 test::expint(i, i);
882 test::zeta(v1);
883 test::zeta(i);
884 test::owens_t(v1, v2);
885 test::trunc(v1);
886 test::itrunc(v1);
887 test::ltrunc(v1);
888 test::round(v1);
889 test::iround(v1);
890 test::lround(v1);
891 test::modf(v1, &v1);
892 test::modf(v1, &i);
893 test::modf(v1, &l);
894 #ifdef BOOST_HAS_LONG_LONG
895 test::lltrunc(v1);
896 test::llround(v1);
897 test::modf(v1, &ll);
898 #endif
899 test::pow<2>(v1);
900 test::nextafter(v1, v1);
901 test::float_next(v1);
902 test::float_prior(v1);
903 test::float_distance(v1, v1);
904 #endif
905 #endif
906 }
907
908 template <class RealType>
instantiate_mixed(RealType)909 void instantiate_mixed(RealType)
910 {
911 using namespace boost;
912 using namespace boost::math;
913 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
914 int i = 1;
915 long l = 1;
916 short s = 1;
917 float fr = 0.5F;
918 double dr = 0.5;
919 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
920 long double lr = 0.5L;
921 #else
922 double lr = 0.5L;
923 #endif
924 #ifdef TEST_GROUP_7
925 boost::math::tgamma(i);
926 boost::math::tgamma1pm1(i);
927 boost::math::lgamma(i);
928 boost::math::lgamma(i, &i);
929 boost::math::digamma(i);
930 boost::math::trigamma(i);
931 boost::math::polygamma(i, i);
932 boost::math::tgamma_ratio(i, l);
933 boost::math::tgamma_ratio(fr, lr);
934 boost::math::tgamma_delta_ratio(i, s);
935 boost::math::tgamma_delta_ratio(fr, lr);
936 boost::math::rising_factorial(s, i);
937 boost::math::falling_factorial(s, i);
938 boost::math::tgamma(i, l);
939 boost::math::tgamma(fr, lr);
940 boost::math::tgamma_lower(i, s);
941 boost::math::tgamma_lower(fr, lr);
942 boost::math::gamma_p(i, s);
943 boost::math::gamma_p(fr, lr);
944 boost::math::gamma_q(i, s);
945 boost::math::gamma_q(fr, lr);
946 boost::math::gamma_p_inv(i, fr);
947 boost::math::gamma_q_inv(s, fr);
948 boost::math::gamma_p_inva(i, lr);
949 boost::math::gamma_q_inva(i, lr);
950 boost::math::erf(i);
951 boost::math::erfc(i);
952 boost::math::erf_inv(i);
953 boost::math::erfc_inv(i);
954 boost::math::beta(i, s);
955 boost::math::beta(fr, lr);
956 boost::math::beta(i, s, l);
957 boost::math::beta(fr, dr, lr);
958 boost::math::betac(l, i, s);
959 boost::math::betac(fr, dr, lr);
960 boost::math::ibeta(l, i, s);
961 boost::math::ibeta(fr, dr, lr);
962 boost::math::ibetac(l, i, s);
963 boost::math::ibetac(fr, dr, lr);
964 boost::math::ibeta_inv(l, s, i);
965 boost::math::ibeta_inv(fr, dr, lr);
966 boost::math::ibetac_inv(l, i, s);
967 boost::math::ibetac_inv(fr, dr, lr);
968 boost::math::ibeta_inva(l, i, s);
969 boost::math::ibeta_inva(fr, dr, lr);
970 boost::math::ibetac_inva(l, i, s);
971 boost::math::ibetac_inva(fr, dr, lr);
972 boost::math::ibeta_invb(l, i, s);
973 boost::math::ibeta_invb(fr, dr, lr);
974 boost::math::ibetac_invb(l, i, s);
975 boost::math::ibetac_invb(fr, dr, lr);
976 boost::math::gamma_p_derivative(i, l);
977 boost::math::gamma_p_derivative(fr, lr);
978 boost::math::ibeta_derivative(l, i, s);
979 boost::math::ibeta_derivative(fr, dr, lr);
980 (boost::math::fpclassify)(i);
981 (boost::math::isfinite)(s);
982 (boost::math::isnormal)(l);
983 (boost::math::isnan)(i);
984 (boost::math::isinf)(l);
985 boost::math::log1p(i);
986 boost::math::expm1(s);
987 boost::math::cbrt(l);
988 boost::math::sqrt1pm1(s);
989 boost::math::powm1(i, s);
990 boost::math::powm1(fr, lr);
991 //boost::math::legendre_p(1, i);
992 boost::math::legendre_p(1, 0, s);
993 boost::math::legendre_q(1, i);
994 boost::math::laguerre(1, i);
995 boost::math::laguerre(2, 1, i);
996 boost::math::laguerre(2u, 1u, s);
997 boost::math::hermite(1, s);
998 boost::math::spherical_harmonic_r(2, 1, s, i);
999 boost::math::spherical_harmonic_i(2, 1, fr, lr);
1000 boost::math::ellint_1(i);
1001 boost::math::ellint_1(i, s);
1002 boost::math::ellint_1(fr, lr);
1003 boost::math::ellint_2(i);
1004 boost::math::ellint_2(i, l);
1005 boost::math::ellint_2(fr, lr);
1006 boost::math::ellint_3(i, l);
1007 boost::math::ellint_3(fr, lr);
1008 boost::math::ellint_3(s, l, i);
1009 boost::math::ellint_3(fr, dr, lr);
1010 boost::math::ellint_d(i);
1011 boost::math::ellint_d(i, l);
1012 boost::math::ellint_d(fr, lr);
1013 boost::math::jacobi_zeta(i, l);
1014 boost::math::jacobi_zeta(fr, lr);
1015 boost::math::heuman_lambda(i, l);
1016 boost::math::heuman_lambda(fr, lr);
1017 boost::math::ellint_rc(i, s);
1018 boost::math::ellint_rc(fr, lr);
1019 boost::math::ellint_rd(s, i, l);
1020 boost::math::ellint_rd(fr, lr, dr);
1021 boost::math::ellint_rf(s, l, i);
1022 boost::math::ellint_rf(fr, dr, lr);
1023 boost::math::ellint_rg(s, l, i);
1024 boost::math::ellint_rg(fr, dr, lr);
1025 boost::math::ellint_rj(i, i, s, l);
1026 boost::math::ellint_rj(i, fr, dr, lr);
1027 boost::math::jacobi_cd(i, fr);
1028 boost::math::jacobi_cn(i, fr);
1029 boost::math::jacobi_cs(i, fr);
1030 boost::math::jacobi_dc(i, fr);
1031 boost::math::jacobi_dn(i, fr);
1032 boost::math::jacobi_ds(i, fr);
1033 boost::math::jacobi_nc(i, fr);
1034 boost::math::jacobi_nd(i, fr);
1035 boost::math::jacobi_ns(i, fr);
1036 boost::math::jacobi_sc(i, fr);
1037 boost::math::jacobi_sd(i, fr);
1038 boost::math::jacobi_sn(i, fr);
1039 boost::math::hypot(i, s);
1040 boost::math::hypot(fr, lr);
1041 boost::math::sinc_pi(i);
1042 boost::math::sinhc_pi(i);
1043 boost::math::asinh(s);
1044 boost::math::acosh(l);
1045 boost::math::atanh(l);
1046 boost::math::sin_pi(s);
1047 boost::math::cos_pi(s);
1048 boost::math::cyl_neumann(fr, dr);
1049 boost::math::cyl_neumann(i, s);
1050 boost::math::cyl_bessel_j(fr, lr);
1051 boost::math::cyl_bessel_j(i, s);
1052 boost::math::cyl_bessel_i(fr, lr);
1053 boost::math::cyl_bessel_i(i, s);
1054 boost::math::cyl_bessel_k(fr, lr);
1055 boost::math::cyl_bessel_k(i, s);
1056 boost::math::sph_bessel(i, fr);
1057 boost::math::sph_bessel(i, 1);
1058 boost::math::sph_neumann(i, lr);
1059 boost::math::sph_neumann(i, i);
1060 boost::math::cyl_neumann_prime(fr, dr);
1061 boost::math::cyl_neumann_prime(i, s);
1062 boost::math::cyl_bessel_j_prime(fr, lr);
1063 boost::math::cyl_bessel_j_prime(i, s);
1064 boost::math::cyl_bessel_i_prime(fr, lr);
1065 boost::math::cyl_bessel_i_prime(i, s);
1066 boost::math::cyl_bessel_k_prime(fr, lr);
1067 boost::math::cyl_bessel_k_prime(i, s);
1068 boost::math::sph_bessel_prime(i, fr);
1069 boost::math::sph_bessel_prime(i, 1);
1070 boost::math::sph_neumann_prime(i, lr);
1071 boost::math::sph_neumann_prime(i, i);
1072 boost::math::owens_t(fr, dr);
1073 boost::math::owens_t(i, s);
1074
1075 boost::math::policies::policy<> pol;
1076
1077
1078 boost::math::tgamma(i, pol);
1079 boost::math::tgamma1pm1(i, pol);
1080 boost::math::lgamma(i, pol);
1081 boost::math::lgamma(i, &i, pol);
1082 boost::math::digamma(i, pol);
1083 boost::math::trigamma(i, pol);
1084 boost::math::polygamma(i, i, pol);
1085 boost::math::tgamma_ratio(i, l, pol);
1086 boost::math::tgamma_ratio(fr, lr, pol);
1087 boost::math::tgamma_delta_ratio(i, s, pol);
1088 boost::math::tgamma_delta_ratio(fr, lr, pol);
1089 boost::math::rising_factorial(s, i, pol);
1090 boost::math::falling_factorial(s, i, pol);
1091 boost::math::tgamma(i, l, pol);
1092 boost::math::tgamma(fr, lr, pol);
1093 boost::math::tgamma_lower(i, s, pol);
1094 boost::math::tgamma_lower(fr, lr, pol);
1095 boost::math::gamma_p(i, s, pol);
1096 boost::math::gamma_p(fr, lr, pol);
1097 boost::math::gamma_q(i, s, pol);
1098 boost::math::gamma_q(fr, lr, pol);
1099 boost::math::gamma_p_inv(i, fr, pol);
1100 boost::math::gamma_q_inv(s, fr, pol);
1101 boost::math::gamma_p_inva(i, lr, pol);
1102 boost::math::gamma_q_inva(i, lr, pol);
1103 boost::math::erf(i, pol);
1104 boost::math::erfc(i, pol);
1105 boost::math::erf_inv(i, pol);
1106 boost::math::erfc_inv(i, pol);
1107 boost::math::beta(i, s, pol);
1108 boost::math::beta(fr, lr, pol);
1109 boost::math::beta(i, s, l, pol);
1110 boost::math::beta(fr, dr, lr, pol);
1111 boost::math::betac(l, i, s, pol);
1112 boost::math::betac(fr, dr, lr, pol);
1113 boost::math::ibeta(l, i, s, pol);
1114 boost::math::ibeta(fr, dr, lr, pol);
1115 boost::math::ibetac(l, i, s, pol);
1116 boost::math::ibetac(fr, dr, lr, pol);
1117 boost::math::ibeta_inv(l, s, i, pol);
1118 boost::math::ibeta_inv(fr, dr, lr, pol);
1119 boost::math::ibetac_inv(l, i, s, pol);
1120 boost::math::ibetac_inv(fr, dr, lr, pol);
1121 boost::math::ibeta_inva(l, i, s, pol);
1122 boost::math::ibeta_inva(fr, dr, lr, pol);
1123 boost::math::ibetac_inva(l, i, s, pol);
1124 boost::math::ibetac_inva(fr, dr, lr, pol);
1125 boost::math::ibeta_invb(l, i, s, pol);
1126 boost::math::ibeta_invb(fr, dr, lr, pol);
1127 boost::math::ibetac_invb(l, i, s, pol);
1128 boost::math::ibetac_invb(fr, dr, lr, pol);
1129 boost::math::gamma_p_derivative(i, l, pol);
1130 boost::math::gamma_p_derivative(fr, lr, pol);
1131 boost::math::ibeta_derivative(l, i, s, pol);
1132 boost::math::ibeta_derivative(fr, dr, lr, pol);
1133 boost::math::log1p(i, pol);
1134 boost::math::expm1(s, pol);
1135 boost::math::cbrt(l, pol);
1136 boost::math::sqrt1pm1(s, pol);
1137 boost::math::powm1(i, s, pol);
1138 boost::math::powm1(fr, lr, pol);
1139 //boost::math::legendre_p(1, i, pol);
1140 boost::math::legendre_p(1, 0, s, pol);
1141 boost::math::legendre_q(1, i, pol);
1142 boost::math::laguerre(1, i, pol);
1143 boost::math::laguerre(2, 1, i, pol);
1144 boost::math::laguerre(2u, 1u, s, pol);
1145 boost::math::hermite(1, s, pol);
1146 boost::math::spherical_harmonic_r(2, 1, s, i, pol);
1147 boost::math::spherical_harmonic_i(2, 1, fr, lr, pol);
1148 boost::math::ellint_1(i, pol);
1149 boost::math::ellint_1(i, s, pol);
1150 boost::math::ellint_1(fr, lr, pol);
1151 boost::math::ellint_2(i, pol);
1152 boost::math::ellint_2(i, l, pol);
1153 boost::math::ellint_2(fr, lr, pol);
1154 boost::math::ellint_3(i, l, pol);
1155 boost::math::ellint_3(fr, lr, pol);
1156 boost::math::ellint_3(s, l, i, pol);
1157 boost::math::ellint_3(fr, dr, lr, pol);
1158 boost::math::ellint_d(i, pol);
1159 boost::math::ellint_d(i, l, pol);
1160 boost::math::ellint_d(fr, lr, pol);
1161 boost::math::jacobi_zeta(i, l, pol);
1162 boost::math::jacobi_zeta(fr, lr, pol);
1163 boost::math::heuman_lambda(i, l, pol);
1164 boost::math::heuman_lambda(fr, lr, pol);
1165 boost::math::ellint_rc(i, s, pol);
1166 boost::math::ellint_rc(fr, lr, pol);
1167 boost::math::ellint_rd(s, i, l, pol);
1168 boost::math::ellint_rd(fr, lr, dr, pol);
1169 boost::math::ellint_rf(s, l, i, pol);
1170 boost::math::ellint_rf(fr, dr, lr, pol);
1171 boost::math::ellint_rg(s, l, i, pol);
1172 boost::math::ellint_rg(fr, dr, lr, pol);
1173 boost::math::ellint_rj(i, i, s, l, pol);
1174 boost::math::ellint_rj(i, fr, dr, lr, pol);
1175 boost::math::jacobi_cd(i, fr, pol);
1176 boost::math::jacobi_cn(i, fr, pol);
1177 boost::math::jacobi_cs(i, fr, pol);
1178 boost::math::jacobi_dc(i, fr, pol);
1179 boost::math::jacobi_dn(i, fr, pol);
1180 boost::math::jacobi_ds(i, fr, pol);
1181 boost::math::jacobi_nc(i, fr, pol);
1182 boost::math::jacobi_nd(i, fr, pol);
1183 boost::math::jacobi_ns(i, fr, pol);
1184 boost::math::jacobi_sc(i, fr, pol);
1185 boost::math::jacobi_sd(i, fr, pol);
1186 boost::math::jacobi_sn(i, fr, pol);
1187 boost::math::hypot(i, s, pol);
1188 boost::math::hypot(fr, lr, pol);
1189 boost::math::sinc_pi(i, pol);
1190 boost::math::sinhc_pi(i, pol);
1191 boost::math::asinh(s, pol);
1192 boost::math::acosh(l, pol);
1193 boost::math::atanh(l, pol);
1194 boost::math::sin_pi(s, pol);
1195 boost::math::cos_pi(s, pol);
1196 boost::math::cyl_neumann(fr, dr, pol);
1197 boost::math::cyl_neumann(i, s, pol);
1198 boost::math::cyl_bessel_j(fr, lr, pol);
1199 boost::math::cyl_bessel_j(i, s, pol);
1200 boost::math::cyl_bessel_i(fr, lr, pol);
1201 boost::math::cyl_bessel_i(i, s, pol);
1202 boost::math::cyl_bessel_k(fr, lr, pol);
1203 boost::math::cyl_bessel_k(i, s, pol);
1204 boost::math::sph_bessel(i, fr, pol);
1205 boost::math::sph_bessel(i, 1, pol);
1206 boost::math::sph_neumann(i, lr, pol);
1207 boost::math::sph_neumann(i, i, pol);
1208 boost::math::cyl_neumann_prime(fr, dr, pol);
1209 boost::math::cyl_neumann_prime(i, s, pol);
1210 boost::math::cyl_bessel_j_prime(fr, lr, pol);
1211 boost::math::cyl_bessel_j_prime(i, s, pol);
1212 boost::math::cyl_bessel_i_prime(fr, lr, pol);
1213 boost::math::cyl_bessel_i_prime(i, s, pol);
1214 boost::math::cyl_bessel_k_prime(fr, lr, pol);
1215 boost::math::cyl_bessel_k_prime(i, s, pol);
1216 boost::math::sph_bessel_prime(i, fr, pol);
1217 boost::math::sph_bessel_prime(i, 1, pol);
1218 boost::math::sph_neumann_prime(i, lr, pol);
1219 boost::math::sph_neumann_prime(i, i, pol);
1220 boost::math::owens_t(fr, dr, pol);
1221 boost::math::owens_t(i, s, pol);
1222 #endif
1223 #ifdef TEST_GROUP_8
1224 test::tgamma(i);
1225 test::tgamma1pm1(i);
1226 test::lgamma(i);
1227 test::lgamma(i, &i);
1228 test::digamma(i);
1229 test::trigamma(i);
1230 test::polygamma(i, i);
1231 test::tgamma_ratio(i, l);
1232 test::tgamma_ratio(fr, lr);
1233 test::tgamma_delta_ratio(i, s);
1234 test::tgamma_delta_ratio(fr, lr);
1235 test::rising_factorial(s, i);
1236 test::falling_factorial(s, i);
1237 test::tgamma(i, l);
1238 test::tgamma(fr, lr);
1239 test::tgamma_lower(i, s);
1240 test::tgamma_lower(fr, lr);
1241 test::gamma_p(i, s);
1242 test::gamma_p(fr, lr);
1243 test::gamma_q(i, s);
1244 test::gamma_q(fr, lr);
1245 test::gamma_p_inv(i, fr);
1246 test::gamma_q_inv(s, fr);
1247 test::gamma_p_inva(i, lr);
1248 test::gamma_q_inva(i, lr);
1249 test::erf(i);
1250 test::erfc(i);
1251 test::erf_inv(i);
1252 test::erfc_inv(i);
1253 test::beta(i, s);
1254 test::beta(fr, lr);
1255 test::beta(i, s, l);
1256 test::beta(fr, dr, lr);
1257 test::betac(l, i, s);
1258 test::betac(fr, dr, lr);
1259 test::ibeta(l, i, s);
1260 test::ibeta(fr, dr, lr);
1261 test::ibetac(l, i, s);
1262 test::ibetac(fr, dr, lr);
1263 test::ibeta_inv(l, s, i);
1264 test::ibeta_inv(fr, dr, lr);
1265 test::ibetac_inv(l, i, s);
1266 test::ibetac_inv(fr, dr, lr);
1267 test::ibeta_inva(l, i, s);
1268 test::ibeta_inva(fr, dr, lr);
1269 test::ibetac_inva(l, i, s);
1270 test::ibetac_inva(fr, dr, lr);
1271 test::ibeta_invb(l, i, s);
1272 test::ibeta_invb(fr, dr, lr);
1273 test::ibetac_invb(l, i, s);
1274 test::ibetac_invb(fr, dr, lr);
1275 test::gamma_p_derivative(i, l);
1276 test::gamma_p_derivative(fr, lr);
1277 test::ibeta_derivative(l, i, s);
1278 test::ibeta_derivative(fr, dr, lr);
1279 (test::fpclassify)(i);
1280 (test::isfinite)(s);
1281 (test::isnormal)(l);
1282 (test::isnan)(i);
1283 (test::isinf)(l);
1284 test::log1p(i);
1285 test::expm1(s);
1286 test::cbrt(l);
1287 test::sqrt1pm1(s);
1288 test::powm1(i, s);
1289 test::powm1(fr, lr);
1290 //test::legendre_p(1, i);
1291 test::legendre_p(1, 0, s);
1292 test::legendre_q(1, i);
1293 test::laguerre(1, i);
1294 test::laguerre(2, 1, i);
1295 test::laguerre(2u, 1u, s);
1296 test::hermite(1, s);
1297 test::spherical_harmonic_r(2, 1, s, i);
1298 test::spherical_harmonic_i(2, 1, fr, lr);
1299 test::ellint_1(i);
1300 test::ellint_1(i, s);
1301 test::ellint_1(fr, lr);
1302 test::ellint_2(i);
1303 test::ellint_2(i, l);
1304 test::ellint_2(fr, lr);
1305 test::ellint_3(i, l);
1306 test::ellint_3(fr, lr);
1307 test::ellint_3(s, l, i);
1308 test::ellint_3(fr, dr, lr);
1309 test::ellint_d(i);
1310 test::ellint_d(i, l);
1311 test::ellint_d(fr, lr);
1312 test::jacobi_zeta(i, l);
1313 test::jacobi_zeta(fr, lr);
1314 test::heuman_lambda(i, l);
1315 test::heuman_lambda(fr, lr);
1316 test::ellint_rc(i, s);
1317 test::ellint_rc(fr, lr);
1318 test::ellint_rd(s, i, l);
1319 test::ellint_rd(fr, lr, dr);
1320 test::ellint_rf(s, l, i);
1321 test::ellint_rf(fr, dr, lr);
1322 test::ellint_rg(s, l, i);
1323 test::ellint_rg(fr, dr, lr);
1324 test::ellint_rj(i, i, s, l);
1325 test::ellint_rj(i, fr, dr, lr);
1326 test::hypot(i, s);
1327 test::hypot(fr, lr);
1328 test::sinc_pi(i);
1329 test::sinhc_pi(i);
1330 test::asinh(s);
1331 test::acosh(l);
1332 test::atanh(l);
1333 test::sin_pi(s);
1334 test::cos_pi(s);
1335 test::cyl_neumann(fr, dr);
1336 test::cyl_neumann(i, s);
1337 test::cyl_bessel_j(fr, lr);
1338 test::cyl_bessel_j(i, s);
1339 test::cyl_bessel_i(fr, lr);
1340 test::cyl_bessel_i(i, s);
1341 test::cyl_bessel_k(fr, lr);
1342 test::cyl_bessel_k(i, s);
1343 test::sph_bessel(i, fr);
1344 test::sph_bessel(i, 1);
1345 test::sph_neumann(i, lr);
1346 test::sph_neumann(i, i);
1347 test::cyl_neumann_prime(fr, dr);
1348 test::cyl_neumann_prime(i, s);
1349 test::cyl_bessel_j_prime(fr, lr);
1350 test::cyl_bessel_j_prime(i, s);
1351 test::cyl_bessel_i_prime(fr, lr);
1352 test::cyl_bessel_i_prime(i, s);
1353 test::cyl_bessel_k_prime(fr, lr);
1354 test::cyl_bessel_k_prime(i, s);
1355 test::sph_bessel_prime(i, fr);
1356 test::sph_bessel_prime(i, 1);
1357 test::sph_neumann_prime(i, lr);
1358 test::sph_neumann_prime(i, i);
1359 test::airy_ai(i);
1360 test::airy_bi(i);
1361 test::airy_ai_prime(i);
1362 test::airy_bi_prime(i);
1363 test::owens_t(fr, dr);
1364 test::owens_t(i, s);
1365 #endif
1366 #endif
1367 }
1368
1369
1370 #endif // BOOST_LIBS_MATH_TEST_INSTANTIATE_HPP
1371
1372