44 #ifndef ROL_TYPEP_INEXACTNEWTONALGORITHM_HPP
45 #define ROL_TYPEP_INEXACTNEWTONALGORITHM_HPP
56 template<
typename Real>
85 const Ptr<Objective<Real>>
obj_;
86 const Ptr<Vector<Real>>
x_;
87 const Ptr<Vector<Real>>
g_;
94 :
obj_(obj),
x_(x.clone()),
g_(g.clone()),
pwa_(x.clone()),
100 const Real half(0.5), one(1);
141 std::ostream &outStream = std::cout);
153 std::ostream &outStream = std::cout)
override;
155 void writeHeader( std::ostream& os )
const override;
157 void writeName( std::ostream& os )
const override;
159 void writeOutput( std::ostream &os,
bool write_header =
false )
const override;
Provides the interface to evaluate objective functions.
void writeOutput(std::ostream &os, bool write_header=false) const override
Print iterate status.
const Ptr< Vector< Real > > x_
virtual void plus(const Vector &x)=0
Compute , where .
int maxit_
Maximum number of line search steps (default: 20)
void update(const Vector< Real > &x, UpdateType type, int iter)
Update objective function.
Real sigma1_
Lower safeguard for quadratic line search (default: 0.1)
Defines the linear algebra or vector space interface.
NewtonObj(const Ptr< Objective< Real >> &obj, const Vector< Real > &x, const Vector< Real > &g)
void setData(const Vector< Real > &x, const Vector< Real > &g)
Real sigma2_
Upper safeguard for quadratic line search (default: 0.9)
const Ptr< Objective< Real > > obj_
Real c1_
Sufficient Decrease Parameter (default: 1e-4)
Real rhodec_
Backtracking rate (default: 0.5)
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
void writeName(std::ostream &os) const override
Print step name.
const Ptr< Vector< Real > > g_
InexactNewtonAlgorithm(ParameterList &list)
Ptr< Vector< Real > > dwa_
Ptr< Vector< Real > > pwa_
void initialize(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &sobj, Objective< Real > &nobj, Vector< Real > &dg, Vector< Real > &px, std::ostream &outStream=std::cout)
virtual void set(const Vector &x)
Set where .
void run(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &sobj, Objective< Real > &nobj, std::ostream &outStream=std::cout) override
Run algorithm on unconstrained problems (Type-U). This general interface supports the use of dual opt...
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol)
Compute gradient.
Real value(const Vector< Real > &x, Real &tol)
Compute value.
Provides an interface to run optimization algorithms to minimize composite optimization problems f+ph...
void writeHeader(std::ostream &os) const override
Print iterate header.
int numHessVec(bool reset=true)
Provides an interface to run the inexact proximal Newton algorithm.
Ptr< Vector< Real > > Hx_