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