40 lines
920 B
C
40 lines
920 B
C
|
|
#include <blue/core/random.h>
|
||
|
|
#include <printf.h>
|
||
|
|
|
||
|
|
#define NRAND_NUMBERS 12
|
||
|
|
#define NRAND_BYTES 128
|
||
|
|
#define NRAND_DOUBLES 8
|
||
|
|
|
||
|
|
int main(void)
|
||
|
|
{
|
||
|
|
b_random_ctx random;
|
||
|
|
b_random_init(&random, B_RANDOM_SECURE | B_RANDOM_MT19937);
|
||
|
|
|
||
|
|
printf("generating %d random numbers:\n", NRAND_NUMBERS);
|
||
|
|
for (int i = 0; i < NRAND_NUMBERS; i++) {
|
||
|
|
unsigned long long v = b_random_next_int64(&random);
|
||
|
|
printf(" %llu\n", v);
|
||
|
|
}
|
||
|
|
|
||
|
|
printf("\ngenerating %d random bytes:", NRAND_BYTES);
|
||
|
|
unsigned char bytes[16];
|
||
|
|
for (int i = 0; i < NRAND_BYTES; i++) {
|
||
|
|
if (i == 0 || (i % 16) == 0) {
|
||
|
|
printf("\n ");
|
||
|
|
b_random_next_bytes(&random, bytes, sizeof bytes);
|
||
|
|
} else if ((i % 4) == 0) {
|
||
|
|
printf(" ");
|
||
|
|
}
|
||
|
|
|
||
|
|
printf("%02x", bytes[i % 16]);
|
||
|
|
}
|
||
|
|
|
||
|
|
printf("\n\ngenerating %d random doubles:\n", NRAND_DOUBLES);
|
||
|
|
for (int i = 0; i < NRAND_DOUBLES; i++) {
|
||
|
|
double v = b_random_next_double(&random);
|
||
|
|
printf(" %lf\n", v);
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|