10#ifndef ROL_INACTIVE_SET_VECTOR_HPP
11#define ROL_INACTIVE_SET_VECTOR_HPP
30template<
typename Real>
class InactiveSet_PrimalVector;
31template<
typename Real>
class InactiveSet_DualVector;
34template<
typename Real>
50 const Ptr<V>& scaling_vec,
52 const Ptr<Bnd>& bnd ) :
58 Real
dot(
const V& x )
const override {
66 bnd_->pruneActive( *y, *
x_ );
77 Ptr<V>
basis(
const int i )
const override {
83 void const V&
dual()
const override {
85 auto dual_vec = w.copy( this->
getVector() );
98template<
typename Real>
114 const Ptr<V>& scaling_vec,
116 const Ptr<Bnd>& bnd ) :
121 Real
dot(
const V& x )
const override {
128 bnd_->pruneActive( *y, *
x_ );
130 return y->dot( *this->getVector() );
134 return makePtr<Primal>( this->getVector()->
clone(),
139 Ptr<V>
basis(
const int i )
const override {
140 return makePtr<Primal>( this->getVector()->
basis(i),
145 void const V&
dual()
const override {
147 auto dual_vec = w.copy( this->getVector() );
148 this->multiply( dual_vec );
Provides the interface to apply upper and lower bound constraints.
Provides the implementation of the ROL::Vector interface that handles scalings in the inner product....
void divide_scaling(const < V > &y) const
VectorWorkspace< Real > & getWorkspace() const
const Ptr< V > & getScalingVector()
Defines the a Vector which has a diagonally scaled dot product that neglects active set elements Used...
void const V & dual() const override
Ptr< V > basis(const int i) const override
const Ptr< const V > & getIterateVector() const
Ptr< V > clone() const override
Real dot(const V &x) const override
const Ptr< V > & getIterateVector()
virtual ~InactiveSet_PrimalVector()
void setIterateVector(const Ptr< V > &x) const
InactiveSet_DualVector(const Ptr< V > &vec, const Ptr< V > &scaling_vec, const Ptr< V > &x, const Ptr< Bnd > &bnd)
Defines the a Vector which has a diagonally scaled dot product that neglects active set elements Used...
virtual ~InactiveSet_PrimalVector()
const Ptr< const V > & getIterateVector() const
Real dot(const V &x) const override
const Ptr< V > & getIterateVector()
Ptr< V > clone() const override
Ptr< V > basis(const int i) const override
InactiveSet_PrimalVector(const Ptr< V > &vec, const Ptr< V > &scaling_vec, const Ptr< V > &x, const Ptr< Bnd > &bnd)
void const V & dual() const override
void setIterateVector(const Ptr< V > &x) const
Provides the implementation of the ROL::Vector interface that handles scalings in the inner product....
const Ptr< V > & getVector()
VectorWorkspace< Real > & getWorkspace() const
const Ptr< V > & getScalingVector()
void multiply_scaling(const Ptr< V > &y) const
Defines the linear algebra or vector space interface.