PETSc version 3.17.4
Fix/Edit manual page

# TaoSetObjectiveAndGradient

Sets a combined objective function and gradient evaluation routine for minimization

### Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoSetObjectiveAndGradient(Tao tao, Vec g, PetscErrorCode (*func)(Tao, Vec, PetscReal*, Vec, void*), void *ctx)

Logically collective on Tao

### Input Parameters

| tao | - the Tao context
| g | - [optional] the vector to internally hold the gradient computation
| func | - the gradient function
| ctx | - [optional] user-defined context for private data for the gradient evaluation routine (may be NULL)

### Calling sequence of func

         func (Tao tao, Vec x, PetscReal *f, Vec g, void *ctx);

| x | - input vector
| f | - objective value (output)
| g | - gradient value (output)
| ctx | - [optional] user-defined function context

### See Also

TaoSetObjective(), TaoSetHessian(), TaoSetGradient(), TaoGetObjectiveAndGradient()

### Level

beginner

### Location

src/tao/interface/taosolver_fg.c

### Examples

src/ts/tutorials/ex20opt_p.c.html
src/ts/tutorials/ex20opt_ic.c.html
src/tao/unconstrained/tutorials/eptorsion1.c.html
src/tao/unconstrained/tutorials/eptorsion2.c.html
src/tao/unconstrained/tutorials/minsurf2.c.html
src/tao/unconstrained/tutorials/rosenbrock1.c.html
src/tao/unconstrained/tutorials/rosenbrock2.c.html
src/tao/unconstrained/tutorials/rosenbrock3.c.html
src/tao/unconstrained/tutorials/spectraladjointassimilation.c.html
src/tao/unconstrained/tutorials/eptorsion2f.F.html
src/tao/unconstrained/tutorials/rosenbrock1f.F90.html
Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages