| Input Give , , , , and ; starting point ; initial steplength , steplength | | contraction factor , steplength expansion factor ; tracking tolerances and for correction. Set | | , , , , . | | Step 1. The predictor step. | | Step 1.1. Compute the predictor direction. | | If , compute by solving | | , | | where , set the predictor direction ; | | else, compute the predictor direction , the angle between and : | | . | | Step 1.2. Adjust the steplength. | | Adjust the steplength as follows: | | if the predictor point is infeasible, set , ; | | else if the corrector step fails or , set , ; | | else if , set , ; | | else if , set , ; | | else if , set , | | if , set , else, set ; | | else, set , | | if , set , else, set . | | If , stop the algorithm with an error flag. | | Step 1.3. Compute the predictor point and check its feasibility. | | Compute the predictor point | | . | | If or , | | the predictor point is infeasible, goto Step 1.2; | | else if , | | adjust the steplength , compute the point , if , goto Step 3, else, the predictor | | point is infeasible, goto Step 1.2; | | else, goto Step 2. | | Step 2. The corrector step. | | Set . | | Repeat | | If , set , , , , , the corrector step fails, goto Step 1.2. | | Compute the Newton step by solving | | , | | the corrector point | | ; | | set . | | If or , | | set , , , , , the corrector step fails, goto Step 1.2; | | else if , | | compute the point by a damping Newton step, set , if , goto Step 3, | | else, set , , , , the corrector step fails, goto Step 1.2. | | Until and . | | If , return with , stop the algorithm; else, set , , goto Step 1. | | Step 3. The end game. | | Set . | | Repeat | | If or for , or , set , , , | | , , , the corrector step fails, goto Step 1.2. | | Compute the Newton step by solving , the corrector point | | ; | | set . | | Until and . | | Set , return with , stop the algorithm. |
|