1 //  Copyright John Maddock 2012.
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/special_functions/bessel.hpp>
7 // #includes all the files that it needs to.
8 //
9 #include <boost/math/special_functions/jacobi_elliptic.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 
compile_and_link_test()16 void compile_and_link_test()
17 {
18    check_result<float>(boost::math::jacobi_elliptic<float>(f, f, static_cast<float*>(0), static_cast<float*>(0)));
19    check_result<double>(boost::math::jacobi_elliptic<double>(d, d, static_cast<double*>(0), static_cast<double*>(0)));
20 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
21    check_result<long double>(boost::math::jacobi_elliptic<long double>(l, l, static_cast<long double*>(0), static_cast<long double*>(0)));
22 #endif
23 
24    check_result<float>(boost::math::jacobi_sn<float>(f, f));
25    check_result<double>(boost::math::jacobi_sn<double>(d, d));
26 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
27    check_result<long double>(boost::math::jacobi_sn<long double>(l, l));
28 #endif
29 
30    check_result<float>(boost::math::jacobi_cn<float>(f, f));
31    check_result<double>(boost::math::jacobi_cn<double>(d, d));
32 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
33    check_result<long double>(boost::math::jacobi_cn<long double>(l, l));
34 #endif
35 
36    check_result<float>(boost::math::jacobi_dn<float>(f, f));
37    check_result<double>(boost::math::jacobi_dn<double>(d, d));
38 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
39    check_result<long double>(boost::math::jacobi_dn<long double>(l, l));
40 #endif
41 
42    check_result<float>(boost::math::jacobi_cd<float>(f, f));
43    check_result<double>(boost::math::jacobi_cd<double>(d, d));
44 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
45    check_result<long double>(boost::math::jacobi_cd<long double>(l, l));
46 #endif
47 
48    check_result<float>(boost::math::jacobi_dc<float>(f, f));
49    check_result<double>(boost::math::jacobi_dc<double>(d, d));
50 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
51    check_result<long double>(boost::math::jacobi_dc<long double>(l, l));
52 #endif
53 
54    check_result<float>(boost::math::jacobi_ns<float>(f, f));
55    check_result<double>(boost::math::jacobi_ns<double>(d, d));
56 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
57    check_result<long double>(boost::math::jacobi_ns<long double>(l, l));
58 #endif
59 
60    check_result<float>(boost::math::jacobi_sd<float>(f, f));
61    check_result<double>(boost::math::jacobi_sd<double>(d, d));
62 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
63    check_result<long double>(boost::math::jacobi_sd<long double>(l, l));
64 #endif
65 
66    check_result<float>(boost::math::jacobi_ds<float>(f, f));
67    check_result<double>(boost::math::jacobi_ds<double>(d, d));
68 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
69    check_result<long double>(boost::math::jacobi_ds<long double>(l, l));
70 #endif
71 
72    check_result<float>(boost::math::jacobi_nc<float>(f, f));
73    check_result<double>(boost::math::jacobi_nc<double>(d, d));
74 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
75    check_result<long double>(boost::math::jacobi_nc<long double>(l, l));
76 #endif
77 
78    check_result<float>(boost::math::jacobi_nd<float>(f, f));
79    check_result<double>(boost::math::jacobi_nd<double>(d, d));
80 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
81    check_result<long double>(boost::math::jacobi_nd<long double>(l, l));
82 #endif
83 
84    check_result<float>(boost::math::jacobi_sc<float>(f, f));
85    check_result<double>(boost::math::jacobi_sc<double>(d, d));
86 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
87    check_result<long double>(boost::math::jacobi_sc<long double>(l, l));
88 #endif
89 
90    check_result<float>(boost::math::jacobi_cs<float>(f, f));
91    check_result<double>(boost::math::jacobi_cs<double>(d, d));
92 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
93    check_result<long double>(boost::math::jacobi_cs<long double>(l, l));
94 #endif
95 
96 }
97