# SNESLineSearchCubic

Performs a cubic line search (default line search method).

### Synopsis

    PetscErrorCode PETSCSNES_DLLEXPORT SNESLineSearchCubic(SNES snes,void *lsctx,Vec x,Vec f,Vec g,Vec y,Vec w,PetscReal fnorm,PetscReal *ynorm,PetscReal *gnorm,PetscTruth *flag)

Collective on SNES

### Input Parameters

| snes | - nonlinear context
| lsctx | - optional context for line search (not used here)
| x | - current iterate
| f | - residual evaluated at x
| y | - search direction
| w | - work vector
| fnorm | - 2-norm of f

### Output Parameters

| g | - residual evaluated at new iterate y
| w | - new iterate
| gnorm | - 2-norm of g
| ynorm | - 2-norm of search length
| flag | - PETSC_TRUE if line search succeeds; PETSC_FALSE on failure.

### Options Database Key

     -snes_ls cubic - Activates SNESLineSearchCubic()

### Notes

This line search is taken from "Numerical Methods for Unconstrained Optimization and Nonlinear Equations" by Dennis and Schnabel, page 325.

### Keywords

SNES, nonlinear, line search, cubic

### See Also

SNESLineSearchQuadratic(), SNESLineSearchNo(), SNESLineSearchSet(), SNESLineSearchNoNorms()

Level:advanced
Location: src/snes/impls/ls/ls.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages