Actual source code: petsctaolinesearch.h

  1: #if !defined(PETSCTAOLINESEARCH_H)
  2: #define PETSCTAOLINESEARCH_H

  4: typedef struct _p_TaoLineSearch* TaoLineSearch;

  6: #include <petsctao.h>

  8: typedef enum {
  9:     TAOLINESEARCH_FAILED_INFORNAN = -1,
 10:     TAOLINESEARCH_FAILED_BADPARAMETER = -2,
 11:     TAOLINESEARCH_FAILED_ASCENT = -3,
 12:     TAOLINESEARCH_CONTINUE_ITERATING = 0,
 13:     TAOLINESEARCH_SUCCESS = 1,
 14:     TAOLINESEARCH_SUCCESS_USER = 2,
 15:     TAOLINESEARCH_HALTED_OTHER = 3,
 16:     TAOLINESEARCH_HALTED_MAXFCN = 4,
 17:     TAOLINESEARCH_HALTED_UPPERBOUND = 5,
 18:     TAOLINESEARCH_HALTED_LOWERBOUND = 6,
 19:     TAOLINESEARCH_HALTED_RTOL = 7,
 20:     TAOLINESEARCH_HALTED_USER = 8
 21: } TaoLineSearchConvergedReason;

 23: typedef const char *TaoLineSearchType;
 24: #define TAOLINESEARCHUNIT     "unit"
 25: #define TAOLINESEARCHMT       "more-thuente"
 26: #define TAOLINESEARCHGPCG     "gpcg"
 27: #define TAOLINESEARCHARMIJO   "armijo"
 28: #define TAOLINESEARCHOWARMIJO "owarmijo"
 29: #define TAOLINESEARCHIPM      "ipm"

 31: PETSC_EXTERN PetscClassId TAOLINESEARCH_CLASSID;
 32: PETSC_EXTERN PetscFunctionList TaoLineSearchList;

 34: PETSC_EXTERN PetscErrorCode TaoLineSearchCreate(MPI_Comm,TaoLineSearch*);
 35: PETSC_EXTERN PetscErrorCode TaoLineSearchSetFromOptions(TaoLineSearch);
 36: PETSC_EXTERN PetscErrorCode TaoLineSearchSetUp(TaoLineSearch);
 37: PETSC_EXTERN PetscErrorCode TaoLineSearchDestroy(TaoLineSearch*);
 38: PETSC_EXTERN PetscErrorCode TaoLineSearchMonitor(TaoLineSearch,PetscInt,PetscReal,PetscReal);
 39: PETSC_EXTERN PetscErrorCode TaoLineSearchView(TaoLineSearch,PetscViewer);
 40: PETSC_EXTERN PetscErrorCode TaoLineSearchViewFromOptions(TaoLineSearch,PetscObject,const char[]);

 42: PETSC_EXTERN PetscErrorCode TaoLineSearchSetOptionsPrefix(TaoLineSearch,const char prefix[]);
 43: PETSC_EXTERN PetscErrorCode TaoLineSearchReset(TaoLineSearch);
 44: PETSC_EXTERN PetscErrorCode TaoLineSearchAppendOptionsPrefix(TaoLineSearch,const char[]);
 45: PETSC_EXTERN PetscErrorCode TaoLineSearchGetOptionsPrefix(TaoLineSearch,const char*[]);
 46: PETSC_EXTERN PetscErrorCode TaoLineSearchApply(TaoLineSearch,Vec,PetscReal*,Vec,Vec,PetscReal*,TaoLineSearchConvergedReason*);
 47: PETSC_EXTERN PetscErrorCode TaoLineSearchGetStepLength(TaoLineSearch,PetscReal*);
 48: PETSC_EXTERN PetscErrorCode TaoLineSearchGetStartingVector(TaoLineSearch,Vec*);
 49: PETSC_EXTERN PetscErrorCode TaoLineSearchGetStepDirection(TaoLineSearch,Vec*);
 50: PETSC_EXTERN PetscErrorCode TaoLineSearchSetInitialStepLength(TaoLineSearch,PetscReal);
 51: PETSC_EXTERN PetscErrorCode TaoLineSearchGetSolution(TaoLineSearch,Vec,PetscReal*,Vec,PetscReal*,TaoLineSearchConvergedReason*);
 52: PETSC_EXTERN PetscErrorCode TaoLineSearchGetFullStepObjective(TaoLineSearch,PetscReal*);
 53: PETSC_EXTERN PetscErrorCode TaoLineSearchGetNumberFunctionEvaluations(TaoLineSearch,PetscInt*,PetscInt*,PetscInt*);

 55: PETSC_EXTERN PetscErrorCode TaoLineSearchGetType(TaoLineSearch,TaoLineSearchType*);
 56: PETSC_EXTERN PetscErrorCode TaoLineSearchSetType(TaoLineSearch,TaoLineSearchType);

 58: PETSC_EXTERN PetscErrorCode TaoLineSearchIsUsingTaoRoutines(TaoLineSearch,PetscBool*);
 59: PETSC_EXTERN PetscErrorCode TaoLineSearchSetObjectiveAndGTSRoutine(TaoLineSearch,PetscErrorCode(*)(TaoLineSearch,Vec,Vec,PetscReal*,PetscReal*,void*),void*);
 60: PETSC_EXTERN PetscErrorCode TaoLineSearchSetObjectiveRoutine(TaoLineSearch,PetscErrorCode(*)(TaoLineSearch,Vec,PetscReal*,void*),void*);
 61: PETSC_EXTERN PetscErrorCode TaoLineSearchSetGradientRoutine(TaoLineSearch,PetscErrorCode(*)(TaoLineSearch,Vec,Vec,void*),void*);
 62: PETSC_EXTERN PetscErrorCode TaoLineSearchSetObjectiveAndGradientRoutine(TaoLineSearch,PetscErrorCode(*)(TaoLineSearch,Vec,PetscReal*,Vec,void*),void*);

 64: PETSC_EXTERN PetscErrorCode TaoLineSearchComputeObjective(TaoLineSearch,Vec,PetscReal*);
 65: PETSC_EXTERN PetscErrorCode TaoLineSearchComputeGradient(TaoLineSearch,Vec,Vec);
 66: PETSC_EXTERN PetscErrorCode TaoLineSearchComputeObjectiveAndGradient(TaoLineSearch,Vec,PetscReal*,Vec);
 67: PETSC_EXTERN PetscErrorCode TaoLineSearchComputeObjectiveAndGTS(TaoLineSearch,Vec,PetscReal*,PetscReal*);
 68: PETSC_EXTERN PetscErrorCode TaoLineSearchSetVariableBounds(TaoLineSearch,Vec,Vec);

 70: PETSC_EXTERN PetscErrorCode TaoLineSearchInitializePackage(void);
 71: PETSC_EXTERN PetscErrorCode TaoLineSearchFinalizePackage(void);

 73: PETSC_EXTERN PetscErrorCode TaoLineSearchRegister(const char[],PetscErrorCode (*)(TaoLineSearch));
 74: PETSC_EXTERN PetscErrorCode TaoLineSearchUseTaoRoutines(TaoLineSearch,Tao);

 76: #endif