summaryrefslogtreecommitdiff
path: root/libs/math/test/compile_test
diff options
context:
space:
mode:
Diffstat (limited to 'libs/math/test/compile_test')
-rw-r--r--libs/math/test/compile_test/instantiate.hpp67
-rw-r--r--libs/math/test/compile_test/sf_ellint_d_incl_test.cpp29
-rw-r--r--libs/math/test/compile_test/sf_ellint_rg_incl_test.cpp23
-rw-r--r--libs/math/test/compile_test/sf_heuman_lambda_incl_test.cpp23
-rw-r--r--libs/math/test/compile_test/sf_jacobi_zeta_incl_test.cpp23
-rw-r--r--libs/math/test/compile_test/sf_polygamma_incl_test.cpp28
6 files changed, 193 insertions, 0 deletions
diff --git a/libs/math/test/compile_test/instantiate.hpp b/libs/math/test/compile_test/instantiate.hpp
index c6a9d5a7e..56fc59329 100644
--- a/libs/math/test/compile_test/instantiate.hpp
+++ b/libs/math/test/compile_test/instantiate.hpp
@@ -55,6 +55,7 @@ void instantiate(RealType)
using namespace boost::math;
using namespace boost::math::concepts;
#ifdef TEST_GROUP_1
+ function_requires<DistributionConcept<arcsine_distribution<RealType> > >();
function_requires<DistributionConcept<bernoulli_distribution<RealType> > >();
function_requires<DistributionConcept<beta_distribution<RealType> > >();
function_requires<DistributionConcept<binomial_distribution<RealType> > >();
@@ -90,6 +91,7 @@ void instantiate(RealType)
#endif
#ifndef BOOST_MATH_INSTANTIATE_MINIMUM
#ifdef TEST_GROUP_2
+ function_requires<DistributionConcept<arcsine_distribution<RealType> > >();
function_requires<DistributionConcept<bernoulli_distribution<RealType, test_policy> > >();
function_requires<DistributionConcept<beta_distribution<RealType, test_policy> > >();
function_requires<DistributionConcept<binomial_distribution<RealType, test_policy> > >();
@@ -123,6 +125,7 @@ void instantiate(RealType)
function_requires<DistributionConcept<weibull_distribution<RealType, test_policy> > >();
#endif
#ifdef TEST_GROUP_3
+ function_requires<DistributionConcept<dist_test::arcsine > >();
function_requires<DistributionConcept<dist_test::bernoulli > >();
function_requires<DistributionConcept<dist_test::beta > >();
function_requires<DistributionConcept<dist_test::binomial > >();
@@ -166,6 +169,8 @@ void instantiate(RealType)
boost::math::lgamma(v1);
boost::math::lgamma(v1, &i);
boost::math::digamma(v1);
+ boost::math::trigamma(v1);
+ boost::math::polygamma(i, v1);
boost::math::tgamma_ratio(v1, v2);
boost::math::tgamma_delta_ratio(v1, v2);
boost::math::factorial<RealType>(i);
@@ -199,6 +204,7 @@ void instantiate(RealType)
boost::math::ibetac_invb(v1, v2, v3);
boost::math::gamma_p_derivative(v2, v3);
boost::math::ibeta_derivative(v1, v2, v3);
+ boost::math::binomial_coefficient<RealType>(i, i);
(boost::math::fpclassify)(v1);
(boost::math::isfinite)(v1);
(boost::math::isnormal)(v1);
@@ -233,9 +239,14 @@ void instantiate(RealType)
boost::math::ellint_2(v1, v2);
boost::math::ellint_3(v1, v2);
boost::math::ellint_3(v1, v2, v3);
+ boost::math::ellint_d(v1);
+ boost::math::ellint_d(v1, v2);
+ boost::math::jacobi_zeta(v1, v2);
+ boost::math::heuman_lambda(v1, v2);
boost::math::ellint_rc(v1, v2);
boost::math::ellint_rd(v1, v2, v3);
boost::math::ellint_rf(v1, v2, v3);
+ boost::math::ellint_rg(v1, v2, v3);
boost::math::ellint_rj(v1, v2, v3, v1);
boost::math::jacobi_elliptic(v1, v2, &v1, &v2);
boost::math::jacobi_cd(v1, v2);
@@ -351,6 +362,8 @@ void instantiate(RealType)
boost::math::lgamma(v1 * 1);
boost::math::lgamma(v1 * 1, &i);
boost::math::digamma(v1 * 1);
+ boost::math::trigamma(v1 * 1);
+ boost::math::polygamma(i, v1 * 1);
boost::math::tgamma_ratio(v1 * 1, v2 + 0);
boost::math::tgamma_delta_ratio(v1 * 1, v2 + 0);
boost::math::factorial<RealType>(i);
@@ -421,7 +434,12 @@ void instantiate(RealType)
boost::math::ellint_rc(v1 * 1, v2 + 0);
boost::math::ellint_rd(v1 * 1, v2 + 0, v3 / 1);
boost::math::ellint_rf(v1 * 1, v2 + 0, v3 / 1);
+ boost::math::ellint_rg(v1 * 1, v2 + 0, v3 / 1);
boost::math::ellint_rj(v1 * 1, v2 + 0, v3 / 1, v1 * 1);
+ boost::math::ellint_d(v1 * 1);
+ boost::math::ellint_d(v1 * 1, v2 + 0);
+ boost::math::jacobi_zeta(v1 * 1, v2 + 0);
+ boost::math::heuman_lambda(v1 * 1, v2 + 0);
boost::math::jacobi_elliptic(v1 * 1, v2 + 0, &v1, &v2);
boost::math::jacobi_cd(v1 * 1, v2 + 0);
boost::math::jacobi_cn(v1 * 1, v2 + 0);
@@ -525,6 +543,8 @@ void instantiate(RealType)
boost::math::lgamma(v1, pol);
boost::math::lgamma(v1, &i, pol);
boost::math::digamma(v1, pol);
+ boost::math::trigamma(v1, pol);
+ boost::math::polygamma(i, v1, pol);
boost::math::tgamma_ratio(v1, v2, pol);
boost::math::tgamma_delta_ratio(v1, v2, pol);
boost::math::factorial<RealType>(i, pol);
@@ -558,6 +578,7 @@ void instantiate(RealType)
boost::math::ibetac_invb(v1, v2, v3, pol);
boost::math::gamma_p_derivative(v2, v3, pol);
boost::math::ibeta_derivative(v1, v2, v3, pol);
+ boost::math::binomial_coefficient<RealType>(i, i, pol);
boost::math::log1p(v1, pol);
boost::math::expm1(v1, pol);
boost::math::cbrt(v1, pol);
@@ -582,9 +603,14 @@ void instantiate(RealType)
boost::math::ellint_2(v1, v2, pol);
boost::math::ellint_3(v1, v2, pol);
boost::math::ellint_3(v1, v2, v3, pol);
+ boost::math::ellint_d(v1, pol);
+ boost::math::ellint_d(v1, v2, pol);
+ boost::math::jacobi_zeta(v1, v2, pol);
+ boost::math::heuman_lambda(v1, v2, pol);
boost::math::ellint_rc(v1, v2, pol);
boost::math::ellint_rd(v1, v2, v3, pol);
boost::math::ellint_rf(v1, v2, v3, pol);
+ boost::math::ellint_rg(v1, v2, v3, pol);
boost::math::ellint_rj(v1, v2, v3, v1, pol);
boost::math::jacobi_elliptic(v1, v2, &v1, &v2, pol);
boost::math::jacobi_cd(v1, v2, pol);
@@ -702,6 +728,8 @@ void instantiate(RealType)
test::lgamma(v1);
test::lgamma(v1, &i);
test::digamma(v1);
+ test::trigamma(v1);
+ test::polygamma(i, v1);
test::tgamma_ratio(v1, v2);
test::tgamma_delta_ratio(v1, v2);
test::factorial<RealType>(i);
@@ -735,6 +763,7 @@ void instantiate(RealType)
test::ibetac_invb(v1, v2, v3);
test::gamma_p_derivative(v2, v3);
test::ibeta_derivative(v1, v2, v3);
+ test::binomial_coefficient<RealType>(i, i);
(test::fpclassify)(v1);
(test::isfinite)(v1);
(test::isnormal)(v1);
@@ -768,9 +797,14 @@ void instantiate(RealType)
test::ellint_2(v1, v2);
test::ellint_3(v1, v2);
test::ellint_3(v1, v2, v3);
+ test::ellint_d(v1);
+ test::ellint_d(v1, v2);
+ test::jacobi_zeta(v1, v2);
+ test::heuman_lambda(v1, v2);
test::ellint_rc(v1, v2);
test::ellint_rd(v1, v2, v3);
test::ellint_rf(v1, v2, v3);
+ test::ellint_rg(v1, v2, v3);
test::ellint_rj(v1, v2, v3, v1);
test::jacobi_elliptic(v1, v2, &v1, &v2);
test::jacobi_cd(v1, v2);
@@ -893,6 +927,8 @@ void instantiate_mixed(RealType)
boost::math::lgamma(i);
boost::math::lgamma(i, &i);
boost::math::digamma(i);
+ boost::math::trigamma(i);
+ boost::math::polygamma(i, i);
boost::math::tgamma_ratio(i, l);
boost::math::tgamma_ratio(fr, lr);
boost::math::tgamma_delta_ratio(i, s);
@@ -971,12 +1007,21 @@ void instantiate_mixed(RealType)
boost::math::ellint_3(fr, lr);
boost::math::ellint_3(s, l, i);
boost::math::ellint_3(fr, dr, lr);
+ boost::math::ellint_d(i);
+ boost::math::ellint_d(i, l);
+ boost::math::ellint_d(fr, lr);
+ boost::math::jacobi_zeta(i, l);
+ boost::math::jacobi_zeta(fr, lr);
+ boost::math::heuman_lambda(i, l);
+ boost::math::heuman_lambda(fr, lr);
boost::math::ellint_rc(i, s);
boost::math::ellint_rc(fr, lr);
boost::math::ellint_rd(s, i, l);
boost::math::ellint_rd(fr, lr, dr);
boost::math::ellint_rf(s, l, i);
boost::math::ellint_rf(fr, dr, lr);
+ boost::math::ellint_rg(s, l, i);
+ boost::math::ellint_rg(fr, dr, lr);
boost::math::ellint_rj(i, i, s, l);
boost::math::ellint_rj(i, fr, dr, lr);
boost::math::jacobi_cd(i, fr);
@@ -1035,6 +1080,8 @@ void instantiate_mixed(RealType)
boost::math::lgamma(i, pol);
boost::math::lgamma(i, &i, pol);
boost::math::digamma(i, pol);
+ boost::math::trigamma(i, pol);
+ boost::math::polygamma(i, i, pol);
boost::math::tgamma_ratio(i, l, pol);
boost::math::tgamma_ratio(fr, lr, pol);
boost::math::tgamma_delta_ratio(i, s, pol);
@@ -1108,12 +1155,21 @@ void instantiate_mixed(RealType)
boost::math::ellint_3(fr, lr, pol);
boost::math::ellint_3(s, l, i, pol);
boost::math::ellint_3(fr, dr, lr, pol);
+ boost::math::ellint_d(i, pol);
+ boost::math::ellint_d(i, l, pol);
+ boost::math::ellint_d(fr, lr, pol);
+ boost::math::jacobi_zeta(i, l, pol);
+ boost::math::jacobi_zeta(fr, lr, pol);
+ boost::math::heuman_lambda(i, l, pol);
+ boost::math::heuman_lambda(fr, lr, pol);
boost::math::ellint_rc(i, s, pol);
boost::math::ellint_rc(fr, lr, pol);
boost::math::ellint_rd(s, i, l, pol);
boost::math::ellint_rd(fr, lr, dr, pol);
boost::math::ellint_rf(s, l, i, pol);
boost::math::ellint_rf(fr, dr, lr, pol);
+ boost::math::ellint_rg(s, l, i, pol);
+ boost::math::ellint_rg(fr, dr, lr, pol);
boost::math::ellint_rj(i, i, s, l, pol);
boost::math::ellint_rj(i, fr, dr, lr, pol);
boost::math::jacobi_cd(i, fr, pol);
@@ -1170,6 +1226,8 @@ void instantiate_mixed(RealType)
test::lgamma(i);
test::lgamma(i, &i);
test::digamma(i);
+ test::trigamma(i);
+ test::polygamma(i, i);
test::tgamma_ratio(i, l);
test::tgamma_ratio(fr, lr);
test::tgamma_delta_ratio(i, s);
@@ -1248,12 +1306,21 @@ void instantiate_mixed(RealType)
test::ellint_3(fr, lr);
test::ellint_3(s, l, i);
test::ellint_3(fr, dr, lr);
+ test::ellint_d(i);
+ test::ellint_d(i, l);
+ test::ellint_d(fr, lr);
+ test::jacobi_zeta(i, l);
+ test::jacobi_zeta(fr, lr);
+ test::heuman_lambda(i, l);
+ test::heuman_lambda(fr, lr);
test::ellint_rc(i, s);
test::ellint_rc(fr, lr);
test::ellint_rd(s, i, l);
test::ellint_rd(fr, lr, dr);
test::ellint_rf(s, l, i);
test::ellint_rf(fr, dr, lr);
+ test::ellint_rg(s, l, i);
+ test::ellint_rg(fr, dr, lr);
test::ellint_rj(i, i, s, l);
test::ellint_rj(i, fr, dr, lr);
test::hypot(i, s);
diff --git a/libs/math/test/compile_test/sf_ellint_d_incl_test.cpp b/libs/math/test/compile_test/sf_ellint_d_incl_test.cpp
new file mode 100644
index 000000000..c7c4249a5
--- /dev/null
+++ b/libs/math/test/compile_test/sf_ellint_d_incl_test.cpp
@@ -0,0 +1,29 @@
+// Copyright John Maddock 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Basic sanity check that header <boost/math/special_functions/ellint_d.hpp>
+// #includes all the files that it needs to.
+//
+#include <boost/math/special_functions/ellint_d.hpp>
+//
+// Note this header includes no other headers, this is
+// important if this test is to be meaningful:
+//
+#include "test_compile_result.hpp"
+
+void compile_and_link_test()
+{
+ check_result<float>(boost::math::ellint_d<float>(f, f));
+ check_result<double>(boost::math::ellint_d<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::ellint_d<long double>(l, l));
+#endif
+
+ check_result<float>(boost::math::ellint_d<float>(f));
+ check_result<double>(boost::math::ellint_d<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::ellint_d<long double>(l));
+#endif
+}
diff --git a/libs/math/test/compile_test/sf_ellint_rg_incl_test.cpp b/libs/math/test/compile_test/sf_ellint_rg_incl_test.cpp
new file mode 100644
index 000000000..fed70d95a
--- /dev/null
+++ b/libs/math/test/compile_test/sf_ellint_rg_incl_test.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Basic sanity check that header <boost/math/special_functions/ellint_rf.hpp>
+// #includes all the files that it needs to.
+//
+#include <boost/math/special_functions/ellint_rg.hpp>
+//
+// Note this header includes no other headers, this is
+// important if this test is to be meaningful:
+//
+#include "test_compile_result.hpp"
+
+void compile_and_link_test()
+{
+ check_result<float>(boost::math::ellint_rg<float>(f, f, f));
+ check_result<double>(boost::math::ellint_rg<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::ellint_rg<long double>(l, l, l));
+#endif
+}
diff --git a/libs/math/test/compile_test/sf_heuman_lambda_incl_test.cpp b/libs/math/test/compile_test/sf_heuman_lambda_incl_test.cpp
new file mode 100644
index 000000000..4ed1245d9
--- /dev/null
+++ b/libs/math/test/compile_test/sf_heuman_lambda_incl_test.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2015.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Basic sanity check that header <boost/math/special_functions/ellint_d.hpp>
+// #includes all the files that it needs to.
+//
+#include <boost/math/special_functions/heuman_lambda.hpp>
+//
+// Note this header includes no other headers, this is
+// important if this test is to be meaningful:
+//
+#include "test_compile_result.hpp"
+
+void compile_and_link_test()
+{
+ check_result<float>(boost::math::heuman_lambda<float>(f, f));
+ check_result<double>(boost::math::heuman_lambda<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::heuman_lambda<long double>(l, l));
+#endif
+}
diff --git a/libs/math/test/compile_test/sf_jacobi_zeta_incl_test.cpp b/libs/math/test/compile_test/sf_jacobi_zeta_incl_test.cpp
new file mode 100644
index 000000000..78dcd2883
--- /dev/null
+++ b/libs/math/test/compile_test/sf_jacobi_zeta_incl_test.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Basic sanity check that header <boost/math/special_functions/ellint_d.hpp>
+// #includes all the files that it needs to.
+//
+#include <boost/math/special_functions/jacobi_zeta.hpp>
+//
+// Note this header includes no other headers, this is
+// important if this test is to be meaningful:
+//
+#include "test_compile_result.hpp"
+
+void compile_and_link_test()
+{
+ check_result<float>(boost::math::jacobi_zeta<float>(f, f));
+ check_result<double>(boost::math::jacobi_zeta<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::jacobi_zeta<long double>(l, l));
+#endif
+}
diff --git a/libs/math/test/compile_test/sf_polygamma_incl_test.cpp b/libs/math/test/compile_test/sf_polygamma_incl_test.cpp
new file mode 100644
index 000000000..883644993
--- /dev/null
+++ b/libs/math/test/compile_test/sf_polygamma_incl_test.cpp
@@ -0,0 +1,28 @@
+// Copyright John Maddock 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Basic sanity check that header <boost/math/special_functions/digamma.hpp>
+// #includes all the files that it needs to.
+//
+#include <boost/math/special_functions/polygamma.hpp>
+//
+// Note this header includes no other headers, this is
+// important if this test is to be meaningful:
+//
+#include "test_compile_result.hpp"
+
+void compile_and_link_test()
+{
+ check_result<float>(boost::math::trigamma<float>(f));
+ check_result<double>(boost::math::trigamma<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::trigamma<long double>(l));
+#endif
+ check_result<float>(boost::math::polygamma<float>(1, f));
+ check_result<double>(boost::math::polygamma<double>(1, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ check_result<long double>(boost::math::polygamma<long double>(1, l));
+#endif
+}