INNER CODE UNIT · C

x

lh3/seqtk · seqtk.c:338

			x = (kr->mt[i] & KR_UM) | (kr->mt[i+1] & KR_LM);
			kr->mt[i] = kr->mt[i + KR_MM] ^ (x>>1) ^ mag01[(int)(x&1)];
		}
		for (; i < KR_NN - 1; ++i) {
			x = (kr->mt[i] & KR_UM) | (kr->mt[i+1] & KR_LM);
			kr->mt[i] = kr->mt[i + (KR_MM - KR_NN)] ^ (x>>1) ^ mag01[(int)(x&1)];
		}
		x = (kr->mt[KR_NN - 1] & KR_UM) | (kr->mt[0] & KR_LM);
		kr->mt[KR_NN - 1] = kr->mt[KR_MM - 1] ^ (x>>1) ^ mag01[(int)(x&1)];
		kr->mti = 0;
	}
	x = kr->mt[kr->mti++];
	x ^= (x >> 29) & 0x5555555555555555ULL;
	x ^= (x << 17) & 0x71D67FFFEDA60000ULL;
	x ^= (x << 37) & 0xFFF7EEE000000000ULL;
	x ^= (x >> 43);
	return x;
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…