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

16 lines
261 B
C++

#include "nr.h"
int NR::irbit2(unsigned long &iseed)
{
const unsigned long IB1=1,IB2=2,IB5=16,IB18=131072;
const unsigned long MASK=IB1+IB2+IB5;
if (iseed & IB18) {
iseed=((iseed ^ MASK) << 1) | IB1;
return 1;
} else {
iseed <<= 1;
return 0;
}
}