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

24 lines
307 B
C

#define IB1 1
#define IB2 2
#define IB5 16
#define IB18 131072
#define MASK (IB1+IB2+IB5)
int irbit2(iseed)
unsigned long *iseed;
{
if (*iseed & IB18) {
*iseed=((*iseed ^ MASK) << 1) | IB1;
return 1;
} else {
*iseed <<= 1;
return 0;
}
}
#undef MASK
#undef IB18
#undef IB5
#undef IB2
#undef IB1