2: #ifndef __PETSCRANDOMIMPL_H
5: #include petscsys.h
7: typedef struct _PetscRandomOps *PetscRandomOps;
8: struct _PetscRandomOps {
9: /* 0 */
10: PetscErrorCode (*seed)(PetscRandom);
11: PetscErrorCode (*getvalue)(PetscRandom,PetscScalar*);
12: PetscErrorCode (*getvaluereal)(PetscRandom,PetscReal*);
13: PetscErrorCode (*getvalueimaginary)(PetscRandom,PetscScalar*);
14: PetscErrorCode (*destroy)(PetscRandom);
15: PetscErrorCode (*setfromoptions)(PetscRandom);
16: };
18: struct _p_PetscRandom {
19: PETSCHEADER(struct _PetscRandomOps);
20: void *data; /* implementation-specific data */
21: unsigned long seed;
22: PetscScalar low,width; /* lower bound and width of the interval over
23: which the random numbers are distributed */
24: PetscTruth iset; /* if true, indicates that the user has set the interval */
25: /* array for shuffling ??? */
26: };
28: #endif