diff options
Diffstat (limited to 'hadamard_mcmc.hpp')
-rw-r--r-- | hadamard_mcmc.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/hadamard_mcmc.hpp b/hadamard_mcmc.hpp index bca8ae2..218f8d1 100644 --- a/hadamard_mcmc.hpp +++ b/hadamard_mcmc.hpp @@ -1,8 +1,11 @@ #pragma once #include "randutils/randutils.hpp" +#include "pcg-cpp/include/pcg_random.hpp" #include <vector> +using Rng = randutils::random_generator<pcg32>; + inline double Ei(double x) { return -fabs(x); } class Orthogonal { @@ -53,7 +56,7 @@ private: std::vector<double> rows; public: - Givens(Orthogonal& m, bool t, unsigned a1, unsigned a2, double θ0, randutils::mt19937_rng& rng) + Givens(Orthogonal& m, bool t, unsigned a1, unsigned a2, double θ0, Rng& rng) : m(m), rows(2 * m.size()) { transpose = t; axis_1 = a1; @@ -61,7 +64,7 @@ public: Δθ = rng.uniform(-θ0, θ0); } - Givens(Orthogonal& m, double θ0, randutils::mt19937_rng& rng) : m(m), rows(2 * m.size()) { + Givens(Orthogonal& m, double θ0, Rng& rng) : m(m), rows(2 * m.size()) { Δθ = rng.uniform(-θ0, θ0); unsigned axis1axis2 = rng.uniform((unsigned)0, m.size() * (m.size() - 1) - 1); @@ -134,7 +137,7 @@ private: double θ0; public: - randutils::mt19937_rng rng; + Rng rng; double β; double E; Orthogonal M; |