Lines Matching refs:state
85 RandomState *state;
87 state = drmMalloc(sizeof(*state));
88 if (!state) return NULL;
89 state->magic = RANDOM_MAGIC;
92 state->a = 16807;
93 state->m = 2147483647;
94 state->check = 1043618065; /* After 10000 iterations */
97 state->a = 48271;
98 state->m = 2147483647;
99 state->check = 399268537; /* After 10000 iterations */
101 state->q = state->m / state->a;
102 state->r = state->m % state->a;
104 state->seed = seed;
107 if (state->seed <= 0) state->seed = 1;
108 if (state->seed >= state->m) state->seed = state->m - 1;
110 return state;
113 drm_public int drmRandomDestroy(void *state)
115 drmFree(state);
119 drm_public unsigned long drmRandom(void *state)
121 RandomState *s = (RandomState *)state;
133 drm_public double drmRandomDouble(void *state)
135 RandomState *s = (RandomState *)state;
137 return (double)drmRandom(state)/(double)s->m;