From a6b42aad6a2eab50d2f1fac4bfea895fdf9891d0 Mon Sep 17 00:00:00 2001 From: conrad Date: Mon, 12 Apr 2021 12:45:08 +1000 Subject: [PATCH] use old method to ensure same sequence for ARMA_RNG_ALT randn --- include/armadillo_bits/arma_rng.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/armadillo_bits/arma_rng.hpp b/include/armadillo_bits/arma_rng.hpp index e7c92f37..3846cfb8 100644 --- a/include/armadillo_bits/arma_rng.hpp +++ b/include/armadillo_bits/arma_rng.hpp @@ -489,7 +489,13 @@ struct arma_rng::randn { #if defined(ARMA_RNG_ALT) { - for(uword i=0; i < N; ++i) { mem[i] = eT( arma_rng_alt::randn_val() ); } + // NOTE: old method to avoid regressions in user code that assumes specific sequence + + uword i, j; + + for(i=0, j=1; j < N; i+=2, j+=2) { arma_rng_alt::randn_dual_val( mem[i], mem[j] ); } + + if(i < N) { mem[i] = eT( arma_rng_alt::randn_val() ); } } #elif defined(ARMA_USE_EXTERN_RNG) {