Actual source code: dlregis_taolinesearch.c

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

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

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

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

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

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

     34:   Level: developer

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

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