:orphan:
# Tao
Abstract PETSc object that manages nonlinear optimization solves
## Synopsis
```
typedef struct _p_Tao *Tao;
```
## See Also
[](doc_taosolve), [](ch_tao), `TaoCreate()`, `TaoDestroy()`, `TaoSetType()`, `TaoType`
## Level
advanced
## Location
include/petsctao.h
## Examples
src/tao/bound/tutorials/jbearing2.c
src/tao/bound/tutorials/plate2.c
src/tao/bound/tutorials/plate2f.F90
src/tao/complementarity/tutorials/blackscholes.c
src/tao/complementarity/tutorials/minsurf1.c
src/tao/constrained/tutorials/ex1.c
src/tao/constrained/tutorials/maros.c
src/tao/leastsquares/tutorials/chwirut1.c
src/tao/leastsquares/tutorials/chwirut2.c
src/tao/leastsquares/tutorials/cs1.c
src/tao/leastsquares/tutorials/tomography.c
## Implementations
Tao_mcstep in src/tao/linesearch/impls/morethuente/morethuente.c
_p_Tao in include/petsc/private/taoimpl.h
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petsctao.h)
[Index of all Tao routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)