FireflyAlgorithm::FireflyAlgorithm(Size M, 
     boost::shared_ptr<Intensity> intensity,
     boost::shared_ptr<RandomWalk> randomWalk,
     Size Mde, Real mutation,
     Real crossover, unsigned long seed):
     mutation_(mutation), crossover_(crossover),
     M_(M), Mde_(Mde), Mfa_(M_-Mde_), 
     intensity_(intensity),
     randomWalk_(randomWalk),
     drawIndex_(base_generator_type(seed), uniform_integer(Mfa_, M_-1)),
     rng_(seed){
     QL_REQUIRE(M_ >= Mde_, 
         "Differential Evolution subpopulation cannot be larger than total population");
 }
 LevyFlightInertia(Real alpha, Size threshhold, 
                   unsigned long seed = 0)
     :flight_(base_generator_type(seed), LevyFlightDistribution(1.0, alpha), 
         1, Array(1, 1.0), seed),
     threshhold_(threshhold) {};