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. |
|