:orphan:
# TaoLineSearchConvergedReason
reason a `TaoLineSearch` completed 
## Synopsis
```
typedef enum {
  TAOLINESEARCH_FAILED_INFORNAN     = -1,
  TAOLINESEARCH_FAILED_BADPARAMETER = -2,
  TAOLINESEARCH_FAILED_ASCENT       = -3,
  TAOLINESEARCH_CONTINUE_ITERATING  = 0,
  TAOLINESEARCH_SUCCESS             = 1,
  TAOLINESEARCH_SUCCESS_USER        = 2,
  TAOLINESEARCH_HALTED_OTHER        = 3,
  TAOLINESEARCH_HALTED_MAXFCN       = 4,
  TAOLINESEARCH_HALTED_UPPERBOUND   = 5,
  TAOLINESEARCH_HALTED_LOWERBOUND   = 6,
  TAOLINESEARCH_HALTED_RTOL         = 7,
  TAOLINESEARCH_HALTED_USER         = 8
} TaoLineSearchConvergedReason;
```

## Values

- ***`TAOLINESEARCH_FAILED_ASCENT` -*** initial line search step * g is not descent direction
- ***`TAOLINESEARCH_FAILED_INFORNAN` -*** function evaluation gives `Inf` or `Nan` value
- ***`TAOLINESEARCH_FAILED_BADPARAMETER` -*** negative value set as parameter
- ***`TAOLINESEARCH_HALTED_MAXFCN` -*** maximum number of function evaluation reached
- ***`TAOLINESEARCH_HALTED_UPPERBOUND` -*** step is at upper bound
- ***`TAOLINESEARCH_HALTED_LOWERBOUND` -*** step is at lower bound
- ***`TAOLINESEARCH_HALTED_RTOL` -*** range of uncertainty is smaller than given tolerance
- ***`TAOLINESEARCH_HALTED_USER` -*** user can set this reason to stop line search
- ***`TAOLINESEARCH_HALTED_OTHER` -*** any other reason
- ***`TAOLINESEARCH_SUCCESS` -*** successful line search





## See Also
 [](ch_tao), `Tao`, `TaoLineSearch`, `TaoSolve()`, `TaoGetConvergedReason()`, `KSPConvergedReason`, `SNESConvergedReason`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petsctaolinesearch.h.html#TaoLineSearchConvergedReason">include/petsctaolinesearch.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petsctaolinesearch.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)  
