57 std::vector<Teuchos::RCP<Vector<Real> > >
iterDiff;
58 std::vector<Teuchos::RCP<Vector<Real> > >
gradDiff;
70 Teuchos::RCP<SecantState<Real> >
state_;
88 const Real snorm,
const int iter ) {
90 Teuchos::RCP<Vector<Real> > gradDiff = grad.
clone();
92 gradDiff->axpy(-1.0,gp);
94 Real sy = s.
dot(gradDiff->dual());
108 state_->product.push_back(sy);
138 Teuchos::RCP<Vector<Real> > vec = x.
clone();
139 Teuchos::RCP<Vector<Real> > Hvec = x.
clone();
140 Teuchos::RCP<Vector<Real> > Bvec = x.
clone();
146 vec->axpy(-1.0,*Bvec);
147 std::cout <<
" ||BHv-v|| = " << vec->norm() <<
"\n";
153 vec->axpy(-1.0,*Hvec);
154 std::cout <<
" ||HBv-v|| = " << vec->norm() <<
"\n";
174 default:
return Teuchos::null;
virtual void update(const Vector< Real > &grad, const Vector< Real > &gp, const Vector< Real > &s, const Real snorm, const int iter)
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
std::vector< Teuchos::RCP< Vector< Real > > > iterDiff
virtual void scale(const Real alpha)=0
Compute where .
virtual void applyB0(Vector< Real > &Bv, const Vector< Real > &v, const Vector< Real > &x)
virtual void applyH0(Vector< Real > &Hv, const Vector< Real > &v, const Vector< Real > &x)
std::vector< Teuchos::RCP< Vector< Real > > > gradDiff
void test(const Vector< Real > &x, const Vector< Real > &s)
virtual void applyB(Vector< Real > &Bv, const Vector< Real > &v, const Vector< Real > &x)=0
Provides definitions for limited-memory DFP operators.
Contains definitions of custom data types in ROL.
Provides definitions for limited-memory SR1 operators.
virtual Teuchos::RCP< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
Provides definitions for limited-memory BFGS operators.
Defines the linear algebra or vector space interface.
virtual Real dot(const Vector &x) const =0
Compute where .
ESecant
Enumeration of secant update algorithms.
Provides interface for and implements limited-memory secant operators.
Teuchos::RCP< Secant< Real > > getSecant(ESecant esec=SECANT_LBFGS, int L=10, int BBtype=1)
std::vector< Real > product2
Teuchos::RCP< SecantState< Real > > & get_state()
Teuchos::RCP< SecantState< Real > > state_
Provides definitions for Barzilai-Borwein operators.
virtual void set(const Vector &x)
Set where .
std::vector< Real > product
virtual void applyH(Vector< Real > &Hv, const Vector< Real > &v, const Vector< Real > &x)=0
static const double ROL_EPSILON
Platform-dependent machine epsilon.