예제 #1
0
  void positive_jump_impl(RngBase& rng, double& value, const double scale) {
    double new_value;
    do {
      new_value = value + rng.normal() * scale;
    } while (new_value < 0);

    value = new_value;
  }
예제 #2
0
파일: mcmc.jump.hpp 프로젝트: fcela/CppBugs
 void jump_impl(RngBase& rng, double& value, const double scale) {
   value += rng.normal() * scale;
 }
예제 #3
0
파일: mcmc.jump.hpp 프로젝트: fcela/CppBugs
 void jump_impl(RngBase& rng, T& value, const double scale) {
   for(size_t i = 0; i < value.n_elem; i++) {
     value[i] += rng.normal() * scale;
   }
 }
예제 #4
0
 // needed for completeness
 void jump_impl(RngBase& rng, int& value, const double scale) {
   value += lrint(rng.normal() * scale);
 }