Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / math / test / compile_test / instantiate.hpp
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>
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 = 1;
163    // Deal with unused variable warnings:
164    (void)i;
165    RealType v1(0.5), v2(0.5), v3(0.5);
166    boost::detail::dummy_constructor dc;
167    boost::output_iterator_archetype<RealType> oi(dc);
168 #ifdef TEST_GROUP_4
169    boost::math::tgamma(v1);
170    boost::math::tgamma1pm1(v1);
171    boost::math::lgamma(v1);
172    boost::math::lgamma(v1, &i);
173    boost::math::digamma(v1);
174    boost::math::trigamma(v1);
175    boost::math::polygamma(i, v1);
176    boost::math::tgamma_ratio(v1, v2);
177    boost::math::tgamma_delta_ratio(v1, v2);
178    boost::math::factorial<RealType>(i);
179    boost::math::unchecked_factorial<RealType>(i);
180    i = boost::math::max_factorial<RealType>::value;
181    boost::math::double_factorial<RealType>(i);
182    boost::math::rising_factorial(v1, i);
183    boost::math::falling_factorial(v1, i);
184    boost::math::tgamma(v1, v2);
185    boost::math::tgamma_lower(v1, v2);
186    boost::math::gamma_p(v1, v2);
187    boost::math::gamma_q(v1, v2);
188    boost::math::gamma_p_inv(v1, v2);
189    boost::math::gamma_q_inv(v1, v2);
190    boost::math::gamma_p_inva(v1, v2);
191    boost::math::gamma_q_inva(v1, v2);
192    boost::math::erf(v1);
193    boost::math::erfc(v1);
194    boost::math::erf_inv(v1);
195    boost::math::erfc_inv(v1);
196    boost::math::beta(v1, v2);
197    boost::math::beta(v1, v2, v3);
198    boost::math::betac(v1, v2, v3);
199    boost::math::ibeta(v1, v2, v3);
200    boost::math::ibetac(v1, v2, v3);
201    boost::math::ibeta_inv(v1, v2, v3);
202    boost::math::ibetac_inv(v1, v2, v3);
203    boost::math::ibeta_inva(v1, v2, v3);
204    boost::math::ibetac_inva(v1, v2, v3);
205    boost::math::ibeta_invb(v1, v2, v3);
206    boost::math::ibetac_invb(v1, v2, v3);
207    boost::math::gamma_p_derivative(v2, v3);
208    boost::math::ibeta_derivative(v1, v2, v3);
209    boost::math::binomial_coefficient<RealType>(i, i);
210    (boost::math::fpclassify)(v1);
211    (boost::math::isfinite)(v1);
212    (boost::math::isnormal)(v1);
213    (boost::math::isnan)(v1);
214    (boost::math::isinf)(v1);
215    (boost::math::signbit)(v1);
216    (boost::math::copysign)(v1, v2);
217    (boost::math::changesign)(v1);
218    (boost::math::sign)(v1);
219    boost::math::log1p(v1);
220    boost::math::expm1(v1);
221    boost::math::cbrt(v1);
222    boost::math::sqrt1pm1(v1);
223    boost::math::powm1(v1, v2);
224    boost::math::legendre_p(1, v1);
225    boost::math::legendre_p(1, 0, v1);
226    boost::math::legendre_q(1, v1);
227    boost::math::legendre_p_prime(1, v1);
228    boost::math::legendre_next(2, v1, v2, v3);
229    boost::math::legendre_next(2, 2, v1, v2, v3);
230    boost::math::laguerre(1, v1);
231    boost::math::laguerre(2, 1, v1);
232    boost::math::laguerre(2u, 1u, v1);
233    boost::math::laguerre_next(2, v1, v2, v3);
234    boost::math::laguerre_next(2, 1, v1, v2, v3);
235    boost::math::hermite(1, v1);
236    boost::math::hermite_next(2, v1, v2, v3);
237    boost::math::chebyshev_next(v1, v2, v3);
238    boost::math::chebyshev_t(1, v1);
239    boost::math::chebyshev_u(1, v1);
240    boost::math::chebyshev_t_prime(1, v1);
241    boost::math::chebyshev_clenshaw_recurrence(&v1, 0, v2);
242    boost::math::spherical_harmonic_r(2, 1, v1, v2);
243    boost::math::spherical_harmonic_i(2, 1, v1, v2);
244    boost::math::ellint_1(v1);
245    boost::math::ellint_1(v1, v2);
246    boost::math::ellint_2(v1);
247    boost::math::ellint_2(v1, v2);
248    boost::math::ellint_3(v1, v2);
249    boost::math::ellint_3(v1, v2, v3);
250    boost::math::ellint_d(v1);
251    boost::math::ellint_d(v1, v2);
252    boost::math::jacobi_zeta(v1, v2);
253    boost::math::heuman_lambda(v1, v2);
254    boost::math::ellint_rc(v1, v2);
255    boost::math::ellint_rd(v1, v2, v3);
256    boost::math::ellint_rf(v1, v2, v3);
257    boost::math::ellint_rg(v1, v2, v3);
258    boost::math::ellint_rj(v1, v2, v3, v1);
259    boost::math::jacobi_elliptic(v1, v2, &v1, &v2);
260    boost::math::jacobi_cd(v1, v2);
261    boost::math::jacobi_cn(v1, v2);
262    boost::math::jacobi_cs(v1, v2);
263    boost::math::jacobi_dc(v1, v2);
264    boost::math::jacobi_dn(v1, v2);
265    boost::math::jacobi_ds(v1, v2);
266    boost::math::jacobi_nc(v1, v2);
267    boost::math::jacobi_nd(v1, v2);
268    boost::math::jacobi_ns(v1, v2);
269    boost::math::jacobi_sc(v1, v2);
270    boost::math::jacobi_sd(v1, v2);
271    boost::math::jacobi_sn(v1, v2);
272    boost::math::hypot(v1, v2);
273    boost::math::sinc_pi(v1);
274    boost::math::sinhc_pi(v1);
275    boost::math::asinh(v1);
276    boost::math::acosh(v1);
277    boost::math::atanh(v1);
278    boost::math::sin_pi(v1);
279    boost::math::cos_pi(v1);
280    boost::math::cyl_neumann(v1, v2);
281    boost::math::cyl_neumann(i, v2);
282    boost::math::cyl_bessel_j(v1, v2);
283    boost::math::cyl_bessel_j(i, v2);
284    boost::math::cyl_bessel_i(v1, v2);
285    boost::math::cyl_bessel_i(i, v2);
286    boost::math::cyl_bessel_k(v1, v2);
287    boost::math::cyl_bessel_k(i, v2);
288    boost::math::sph_bessel(i, v2);
289    boost::math::sph_bessel(i, 1);
290    boost::math::sph_neumann(i, v2);
291    boost::math::sph_neumann(i, i);
292    boost::math::cyl_neumann_prime(v1, v2);
293    boost::math::cyl_neumann_prime(i, v2);
294    boost::math::cyl_bessel_j_prime(v1, v2);
295    boost::math::cyl_bessel_j_prime(i, v2);
296    boost::math::cyl_bessel_i_prime(v1, v2);
297    boost::math::cyl_bessel_i_prime(i, v2);
298    boost::math::cyl_bessel_k_prime(v1, v2);
299    boost::math::cyl_bessel_k_prime(i, v2);
300    boost::math::sph_bessel_prime(i, v2);
301    boost::math::sph_bessel_prime(i, 1);
302    boost::math::sph_neumann_prime(i, v2);
303    boost::math::sph_neumann_prime(i, i);
304    boost::math::cyl_bessel_j_zero(v1, i);
305    boost::math::cyl_bessel_j_zero(v1, i, i, oi);
306    boost::math::cyl_neumann_zero(v1, i);
307    boost::math::cyl_neumann_zero(v1, i, i, oi);
308    boost::math::lambert_w0(v1);
309    boost::math::lambert_wm1(v1);
310    boost::math::lambert_w0_prime(v1);
311 #ifdef TEST_COMPLEX
312    boost::math::cyl_hankel_1(v1, v2);
313    boost::math::cyl_hankel_1(i, v2);
314    boost::math::cyl_hankel_2(v1, v2);
315    boost::math::cyl_hankel_2(i, v2);
316    boost::math::sph_hankel_1(v1, v2);
317    boost::math::sph_hankel_1(i, v2);
318    boost::math::sph_hankel_2(v1, v2);
319    boost::math::sph_hankel_2(i, v2);
320 #endif
321    boost::math::airy_ai(v1);
322    boost::math::airy_bi(v1);
323    boost::math::airy_ai_prime(v1);
324    boost::math::airy_bi_prime(v1);
325
326    boost::math::airy_ai_zero<RealType>(i);
327    boost::math::airy_bi_zero<RealType>(i);
328    boost::math::airy_ai_zero<RealType>(i, i, oi);
329    boost::math::airy_bi_zero<RealType>(i, i, oi);
330
331    boost::math::hypergeometric_1F0(v1, v2);
332    boost::math::hypergeometric_0F1(v1, v2);
333    boost::math::hypergeometric_2F0(v1, v2, v3);
334 #if !defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
335    boost::math::hypergeometric_1F1(v1, v2, v3);
336 #ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
337    boost::math::hypergeometric_pFq({ v1 }, { v2 }, v3);
338 #endif
339 #endif
340
341    boost::math::expint(v1);
342    boost::math::expint(i);
343    boost::math::expint(i, v2);
344    boost::math::expint(i, i);
345    boost::math::zeta(v1);
346    boost::math::zeta(i);
347    boost::math::owens_t(v1, v2);
348    boost::math::trunc(v1);
349    boost::math::itrunc(v1);
350    boost::math::ltrunc(v1);
351    boost::math::round(v1);
352    boost::math::iround(v1);
353    boost::math::lround(v1);
354    boost::math::modf(v1, &v1);
355    boost::math::modf(v1, &i);
356    long l;
357    boost::math::modf(v1, &l);
358 #ifdef BOOST_HAS_LONG_LONG
359    boost::math::lltrunc(v1);
360    boost::math::llround(v1);
361    boost::long_long_type ll;
362    boost::math::modf(v1, &ll);
363 #endif
364    boost::math::pow<2>(v1);
365    boost::math::nextafter(v1, v1);
366    boost::math::float_next(v1);
367    boost::math::float_prior(v1);
368    boost::math::float_distance(v1, v1);
369    boost::math::ulp(v1);
370    boost::math::relative_difference(v1, v2);
371    boost::math::epsilon_difference(v1, v2);
372
373    boost::math::unchecked_bernoulli_b2n<RealType>(i);
374    boost::math::bernoulli_b2n<RealType>(i);
375    boost::math::bernoulli_b2n<RealType>(i, i, &v1);
376    boost::math::tangent_t2n<RealType>(i);
377    boost::math::tangent_t2n<RealType>(i, i, &v1);
378
379 #endif
380 #ifdef TEST_GROUP_9
381    //
382    // Over again, but arguments may be expression templates:
383    //
384    boost::math::tgamma(v1 + 0);
385    boost::math::tgamma1pm1(v1 + 0);
386    boost::math::lgamma(v1 * 1);
387    boost::math::lgamma(v1 * 1, &i);
388    boost::math::digamma(v1 * 1);
389    boost::math::trigamma(v1 * 1);
390    boost::math::polygamma(i, v1 * 1);
391    boost::math::tgamma_ratio(v1 * 1, v2 + 0);
392    boost::math::tgamma_delta_ratio(v1 * 1, v2 + 0);
393    boost::math::factorial<RealType>(i);
394    boost::math::unchecked_factorial<RealType>(i);
395    i = boost::math::max_factorial<RealType>::value;
396    boost::math::double_factorial<RealType>(i);
397    boost::math::rising_factorial(v1 * 1, i);
398    boost::math::falling_factorial(v1 * 1, i);
399    boost::math::tgamma(v1 * 1, v2 + 0);
400    boost::math::tgamma_lower(v1 * 1, v2 - 0);
401    boost::math::gamma_p(v1 * 1, v2 + 0);
402    boost::math::gamma_q(v1 * 1, v2 + 0);
403    boost::math::gamma_p_inv(v1 * 1, v2 + 0);
404    boost::math::gamma_q_inv(v1 * 1, v2 + 0);
405    boost::math::gamma_p_inva(v1 * 1, v2 + 0);
406    boost::math::gamma_q_inva(v1 * 1, v2 + 0);
407    boost::math::erf(v1 * 1);
408    boost::math::erfc(v1 * 1);
409    boost::math::erf_inv(v1 * 1);
410    boost::math::erfc_inv(v1 * 1);
411    boost::math::beta(v1 * 1, v2 + 0);
412    boost::math::beta(v1 * 1, v2 + 0, v3 / 1);
413    boost::math::betac(v1 * 1, v2 + 0, v3 / 1);
414    boost::math::ibeta(v1 * 1, v2 + 0, v3 / 1);
415    boost::math::ibetac(v1 * 1, v2 + 0, v3 / 1);
416    boost::math::ibeta_inv(v1 * 1, v2 + 0, v3 / 1);
417    boost::math::ibetac_inv(v1 * 1, v2 + 0, v3 / 1);
418    boost::math::ibeta_inva(v1 * 1, v2 + 0, v3 / 1);
419    boost::math::ibetac_inva(v1 * 1, v2 + 0, v3 / 1);
420    boost::math::ibeta_invb(v1 * 1, v2 + 0, v3 / 1);
421    boost::math::ibetac_invb(v1 * 1, v2 + 0, v3 / 1);
422    boost::math::gamma_p_derivative(v2 * 1, v3 + 0);
423    boost::math::ibeta_derivative(v1 * 1, v2 + 0, v3 / 1);
424    (boost::math::fpclassify)(v1 * 1);
425    (boost::math::isfinite)(v1 * 1);
426    (boost::math::isnormal)(v1 * 1);
427    (boost::math::isnan)(v1 * 1);
428    (boost::math::isinf)(v1 * 1);
429    (boost::math::signbit)(v1 * 1);
430    (boost::math::copysign)(v1 * 1, v2 + 0);
431    (boost::math::changesign)(v1 * 1);
432    (boost::math::sign)(v1 * 1);
433    boost::math::log1p(v1 * 1);
434    boost::math::expm1(v1 * 1);
435    boost::math::cbrt(v1 * 1);
436    boost::math::sqrt1pm1(v1 * 1);
437    boost::math::powm1(v1 * 1, v2 + 0);
438    boost::math::legendre_p(1, v1 * 1);
439    boost::math::legendre_p(1, 0, v1 * 1);
440    boost::math::legendre_p_prime(1, v1 * 1);
441    boost::math::legendre_q(1, v1 * 1);
442    boost::math::legendre_next(2, v1 * 1, v2 + 0, v3 / 1);
443    boost::math::legendre_next(2, 2, v1 * 1, v2 + 0, v3 / 1);
444    boost::math::laguerre(1, v1 * 1);
445    boost::math::laguerre(2, 1, v1 * 1);
446    boost::math::laguerre(2u, 1u, v1 * 1);
447    boost::math::laguerre_next(2, v1 * 1, v2 + 0, v3 / 1);
448    boost::math::laguerre_next(2, 1, v1 * 1, v2 + 0, v3 / 1);
449    boost::math::hermite(1, v1 * 1);
450    boost::math::hermite_next(2, v1 * 1, v2 + 0, v3 / 1);
451    boost::math::chebyshev_next(2 * v1, 1 + v2, 3 * v3);
452    boost::math::chebyshev_t(1, 2 * v1);
453    boost::math::chebyshev_u(1, 2 * v1);
454    boost::math::chebyshev_t_prime(1, 2 * v1);
455    boost::math::chebyshev_clenshaw_recurrence(&v1, 0, 2 * v2);
456    boost::math::spherical_harmonic_r(2, 1, v1 * 1, v2 + 0);
457    boost::math::spherical_harmonic_i(2, 1, v1 * 1, v2 + 0);
458    boost::math::ellint_1(v1 * 1);
459    boost::math::ellint_1(v1 * 1, v2 + 0);
460    boost::math::ellint_2(v1 * 1);
461    boost::math::ellint_2(v1 * 1, v2 + 0);
462    boost::math::ellint_3(v1 * 1, v2 + 0);
463    boost::math::ellint_3(v1 * 1, v2 + 0, v3 / 1);
464    boost::math::ellint_rc(v1 * 1, v2 + 0);
465    boost::math::ellint_rd(v1 * 1, v2 + 0, v3 / 1);
466    boost::math::ellint_rf(v1 * 1, v2 + 0, v3 / 1);
467    boost::math::ellint_rg(v1 * 1, v2 + 0, v3 / 1);
468    boost::math::ellint_rj(v1 * 1, v2 + 0, v3 / 1, v1 * 1);
469    boost::math::ellint_d(v1 * 1);
470    boost::math::ellint_d(v1 * 1, v2 + 0);
471    boost::math::jacobi_zeta(v1 * 1, v2 + 0);
472    boost::math::heuman_lambda(v1 * 1, v2 + 0);
473    boost::math::jacobi_elliptic(v1 * 1, v2 + 0, &v1, &v2);
474    boost::math::jacobi_cd(v1 * 1, v2 + 0);
475    boost::math::jacobi_cn(v1 * 1, v2 + 0);
476    boost::math::jacobi_cs(v1 * 1, v2 + 0);
477    boost::math::jacobi_dc(v1 * 1, v2 + 0);
478    boost::math::jacobi_dn(v1 * 1, v2 + 0);
479    boost::math::jacobi_ds(v1 * 1, v2 + 0);
480    boost::math::jacobi_nc(v1 * 1, v2 + 0);
481    boost::math::jacobi_nd(v1 * 1, v2 + 0);
482    boost::math::jacobi_ns(v1 * 1, v2 + 0);
483    boost::math::jacobi_sc(v1 * 1, v2 + 0);
484    boost::math::jacobi_sd(v1 * 1, v2 + 0);
485    boost::math::jacobi_sn(v1 * 1, v2 + 0);
486    boost::math::hypot(v1 * 1, v2 + 0);
487    boost::math::sinc_pi(v1 * 1);
488    boost::math::sinhc_pi(v1 * 1);
489    boost::math::asinh(v1 * 1);
490    boost::math::acosh(v1 * 1);
491    boost::math::atanh(v1 * 1);
492    boost::math::sin_pi(v1 * 1);
493    boost::math::cos_pi(v1 * 1);
494    boost::math::cyl_neumann(v1 * 1, v2 + 0);
495    boost::math::cyl_neumann(i, v2 * 1);
496    boost::math::cyl_bessel_j(v1 * 1, v2 + 0);
497    boost::math::cyl_bessel_j(i, v2 * 1);
498    boost::math::cyl_bessel_i(v1 * 1, v2 + 0);
499    boost::math::cyl_bessel_i(i, v2 * 1);
500    boost::math::cyl_bessel_k(v1 * 1, v2 + 0);
501    boost::math::cyl_bessel_k(i, v2 * 1);
502    boost::math::sph_bessel(i, v2 * 1);
503    boost::math::sph_bessel(i, 1);
504    boost::math::sph_neumann(i, v2 * 1);
505    boost::math::sph_neumann(i, i);
506    boost::math::cyl_neumann_prime(v1 * 1, v2 + 0);
507    boost::math::cyl_neumann_prime(i, v2 * 1);
508    boost::math::cyl_bessel_j_prime(v1 * 1, v2 + 0);
509    boost::math::cyl_bessel_j_prime(i, v2 * 1);
510    boost::math::cyl_bessel_i_prime(v1 * 1, v2 + 0);
511    boost::math::cyl_bessel_i_prime(i, v2 * 1);
512    boost::math::cyl_bessel_k_prime(v1 * 1, v2 + 0);
513    boost::math::cyl_bessel_k_prime(i, v2 * 1);
514    boost::math::sph_bessel_prime(i, v2 * 1);
515    boost::math::sph_bessel_prime(i, 1);
516    boost::math::sph_neumann_prime(i, v2 * 1);
517    boost::math::sph_neumann_prime(i, i);
518    boost::math::cyl_bessel_j_zero(v1 * 1, i);
519    boost::math::cyl_bessel_j_zero(v1 * 1, i, i, oi);
520    boost::math::cyl_neumann_zero(v1 * 1, i);
521    boost::math::cyl_neumann_zero(v1 * 1, i, i, oi);
522    boost::math::lambert_w0(v1 * 1);
523    boost::math::lambert_wm1(v1 * 1);
524    boost::math::lambert_w0_prime(v1 * 1);
525 #ifdef TEST_COMPLEX
526    boost::math::cyl_hankel_1(v1, v2);
527    boost::math::cyl_hankel_1(i, v2);
528    boost::math::cyl_hankel_2(v1, v2);
529    boost::math::cyl_hankel_2(i, v2);
530    boost::math::sph_hankel_1(v1, v2);
531    boost::math::sph_hankel_1(i, v2);
532    boost::math::sph_hankel_2(v1, v2);
533    boost::math::sph_hankel_2(i, v2);
534 #endif
535    boost::math::airy_ai(v1 * 1);
536    boost::math::airy_bi(v1 * 1);
537    boost::math::airy_ai_prime(v1 * 1);
538    boost::math::airy_bi_prime(v1 * 1);
539    boost::math::expint(v1 * 1);
540    boost::math::expint(i);
541    boost::math::expint(i, v2 * 1);
542    boost::math::expint(i, i);
543    boost::math::zeta(v1 * 1);
544    boost::math::zeta(i);
545    boost::math::owens_t(v1 * 1, v2 + 0);
546    boost::math::trunc(v1 * 1);
547    boost::math::itrunc(v1 * 1);
548    boost::math::ltrunc(v1 * 1);
549    boost::math::round(v1 * 1);
550    boost::math::iround(v1 * 1);
551    boost::math::lround(v1 * 1);
552    //boost::math::modf(v1 * 1, &v1);
553    //boost::math::modf(v1 * 1, &i);
554    //long l;
555    //boost::math::modf(v1 * 1, &l);
556 #ifdef BOOST_HAS_LONG_LONG
557    boost::math::lltrunc(v1 * 1);
558    boost::math::llround(v1 * 1);
559    //boost::long_long_type ll;
560    //boost::math::modf(v1 * 1, &ll);
561 #endif
562    boost::math::pow<2>(v1 * 1);
563    boost::math::nextafter(v1 * 1, v1 + 0);
564    boost::math::float_next(v1 * 1);
565    boost::math::float_prior(v1 * 1);
566    boost::math::float_distance(v1 * 1, v1 * 1);
567    boost::math::ulp(v1 * 1);
568    boost::math::relative_difference(v1 * 1, v2 * 1);
569    boost::math::epsilon_difference(v1 * 1, v2 * 1);
570 #endif
571 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
572 #ifdef TEST_GROUP_5
573    //
574    // All over again, with a policy this time:
575    //
576    test_policy pol;
577    boost::math::tgamma(v1, pol);
578    boost::math::tgamma1pm1(v1, pol);
579    boost::math::lgamma(v1, pol);
580    boost::math::lgamma(v1, &i, pol);
581    boost::math::digamma(v1, pol);
582    boost::math::trigamma(v1, pol);
583    boost::math::polygamma(i, v1, pol);
584    boost::math::tgamma_ratio(v1, v2, pol);
585    boost::math::tgamma_delta_ratio(v1, v2, pol);
586    boost::math::factorial<RealType>(i, pol);
587    boost::math::unchecked_factorial<RealType>(i);
588    i = boost::math::max_factorial<RealType>::value;
589    boost::math::double_factorial<RealType>(i, pol);
590    boost::math::rising_factorial(v1, i, pol);
591    boost::math::falling_factorial(v1, i, pol);
592    boost::math::tgamma(v1, v2, pol);
593    boost::math::tgamma_lower(v1, v2, pol);
594    boost::math::gamma_p(v1, v2, pol);
595    boost::math::gamma_q(v1, v2, pol);
596    boost::math::gamma_p_inv(v1, v2, pol);
597    boost::math::gamma_q_inv(v1, v2, pol);
598    boost::math::gamma_p_inva(v1, v2, pol);
599    boost::math::gamma_q_inva(v1, v2, pol);
600    boost::math::erf(v1, pol);
601    boost::math::erfc(v1, pol);
602    boost::math::erf_inv(v1, pol);
603    boost::math::erfc_inv(v1, pol);
604    boost::math::beta(v1, v2, pol);
605    boost::math::beta(v1, v2, v3, pol);
606    boost::math::betac(v1, v2, v3, pol);
607    boost::math::ibeta(v1, v2, v3, pol);
608    boost::math::ibetac(v1, v2, v3, pol);
609    boost::math::ibeta_inv(v1, v2, v3, pol);
610    boost::math::ibetac_inv(v1, v2, v3, pol);
611    boost::math::ibeta_inva(v1, v2, v3, pol);
612    boost::math::ibetac_inva(v1, v2, v3, pol);
613    boost::math::ibeta_invb(v1, v2, v3, pol);
614    boost::math::ibetac_invb(v1, v2, v3, pol);
615    boost::math::gamma_p_derivative(v2, v3, pol);
616    boost::math::ibeta_derivative(v1, v2, v3, pol);
617    boost::math::binomial_coefficient<RealType>(i, i, pol);
618    boost::math::log1p(v1, pol);
619    boost::math::expm1(v1, pol);
620    boost::math::cbrt(v1, pol);
621    boost::math::sqrt1pm1(v1, pol);
622    boost::math::powm1(v1, v2, pol);
623    boost::math::legendre_p(1, v1, pol);
624    boost::math::legendre_p(1, 0, v1, pol);
625    boost::math::legendre_p_prime(1, v1 * 1, pol);
626    boost::math::legendre_q(1, v1, pol);
627    boost::math::legendre_next(2, v1, v2, v3);
628    boost::math::legendre_next(2, 2, v1, v2, v3);
629    boost::math::laguerre(1, v1, pol);
630    boost::math::laguerre(2, 1, v1, pol);
631    boost::math::laguerre_next(2, v1, v2, v3);
632    boost::math::laguerre_next(2, 1, v1, v2, v3);
633    boost::math::hermite(1, v1, pol);
634    boost::math::hermite_next(2, v1, v2, v3);
635    boost::math::chebyshev_t(1, v1, pol);
636    boost::math::chebyshev_u(1, v1, pol);
637    boost::math::chebyshev_t_prime(1, v1, pol);
638    boost::math::spherical_harmonic_r(2, 1, v1, v2, pol);
639    boost::math::spherical_harmonic_i(2, 1, v1, v2, pol);
640    boost::math::ellint_1(v1, pol);
641    boost::math::ellint_1(v1, v2, pol);
642    boost::math::ellint_2(v1, pol);
643    boost::math::ellint_2(v1, v2, pol);
644    boost::math::ellint_3(v1, v2, pol);
645    boost::math::ellint_3(v1, v2, v3, pol);
646    boost::math::ellint_d(v1, pol);
647    boost::math::ellint_d(v1, v2, pol);
648    boost::math::jacobi_zeta(v1, v2, pol);
649    boost::math::heuman_lambda(v1, v2, pol);
650    boost::math::ellint_rc(v1, v2, pol);
651    boost::math::ellint_rd(v1, v2, v3, pol);
652    boost::math::ellint_rf(v1, v2, v3, pol);
653    boost::math::ellint_rg(v1, v2, v3, pol);
654    boost::math::ellint_rj(v1, v2, v3, v1, pol);
655    boost::math::jacobi_elliptic(v1, v2, &v1, &v2, pol);
656    boost::math::jacobi_cd(v1, v2, pol);
657    boost::math::jacobi_cn(v1, v2, pol);
658    boost::math::jacobi_cs(v1, v2, pol);
659    boost::math::jacobi_dc(v1, v2, pol);
660    boost::math::jacobi_dn(v1, v2, pol);
661    boost::math::jacobi_ds(v1, v2, pol);
662    boost::math::jacobi_nc(v1, v2, pol);
663    boost::math::jacobi_nd(v1, v2, pol);
664    boost::math::jacobi_ns(v1, v2, pol);
665    boost::math::jacobi_sc(v1, v2, pol);
666    boost::math::jacobi_sd(v1, v2, pol);
667    boost::math::jacobi_sn(v1, v2, pol);
668    boost::math::hypot(v1, v2, pol);
669    boost::math::sinc_pi(v1, pol);
670    boost::math::sinhc_pi(v1, pol);
671    boost::math::asinh(v1, pol);
672    boost::math::acosh(v1, pol);
673    boost::math::atanh(v1, pol);
674    boost::math::sin_pi(v1, pol);
675    boost::math::cos_pi(v1, pol);
676    boost::math::cyl_neumann(v1, v2, pol);
677    boost::math::cyl_neumann(i, v2, pol);
678    boost::math::cyl_bessel_j(v1, v2, pol);
679    boost::math::cyl_bessel_j(i, v2, pol);
680    boost::math::cyl_bessel_i(v1, v2, pol);
681    boost::math::cyl_bessel_i(i, v2, pol);
682    boost::math::cyl_bessel_k(v1, v2, pol);
683    boost::math::cyl_bessel_k(i, v2, pol);
684    boost::math::sph_bessel(i, v2, pol);
685    boost::math::sph_bessel(i, 1, pol);
686    boost::math::sph_neumann(i, v2, pol);
687    boost::math::sph_neumann(i, i, pol);
688    boost::math::cyl_neumann_prime(v1, v2, pol);
689    boost::math::cyl_neumann_prime(i, v2, pol);
690    boost::math::cyl_bessel_j_prime(v1, v2, pol);
691    boost::math::cyl_bessel_j_prime(i, v2, pol);
692    boost::math::cyl_bessel_i_prime(v1, v2, pol);
693    boost::math::cyl_bessel_i_prime(i, v2, pol);
694    boost::math::cyl_bessel_k_prime(v1, v2, pol);
695    boost::math::cyl_bessel_k_prime(i, v2, pol);
696    boost::math::sph_bessel_prime(i, v2, pol);
697    boost::math::sph_bessel_prime(i, 1, pol);
698    boost::math::sph_neumann_prime(i, v2, pol);
699    boost::math::sph_neumann_prime(i, i, pol);
700    boost::math::cyl_bessel_j_zero(v1, i, pol);
701    boost::math::cyl_bessel_j_zero(v1, i, i, oi, pol);
702    boost::math::cyl_neumann_zero(v1, i, pol);
703    boost::math::cyl_neumann_zero(v1, i, i, oi, pol);
704    boost::math::lambert_w0(v1, pol);
705    boost::math::lambert_wm1(v1, pol);
706    boost::math::lambert_w0_prime(v1, pol);
707 #ifdef TEST_COMPLEX
708    boost::math::cyl_hankel_1(v1, v2, pol);
709    boost::math::cyl_hankel_1(i, v2, pol);
710    boost::math::cyl_hankel_2(v1, v2, pol);
711    boost::math::cyl_hankel_2(i, v2, pol);
712    boost::math::sph_hankel_1(v1, v2, pol);
713    boost::math::sph_hankel_1(i, v2, pol);
714    boost::math::sph_hankel_2(v1, v2, pol);
715    boost::math::sph_hankel_2(i, v2, pol);
716 #endif
717    boost::math::airy_ai(v1, pol);
718    boost::math::airy_bi(v1, pol);
719    boost::math::airy_ai_prime(v1, pol);
720    boost::math::airy_bi_prime(v1, pol);
721
722    boost::math::airy_ai_zero<RealType>(i, pol);
723    boost::math::airy_bi_zero<RealType>(i, pol);
724    boost::math::airy_ai_zero<RealType>(i, i, oi, pol);
725    boost::math::airy_bi_zero<RealType>(i, i, oi, pol);
726
727    boost::math::hypergeometric_1F0(i, v2, pol);
728    boost::math::hypergeometric_1F0(v1, i, pol);
729    boost::math::hypergeometric_1F0(i, i, pol);
730    boost::math::hypergeometric_0F1(i, v2, pol);
731    boost::math::hypergeometric_0F1(v1, i, pol);
732    boost::math::hypergeometric_0F1(i, i, pol);
733    boost::math::hypergeometric_2F0(i, v2, v3, pol);
734    boost::math::hypergeometric_2F0(v1, i, v3, pol);
735    boost::math::hypergeometric_2F0(v1, v2, i, pol);
736 #if !defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
737    boost::math::hypergeometric_1F1(i, v2, v3, pol);
738    boost::math::hypergeometric_1F1(v1, i, v3, pol);
739    boost::math::hypergeometric_1F1(v1, v2, i, pol);
740 #endif
741
742    boost::math::expint(v1, pol);
743    boost::math::expint(i, pol);
744    boost::math::expint(i, v2, pol);
745    boost::math::expint(i, i, pol);
746    boost::math::zeta(v1, pol);
747    boost::math::zeta(i, pol);
748    boost::math::owens_t(v1, v2, pol);
749    //
750    // These next functions are intended to be found via ADL:
751    //
752    BOOST_MATH_STD_USING
753    trunc(v1, pol);
754    itrunc(v1, pol);
755    ltrunc(v1, pol);
756    round(v1, pol);
757    iround(v1, pol);
758    lround(v1, pol);
759    modf(v1, &v1, pol);
760    modf(v1, &i, pol);
761    modf(v1, &l, pol);
762 #ifdef BOOST_HAS_LONG_LONG
763    using boost::math::lltrunc;
764    using boost::math::llround;
765    lltrunc(v1, pol);
766    llround(v1, pol);
767    modf(v1, &ll, pol);
768 #endif
769    boost::math::pow<2>(v1, pol);
770    boost::math::nextafter(v1, v1, pol);
771    boost::math::float_next(v1, pol);
772    boost::math::float_prior(v1, pol);
773    boost::math::float_distance(v1, v1, pol);
774    boost::math::ulp(v1, pol);
775
776    boost::math::bernoulli_b2n<RealType>(i, pol);
777    boost::math::bernoulli_b2n<RealType>(i, i, &v1, pol);
778    boost::math::tangent_t2n<RealType>(i, pol);
779    boost::math::tangent_t2n<RealType>(i, i, &v1, pol);
780 #endif
781 #ifdef TEST_GROUP_6
782    //
783    // All over again with the versions in test::
784    //
785    test::tgamma(v1);
786    test::tgamma1pm1(v1);
787    test::lgamma(v1);
788    test::lgamma(v1, &i);
789    test::digamma(v1);
790    test::trigamma(v1);
791    test::polygamma(i, v1);
792    test::tgamma_ratio(v1, v2);
793    test::tgamma_delta_ratio(v1, v2);
794    test::factorial<RealType>(i);
795    test::unchecked_factorial<RealType>(i);
796    i = test::max_factorial<RealType>::value;
797    test::double_factorial<RealType>(i);
798    test::rising_factorial(v1, i);
799    test::falling_factorial(v1, i);
800    test::tgamma(v1, v2);
801    test::tgamma_lower(v1, v2);
802    test::gamma_p(v1, v2);
803    test::gamma_q(v1, v2);
804    test::gamma_p_inv(v1, v2);
805    test::gamma_q_inv(v1, v2);
806    test::gamma_p_inva(v1, v2);
807    test::gamma_q_inva(v1, v2);
808    test::erf(v1);
809    test::erfc(v1);
810    test::erf_inv(v1);
811    test::erfc_inv(v1);
812    test::beta(v1, v2);
813    test::beta(v1, v2, v3);
814    test::betac(v1, v2, v3);
815    test::ibeta(v1, v2, v3);
816    test::ibetac(v1, v2, v3);
817    test::ibeta_inv(v1, v2, v3);
818    test::ibetac_inv(v1, v2, v3);
819    test::ibeta_inva(v1, v2, v3);
820    test::ibetac_inva(v1, v2, v3);
821    test::ibeta_invb(v1, v2, v3);
822    test::ibetac_invb(v1, v2, v3);
823    test::gamma_p_derivative(v2, v3);
824    test::ibeta_derivative(v1, v2, v3);
825    test::binomial_coefficient<RealType>(i, i);
826    (test::fpclassify)(v1);
827    (test::isfinite)(v1);
828    (test::isnormal)(v1);
829    (test::isnan)(v1);
830    (test::isinf)(v1);
831    (test::signbit)(v1);
832    (test::copysign)(v1, v2);
833    (test::changesign)(v1);
834    (test::sign)(v1);
835    test::log1p(v1);
836    test::expm1(v1);
837    test::cbrt(v1);
838    test::sqrt1pm1(v1);
839    test::powm1(v1, v2);
840    test::legendre_p(1, v1);
841    test::legendre_p(1, 0, v1);
842    test::legendre_p_prime(1, v1 * 1);
843    test::legendre_q(1, v1);
844    test::legendre_next(2, v1, v2, v3);
845    test::legendre_next(2, 2, v1, v2, v3);
846    test::laguerre(1, v1);
847    test::laguerre(2, 1, v1);
848    test::laguerre_next(2, v1, v2, v3);
849    test::laguerre_next(2, 1, v1, v2, v3);
850    test::hermite(1, v1);
851    test::hermite_next(2, v1, v2, v3);
852    test::chebyshev_next(v1, v2, v3);
853    test::chebyshev_t(1, v1);
854    test::chebyshev_u(1, v1);
855    test::chebyshev_t_prime(1, v1);
856    test::chebyshev_clenshaw_recurrence(&v1, 0, v2);
857    test::spherical_harmonic_r(2, 1, v1, v2);
858    test::spherical_harmonic_i(2, 1, v1, v2);
859    test::ellint_1(v1);
860    test::ellint_1(v1, v2);
861    test::ellint_2(v1);
862    test::ellint_2(v1, v2);
863    test::ellint_3(v1, v2);
864    test::ellint_3(v1, v2, v3);
865    test::ellint_d(v1);
866    test::ellint_d(v1, v2);
867    test::jacobi_zeta(v1, v2);
868    test::heuman_lambda(v1, v2);
869    test::ellint_rc(v1, v2);
870    test::ellint_rd(v1, v2, v3);
871    test::ellint_rf(v1, v2, v3);
872    test::ellint_rg(v1, v2, v3);
873    test::ellint_rj(v1, v2, v3, v1);
874    test::jacobi_elliptic(v1, v2, &v1, &v2);
875    test::jacobi_cd(v1, v2);
876    test::jacobi_cn(v1, v2);
877    test::jacobi_cs(v1, v2);
878    test::jacobi_dc(v1, v2);
879    test::jacobi_dn(v1, v2);
880    test::jacobi_ds(v1, v2);
881    test::jacobi_nc(v1, v2);
882    test::jacobi_nd(v1, v2);
883    test::jacobi_ns(v1, v2);
884    test::jacobi_sc(v1, v2);
885    test::jacobi_sd(v1, v2);
886    test::jacobi_sn(v1, v2);
887    test::hypot(v1, v2);
888    test::sinc_pi(v1);
889    test::sinhc_pi(v1);
890    test::asinh(v1);
891    test::acosh(v1);
892    test::atanh(v1);
893    test::sin_pi(v1);
894    test::cos_pi(v1);
895    test::cyl_neumann(v1, v2);
896    test::cyl_neumann(i, v2);
897    test::cyl_bessel_j(v1, v2);
898    test::cyl_bessel_j(i, v2);
899    test::cyl_bessel_i(v1, v2);
900    test::cyl_bessel_i(i, v2);
901    test::cyl_bessel_k(v1, v2);
902    test::cyl_bessel_k(i, v2);
903    test::sph_bessel(i, v2);
904    test::sph_bessel(i, 1);
905    test::sph_neumann(i, v2);
906    test::sph_neumann(i, i);
907    test::cyl_neumann_prime(v1, v2);
908    test::cyl_neumann_prime(i, v2);
909    test::cyl_bessel_j_prime(v1, v2);
910    test::cyl_bessel_j_prime(i, v2);
911    test::cyl_bessel_i_prime(v1, v2);
912    test::cyl_bessel_i_prime(i, v2);
913    test::cyl_bessel_k_prime(v1, v2);
914    test::cyl_bessel_k_prime(i, v2);
915    test::sph_bessel_prime(i, v2);
916    test::sph_bessel_prime(i, 1);
917    test::sph_neumann_prime(i, v2);
918    test::sph_neumann_prime(i, i);
919    test::cyl_bessel_j_zero(v1, i);
920    test::cyl_bessel_j_zero(v1, i, i, oi);
921    test::cyl_neumann_zero(v1, i);
922    test::cyl_neumann_zero(v1, i, i, oi);
923    test::lambert_w0(v1);
924    test::lambert_wm1(v1);
925    test::lambert_w0_prime(v1);
926 #ifdef TEST_COMPLEX
927    test::cyl_hankel_1(v1, v2);
928    test::cyl_hankel_1(i, v2);
929    test::cyl_hankel_2(v1, v2);
930    test::cyl_hankel_2(i, v2);
931    test::sph_hankel_1(v1, v2);
932    test::sph_hankel_1(i, v2);
933    test::sph_hankel_2(v1, v2);
934    test::sph_hankel_2(i, v2);
935 #endif
936    test::airy_ai(i);
937    test::airy_bi(i);
938    test::airy_ai_prime(i);
939    test::airy_bi_prime(i);
940
941    test::airy_ai_zero<RealType>(i);
942    test::airy_bi_zero<RealType>(i);
943    test::airy_ai_zero<RealType>(i, i, oi);
944    test::airy_bi_zero<RealType>(i, i, oi);
945
946    test::hypergeometric_1F0(v1, v2);
947    test::hypergeometric_0F1(v1, v2);
948    test::hypergeometric_2F0(v1, v1, v2);
949 #if !defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
950    test::hypergeometric_1F1(v1, v2, v2);
951 #endif
952
953    test::expint(v1);
954    test::expint(i);
955    test::expint(i, v2);
956    test::expint(i, i);
957    test::zeta(v1);
958    test::zeta(i);
959    test::owens_t(v1, v2);
960    test::trunc(v1);
961    test::itrunc(v1);
962    test::ltrunc(v1);
963    test::round(v1);
964    test::iround(v1);
965    test::lround(v1);
966    test::modf(v1, &v1);
967    test::modf(v1, &i);
968    test::modf(v1, &l);
969 #ifdef BOOST_HAS_LONG_LONG
970    test::lltrunc(v1);
971    test::llround(v1);
972    test::modf(v1, &ll);
973 #endif
974    test::pow<2>(v1);
975    test::nextafter(v1, v1);
976    test::float_next(v1);
977    test::float_prior(v1);
978    test::float_distance(v1, v1);
979    test::ulp(v1);
980 #endif
981 #endif
982 }
983
984 template <class RealType>
985 void instantiate_mixed(RealType)
986 {
987    using namespace boost;
988    using namespace boost::math;
989 #ifndef BOOST_MATH_INSTANTIATE_MINIMUM
990    int i = 1;
991    (void)i;
992    long l = 1;
993    (void)l;
994    short s = 1;
995    (void)s;
996    float fr = 0.5F;
997    (void)fr;
998    double dr = 0.5;
999    (void)dr;
1000 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
1001    long double lr = 0.5L;
1002    (void)lr;
1003 #else
1004    double lr = 0.5L;
1005    (void)lr;
1006 #endif
1007 #ifdef TEST_GROUP_7
1008    boost::math::tgamma(i);
1009    boost::math::tgamma1pm1(i);
1010    boost::math::lgamma(i);
1011    boost::math::lgamma(i, &i);
1012    boost::math::digamma(i);
1013    boost::math::trigamma(i);
1014    boost::math::polygamma(i, i);
1015    boost::math::tgamma_ratio(i, l);
1016    boost::math::tgamma_ratio(fr, lr);
1017    boost::math::tgamma_delta_ratio(i, s);
1018    boost::math::tgamma_delta_ratio(fr, lr);
1019    boost::math::rising_factorial(s, i);
1020    boost::math::falling_factorial(s, i);
1021    boost::math::tgamma(i, l);
1022    boost::math::tgamma(fr, lr);
1023    boost::math::tgamma_lower(i, s);
1024    boost::math::tgamma_lower(fr, lr);
1025    boost::math::gamma_p(i, s);
1026    boost::math::gamma_p(fr, lr);
1027    boost::math::gamma_q(i, s);
1028    boost::math::gamma_q(fr, lr);
1029    boost::math::gamma_p_inv(i, fr);
1030    boost::math::gamma_q_inv(s, fr);
1031    boost::math::gamma_p_inva(i, lr);
1032    boost::math::gamma_q_inva(i, lr);
1033    boost::math::erf(i);
1034    boost::math::erfc(i);
1035    boost::math::erf_inv(i);
1036    boost::math::erfc_inv(i);
1037    boost::math::beta(i, s);
1038    boost::math::beta(fr, lr);
1039    boost::math::beta(i, s, l);
1040    boost::math::beta(fr, dr, lr);
1041    boost::math::betac(l, i, s);
1042    boost::math::betac(fr, dr, lr);
1043    boost::math::ibeta(l, i, s);
1044    boost::math::ibeta(fr, dr, lr);
1045    boost::math::ibetac(l, i, s);
1046    boost::math::ibetac(fr, dr, lr);
1047    boost::math::ibeta_inv(l, s, i);
1048    boost::math::ibeta_inv(fr, dr, lr);
1049    boost::math::ibetac_inv(l, i, s);
1050    boost::math::ibetac_inv(fr, dr, lr);
1051    boost::math::ibeta_inva(l, i, s);
1052    boost::math::ibeta_inva(fr, dr, lr);
1053    boost::math::ibetac_inva(l, i, s);
1054    boost::math::ibetac_inva(fr, dr, lr);
1055    boost::math::ibeta_invb(l, i, s);
1056    boost::math::ibeta_invb(fr, dr, lr);
1057    boost::math::ibetac_invb(l, i, s);
1058    boost::math::ibetac_invb(fr, dr, lr);
1059    boost::math::gamma_p_derivative(i, l);
1060    boost::math::gamma_p_derivative(fr, lr);
1061    boost::math::ibeta_derivative(l, i, s);
1062    boost::math::ibeta_derivative(fr, dr, lr);
1063    (boost::math::fpclassify)(i);
1064    (boost::math::isfinite)(s);
1065    (boost::math::isnormal)(l);
1066    (boost::math::isnan)(i);
1067    (boost::math::isinf)(l);
1068    boost::math::log1p(i);
1069    boost::math::expm1(s);
1070    boost::math::cbrt(l);
1071    boost::math::sqrt1pm1(s);
1072    boost::math::powm1(i, s);
1073    boost::math::powm1(fr, lr);
1074    //boost::math::legendre_p(1, i);
1075    boost::math::legendre_p(1, 0, s);
1076    boost::math::legendre_q(1, i);
1077    boost::math::laguerre(1, i);
1078    boost::math::laguerre(2, 1, i);
1079    boost::math::laguerre(2u, 1u, s);
1080    boost::math::hermite(1, s);
1081    boost::math::chebyshev_t(1, i);
1082    boost::math::chebyshev_u(1, i);
1083    boost::math::chebyshev_t_prime(1, i);
1084    boost::math::spherical_harmonic_r(2, 1, s, i);
1085    boost::math::spherical_harmonic_i(2, 1, fr, lr);
1086    boost::math::ellint_1(i);
1087    boost::math::ellint_1(i, s);
1088    boost::math::ellint_1(fr, lr);
1089    boost::math::ellint_2(i);
1090    boost::math::ellint_2(i, l);
1091    boost::math::ellint_2(fr, lr);
1092    boost::math::ellint_3(i, l);
1093    boost::math::ellint_3(fr, lr);
1094    boost::math::ellint_3(s, l, i);
1095    boost::math::ellint_3(fr, dr, lr);
1096    boost::math::ellint_d(i);
1097    boost::math::ellint_d(i, l);
1098    boost::math::ellint_d(fr, lr);
1099    boost::math::jacobi_zeta(i, l);
1100    boost::math::jacobi_zeta(fr, lr);
1101    boost::math::heuman_lambda(i, l);
1102    boost::math::heuman_lambda(fr, lr);
1103    boost::math::ellint_rc(i, s);
1104    boost::math::ellint_rc(fr, lr);
1105    boost::math::ellint_rd(s, i, l);
1106    boost::math::ellint_rd(fr, lr, dr);
1107    boost::math::ellint_rf(s, l, i);
1108    boost::math::ellint_rf(fr, dr, lr);
1109    boost::math::ellint_rg(s, l, i);
1110    boost::math::ellint_rg(fr, dr, lr);
1111    boost::math::ellint_rj(i, i, s, l);
1112    boost::math::ellint_rj(i, fr, dr, lr);
1113    boost::math::jacobi_cd(i, fr);
1114    boost::math::jacobi_cn(i, fr);
1115    boost::math::jacobi_cs(i, fr);
1116    boost::math::jacobi_dc(i, fr);
1117    boost::math::jacobi_dn(i, fr);
1118    boost::math::jacobi_ds(i, fr);
1119    boost::math::jacobi_nc(i, fr);
1120    boost::math::jacobi_nd(i, fr);
1121    boost::math::jacobi_ns(i, fr);
1122    boost::math::jacobi_sc(i, fr);
1123    boost::math::jacobi_sd(i, fr);
1124    boost::math::jacobi_sn(i, fr);
1125    boost::math::hypot(i, s);
1126    boost::math::hypot(fr, lr);
1127    boost::math::sinc_pi(i);
1128    boost::math::sinhc_pi(i);
1129    boost::math::asinh(s);
1130    boost::math::acosh(l);
1131    boost::math::atanh(l);
1132    boost::math::sin_pi(s);
1133    boost::math::cos_pi(s);
1134    boost::math::cyl_neumann(fr, dr);
1135    boost::math::cyl_neumann(i, s);
1136    boost::math::cyl_bessel_j(fr, lr);
1137    boost::math::cyl_bessel_j(i, s);
1138    boost::math::cyl_bessel_i(fr, lr);
1139    boost::math::cyl_bessel_i(i, s);
1140    boost::math::cyl_bessel_k(fr, lr);
1141    boost::math::cyl_bessel_k(i, s);
1142    boost::math::sph_bessel(i, fr);
1143    boost::math::sph_bessel(i, 1);
1144    boost::math::sph_neumann(i, lr);
1145    boost::math::sph_neumann(i, i);
1146    boost::math::cyl_neumann_prime(fr, dr);
1147    boost::math::cyl_neumann_prime(i, s);
1148    boost::math::cyl_bessel_j_prime(fr, lr);
1149    boost::math::cyl_bessel_j_prime(i, s);
1150    boost::math::cyl_bessel_i_prime(fr, lr);
1151    boost::math::cyl_bessel_i_prime(i, s);
1152    boost::math::cyl_bessel_k_prime(fr, lr);
1153    boost::math::cyl_bessel_k_prime(i, s);
1154    boost::math::sph_bessel_prime(i, fr);
1155    boost::math::sph_bessel_prime(i, 1);
1156    boost::math::sph_neumann_prime(i, lr);
1157    boost::math::sph_neumann_prime(i, i);
1158    boost::math::owens_t(fr, dr);
1159    boost::math::owens_t(i, s);
1160
1161    boost::math::policies::policy<> pol;
1162
1163
1164    boost::math::tgamma(i, pol);
1165    boost::math::tgamma1pm1(i, pol);
1166    boost::math::lgamma(i, pol);
1167    boost::math::lgamma(i, &i, pol);
1168    boost::math::digamma(i, pol);
1169    boost::math::trigamma(i, pol);
1170    boost::math::polygamma(i, i, pol);
1171    boost::math::tgamma_ratio(i, l, pol);
1172    boost::math::tgamma_ratio(fr, lr, pol);
1173    boost::math::tgamma_delta_ratio(i, s, pol);
1174    boost::math::tgamma_delta_ratio(fr, lr, pol);
1175    boost::math::rising_factorial(s, i, pol);
1176    boost::math::falling_factorial(s, i, pol);
1177    boost::math::tgamma(i, l, pol);
1178    boost::math::tgamma(fr, lr, pol);
1179    boost::math::tgamma_lower(i, s, pol);
1180    boost::math::tgamma_lower(fr, lr, pol);
1181    boost::math::gamma_p(i, s, pol);
1182    boost::math::gamma_p(fr, lr, pol);
1183    boost::math::gamma_q(i, s, pol);
1184    boost::math::gamma_q(fr, lr, pol);
1185    boost::math::gamma_p_inv(i, fr, pol);
1186    boost::math::gamma_q_inv(s, fr, pol);
1187    boost::math::gamma_p_inva(i, lr, pol);
1188    boost::math::gamma_q_inva(i, lr, pol);
1189    boost::math::erf(i, pol);
1190    boost::math::erfc(i, pol);
1191    boost::math::erf_inv(i, pol);
1192    boost::math::erfc_inv(i, pol);
1193    boost::math::beta(i, s, pol);
1194    boost::math::beta(fr, lr, pol);
1195    boost::math::beta(i, s, l, pol);
1196    boost::math::beta(fr, dr, lr, pol);
1197    boost::math::betac(l, i, s, pol);
1198    boost::math::betac(fr, dr, lr, pol);
1199    boost::math::ibeta(l, i, s, pol);
1200    boost::math::ibeta(fr, dr, lr, pol);
1201    boost::math::ibetac(l, i, s, pol);
1202    boost::math::ibetac(fr, dr, lr, pol);
1203    boost::math::ibeta_inv(l, s, i, pol);
1204    boost::math::ibeta_inv(fr, dr, lr, pol);
1205    boost::math::ibetac_inv(l, i, s, pol);
1206    boost::math::ibetac_inv(fr, dr, lr, pol);
1207    boost::math::ibeta_inva(l, i, s, pol);
1208    boost::math::ibeta_inva(fr, dr, lr, pol);
1209    boost::math::ibetac_inva(l, i, s, pol);
1210    boost::math::ibetac_inva(fr, dr, lr, pol);
1211    boost::math::ibeta_invb(l, i, s, pol);
1212    boost::math::ibeta_invb(fr, dr, lr, pol);
1213    boost::math::ibetac_invb(l, i, s, pol);
1214    boost::math::ibetac_invb(fr, dr, lr, pol);
1215    boost::math::gamma_p_derivative(i, l, pol);
1216    boost::math::gamma_p_derivative(fr, lr, pol);
1217    boost::math::ibeta_derivative(l, i, s, pol);
1218    boost::math::ibeta_derivative(fr, dr, lr, pol);
1219    boost::math::log1p(i, pol);
1220    boost::math::expm1(s, pol);
1221    boost::math::cbrt(l, pol);
1222    boost::math::sqrt1pm1(s, pol);
1223    boost::math::powm1(i, s, pol);
1224    boost::math::powm1(fr, lr, pol);
1225    //boost::math::legendre_p(1, i, pol);
1226    boost::math::legendre_p(1, 0, s, pol);
1227    boost::math::legendre_q(1, i, pol);
1228    boost::math::laguerre(1, i, pol);
1229    boost::math::laguerre(2, 1, i, pol);
1230    boost::math::laguerre(2u, 1u, s, pol);
1231    boost::math::hermite(1, s, pol);
1232    boost::math::chebyshev_t(1, i, pol);
1233    boost::math::chebyshev_u(1, i, pol);
1234    boost::math::chebyshev_t_prime(1, i, pol);
1235    boost::math::spherical_harmonic_r(2, 1, s, i, pol);
1236    boost::math::spherical_harmonic_i(2, 1, fr, lr, pol);
1237    boost::math::ellint_1(i, pol);
1238    boost::math::ellint_1(i, s, pol);
1239    boost::math::ellint_1(fr, lr, pol);
1240    boost::math::ellint_2(i, pol);
1241    boost::math::ellint_2(i, l, pol);
1242    boost::math::ellint_2(fr, lr, pol);
1243    boost::math::ellint_3(i, l, pol);
1244    boost::math::ellint_3(fr, lr, pol);
1245    boost::math::ellint_3(s, l, i, pol);
1246    boost::math::ellint_3(fr, dr, lr, pol);
1247    boost::math::ellint_d(i, pol);
1248    boost::math::ellint_d(i, l, pol);
1249    boost::math::ellint_d(fr, lr, pol);
1250    boost::math::jacobi_zeta(i, l, pol);
1251    boost::math::jacobi_zeta(fr, lr, pol);
1252    boost::math::heuman_lambda(i, l, pol);
1253    boost::math::heuman_lambda(fr, lr, pol);
1254    boost::math::ellint_rc(i, s, pol);
1255    boost::math::ellint_rc(fr, lr, pol);
1256    boost::math::ellint_rd(s, i, l, pol);
1257    boost::math::ellint_rd(fr, lr, dr, pol);
1258    boost::math::ellint_rf(s, l, i, pol);
1259    boost::math::ellint_rf(fr, dr, lr, pol);
1260    boost::math::ellint_rg(s, l, i, pol);
1261    boost::math::ellint_rg(fr, dr, lr, pol);
1262    boost::math::ellint_rj(i, i, s, l, pol);
1263    boost::math::ellint_rj(i, fr, dr, lr, pol);
1264    boost::math::jacobi_cd(i, fr, pol);
1265    boost::math::jacobi_cn(i, fr, pol);
1266    boost::math::jacobi_cs(i, fr, pol);
1267    boost::math::jacobi_dc(i, fr, pol);
1268    boost::math::jacobi_dn(i, fr, pol);
1269    boost::math::jacobi_ds(i, fr, pol);
1270    boost::math::jacobi_nc(i, fr, pol);
1271    boost::math::jacobi_nd(i, fr, pol);
1272    boost::math::jacobi_ns(i, fr, pol);
1273    boost::math::jacobi_sc(i, fr, pol);
1274    boost::math::jacobi_sd(i, fr, pol);
1275    boost::math::jacobi_sn(i, fr, pol);
1276    boost::math::hypot(i, s, pol);
1277    boost::math::hypot(fr, lr, pol);
1278    boost::math::sinc_pi(i, pol);
1279    boost::math::sinhc_pi(i, pol);
1280    boost::math::asinh(s, pol);
1281    boost::math::acosh(l, pol);
1282    boost::math::atanh(l, pol);
1283    boost::math::sin_pi(s, pol);
1284    boost::math::cos_pi(s, pol);
1285    boost::math::cyl_neumann(fr, dr, pol);
1286    boost::math::cyl_neumann(i, s, pol);
1287    boost::math::cyl_bessel_j(fr, lr, pol);
1288    boost::math::cyl_bessel_j(i, s, pol);
1289    boost::math::cyl_bessel_i(fr, lr, pol);
1290    boost::math::cyl_bessel_i(i, s, pol);
1291    boost::math::cyl_bessel_k(fr, lr, pol);
1292    boost::math::cyl_bessel_k(i, s, pol);
1293    boost::math::sph_bessel(i, fr, pol);
1294    boost::math::sph_bessel(i, 1, pol);
1295    boost::math::sph_neumann(i, lr, pol);
1296    boost::math::sph_neumann(i, i, pol);
1297    boost::math::cyl_neumann_prime(fr, dr, pol);
1298    boost::math::cyl_neumann_prime(i, s, pol);
1299    boost::math::cyl_bessel_j_prime(fr, lr, pol);
1300    boost::math::cyl_bessel_j_prime(i, s, pol);
1301    boost::math::cyl_bessel_i_prime(fr, lr, pol);
1302    boost::math::cyl_bessel_i_prime(i, s, pol);
1303    boost::math::cyl_bessel_k_prime(fr, lr, pol);
1304    boost::math::cyl_bessel_k_prime(i, s, pol);
1305    boost::math::sph_bessel_prime(i, fr, pol);
1306    boost::math::sph_bessel_prime(i, 1, pol);
1307    boost::math::sph_neumann_prime(i, lr, pol);
1308    boost::math::sph_neumann_prime(i, i, pol);
1309    boost::math::owens_t(fr, dr, pol);
1310    boost::math::owens_t(i, s, pol);
1311    boost::math::lambert_w0(i, pol);
1312    boost::math::lambert_wm1(i, pol);
1313    boost::math::lambert_w0_prime(i, pol);
1314 #endif
1315 #ifdef TEST_GROUP_8
1316    test::tgamma(i);
1317    test::tgamma1pm1(i);
1318    test::lgamma(i);
1319    test::lgamma(i, &i);
1320    test::digamma(i);
1321    test::trigamma(i);
1322    test::polygamma(i, i);
1323    test::tgamma_ratio(i, l);
1324    test::tgamma_ratio(fr, lr);
1325    test::tgamma_delta_ratio(i, s);
1326    test::tgamma_delta_ratio(fr, lr);
1327    test::rising_factorial(s, i);
1328    test::falling_factorial(s, i);
1329    test::tgamma(i, l);
1330    test::tgamma(fr, lr);
1331    test::tgamma_lower(i, s);
1332    test::tgamma_lower(fr, lr);
1333    test::gamma_p(i, s);
1334    test::gamma_p(fr, lr);
1335    test::gamma_q(i, s);
1336    test::gamma_q(fr, lr);
1337    test::gamma_p_inv(i, fr);
1338    test::gamma_q_inv(s, fr);
1339    test::gamma_p_inva(i, lr);
1340    test::gamma_q_inva(i, lr);
1341    test::erf(i);
1342    test::erfc(i);
1343    test::erf_inv(i);
1344    test::erfc_inv(i);
1345    test::beta(i, s);
1346    test::beta(fr, lr);
1347    test::beta(i, s, l);
1348    test::beta(fr, dr, lr);
1349    test::betac(l, i, s);
1350    test::betac(fr, dr, lr);
1351    test::ibeta(l, i, s);
1352    test::ibeta(fr, dr, lr);
1353    test::ibetac(l, i, s);
1354    test::ibetac(fr, dr, lr);
1355    test::ibeta_inv(l, s, i);
1356    test::ibeta_inv(fr, dr, lr);
1357    test::ibetac_inv(l, i, s);
1358    test::ibetac_inv(fr, dr, lr);
1359    test::ibeta_inva(l, i, s);
1360    test::ibeta_inva(fr, dr, lr);
1361    test::ibetac_inva(l, i, s);
1362    test::ibetac_inva(fr, dr, lr);
1363    test::ibeta_invb(l, i, s);
1364    test::ibeta_invb(fr, dr, lr);
1365    test::ibetac_invb(l, i, s);
1366    test::ibetac_invb(fr, dr, lr);
1367    test::gamma_p_derivative(i, l);
1368    test::gamma_p_derivative(fr, lr);
1369    test::ibeta_derivative(l, i, s);
1370    test::ibeta_derivative(fr, dr, lr);
1371    (test::fpclassify)(i);
1372    (test::isfinite)(s);
1373    (test::isnormal)(l);
1374    (test::isnan)(i);
1375    (test::isinf)(l);
1376    test::log1p(i);
1377    test::expm1(s);
1378    test::cbrt(l);
1379    test::sqrt1pm1(s);
1380    test::powm1(i, s);
1381    test::powm1(fr, lr);
1382    //test::legendre_p(1, i);
1383    test::legendre_p(1, 0, s);
1384    test::legendre_q(1, i);
1385    test::laguerre(1, i);
1386    test::laguerre(2, 1, i);
1387    test::laguerre(2u, 1u, s);
1388    test::hermite(1, s);
1389    test::chebyshev_t(1, i);
1390    test::chebyshev_u(1, i);
1391    test::chebyshev_t_prime(1, s);
1392    test::spherical_harmonic_r(2, 1, s, i);
1393    test::spherical_harmonic_i(2, 1, fr, lr);
1394    test::ellint_1(i);
1395    test::ellint_1(i, s);
1396    test::ellint_1(fr, lr);
1397    test::ellint_2(i);
1398    test::ellint_2(i, l);
1399    test::ellint_2(fr, lr);
1400    test::ellint_3(i, l);
1401    test::ellint_3(fr, lr);
1402    test::ellint_3(s, l, i);
1403    test::ellint_3(fr, dr, lr);
1404    test::ellint_d(i);
1405    test::ellint_d(i, l);
1406    test::ellint_d(fr, lr);
1407    test::jacobi_zeta(i, l);
1408    test::jacobi_zeta(fr, lr);
1409    test::heuman_lambda(i, l);
1410    test::heuman_lambda(fr, lr);
1411    test::ellint_rc(i, s);
1412    test::ellint_rc(fr, lr);
1413    test::ellint_rd(s, i, l);
1414    test::ellint_rd(fr, lr, dr);
1415    test::ellint_rf(s, l, i);
1416    test::ellint_rf(fr, dr, lr);
1417    test::ellint_rg(s, l, i);
1418    test::ellint_rg(fr, dr, lr);
1419    test::ellint_rj(i, i, s, l);
1420    test::ellint_rj(i, fr, dr, lr);
1421    test::hypot(i, s);
1422    test::hypot(fr, lr);
1423    test::sinc_pi(i);
1424    test::sinhc_pi(i);
1425    test::asinh(s);
1426    test::acosh(l);
1427    test::atanh(l);
1428    test::sin_pi(s);
1429    test::cos_pi(s);
1430    test::cyl_neumann(fr, dr);
1431    test::cyl_neumann(i, s);
1432    test::cyl_bessel_j(fr, lr);
1433    test::cyl_bessel_j(i, s);
1434    test::cyl_bessel_i(fr, lr);
1435    test::cyl_bessel_i(i, s);
1436    test::cyl_bessel_k(fr, lr);
1437    test::cyl_bessel_k(i, s);
1438    test::sph_bessel(i, fr);
1439    test::sph_bessel(i, 1);
1440    test::sph_neumann(i, lr);
1441    test::sph_neumann(i, i);
1442    test::cyl_neumann_prime(fr, dr);
1443    test::cyl_neumann_prime(i, s);
1444    test::cyl_bessel_j_prime(fr, lr);
1445    test::cyl_bessel_j_prime(i, s);
1446    test::cyl_bessel_i_prime(fr, lr);
1447    test::cyl_bessel_i_prime(i, s);
1448    test::cyl_bessel_k_prime(fr, lr);
1449    test::cyl_bessel_k_prime(i, s);
1450    test::sph_bessel_prime(i, fr);
1451    test::sph_bessel_prime(i, 1);
1452    test::sph_neumann_prime(i, lr);
1453    test::sph_neumann_prime(i, i);
1454    test::airy_ai(i);
1455    test::airy_bi(i);
1456    test::airy_ai_prime(i);
1457    test::airy_bi_prime(i);
1458    test::owens_t(fr, dr);
1459    test::owens_t(i, s);
1460    boost::math::lambert_w0(i);
1461    boost::math::lambert_wm1(i);
1462    boost::math::lambert_w0_prime(i);
1463 #endif
1464 #endif
1465 }
1466
1467
1468 #endif // BOOST_LIBS_MATH_TEST_INSTANTIATE_HPP