tr1_incl_test.cpp 18 KB

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