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: }