Actual source code: dlregisrand.c

  1: #define PETSC_DLL

 3:  #include ../src/sys/random/randomimpl.h
  4: #if defined (PETSC_HAVE_STDLIB_H)
  5: #include <stdlib.h>
  6: #endif

  8: static PetscTruth PetscRandomPackageInitialized = PETSC_FALSE;
 11: /*@C
 12:   PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the charactoristics package. It is
 13:   called from PetscFinalize().

 15:   Level: developer

 17: .keywords: Petsc, destroy, package, mathematica
 18: .seealso: PetscFinalize()
 19: @*/
 20: PetscErrorCode  PetscRandomFinalizePackage(void)
 21: {
 23:   PetscRandomPackageInitialized = PETSC_FALSE;
 24:   PetscRandomList               = PETSC_NULL;
 25:   PetscRandomRegisterAllCalled  = PETSC_FALSE;
 26:   return(0);
 27: }

 31: /*@C
 32:   PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called
 33:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscRandomCreate()
 34:   when using static libraries.

 36:   Input Parameter:
 37:   path - The dynamic library path, or PETSC_NULL

 39:   Level: developer

 41: .keywords: PetscRandom, initialize, package
 42: .seealso: PetscInitialize()
 43: @*/
 44: PetscErrorCode  PetscRandomInitializePackage(const char path[])
 45: {
 46:   PetscErrorCode    ierr;

 49:   if (PetscRandomPackageInitialized) return(0);
 50:   PetscRandomPackageInitialized = PETSC_TRUE;
 51:   /* Register Class */
 52:   PetscCookieRegister("PetscRandom",&PETSC_RANDOM_COOKIE);
 53:   PetscRandomRegisterAll(path);
 54:   PetscRegisterFinalize(PetscRandomFinalizePackage);
 55:   return(0);
 56: }