// state_i == 1 static double case_2(void){ z0 = (Vrm1 & MASKL) | (Vrm2Under & MASKU); z1 = MAT0NEG(-24,V0) ^ MAT0POS(30,VM1); z2 = MAT0NEG(-10,VM2) ^ MAT3NEG(-26,VM3); newV1 = z1 ^ z2; newV0 = MAT1(z0) ^ MAT0POS(20,z1) ^ MAT5(9,0xb729fcecU,0xfbffffffU,0x00020000U,z2) ^ MAT1(newV1); state_i=0; WELLRNG44497a = case_1; return ((double) STATE[state_i] * FACT); }
// R-M1-1 >= state_i >= R-M3 static double case_4(void){ z0 = (Vrm1 & MASKL) | (Vrm2 & MASKU); z1 = MAT0NEG(-24,V0) ^ MAT0POS(30,VM1); z2 = MAT0NEG(-10,VM2Over) ^ MAT3NEG(-26,VM3Over); newV1 = z1 ^ z2; newV0 = MAT1(z0) ^ MAT0POS(20,z1) ^ MAT5(9,0xb729fcecU,0xfbffffffU,0x00020000U,z2) ^ MAT1(newV1); state_i--; if (state_i+M3 < R) WELLRNG44497a = case_5; return ((double) STATE[state_i] * FACT); }
static double case_2(void){ // state_i == 1 z0 = (Vrm1 & MASKL) | (Vrm2Under & MASKU); z1 = MAT0NEG(-24,V0) ^ MAT0POS(30,VM1); z2 = MAT0NEG(-10,VM2) ^ MAT3NEG(-26,VM3); newV1 = z1 ^ z2; newV0 = MAT1(z0) ^ MAT0POS(20,z1) ^ MAT5(9,0xb729fcecU,0xfbffffffU,0x00020000U,z2) ^ MAT1(newV1); state_i=0; WELLRNG44497a = case_1; #ifdef TEMPERING y = STATE[state_i] ^ ((STATE[state_i] << 7) & TEMPERB); y = y ^ (( y << 15) & TEMPERC); return ((double) y * FACT); #else return ((double) STATE[state_i] * FACT); #endif }
static double case_4(void){ // state_i+M3 >= R z0 = (Vrm1 & MASKL) | (Vrm2 & MASKU); z1 = MAT0NEG(-24,V0) ^ MAT0POS(30,VM1); z2 = MAT0NEG(-10,VM2Over) ^ MAT3NEG(-26,VM3Over); newV1 = z1 ^ z2; newV0 = MAT1(z0) ^ MAT0POS(20,z1) ^ MAT5(9,0xb729fcecU,0xfbffffffU,0x00020000U,z2) ^ MAT1(newV1); state_i--; if (state_i+M3 < R) WELLRNG44497b = case_5; #ifdef TEMPERING y = STATE[state_i] ^ ((STATE[state_i] << 7) & TEMPERB); y = y ^ (( y << 15) & TEMPERC); return ((double) y * FACT); #else return ((double) STATE[state_i] * FACT); #endif }