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: {
19: PetscFunctionListDestroy(&TaoLineSearchList);
20: TaoLineSearchPackageInitialized = PETSC_FALSE;
21: return 0;
22: }
24: /*@C
25: TaoLineSearchInitializePackage - This function registers the line-search
26: algorithms in TAO. When using shared or static libraries, this function is called from the
27: first entry to TaoCreate(); when using dynamic, it is called
28: from PetscDLLibraryRegister_tao()
30: Level: developer
32: .seealso: `TaoLineSearchCreate()`
33: @*/
34: PetscErrorCode TaoLineSearchInitializePackage(void)
35: {
36: if (TaoLineSearchPackageInitialized) return 0;
37: TaoLineSearchPackageInitialized = PETSC_TRUE;
38: #if !defined(PETSC_USE_COMPLEX)
39: PetscClassIdRegister("TaoLineSearch", &TAOLINESEARCH_CLASSID);
40: TaoLineSearchRegister("unit", TaoLineSearchCreate_Unit);
41: TaoLineSearchRegister("more-thuente", TaoLineSearchCreate_MT);
42: TaoLineSearchRegister("gpcg", TaoLineSearchCreate_GPCG);
43: TaoLineSearchRegister("armijo", TaoLineSearchCreate_Armijo);
44: TaoLineSearchRegister("owarmijo", TaoLineSearchCreate_OWArmijo);
45: PetscLogEventRegister("TaoLSApply", TAOLINESEARCH_CLASSID, &TAOLINESEARCH_Apply);
46: PetscLogEventRegister("TaoLSEval", TAOLINESEARCH_CLASSID, &TAOLINESEARCH_Eval);
47: #endif
48: PetscRegisterFinalize(TaoLineSearchFinalizePackage);
49: return 0;
50: }