:orphan:
# TaoGetSolutionStatus
Get the current iterate, objective value, residual, infeasibility, and termination from a `Tao` object
## Synopsis
```
#include "petsctao.h"
PetscErrorCode TaoGetSolutionStatus(Tao tao, PetscInt *its, PetscReal *f, PetscReal *gnorm, PetscReal *cnorm, PetscReal *xdiff, TaoConvergedReason *reason)
```
Not Collective
## Input Parameter
- ***tao -*** the `Tao` context
## Output Parameters
- ***iterate -*** the current iterate number (>=0)
- ***f -*** the current function value
- ***gnorm -*** the square of the gradient norm, duality gap, or other measure indicating distance from optimality.
- ***cnorm -*** the infeasibility of the current solution with regard to the constraints.
- ***xdiff -*** the step length or trust region radius of the most recent iterate.
- ***reason -*** The termination reason, which can equal `TAO_CONTINUE_ITERATING`
## Notes
Tao returns the values set by the solvers in the routine `TaoMonitor()`.
If any of the output arguments are set to `NULL`, no corresponding value will be returned.
## See Also
[](ch_tao), `TaoMonitor()`, `TaoGetConvergedReason()`
## Level
intermediate
## Location
src/tao/interface/taosolver.c
## Examples
src/tao/bound/tutorials/jbearing2.c
src/tao/unconstrained/tutorials/burgers_spectral.c
src/tao/unconstrained/tutorials/eptorsion2f.F90
src/tao/unconstrained/tutorials/spectraladjointassimilation.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/tao/interface/taosolver.c)
[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)