You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.0 KiB
32 lines
1.0 KiB
#ifndef __VM_RANDOM_H__
|
|
#define __VM_RANDOM_H__
|
|
|
|
#define VM_RAND_MAX 2147483647
|
|
|
|
#define int32_t int
|
|
|
|
struct vm_random_data
|
|
{
|
|
int32_t *fptr; /* Front pointer. */
|
|
int32_t *rptr; /* Rear pointer. */
|
|
int32_t *state; /* Array of state values. */
|
|
int vm_rand_type; /* Type of random number generator. */
|
|
int vm_rand_deg; /* Degree of random number generator. */
|
|
int vm_rand_sep; /* Distance between front and rear. */
|
|
int32_t *end_ptr; /* Pointer behind state table. */
|
|
};
|
|
|
|
int vm_initstate (unsigned int seed,
|
|
void* arg_state,
|
|
size_t n,
|
|
struct vm_random_data* buf);
|
|
int vm_setstate (void* arg_state,
|
|
struct vm_random_data* buf);
|
|
void vm_default_initstate( int seed,
|
|
struct vm_random_data* buf );
|
|
int vm_srandom (unsigned int seed,
|
|
struct vm_random_data* buf);
|
|
int32_t vm_random (struct vm_random_data* buf);
|
|
|
|
#endif /* !defined( __VM_RANDOM_H__ ) */
|