Skip to main content
`Ctrl`+`K`

# TaoTermIsObjectiveAndGradientDefined

Whether a combined objective-and-gradient operation is defined for this `TaoTerm`

## Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoTermIsObjectiveAndGradientDefined(TaoTerm term, PetscBool *is_defined)

Not collective

## Input Parameter

- term - a `TaoTerm`

## Output Parameter

- is_defined - whether the objective/gradient is defined

## Note

This function strictly checks whether a dedicated combined objective-and-gradient operation is defined. It does not check whether the objective and gradient could be computed via separate objective and gradient operations. `TaoTermComputeObjectiveAndGradient()` may still succeed even if this function returns `PETSC_FALSE`, by falling back to separate `TaoTermComputeObjective()` and `TaoTermComputeGradient()` calls.

## See Also

TaoTerm: composable objective function terms, `TaoTerm`, `TaoTermComputeObjectiveAndGradient()`, `TaoTermShellSetObjectiveAndGradient()`, `TaoTermIsObjectiveDefined()`, `TaoTermIsGradientDefined()`, `TaoTermIsHessianDefined()`

## Level

developer

## Location

src/tao/term/interface/taoterm.c

## Implementations

TaoTermIsObjectiveAndGradientDefined_Callbacks() in src/tao/term/impls/callbacks/taotermcallbacks.c

Index of all TaoTerm routines
Table of Contents for all manual pages
Index of all manual pages