KrisLibrary  1.0.0
NewtonSolver.h
1 #ifndef OPTIMIZATION_NEWTON_SOLVER_H
2 #define OPTIMIZATION_NEWTON_SOLVER_H
3 
4 #include "NonlinearProgram.h"
5 #include <math/root.h>
6 
7 namespace Optimization {
8 
9 struct InequalityBarrierNLP;
10 
20 {
22  ~NewtonSolver();
24  void Init();
26  ConvergenceResult Solve(int& maxIters);
29  ConvergenceResult LineSearch(Real& alpha);
30  Real Merit(const Vector& x,const Vector& a) const;
31 
34  InequalityBarrierNLP* barrierProblem;
35  NonlinearProgram* problem;
36  Vector x,a;
37  Vector dx,da;
38 
40  Vector bmin,bmax;
41  Real tolf,tolx;
42  int verbose;
43  std::vector<Vector>* S;
44 
46  Matrix H,Hinv;
47  Matrix A,AHA,mtemp;
48  Vector res1,res2,vtemp;
49 };
50 
51 } //namespace Optimization
52 
53 #endif
Namespace for classes and functions in the Optimization package.
Definition: CSet.h:7
Matrix H
temp
Definition: NewtonSolver.h:46
A newton&#39;s-method style solver for a NLP.
Definition: NewtonSolver.h:19
Vector bmin
user settings
Definition: NewtonSolver.h:40
Numerical root-solving routines.
ConvergenceResult Solve(int &maxIters)
Use newton&#39;s method to solve the NLP using the given number of iters.
Definition: NewtonSolver.cpp:236
ConvergenceResult LineSearch(Real &alpha)
Definition: NewtonSolver.cpp:324
void Init()
Call to initialize the solver after setting the initial point x.
Definition: NewtonSolver.cpp:147
A structure defining a nonlinear program.
Definition: NonlinearProgram.h:22
NonlinearProgram & origProblem
state - x is the variable, a is the lagrange multipliers
Definition: NewtonSolver.h:33
Definition: NewtonSolver.cpp:118