Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / math / test / compile_test / distribution_concept_check.cpp
1 //  Copyright John Maddock 2006.
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 #define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
7
8 #include <boost/math/distributions.hpp>
9 #include <boost/math/concepts/distributions.hpp>
10
11
12 template <class RealType>
13 void instantiate(RealType)
14 {
15    using namespace boost;
16    using namespace boost::math;
17    using namespace boost::math::concepts;
18
19    typedef policies::policy<policies::digits2<std::numeric_limits<RealType>::digits - 2> > custom_policy;
20
21    function_requires<DistributionConcept<bernoulli_distribution<RealType, custom_policy> > >();
22    function_requires<DistributionConcept<beta_distribution<RealType, custom_policy> > >();
23    function_requires<DistributionConcept<binomial_distribution<RealType, custom_policy> > >();
24    function_requires<DistributionConcept<cauchy_distribution<RealType, custom_policy> > >();
25    function_requires<DistributionConcept<chi_squared_distribution<RealType, custom_policy> > >();
26    function_requires<DistributionConcept<exponential_distribution<RealType, custom_policy> > >();
27    function_requires<DistributionConcept<extreme_value_distribution<RealType, custom_policy> > >();
28    function_requires<DistributionConcept<fisher_f_distribution<RealType, custom_policy> > >();
29    function_requires<DistributionConcept<gamma_distribution<RealType, custom_policy> > >();
30    function_requires<DistributionConcept<geometric_distribution<RealType, custom_policy> > >();
31    function_requires<DistributionConcept<hypergeometric_distribution<RealType, custom_policy> > >();
32    function_requires<DistributionConcept<hypergeometric_distribution<RealType, custom_policy> > >();
33    function_requires<DistributionConcept<inverse_chi_squared_distribution<RealType, custom_policy> > >();
34    function_requires<DistributionConcept<inverse_gamma_distribution<RealType, custom_policy> > >();
35    function_requires<DistributionConcept<inverse_gaussian_distribution<RealType, custom_policy> > >();
36    function_requires<DistributionConcept<laplace_distribution<RealType, custom_policy> > >();
37    function_requires<DistributionConcept<logistic_distribution<RealType, custom_policy> > >();
38    function_requires<DistributionConcept<lognormal_distribution<RealType, custom_policy> > >();
39    function_requires<DistributionConcept<negative_binomial_distribution<RealType, custom_policy> > >();
40    function_requires<DistributionConcept<non_central_beta_distribution<RealType, custom_policy> > >();
41    function_requires<DistributionConcept<non_central_chi_squared_distribution<RealType, custom_policy> > >();
42    function_requires<DistributionConcept<non_central_f_distribution<RealType, custom_policy> > >();
43    function_requires<DistributionConcept<non_central_t_distribution<RealType, custom_policy> > >();
44    function_requires<DistributionConcept<normal_distribution<RealType, custom_policy> > >();
45    function_requires<DistributionConcept<pareto_distribution<RealType, custom_policy> > >();
46    function_requires<DistributionConcept<poisson_distribution<RealType, custom_policy> > >();
47    function_requires<DistributionConcept<rayleigh_distribution<RealType, custom_policy> > >();
48    function_requires<DistributionConcept<skew_normal_distribution<RealType, custom_policy> > >();
49    function_requires<DistributionConcept<students_t_distribution<RealType, custom_policy> > >();
50    function_requires<DistributionConcept<triangular_distribution<RealType, custom_policy> > >();
51    function_requires<DistributionConcept<uniform_distribution<RealType, custom_policy> > >();
52    function_requires<DistributionConcept<weibull_distribution<RealType, custom_policy> > >();
53 }
54
55
56 int main()
57 {
58    instantiate(float(0));
59    instantiate(double(0));
60 #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
61    instantiate((long double)(0));
62 #endif
63 }
64