diff options
| -rw-r--r-- | hadamard_pt.hpp | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/hadamard_pt.hpp b/hadamard_pt.hpp index bddd8b7..a3d4657 100644 --- a/hadamard_pt.hpp +++ b/hadamard_pt.hpp @@ -48,7 +48,7 @@ public:      }    } -  bool step(unsigned i, unsigned j) { +  bool step(unsigned i, unsigned j, bool dry = false) {      double Δβ = Ms[i].β - Ms[j].β;      double ΔE = Ms[i].E - Ms[j].E; @@ -57,14 +57,16 @@ public:      if (accepted)        swap(Ms[i], Ms[j]); -    B.after_step(accepted, i, j, Δβ, ΔE, Ms[i], Ms[j]); +    if (!dry) { +      B.after_step(accepted, i, j, Δβ, ΔE, Ms[i], Ms[j]); +    }      return accepted;    } -  void sweep() { +  void sweep(bool dry = false) {      for (unsigned i = 0; i < Ms.size() - 1; i++) {        for (unsigned j = i + 1; j < Ms.size(); j++) { -        this->step(i, j); +        this->step(i, j, dry);        }      }    } @@ -75,7 +77,7 @@ public:        for (unsigned j = 0; j < Ms.size(); j++) {          Ms[j].run(m, dry);        } -      this->sweep(); +      this->sweep(dry);        if (!dry) {          B.after_sweep(this->Ms);        } | 
