From 45dac5bd18295fd16da6ae3177f75416d3869ed7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 2 Aug 2020 09:42:22 -0400 Subject: [PATCH] Change random number generation in qra66sim so results are exactly repeateble. --- lib/gran.c | 6 ++++++ lib/qra/qra66/qra66sim.f90 | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/gran.c b/lib/gran.c index 24b986503..ac41c7fe4 100644 --- a/lib/gran.c +++ b/lib/gran.c @@ -26,3 +26,9 @@ float gran_() iset++; return v2*fac; } + +/* Generates evenly distributed numbers between 0 and 1. */ +float rran_() +{ + return (float)rand()/(float)RAND_MAX; +} diff --git a/lib/qra/qra66/qra66sim.f90 b/lib/qra/qra66/qra66sim.f90 index a482e4cc3..0e1910490 100644 --- a/lib/qra/qra66/qra66sim.f90 +++ b/lib/qra/qra66/qra66sim.f90 @@ -110,15 +110,13 @@ program qra66sim a=0. if(x.lt.3.0) then !Cutoff beyond x=3 a=sqrt(1.111/(1.0+x*x)-0.1) !Lorentzian amplitude - call random_number(r1) - phi1=twopi*r1 !Random phase + phi1=twopi*rran() !Random phase z=a*cmplx(cos(phi1),sin(phi1)) endif cspread(i)=z z=0. if(x.lt.3.0) then !Same thing for negative freqs - call random_number(r2) - phi2=twopi*r2 + phi2=twopi*rran() z=a*cmplx(cos(phi2),sin(phi2)) endif cspread(NFFT-i)=z