1 // fwd.hpp Forward declarations of Boost.Math distributions.
2 
3 // Copyright Paul A. Bristow 2007, 2010, 2012, 2014.
4 // Copyright John Maddock 2007.
5 
6 // Use, modification and distribution are subject to the
7 // Boost Software License, Version 1.0.
8 // (See accompanying file LICENSE_1_0.txt
9 // or copy at http://www.boost.org/LICENSE_1_0.txt)
10 
11 #ifndef BOOST_MATH_DISTRIBUTIONS_FWD_HPP
12 #define BOOST_MATH_DISTRIBUTIONS_FWD_HPP
13 
14 // 33 distributions at Boost 1.9.1 after adding hyperexpon and arcsine
15 
16 namespace boost{ namespace math{
17 
18 template <class RealType, class Policy>
19 class arcsine_distribution;
20 
21 template <class RealType, class Policy>
22 class bernoulli_distribution;
23 
24 template <class RealType, class Policy>
25 class beta_distribution;
26 
27 template <class RealType, class Policy>
28 class binomial_distribution;
29 
30 template <class RealType, class Policy>
31 class cauchy_distribution;
32 
33 template <class RealType, class Policy>
34 class chi_squared_distribution;
35 
36 template <class RealType, class Policy>
37 class exponential_distribution;
38 
39 template <class RealType, class Policy>
40 class extreme_value_distribution;
41 
42 template <class RealType, class Policy>
43 class fisher_f_distribution;
44 
45 template <class RealType, class Policy>
46 class gamma_distribution;
47 
48 template <class RealType, class Policy>
49 class geometric_distribution;
50 
51 template <class RealType, class Policy>
52 class hyperexponential_distribution;
53 
54 template <class RealType, class Policy>
55 class hypergeometric_distribution;
56 
57 template <class RealType, class Policy>
58 class inverse_chi_squared_distribution;
59 
60 template <class RealType, class Policy>
61 class inverse_gamma_distribution;
62 
63 template <class RealType, class Policy>
64 class inverse_gaussian_distribution;
65 
66 template <class RealType, class Policy>
67 class laplace_distribution;
68 
69 template <class RealType, class Policy>
70 class logistic_distribution;
71 
72 template <class RealType, class Policy>
73 class lognormal_distribution;
74 
75 template <class RealType, class Policy>
76 class negative_binomial_distribution;
77 
78 template <class RealType, class Policy>
79 class non_central_beta_distribution;
80 
81 template <class RealType, class Policy>
82 class non_central_chi_squared_distribution;
83 
84 template <class RealType, class Policy>
85 class non_central_f_distribution;
86 
87 template <class RealType, class Policy>
88 class non_central_t_distribution;
89 
90 template <class RealType, class Policy>
91 class normal_distribution;
92 
93 template <class RealType, class Policy>
94 class pareto_distribution;
95 
96 template <class RealType, class Policy>
97 class poisson_distribution;
98 
99 template <class RealType, class Policy>
100 class rayleigh_distribution;
101 
102 template <class RealType, class Policy>
103 class skew_normal_distribution;
104 
105 template <class RealType, class Policy>
106 class students_t_distribution;
107 
108 template <class RealType, class Policy>
109 class triangular_distribution;
110 
111 template <class RealType, class Policy>
112 class uniform_distribution;
113 
114 template <class RealType, class Policy>
115 class weibull_distribution;
116 
117 }} // namespaces
118 
119 #define BOOST_MATH_DECLARE_DISTRIBUTIONS(Type, Policy)\
120    typedef boost::math::arcsine_distribution<Type, Policy> arcsine;\
121    typedef boost::math::bernoulli_distribution<Type, Policy> bernoulli;\
122    typedef boost::math::beta_distribution<Type, Policy> beta;\
123    typedef boost::math::binomial_distribution<Type, Policy> binomial;\
124    typedef boost::math::cauchy_distribution<Type, Policy> cauchy;\
125    typedef boost::math::chi_squared_distribution<Type, Policy> chi_squared;\
126    typedef boost::math::exponential_distribution<Type, Policy> exponential;\
127    typedef boost::math::extreme_value_distribution<Type, Policy> extreme_value;\
128    typedef boost::math::fisher_f_distribution<Type, Policy> fisher_f;\
129    typedef boost::math::gamma_distribution<Type, Policy> gamma;\
130    typedef boost::math::geometric_distribution<Type, Policy> geometric;\
131    typedef boost::math::hypergeometric_distribution<Type, Policy> hypergeometric;\
132    typedef boost::math::inverse_chi_squared_distribution<Type, Policy> inverse_chi_squared;\
133    typedef boost::math::inverse_gaussian_distribution<Type, Policy> inverse_gaussian;\
134    typedef boost::math::inverse_gamma_distribution<Type, Policy> inverse_gamma;\
135    typedef boost::math::laplace_distribution<Type, Policy> laplace;\
136    typedef boost::math::logistic_distribution<Type, Policy> logistic;\
137    typedef boost::math::lognormal_distribution<Type, Policy> lognormal;\
138    typedef boost::math::negative_binomial_distribution<Type, Policy> negative_binomial;\
139    typedef boost::math::non_central_beta_distribution<Type, Policy> non_central_beta;\
140    typedef boost::math::non_central_chi_squared_distribution<Type, Policy> non_central_chi_squared;\
141    typedef boost::math::non_central_f_distribution<Type, Policy> non_central_f;\
142    typedef boost::math::non_central_t_distribution<Type, Policy> non_central_t;\
143    typedef boost::math::normal_distribution<Type, Policy> normal;\
144    typedef boost::math::pareto_distribution<Type, Policy> pareto;\
145    typedef boost::math::poisson_distribution<Type, Policy> poisson;\
146    typedef boost::math::rayleigh_distribution<Type, Policy> rayleigh;\
147    typedef boost::math::skew_normal_distribution<Type, Policy> skew_normal;\
148    typedef boost::math::students_t_distribution<Type, Policy> students_t;\
149    typedef boost::math::triangular_distribution<Type, Policy> triangular;\
150    typedef boost::math::uniform_distribution<Type, Policy> uniform;\
151    typedef boost::math::weibull_distribution<Type, Policy> weibull;
152 
153 #endif // BOOST_MATH_DISTRIBUTIONS_FWD_HPP
154