Boost logo

Boost-Commit :

From: john_at_[hidden]
Date: 2007-11-11 09:05:56


Author: johnmaddock
Date: 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
New Revision: 41007
URL: http://svn.boost.org/trac/boost/changeset/41007

Log:
Added static assertion to catch use of long double function overloads when BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined.
Made sure that if BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined, then no long double overloads are actually instantiated by the tests.
Text files modified:
   trunk/boost/math/tools/promotion.hpp | 12 ++++++++++++
   trunk/libs/math/octonion/octonion_test.cpp | 9 +++++++--
   trunk/libs/math/quaternion/quaternion_test.cpp | 6 +++++-
   trunk/libs/math/test/acosh_test.hpp | 7 +++++++
   trunk/libs/math/test/asinh_test.hpp | 7 +++++++
   trunk/libs/math/test/atanh_test.hpp | 14 ++++++++++++++
   trunk/libs/math/test/compile_test/dist_bernoulli_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_beta_incl_test.cpp | 3 ++-
   trunk/libs/math/test/compile_test/dist_binomial_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_cauchy_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_chi_squared_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_exponential_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_extreme_val_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_fisher_f_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_gamma_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_lognormal_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_neg_binom_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_normal_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_pareto_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_poisson_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_students_t_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_triangular_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_uniform_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/dist_weibull_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/distribution_concept_check.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_bessel_incl_test.cpp | 12 ++++++++++++
   trunk/libs/math/test/compile_test/sf_beta_incl_test.cpp | 8 ++++++++
   trunk/libs/math/test/compile_test/sf_binomial_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_cbrt_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_cos_pi_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_digamma_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_ellint_1_incl_test.cpp | 4 ++++
   trunk/libs/math/test/compile_test/sf_ellint_2_incl_test.cpp | 4 ++++
   trunk/libs/math/test/compile_test/sf_ellint_3_incl_test.cpp | 4 ++++
   trunk/libs/math/test/compile_test/sf_ellint_rc_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_ellint_rd_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_ellint_rf_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_ellint_rj_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_erf_incl_test.cpp | 8 ++++++++
   trunk/libs/math/test/compile_test/sf_expm1_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_factorials_incl_test.cpp | 8 ++++++++
   trunk/libs/math/test/compile_test/sf_fpclassify_incl_test.cpp | 8 ++++++++
   trunk/libs/math/test/compile_test/sf_gamma_incl_test.cpp | 22 ++++++++++++++++++++++
   trunk/libs/math/test/compile_test/sf_hermite_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_hypot_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_laguerre_incl_test.cpp | 4 ++++
   trunk/libs/math/test/compile_test/sf_legendre_incl_test.cpp | 6 ++++++
   trunk/libs/math/test/compile_test/sf_log1p_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_powm1_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_sign_incl_test.cpp | 6 ++++++
   trunk/libs/math/test/compile_test/sf_sin_pi_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_sinc_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_sinhc_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/sf_sph_harm_incl_test.cpp | 6 ++++++
   trunk/libs/math/test/compile_test/sf_sqrt1pm1_incl_test.cpp | 2 ++
   trunk/libs/math/test/compile_test/std_real_concept_check.cpp | 2 ++
   trunk/libs/math/test/compile_test/test_compile_result.hpp | 7 ++++++-
   trunk/libs/math/test/complex_test.cpp | 4 +++-
   trunk/libs/math/test/hypot_test.cpp | 5 +++++
   trunk/libs/math/test/sinc_test.hpp | 9 +++++++++
   trunk/libs/math/test/sinhc_test.hpp | 9 +++++++++
   trunk/libs/math/test/special_functions_test.cpp | 11 +++++++++--
   trunk/libs/math/test/test_cbrt.cpp | 2 ++
   63 files changed, 269 insertions(+), 8 deletions(-)

Modified: trunk/boost/math/tools/promotion.hpp
==============================================================================
--- trunk/boost/math/tools/promotion.hpp (original)
+++ trunk/boost/math/tools/promotion.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -19,6 +19,7 @@
 #define BOOST_MATH_PROMOTION_HPP
 
 // Boost type traits:
+#include <boost/math/tools/config.hpp>
 #include <boost/type_traits/is_floating_point.hpp> // for boost::is_floating_point;
 #include <boost/type_traits/is_integral.hpp> // for boost::is_integral
 #include <boost/type_traits/is_convertible.hpp> // for boost::is_convertible
@@ -29,6 +30,10 @@
 #include <boost/mpl/and.hpp> // for boost::mpl::if_c.
 #include <boost/mpl/or.hpp> // for boost::mpl::if_c.
 
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#include <boost/static_assert.hpp>
+#endif
+
 namespace boost
 {
   namespace math
@@ -99,6 +104,13 @@
>::type
>::type
>::type type;
+
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+ //
+ // Guard against use of long double if it's not supported:
+ //
+ BOOST_STATIC_ASSERT((0 == ::boost::is_same<type, long double>::value));
+#endif
       };
 
     } // namespace tools

Modified: trunk/libs/math/octonion/octonion_test.cpp
==============================================================================
--- trunk/libs/math/octonion/octonion_test.cpp (original)
+++ trunk/libs/math/octonion/octonion_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -33,15 +33,20 @@
 
 DEFINE_TYPE_NAME(float);
 DEFINE_TYPE_NAME(double);
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 DEFINE_TYPE_NAME(long double);
+#endif
 
-
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 typedef boost::mpl::list<float,double,long double> test_types;
+#else
+typedef boost::mpl::list<float,double> test_types;
+#endif
 
 // Apple GCC 4.0 uses the "double double" format for its long double,
 // which means that epsilon is VERY small but useless for
 // comparisons. So, don't do those comparisons.
-#if defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4
+#if (defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 typedef boost::mpl::list<float,double> near_eps_test_types;
 #else
 typedef boost::mpl::list<float,double,long double> near_eps_test_types;

Modified: trunk/libs/math/quaternion/quaternion_test.cpp
==============================================================================
--- trunk/libs/math/quaternion/quaternion_test.cpp (original)
+++ trunk/libs/math/quaternion/quaternion_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -35,12 +35,16 @@
 DEFINE_TYPE_NAME(long double);
 
 
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 typedef boost::mpl::list<float,double,long double> test_types;
+#else
+typedef boost::mpl::list<float,double> test_types;
+#endif
 
 // Apple GCC 4.0 uses the "double double" format for its long double,
 // which means that epsilon is VERY small but useless for
 // comparisons. So, don't do those comparisons.
-#if defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4
+#if (defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 typedef boost::mpl::list<float,double> near_eps_test_types;
 #else
 typedef boost::mpl::list<float,double,long double> near_eps_test_types;

Modified: trunk/libs/math/test/acosh_test.hpp
==============================================================================
--- trunk/libs/math/test/acosh_test.hpp (original)
+++ trunk/libs/math/test/acosh_test.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -70,12 +70,19 @@
         long double xl =
                 static_cast<long double>(i-50)/static_cast<long double>(5);
         
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
         BOOST_MESSAGE( ::std::setw(15)
                      << acosh_error_evaluator(xf)
                      << ::std::setw(15)
                      << acosh_error_evaluator(xd)
                      << ::std::setw(15)
                      << acosh_error_evaluator(xl));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << acosh_error_evaluator(xf)
+ << ::std::setw(15)
+ << acosh_error_evaluator(xd));
+#endif
     }
     
     BOOST_MESSAGE(" ");

Modified: trunk/libs/math/test/asinh_test.hpp
==============================================================================
--- trunk/libs/math/test/asinh_test.hpp (original)
+++ trunk/libs/math/test/asinh_test.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -70,12 +70,19 @@
         long double xl =
                 static_cast<long double>(i-40)/static_cast<long double>(4);
         
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
         BOOST_MESSAGE( ::std::setw(15)
                      << asinh_error_evaluator(xf)
                      << ::std::setw(15)
                      << asinh_error_evaluator(xd)
                      << ::std::setw(15)
                      << asinh_error_evaluator(xl));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << asinh_error_evaluator(xf)
+ << ::std::setw(15)
+ << asinh_error_evaluator(xd));
+#endif
     }
     
     BOOST_MESSAGE(" ");

Modified: trunk/libs/math/test/atanh_test.hpp
==============================================================================
--- trunk/libs/math/test/atanh_test.hpp (original)
+++ trunk/libs/math/test/atanh_test.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -116,12 +116,19 @@
                 std::numeric_limits<long double>::has_infinity
             )
         {
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
             BOOST_MESSAGE( ::std::setw(15)
                         << atanh_error_evaluator(xf)
                         << ::std::setw(15)
                         << atanh_error_evaluator(xd)
                         << ::std::setw(15)
                         << atanh_error_evaluator(xl));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << atanh_error_evaluator(xf)
+ << ::std::setw(15)
+ << atanh_error_evaluator(xd));
+#endif
         }
         else
         {
@@ -144,12 +151,19 @@
             }
             else
             {
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
                 BOOST_MESSAGE( ::std::setw(15)
                             << atanh_error_evaluator(xf)
                             << ::std::setw(15)
                             << atanh_error_evaluator(xd)
                             << ::std::setw(15)
                             << atanh_error_evaluator(xl));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << atanh_error_evaluator(xf)
+ << ::std::setw(15)
+ << atanh_error_evaluator(xd));
+#endif
             }
         }
     }

Modified: trunk/libs/math/test/compile_test/dist_bernoulli_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_bernoulli_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_bernoulli_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::bernoulli_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::bernoulli_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::bernoulli_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_beta_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_beta_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_beta_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,5 +20,6 @@
 
 template class boost::math::beta_distribution<double, boost::math::policies::policy<> >;
 template class boost::math::beta_distribution<float, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::beta_distribution<long double, boost::math::policies::policy<> >;
-
+#endif

Modified: trunk/libs/math/test/compile_test/dist_binomial_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_binomial_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_binomial_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::binomial_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::binomial_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::binomial_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_cauchy_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_cauchy_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_cauchy_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -21,4 +21,6 @@
 
 template class boost::math::cauchy_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::cauchy_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::cauchy_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_chi_squared_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_chi_squared_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_chi_squared_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::chi_squared_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::chi_squared_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::chi_squared_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_exponential_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_exponential_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_exponential_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::exponential_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::exponential_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::exponential_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_extreme_val_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_extreme_val_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_extreme_val_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::extreme_value_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::extreme_value_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::extreme_value_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_fisher_f_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_fisher_f_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_fisher_f_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::fisher_f_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::fisher_f_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::fisher_f_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_gamma_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_gamma_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_gamma_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::gamma_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::gamma_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::gamma_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_lognormal_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_lognormal_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_lognormal_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::lognormal_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::lognormal_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::lognormal_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_neg_binom_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_neg_binom_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_neg_binom_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::negative_binomial_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::negative_binomial_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::negative_binomial_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_normal_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_normal_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_normal_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::normal_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::normal_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::normal_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_pareto_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_pareto_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_pareto_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::pareto_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::pareto_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::pareto_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_poisson_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_poisson_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_poisson_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::poisson_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::poisson_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::poisson_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_students_t_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_students_t_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_students_t_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::students_t_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::students_t_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::students_t_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_triangular_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_triangular_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_triangular_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::triangular_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::triangular_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::triangular_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_uniform_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_uniform_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_uniform_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::uniform_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::uniform_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::uniform_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/dist_weibull_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/dist_weibull_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/dist_weibull_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -20,4 +20,6 @@
 
 template class boost::math::weibull_distribution<float, boost::math::policies::policy<> >;
 template class boost::math::weibull_distribution<double, boost::math::policies::policy<> >;
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 template class boost::math::weibull_distribution<long double, boost::math::policies::policy<> >;
+#endif

Modified: trunk/libs/math/test/compile_test/distribution_concept_check.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/distribution_concept_check.cpp (original)
+++ trunk/libs/math/test/compile_test/distribution_concept_check.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -42,6 +42,8 @@
 {
    instantiate(float(0));
    instantiate(double(0));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    instantiate((long double)(0));
+#endif
 }
 

Modified: trunk/libs/math/test/compile_test/sf_bessel_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_bessel_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_bessel_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,25 +17,37 @@
 {
    check_result<float>(boost::math::cyl_bessel_j<float>(f, f));
    check_result<double>(boost::math::cyl_bessel_j<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cyl_bessel_j<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::cyl_neumann<float>(f, f));
    check_result<double>(boost::math::cyl_neumann<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cyl_neumann<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::cyl_bessel_i<float>(f, f));
    check_result<double>(boost::math::cyl_bessel_i<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cyl_bessel_i<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::cyl_bessel_k<float>(f, f));
    check_result<double>(boost::math::cyl_bessel_k<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cyl_bessel_k<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::sph_bessel<float>(u, f));
    check_result<double>(boost::math::sph_bessel<double>(u, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sph_bessel<long double>(u, l));
+#endif
 
    check_result<float>(boost::math::sph_neumann<float>(u, f));
    check_result<double>(boost::math::sph_neumann<double>(u, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sph_neumann<long double>(u, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_beta_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_beta_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_beta_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,18 +17,26 @@
 {
    check_result<float>(boost::math::beta<float, float>(f, f));
    check_result<double>(boost::math::beta<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::beta<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::ibeta<float>(f, f, f));
    check_result<double>(boost::math::ibeta<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ibeta<long double>(l, l, l));
+#endif
 
    check_result<float>(boost::math::ibeta_inv<float>(f, f, f));
    check_result<double>(boost::math::ibeta_inv<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ibeta_inv<long double>(l, l, l));
+#endif
 
    check_result<float>(boost::math::ibeta_inva<float>(f, f, f));
    check_result<double>(boost::math::ibeta_inva<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ibeta_inva<long double>(l, l, l));
+#endif
 }
 

Modified: trunk/libs/math/test/compile_test/sf_binomial_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_binomial_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_binomial_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::binomial_coefficient<float>(u, u));
    check_result<double>(boost::math::binomial_coefficient<double>(u, u));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::binomial_coefficient<long double>(u, u));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_cbrt_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_cbrt_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_cbrt_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::cbrt<float>(f));
    check_result<double>(boost::math::cbrt<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cbrt<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_cos_pi_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_cos_pi_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_cos_pi_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::cos_pi<float>(f));
    check_result<double>(boost::math::cos_pi<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::cos_pi<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_digamma_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_digamma_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_digamma_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::digamma<float>(f));
    check_result<double>(boost::math::digamma<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::digamma<long double>(l));
+#endif
 }
\ No newline at end of file

Modified: trunk/libs/math/test/compile_test/sf_ellint_1_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_1_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_1_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,9 +17,13 @@
 {
    check_result<float>(boost::math::ellint_1<float>(f, f));
    check_result<double>(boost::math::ellint_1<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_1<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::ellint_1<float>(f));
    check_result<double>(boost::math::ellint_1<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_1<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_2_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_2_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_2_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,9 +17,13 @@
 {
    check_result<float>(boost::math::ellint_2<float>(f, f));
    check_result<double>(boost::math::ellint_2<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_2<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::ellint_2<float>(f));
    check_result<double>(boost::math::ellint_2<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_2<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_3_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_3_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_3_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,9 +17,13 @@
 {
    check_result<float>(boost::math::ellint_3<float>(f, f));
    check_result<double>(boost::math::ellint_3<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_3<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::ellint_3<float>(f, f, f));
    check_result<double>(boost::math::ellint_3<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_3<long double>(l, l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_rc_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_rc_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_rc_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::ellint_rc<float>(f, f));
    check_result<double>(boost::math::ellint_rc<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_rc<long double>(l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_rd_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_rd_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_rd_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::ellint_rd<float>(f, f, f));
    check_result<double>(boost::math::ellint_rd<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_rd<long double>(l, l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_rf_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_rf_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_rf_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::ellint_rf<float>(f, f, f));
    check_result<double>(boost::math::ellint_rf<double>(d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_rf<long double>(l, l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_ellint_rj_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_ellint_rj_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_ellint_rj_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::ellint_rj<float>(f, f, f, f));
    check_result<double>(boost::math::ellint_rj<double>(d, d, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::ellint_rj<long double>(l, l, l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_erf_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_erf_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_erf_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,17 +17,25 @@
 {
    check_result<float>(boost::math::erf<float>(f));
    check_result<double>(boost::math::erf<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::erf<long double>(l));
+#endif
 
    check_result<float>(boost::math::erfc<float>(f));
    check_result<double>(boost::math::erfc<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::erfc<long double>(l));
+#endif
 
    check_result<float>(boost::math::erf_inv<float>(f));
    check_result<double>(boost::math::erf_inv<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::erf_inv<long double>(l));
+#endif
 
    check_result<float>(boost::math::erfc_inv<float>(f));
    check_result<double>(boost::math::erfc_inv<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::erfc_inv<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_expm1_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_expm1_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_expm1_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::expm1<float>(f));
    check_result<double>(boost::math::expm1<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::expm1<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_factorials_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_factorials_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_factorials_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,18 +17,26 @@
 {
    check_result<float>(boost::math::factorial<float>(u));
    check_result<double>(boost::math::factorial<double>(u));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::factorial<long double>(u));
+#endif
 
    check_result<float>(boost::math::double_factorial<float>(u));
    check_result<double>(boost::math::double_factorial<double>(u));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::double_factorial<long double>(u));
+#endif
 
    check_result<float>(boost::math::rising_factorial<float>(f, i));
    check_result<double>(boost::math::rising_factorial<double>(d, i));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::rising_factorial<long double>(l, i));
+#endif
 
    check_result<float>(boost::math::falling_factorial<float>(f, u));
    check_result<double>(boost::math::falling_factorial<double>(d, u));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::falling_factorial<long double>(l, u));
+#endif
 }
 

Modified: trunk/libs/math/test/compile_test/sf_fpclassify_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_fpclassify_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_fpclassify_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,19 +17,27 @@
 {
    check_result<int>(boost::math::fpclassify BOOST_NO_MACRO_EXPAND<float>(f));
    check_result<int>(boost::math::fpclassify BOOST_NO_MACRO_EXPAND<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<int>(boost::math::fpclassify BOOST_NO_MACRO_EXPAND<long double>(l));
+#endif
 
    check_result<bool>(boost::math::isfinite BOOST_NO_MACRO_EXPAND<float>(f));
    check_result<bool>(boost::math::isfinite BOOST_NO_MACRO_EXPAND<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<bool>(boost::math::isfinite BOOST_NO_MACRO_EXPAND<long double>(l));
+#endif
 
    check_result<bool>(boost::math::isinf BOOST_NO_MACRO_EXPAND<float>(f));
    check_result<bool>(boost::math::isinf BOOST_NO_MACRO_EXPAND<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<bool>(boost::math::isinf BOOST_NO_MACRO_EXPAND<long double>(l));
+#endif
 
    check_result<bool>(boost::math::isnormal BOOST_NO_MACRO_EXPAND<float>(f));
    check_result<bool>(boost::math::isnormal BOOST_NO_MACRO_EXPAND<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<bool>(boost::math::isnormal BOOST_NO_MACRO_EXPAND<long double>(l));
+#endif
 }
 
 

Modified: trunk/libs/math/test/compile_test/sf_gamma_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_gamma_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_gamma_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,45 +17,67 @@
 {
    check_result<float>(boost::math::tgamma<float>(f));
    check_result<double>(boost::math::tgamma<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::tgamma<long double>(l));
+#endif
 
    check_result<float>(boost::math::lgamma<float>(f));
    check_result<double>(boost::math::lgamma<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::lgamma<long double>(l));
+#endif
 
    check_result<float>(boost::math::gamma_p<float>(f, f));
    check_result<double>(boost::math::gamma_p<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_p<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_q<float>(f, f));
    check_result<double>(boost::math::gamma_q<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_q<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_p_inv<float>(f, f));
    check_result<double>(boost::math::gamma_p_inv<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_p_inv<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_q_inv<float>(f, f));
    check_result<double>(boost::math::gamma_q_inv<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_q_inv<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_p_inva<float>(f, f));
    check_result<double>(boost::math::gamma_p_inva<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_p_inva<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_q_inva<float>(f, f));
    check_result<double>(boost::math::gamma_q_inva<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_q_inva<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::gamma_p_derivative<float>(f, f));
    check_result<double>(boost::math::gamma_p_derivative<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::gamma_p_derivative<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::tgamma_ratio<float>(f, f));
    check_result<double>(boost::math::tgamma_ratio<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::tgamma_ratio<long double>(l, l));
+#endif
 
    check_result<float>(boost::math::tgamma_delta_ratio<float>(f, f));
    check_result<double>(boost::math::tgamma_delta_ratio<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::tgamma_delta_ratio<long double>(l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_hermite_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_hermite_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_hermite_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::hermite<float>(u, f));
    check_result<double>(boost::math::hermite<double>(u, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::hermite<long double>(u, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_hypot_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_hypot_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_hypot_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::hypot<float>(f, f));
    check_result<double>(boost::math::hypot<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::hypot<long double>(l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_laguerre_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_laguerre_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_laguerre_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,12 +17,16 @@
 {
    check_result<float>(boost::math::laguerre<float>(u, f));
    check_result<double>(boost::math::laguerre<double>(u, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::laguerre<long double>(u, l));
+#endif
 
    typedef boost::math::policies::policy<> def_pol;
    def_pol p;
 
    check_result<float>(boost::math::laguerre<float, def_pol>(u, u, f, p));
    check_result<double>(boost::math::laguerre<double, def_pol>(u, u, d, p));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::laguerre<long double, def_pol>(u, u, l, p));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_legendre_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_legendre_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_legendre_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,13 +17,19 @@
 {
    check_result<float>(boost::math::legendre_p<float>(i, f));
    check_result<double>(boost::math::legendre_p<double>(i, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::legendre_p<long double>(i, l));
+#endif
 
    check_result<float>(boost::math::legendre_p<float>(i, i, f));
    check_result<double>(boost::math::legendre_p<double>(i, i, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::legendre_p<long double>(i, i, l));
+#endif
 
    check_result<float>(boost::math::legendre_q<float>(u, f));
    check_result<double>(boost::math::legendre_q<double>(u, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::legendre_q<long double>(u, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_log1p_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_log1p_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_log1p_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::log1p<float>(f));
    check_result<double>(boost::math::log1p<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::log1p<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_powm1_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_powm1_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_powm1_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::powm1<float>(f, f));
    check_result<double>(boost::math::powm1<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::powm1<long double>(l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_sign_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sign_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sign_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,13 +17,19 @@
 {
    check_result<int>(boost::math::sign<float>(f));
    check_result<int>(boost::math::sign<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<int>(boost::math::sign<long double>(l));
+#endif
 
    check_result<int>(boost::math::signbit<float>(f));
    check_result<int>(boost::math::signbit<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<int>(boost::math::signbit<long double>(l));
+#endif
 
    check_result<float>(boost::math::copysign<float>(f, f));
    check_result<double>(boost::math::copysign<double>(d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::copysign<long double>(l, l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_sin_pi_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sin_pi_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sin_pi_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::sin_pi<float>(f));
    check_result<double>(boost::math::sin_pi<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sin_pi<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_sinc_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sinc_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sinc_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::sinc_pi<float>(f));
    check_result<double>(boost::math::sinc_pi<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sinc_pi<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_sinhc_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sinhc_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sinhc_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::sinhc_pi<float>(f));
    check_result<double>(boost::math::sinhc_pi<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sinhc_pi<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/sf_sph_harm_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sph_harm_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sph_harm_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -23,15 +23,21 @@
 {
    check_result<std::complex<float> >(boost::math::spherical_harmonic<float>(u, i, f, f));
    check_result<std::complex<double> >(boost::math::spherical_harmonic<double>(u, i, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<std::complex<long double> >(boost::math::spherical_harmonic<long double>(u, i, l, l));
+#endif
 
    check_result<float>(boost::math::spherical_harmonic_r<float>(u, i, f, f));
    check_result<double>(boost::math::spherical_harmonic_r<double>(u, i, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::spherical_harmonic_r<long double>(u, i, l, l));
+#endif
 
    check_result<float>(boost::math::spherical_harmonic_i<float>(u, i, f, f));
    check_result<double>(boost::math::spherical_harmonic_i<double>(u, i, d, d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::spherical_harmonic_i<long double>(u, i, l, l));
+#endif
 }
 
 

Modified: trunk/libs/math/test/compile_test/sf_sqrt1pm1_incl_test.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/sf_sqrt1pm1_incl_test.cpp (original)
+++ trunk/libs/math/test/compile_test/sf_sqrt1pm1_incl_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -17,5 +17,7 @@
 {
    check_result<float>(boost::math::sqrt1pm1<float>(f));
    check_result<double>(boost::math::sqrt1pm1<double>(d));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    check_result<long double>(boost::math::sqrt1pm1<long double>(l));
+#endif
 }

Modified: trunk/libs/math/test/compile_test/std_real_concept_check.cpp
==============================================================================
--- trunk/libs/math/test/compile_test/std_real_concept_check.cpp (original)
+++ trunk/libs/math/test/compile_test/std_real_concept_check.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -193,6 +193,8 @@
 
 int main()
 {
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    instantiate(boost::math::concepts::std_real_concept(0));
+#endif
 }
 

Modified: trunk/libs/math/test/compile_test/test_compile_result.hpp
==============================================================================
--- trunk/libs/math/test/compile_test/test_compile_result.hpp (original)
+++ trunk/libs/math/test/compile_test/test_compile_result.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -119,8 +119,13 @@
    }
 }; // struct DistributionConcept
 
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 #define TEST_DIST_FUNC(dist)\
    DistributionConcept< boost::math::dist##_distribution<float> >::constraints();\
    DistributionConcept< boost::math::dist##_distribution<double> >::constraints();\
    DistributionConcept< boost::math::dist##_distribution<long double> >::constraints();
-
+#else
+#define TEST_DIST_FUNC(dist)\
+ DistributionConcept< boost::math::dist##_distribution<float> >::constraints();\
+ DistributionConcept< boost::math::dist##_distribution<double> >::constraints();
+#endif

Modified: trunk/libs/math/test/complex_test.cpp
==============================================================================
--- trunk/libs/math/test/complex_test.cpp (original)
+++ trunk/libs/math/test/complex_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -853,9 +853,11 @@
    check_spots(float(0));
    std::cout << "Running complex trig spot checks for type double." << std::endl;
    check_spots(double(0));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    std::cout << "Running complex trig spot checks for type long double." << std::endl;
    check_spots((long double)(0));
-
+#endif
+
    std::cout << "Running complex trig boundary and accuracy tests." << std::endl;
    test_boundaries();
    return 0;

Modified: trunk/libs/math/test/hypot_test.cpp
==============================================================================
--- trunk/libs/math/test/hypot_test.cpp (original)
+++ trunk/libs/math/test/hypot_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -41,8 +41,13 @@
 void do_test_boundaries(float x, float y)
 {
    float expected = static_cast<float>((boost::math::hypot)(
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
       static_cast<long double>(x),
       static_cast<long double>(y)));
+#else
+ static_cast<double>(x),
+ static_cast<double>(y)));
+#endif
    float found = (boost::math::hypot)(x, y);
    BOOST_CHECK_CLOSE(expected, found, tolerance);
 }

Modified: trunk/libs/math/test/sinc_test.hpp
==============================================================================
--- trunk/libs/math/test/sinc_test.hpp (original)
+++ trunk/libs/math/test/sinc_test.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -66,6 +66,7 @@
     
     for (int i = 0; i <= 100; i++)
     {
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
         BOOST_MESSAGE( ::std::setw(15)
                     << sinc_pi<float>(static_cast<float>(i-50)/
                                                 static_cast<float>(50))
@@ -75,6 +76,14 @@
                     << ::std::setw(15)
                     << sinc_pi<long double>(static_cast<long double>(i-50)/
                                                 static_cast<long double>(50)));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << sinc_pi<float>(static_cast<float>(i-50)/
+ static_cast<float>(50))
+ << ::std::setw(15)
+ << sinc_pi<double>(static_cast<double>(i-50)/
+ static_cast<double>(50)));
+#endif
     }
     
     BOOST_MESSAGE(" ");

Modified: trunk/libs/math/test/sinhc_test.hpp
==============================================================================
--- trunk/libs/math/test/sinhc_test.hpp (original)
+++ trunk/libs/math/test/sinhc_test.hpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -66,6 +66,7 @@
     
     for (int i = 0; i <= 100; i++)
     {
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
         BOOST_MESSAGE( ::std::setw(15)
                     << sinhc_pi<float>(static_cast<float>(i-50)/
                                                 static_cast<float>(50))
@@ -75,6 +76,14 @@
                     << ::std::setw(15)
                     << sinhc_pi<long double>(static_cast<long double>(i-50)/
                                                 static_cast<long double>(50)));
+#else
+ BOOST_MESSAGE( ::std::setw(15)
+ << sinhc_pi<float>(static_cast<float>(i-50)/
+ static_cast<float>(50))
+ << ::std::setw(15)
+ << sinhc_pi<double>(static_cast<double>(i-50)/
+ static_cast<double>(50)));
+#endif
     }
     
     BOOST_MESSAGE(" ");

Modified: trunk/libs/math/test/special_functions_test.cpp
==============================================================================
--- trunk/libs/math/test/special_functions_test.cpp (original)
+++ trunk/libs/math/test/special_functions_test.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -14,6 +14,7 @@
 #include <boost/test/unit_test.hpp>
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/test_case_template.hpp>
+#include <boost/math/tools/config.hpp>
 
 
 template<typename T>
@@ -28,17 +29,23 @@
     } \
 }
 
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
 DEFINE_TYPE_NAME(float);
 DEFINE_TYPE_NAME(double);
 DEFINE_TYPE_NAME(long double);
 
-
 typedef boost::mpl::list<float,double,long double> test_types;
+#else
+DEFINE_TYPE_NAME(float);
+DEFINE_TYPE_NAME(double);
+
+typedef boost::mpl::list<float,double> test_types;
+#endif
 
 // Apple GCC 4.0 uses the "double double" format for its long double,
 // which means that epsilon is VERY small but useless for
 // comparisons. So, don't do those comparisons.
-#if defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4
+#if (defined(__APPLE_CC__) && defined(__GNUC__) && __GNUC__ == 4) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
 typedef boost::mpl::list<float,double> near_eps_test_types;
 #else
 typedef boost::mpl::list<float,double,long double> near_eps_test_types;

Modified: trunk/libs/math/test/test_cbrt.cpp
==============================================================================
--- trunk/libs/math/test/test_cbrt.cpp (original)
+++ trunk/libs/math/test/test_cbrt.cpp 2007-11-11 09:05:50 EST (Sun, 11 Nov 2007)
@@ -119,10 +119,12 @@
    BOOST_MATH_CONTROL_FP;
    test_cbrt(0.1F, "float");
    test_cbrt(0.1, "double");
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
    test_cbrt(0.1L, "long double");
 #ifndef BOOST_MATH_NO_REAL_CONCEPT_TESTS
    test_cbrt(boost::math::concepts::real_concept(0.1), "real_concept");
 #endif
+#endif
    return 0;
 }
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk