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 (*destroy)(PetscRandom); 14: PetscErrorCode (*setfromoptions)(PetscRandom); 15: }; 17: struct _p_PetscRandom { 18: PETSCHEADER(struct _PetscRandomOps); 19: void *data; /* implementation-specific data */ 20: unsigned long seed; 21: PetscScalar low,width; /* lower bound and width of the interval over 22: which the random numbers are distributed */ 23: PetscBool iset; /* if true, indicates that the user has set the interval */ 24: /* array for shuffling ??? */ 25: }; 27: #endif