Skip to main content
`Ctrl`+`K`

# TaoDefaultComputeGradient

computes the gradient using finite differences.

## Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoDefaultComputeGradient(Tao tao, Vec Xin, Vec G, void *dummy)

Collective

## Input Parameters

- tao - the Tao context

- Xin - compute gradient at this point

- dummy - not used

## Output Parameter

- G - Gradient Vector

## Options Database Key

- -tao_fd_gradient - activates TaoDefaultComputeGradient()

- -tao_fd_delta - change in X used to calculate finite differences

## Notes

This routine is slow and expensive, and is not optimized to take advantage of sparsity in the problem. Although not recommended for general use in large-scale applications, it can be useful in checking the correctness of a user-provided gradient. Use the tao method TAOTEST to get an indication of whether your gradient is correct. This finite difference gradient evaluation can be set using the routine `TaoSetGradient()` or by using the command line option -tao_fd_gradient

## See Also

`Tao`, `TaoSetGradient()`

## Level

advanced

## Location

src/tao/interface/fdiff.c

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