Boost logo

Boost Users :

Subject: Re: [Boost-users] Declare statistical distribution array:boost/math/distributions
From: John Maddock (john_at_[hidden])
Date: 2009-05-21 06:01:05

> I am trying to write a MCMC algorithm by using boost's math distribution
> library, what I want to do is to first declare an array of length 10 of
> gamma distribution, and then run a for loop to declare each gamma
> distribution's parameters. However, boost does not allow me to declare the
> gamma distribution array without having defining the parameter in advance:
> gamma_distribution<double> mydist10[10];
> error: no appropriate default constructor available.
> because the library requires to know the parameter of the gamma
> distribution
> in advance.
> Do you guys have any idea to overcome this ?
> Thanks a lot for any comment or suggestion.

There is an ugly workaround:

boost::math::gamma_distribution<> a[2] = {
boost::math::gamma_distribution<>(0), };

and then assignment works via:

a[0] = boost::math::gamma_distribution<>(par1, par2);


HTH, John.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at