44 #ifndef ROL_PROJECTEDHESSIAN_H
45 #define ROL_PROJECTEDHESSIAN_H
58 const Teuchos::RCP<Objective<Real> >
obj_;
59 const Teuchos::RCP<BoundConstraint<Real> >
con_;
60 const Teuchos::RCP<Vector<Real> >
x_;
61 const Teuchos::RCP<Vector<Real> >
g_;
62 Teuchos::RCP<Vector<Real> >
v_;
64 const Teuchos::RCP<Secant<Real> >
secant_;
75 if (
con_->isActivated() ) {
85 if (
con_->isActivated() ) {
103 if (
con_->isActivated() ) {
122 obj_->hessVec(Hv,v,*
x_,tol);
135 if (
con_->isActivated() ) {
154 obj_->invHessVec(Hv,v,*
x_,tol);
Provides the interface to evaluate objective functions.
Teuchos::RCP< Vector< Real > > v_
virtual void plus(const Vector &x)=0
Compute , where .
ProjectedHessian(const Teuchos::RCP< Secant< Real > > &secant, const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< BoundConstraint< Real > > &con, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< Vector< Real > > &g, bool useSecant=true)
Contains definitions of custom data types in ROL.
const Teuchos::RCP< Objective< Real > > obj_
void setData(Real eps=0.0)
Defines the linear algebra or vector space interface.
const Teuchos::RCP< Vector< Real > > g_
const Teuchos::RCP< Vector< Real > > x_
void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse Hessian.
Provides interface for and implements limited-memory secant operators.
Provides the interface to apply a linear operator.
const Teuchos::RCP< Secant< Real > > secant_
Provides the interface to apply upper and lower bound constraints.
const Teuchos::RCP< BoundConstraint< Real > > con_
ProjectedHessian(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< BoundConstraint< Real > > &con, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< Vector< Real > > &g)
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply Hessian.