petsc-3.14.5 2021-03-03
Report Typos and Errors

# 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 on TaoLineSearch

### Input Parameter

| ls | - the TaoLineSearch context
| func | - the objective and gradient evaluation routine
| ctx | - the (optional) user-defined context for private data

### Calling sequence of func

         func (TaoLinesearch ls, Vec x, PetscReal *f, Vec g, void *ctx);

| 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.

### Note

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

TaoLineSearchCreate(), TaoLineSearchSetObjectiveRoutine(), TaoLineSearchSetGradientRoutine(), TaoLineSearchUseTaoRoutines()

### Level

beginner

### Location

src/tao/linesearch/interface/taolinesearch.c
Index of all TaoLineSearch routines
Table of Contents for all manual pages
Index of all manual pages