diff options
Diffstat (limited to 'libs/math/test/compile_test')
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 +} |