1*a7e14dcfSSatish Balay #define TAOLINESEARCH_DLL 2*a7e14dcfSSatish Balay #include "tao-private/taolinesearch_impl.h" 3*a7e14dcfSSatish Balay 4*a7e14dcfSSatish Balay 5*a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Unit(TaoLineSearch); 6*a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_MT(TaoLineSearch); 7*a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_GPCG(TaoLineSearch); 8*a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Armijo(TaoLineSearch); 9*a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_OWArmijo(TaoLineSearch); 10*a7e14dcfSSatish Balay 11*a7e14dcfSSatish Balay 12*a7e14dcfSSatish Balay static PetscBool TaoLineSearchPackageInitialized = PETSC_FALSE; 13*a7e14dcfSSatish Balay 14*a7e14dcfSSatish Balay 15*a7e14dcfSSatish Balay 16*a7e14dcfSSatish Balay 17*a7e14dcfSSatish Balay 18*a7e14dcfSSatish Balay #undef __FUNCT__ 19*a7e14dcfSSatish Balay #define __FUNCT__ "TaoLineSearchFinalizePackage" 20*a7e14dcfSSatish Balay /*@C 21*a7e14dcfSSatish Balay TaoLineSearchFinalizePackage - This function destroys everything in the PETSc/TAO 22*a7e14dcfSSatish Balay interface to the TaoLineSearch package. It is called from PetscFinalize(). 23*a7e14dcfSSatish Balay 24*a7e14dcfSSatish Balay Level: developer 25*a7e14dcfSSatish Balay @*/ 26*a7e14dcfSSatish Balay PetscErrorCode TaoLineSearchFinalizePackage(void) 27*a7e14dcfSSatish Balay { 28*a7e14dcfSSatish Balay PetscErrorCode ierr; 29*a7e14dcfSSatish Balay 30*a7e14dcfSSatish Balay PetscFunctionBegin; 31*a7e14dcfSSatish Balay ierr = PetscFunctionListDestroy(&TaoLineSearchList); CHKERRQ(ierr); 32*a7e14dcfSSatish Balay TaoLineSearchPackageInitialized = PETSC_FALSE; 33*a7e14dcfSSatish Balay PetscFunctionReturn(0); 34*a7e14dcfSSatish Balay } 35*a7e14dcfSSatish Balay 36*a7e14dcfSSatish Balay 37*a7e14dcfSSatish Balay #undef __FUNCT__ 38*a7e14dcfSSatish Balay #define __FUNCT__ "TaoLineSearchInitializePackage" 39*a7e14dcfSSatish Balay /*@C 40*a7e14dcfSSatish Balay TaoLineSearchInitializePackage - This function registers the line-search 41*a7e14dcfSSatish Balay algorithms in TAO. 42*a7e14dcfSSatish Balay When using static libraries, this function is called from the 43*a7e14dcfSSatish Balay first entry to TaoCreate(); when using shared libraries, it is called 44*a7e14dcfSSatish Balay from PetscDLLibraryRegister() 45*a7e14dcfSSatish Balay 46*a7e14dcfSSatish Balay Level: developer 47*a7e14dcfSSatish Balay 48*a7e14dcfSSatish Balay .seealso: TaoLineSearchCreate() 49*a7e14dcfSSatish Balay @*/ 50*a7e14dcfSSatish Balay PetscErrorCode TaoLineSearchInitializePackage() 51*a7e14dcfSSatish Balay { 52*a7e14dcfSSatish Balay PetscErrorCode ierr; 53*a7e14dcfSSatish Balay 54*a7e14dcfSSatish Balay PetscFunctionBegin; 55*a7e14dcfSSatish Balay if (TaoLineSearchPackageInitialized) PetscFunctionReturn(0); 56*a7e14dcfSSatish Balay TaoLineSearchPackageInitialized=PETSC_TRUE; 57*a7e14dcfSSatish Balay 58*a7e14dcfSSatish Balay ierr = PetscClassIdRegister("TaoLineSearch",&TAOLINESEARCH_CLASSID); CHKERRQ(ierr); 59*a7e14dcfSSatish Balay 60*a7e14dcfSSatish Balay 61*a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("unit",TaoLineSearchCreate_Unit); CHKERRQ(ierr); 62*a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("more-thuente",TaoLineSearchCreate_MT); CHKERRQ(ierr); 63*a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("gpcg",TaoLineSearchCreate_GPCG); CHKERRQ(ierr); 64*a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("armijo",TaoLineSearchCreate_Armijo); CHKERRQ(ierr); 65*a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("owarmijo",TaoLineSearchCreate_OWArmijo); CHKERRQ(ierr); 66*a7e14dcfSSatish Balay 67*a7e14dcfSSatish Balay ierr = PetscLogEventRegister( "TaoLineSearchApply",TAOLINESEARCH_CLASSID,&TaoLineSearch_ApplyEvent); CHKERRQ(ierr); 68*a7e14dcfSSatish Balay ierr = PetscLogEventRegister("TaoLineSearchComputeObjective[Gradient]",TAOLINESEARCH_CLASSID,&TaoLineSearch_EvalEvent); CHKERRQ(ierr); 69*a7e14dcfSSatish Balay ierr = PetscRegisterFinalize(TaoLineSearchFinalizePackage); CHKERRQ(ierr); 70*a7e14dcfSSatish Balay PetscFunctionReturn(0); 71*a7e14dcfSSatish Balay } 72*a7e14dcfSSatish Balay 73*a7e14dcfSSatish Balay 74*a7e14dcfSSatish Balay 75