:orphan: # TaoLineSearchSetObjectiveAndGradientRoutine Sets the objective/gradient evaluation routine for the line search ## Synopsis ``` #include "petsctaolinesearch.h" PetscErrorCode TaoLineSearchSetObjectiveAndGradientRoutine(TaoLineSearch ls, PetscErrorCode (*func)(TaoLineSearch ls, Vec x, PetscReal *, Vec g, void *), void *ctx) ``` Logically Collective ## Input Parameters - ***ls -*** the `TaoLineSearch` context - ***func -*** the objective and gradient evaluation routine - ***ctx -*** the (optional) user-defined context for private data ## Calling sequence of `func` ```none PetscErrorCode func(TaoLinesearch ls, Vec x, PetscReal *f, Vec g, void *ctx); ``` - ***ls -*** the linesearch object - ***x -*** input vector - ***f -*** function value - ***g -*** gradient vector - ***ctx (optional) user-*** defined context ## Note Use this routine only if you want the line search objective and gradient evaluation routines to be different from the `Tao`'s objective and gradient evaluation routines. Some algorithms (lcl, gpcg) set their own objective routine for the line search, application programmers should be wary of overriding the default objective routine. ## See Also [](ch_tao), `Tao`, `TaoLineSearch`, `TaoLineSearchCreate()`, `TaoLineSearchSetObjectiveRoutine()`, `TaoLineSearchSetGradientRoutine()`, `TaoLineSearchUseTaoRoutines()` ## Level beginner ## Location src/tao/linesearch/interface/taolinesearch.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/tao/linesearch/interface/taolinesearch.c) [Index of all TaoLineSearch routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)