1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-10 06:00:45 +01:00

Bernoulli reenabled -- using integral type for the discrete_distribution, but

then casts in the fill
This commit is contained in:
paboyle 2016-04-30 03:48:28 -07:00
parent ec4a9b7f6c
commit f7ca6ca889

View File

@ -122,7 +122,7 @@ namespace Grid {
std::vector<RngEngine> _generators; std::vector<RngEngine> _generators;
std::vector<std::uniform_real_distribution<RealD>> _uniform; std::vector<std::uniform_real_distribution<RealD>> _uniform;
std::vector<std::normal_distribution<RealD>> _gaussian; std::vector<std::normal_distribution<RealD>> _gaussian;
// std::vector<std::discrete_distribution<RealD>> _bernoulli; std::vector<std::discrete_distribution<int32_t>> _bernoulli;
void GetState(std::vector<RngStateType> & saved,int gen) { void GetState(std::vector<RngStateType> & saved,int gen) {
saved.resize(RngStateCount); saved.resize(RngStateCount);
@ -162,7 +162,7 @@ namespace Grid {
_generators.resize(1); _generators.resize(1);
_uniform.resize(1,std::uniform_real_distribution<RealD>{0,1}); _uniform.resize(1,std::uniform_real_distribution<RealD>{0,1});
_gaussian.resize(1,std::normal_distribution<RealD>(0.0,1.0) ); _gaussian.resize(1,std::normal_distribution<RealD>(0.0,1.0) );
// _bernoulli.resize(1,std::discrete_distribution<RealD>{1,1}); _bernoulli.resize(1,std::discrete_distribution<int32_t>{1,1});
_seeded=0; _seeded=0;
} }
@ -268,7 +268,7 @@ namespace Grid {
_generators.resize(_vol); _generators.resize(_vol);
_uniform.resize(_vol,std::uniform_real_distribution<RealD>{0,1}); _uniform.resize(_vol,std::uniform_real_distribution<RealD>{0,1});
_gaussian.resize(_vol,std::normal_distribution<RealD>(0.0,1.0) ); _gaussian.resize(_vol,std::normal_distribution<RealD>(0.0,1.0) );
// _bernoulli.resize(_vol,std::discrete_distribution<RealD>{1,1}); _bernoulli.resize(_vol,std::discrete_distribution<int32_t>{1,1});
_seeded=0; _seeded=0;
} }
@ -372,9 +372,9 @@ PARALLEL_FOR_LOOP
rng.fill(l,rng._gaussian); rng.fill(l,rng._gaussian);
} }
// template <class vobj> inline void bernoulli(GridParallelRNG &rng,Lattice<vobj> &l){ template <class vobj> inline void bernoulli(GridParallelRNG &rng,Lattice<vobj> &l){
// rng.fill(l,rng._bernoulli); rng.fill(l,rng._bernoulli);
// } }
template <class sobj> inline void random(GridSerialRNG &rng,sobj &l){ template <class sobj> inline void random(GridSerialRNG &rng,sobj &l){
rng.fill(l,rng._uniform); rng.fill(l,rng._uniform);
@ -384,9 +384,9 @@ PARALLEL_FOR_LOOP
rng.fill(l,rng._gaussian); rng.fill(l,rng._gaussian);
} }
// template <class sobj> inline void bernoulli(GridSerialRNG &rng,sobj &l){ template <class sobj> inline void bernoulli(GridSerialRNG &rng,sobj &l){
// rng.fill(l,rng._bernoulli); rng.fill(l,rng._bernoulli);
// } }
} }
#endif #endif