Example #1
0
File: rand.cpp Project: 0xCAB/ulib
int main()
{
	uint64_t u, v, w;
	uint64_t seed = time(0);

	RAND_NR_INIT(u, v, w, seed);

	for (int i = 0; i < 100; i++)
		printf("rand number = %llx\n", (unsigned long long)RAND_NR_NEXT(u, v, w));

	uint64_t h = 0;

	printf("rand int mix1 = %llx\n", (unsigned long long)RAND_INT_MIX64(h));
	printf("rand int mix2 = %llx\n", (unsigned long long)RAND_INT2_MIX64(h));
	printf("rand int mix3 = %llx\n", (unsigned long long)RAND_INT3_MIX64(h));
	printf("rand int mix4 = %llx\n", (unsigned long long)RAND_INT4_MIX64(h));

	uint64_t r = RAND_NR_NEXT(u, v, w);
	uint64_t s = r;
	RAND_INT4_MIX64(s);
	RAND_INT4_MIX64_INV(s);

	if (s != r)
		fprintf(stderr, "expected %016llx, acutal %016llx\n",
			(unsigned long long)r,
			(unsigned long long)s);
	else
		printf("passed\n");

	return 0;
}
Example #2
0
int main()
{
	uint64_t u, v, w;

	RAND_NR_INIT(u, v, w, 0UL);

	for (int i = 0; i < 100; i++)
		printf("rand number = %llx\n", (unsigned long long)RAND_NR_NEXT(u, v, w));

	uint64_t h = 0;

	printf("rand int mix1 = %llx\n", (unsigned long long)RAND_INT_MIX64(h));
	printf("rand int mix2 = %llx\n", (unsigned long long)RAND_INT2_MIX64(h));

	printf("passed\n");

	return 0;
}