instantiate.hpp 54 KB

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