# Predictors and Correctors

We use a predictor-corrector scheme to track paths. These are the predictors and correctors currently available.

## Predictors

The following predictors are currently implemented.

`HomotopyContinuation.Euler`

— Type.`Euler()`

This uses the explicit Euler method for prediction, also known as the tangent predictor.

`HomotopyContinuation.Heun`

— Type.`Heun()`

The Heun predictor of order 2.

`HomotopyContinuation.Ralston`

— Type.`Ralston()`

The Ralston predictor of order 2.

`HomotopyContinuation.RK3`

— Type.`RK3()`

The classical Runge-Kutta predictor of order 3.

`HomotopyContinuation.RK4`

— Type.`RK4()`

The classical Runge-Kutta predictor of order 4.

`HomotopyContinuation.Pade21`

— Type.`Pade21()`

This uses a Padé-approximation of type (2,1) for prediction.

`NullPredictor()`

A predictor which does no prediction step, i.e., it just returns the input as its prediction.

## Correctors

The following correctors are currently implemented.

`HomotopyContinuation.Newton`

— Type.`Newton(;simplified_last_step=true)`

An ordinary Newton's method. If `simplified_last_step`

is `true`

, then for the last iteration the previously Jacobian will be used. This uses an LU-factorization for square systems and a QR-factorization for overdetermined.