Files
2025-02-Numerical/lib/nr/cpp/recipes/ran0.cpp
2025-09-12 18:55:25 +09:00

19 lines
290 B
C++

#include "nr.h"
DP NR::ran0(int &idum)
{
const int IA=16807,IM=2147483647,IQ=127773;
const int IR=2836,MASK=123459876;
const DP AM=1.0/DP(IM);
int k;
DP ans;
idum ^= MASK;
k=idum/IQ;
idum=IA*(idum-k*IQ)-IR*k;
if (idum < 0) idum += IM;
ans=AM*idum;
idum ^= MASK;
return ans;
}