Home | History | Annotate | Download | only in libdrm

Lines Matching refs:state

84     RandomState  *state;
86 state = drmMalloc(sizeof(*state));
87 if (!state) return NULL;
88 state->magic = RANDOM_MAGIC;
91 state->a = 16807;
92 state->m = 2147483647;
93 state->check = 1043618065; /* After 10000 iterations */
96 state->a = 48271;
97 state->m = 2147483647;
98 state->check = 399268537; /* After 10000 iterations */
100 state->q = state->m / state->a;
101 state->r = state->m % state->a;
103 state->seed = seed;
106 if (state->seed <= 0) state->seed = 1;
107 if (state->seed >= state->m) state->seed = state->m - 1;
109 return state;
112 int drmRandomDestroy(void *state)
114 drmFree(state);
118 unsigned long drmRandom(void *state)
120 RandomState *s = (RandomState *)state;
132 double drmRandomDouble(void *state)
134 RandomState *s = (RandomState *)state;
136 return (double)drmRandom(state)/(double)s->m;