2: #include <../src/sys/random/randomimpl.h>
3: #if defined (PETSC_HAVE_STDLIB_H)
4: #include <stdlib.h>
5: #endif
7: static PetscBool PetscRandomPackageInitialized = PETSC_FALSE;
10: /*@C
11: PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the Random package. It is
12: called from PetscFinalize().
14: Level: developer
16: .keywords: Petsc, destroy, package, mathematica
17: .seealso: PetscFinalize()
18: @*/
19: PetscErrorCode PetscRandomFinalizePackage(void)
20: {
22: PetscRandomPackageInitialized = PETSC_FALSE;
23: PetscRandomList = PETSC_NULL;
24: PetscRandomRegisterAllCalled = PETSC_FALSE;
25: return(0);
26: }
30: /*@C
31: PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called
32: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscRandomCreate()
33: when using static libraries.
35: Input Parameter:
36: path - The dynamic library path, or PETSC_NULL
38: Level: developer
40: .keywords: PetscRandom, initialize, package
41: .seealso: PetscInitialize()
42: @*/
43: PetscErrorCode PetscRandomInitializePackage(const char path[])
44: {
45: PetscErrorCode ierr;
48: if (PetscRandomPackageInitialized) return(0);
49: PetscRandomPackageInitialized = PETSC_TRUE;
50: /* Register Class */
51: PetscClassIdRegister("PetscRandom",&PETSC_RANDOM_CLASSID);
52: PetscRandomRegisterAll(path);
53: PetscRegisterFinalize(PetscRandomFinalizePackage);
54: return(0);
55: }