From e8f159f66bc7159ba5873cc524942d9ab27241c0 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Thu, 30 Aug 2012 12:44:46 +0200 Subject: [PATCH] fixing bugs in previous commit --- matlab/independent_metropolis_hastings_core.m | 10 ++++++++-- matlab/random_walk_metropolis_hastings_core.m | 9 ++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/matlab/independent_metropolis_hastings_core.m b/matlab/independent_metropolis_hastings_core.m index 829cf4006..04b2683aa 100644 --- a/matlab/independent_metropolis_hastings_core.m +++ b/matlab/independent_metropolis_hastings_core.m @@ -105,13 +105,19 @@ for b = fblck:nblck, % this will not work if the master uses a random generator not % available in the slave (different Matlab version or % Matlab/Octave cluster). Therefor the trap. - set_dynare_seed(options_.DynareRandomStreams.algo); + + % this set the random generator type (the seed is useless but + % needed by the function) + set_dynare_seed(options_.DynareRandomStreams.algo,... + options_.DynareRandomStreams.seed); + % this set the state set_dynare_random_generator_state(record.Seeds(b).Unifor, ... record.Seeds(b).Normal); catch + % if the state set by master is incompatible with the slave, we + % only reseed set_dynare_seed(options_.DynareRandomStreams.seed+b); end - set_dynare_random_generator_state(record.Seeds(b).Unifor,record.Seeds(b).Normal); if (options_.load_mh_file~=0) && (fline(b)>1) && OpenOldFile(b) load(['./' MhDirectoryName '/' ModelName '_mh' int2str(NewFile(b)) ... '_blck' int2str(b) '.mat']) diff --git a/matlab/random_walk_metropolis_hastings_core.m b/matlab/random_walk_metropolis_hastings_core.m index 0cc32ef9f..8f643d625 100644 --- a/matlab/random_walk_metropolis_hastings_core.m +++ b/matlab/random_walk_metropolis_hastings_core.m @@ -139,10 +139,17 @@ for b = fblck:nblck, % this will not work if the master uses a random generator not % available in the slave (different Matlab version or % Matlab/Octave cluster). Therefor the trap. - set_dynare_seed(options_.DynareRandomStreams.algo); + + % this set the random generator type (the seed is useless but + % needed by the function) + set_dynare_seed(options_.DynareRandomStreams.algo,... + options_.DynareRandomStreams.seed); + % this set the state set_dynare_random_generator_state(record.Seeds(b).Unifor, ... record.Seeds(b).Normal); catch + % if the state set by master is incompatible with the slave, we + % only reseed set_dynare_seed(options_.DynareRandomStreams.seed+b); end if (options_.load_mh_file~=0) && (fline(b)>1) && OpenOldFile(b)