Actual source code: dlregis_taolinesearch.c

  1: #define TAOLINESEARCH_DLL
  2: #include <petsc/private/taolinesearchimpl.h>

  4: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Unit(TaoLineSearch);
  5: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_MT(TaoLineSearch);
  6: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_GPCG(TaoLineSearch);
  7: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Armijo(TaoLineSearch);
  8: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_OWArmijo(TaoLineSearch);
  9: static PetscBool TaoLineSearchPackageInitialized = PETSC_FALSE;

 11: /*@C
 12:   TaoLineSearchFinalizePackage - This function destroys everything in the PETSc/TAO
 13:   interface to the TaoLineSearch package. It is called from PetscFinalize().

 15:   Level: developer
 16: @*/
 17: PetscErrorCode TaoLineSearchFinalizePackage(void)
 18: {

 22:   PetscFunctionListDestroy(&TaoLineSearchList);
 23:   TaoLineSearchPackageInitialized = PETSC_FALSE;
 24:   return(0);
 25: }

 27: /*@C
 28:   TaoLineSearchInitializePackage - This function registers the line-search
 29:   algorithms in TAO.  When using shared or static libraries, this function is called from the
 30:   first entry to TaoCreate(); when using dynamic, it is called
 31:   from PetscDLLibraryRegister_tao()

 33:   Level: developer

 35: .seealso: TaoLineSearchCreate()
 36: @*/
 37: PetscErrorCode TaoLineSearchInitializePackage(void)
 38: {

 42:   if (TaoLineSearchPackageInitialized) return(0);
 43:   TaoLineSearchPackageInitialized=PETSC_TRUE;
 44: #if !defined(PETSC_USE_COMPLEX)
 45:   PetscClassIdRegister("TaoLineSearch",&TAOLINESEARCH_CLASSID);
 46:   TaoLineSearchRegister("unit",TaoLineSearchCreate_Unit);
 47:   TaoLineSearchRegister("more-thuente",TaoLineSearchCreate_MT);
 48:   TaoLineSearchRegister("gpcg",TaoLineSearchCreate_GPCG);
 49:   TaoLineSearchRegister("armijo",TaoLineSearchCreate_Armijo);
 50:   TaoLineSearchRegister("owarmijo",TaoLineSearchCreate_OWArmijo);
 51:   PetscLogEventRegister("TaoLineSearchApply",TAOLINESEARCH_CLASSID,&TAOLINESEARCH_Apply);
 52:   PetscLogEventRegister("TaoLineSearchEval", TAOLINESEARCH_CLASSID,&TAOLINESEARCH_Eval);
 53: #endif
 54:   PetscRegisterFinalize(TaoLineSearchFinalizePackage);
 55:   return(0);
 56: }