switchable random number generators

This commit is contained in:
2023-11-17 21:57:28 +01:00
parent c5a2865639
commit 578ca7bab6
10 changed files with 110 additions and 63 deletions

View File

@@ -249,7 +249,7 @@ void NRSMat<double>::randomize(const double &x) {
NOT_GPU(*this);
for(size_t i=0; i<NN2; ++i){
v[i] = x*(2.*random()/(1.+RAND_MAX) -1.);
v[i] = x*RANDDOUBLESIGNED();
}
}
@@ -259,8 +259,8 @@ void NRSMat<double>::randomize(const double &x) {
******************************************************************************/
template<>
void NRSMat<std::complex<double> >::randomize(const double &x) {
for(register size_t i=0; i<NN2; ++i) v[i].real(x*(2.*random()/(1. + RAND_MAX) -1.));
for(register size_t i=0; i<NN2; ++i) v[i].imag(x*(2.*random()/(1. + RAND_MAX) -1.));
for(register size_t i=0; i<NN2; ++i) v[i].real(x*RANDDOUBLESIGNED());
for(register size_t i=0; i<NN2; ++i) v[i].imag(x*RANDDOUBLESIGNED());
for(register int i=0; i<nn; ++i){
for(register int j=0; j<=i; ++j){
if(i == j) v[i*(size_t)(i+1)/2+j].imag(0.); //hermitean