44#ifndef ROL_INACTIVE_SET_VECTOR_HPP
45#define ROL_INACTIVE_SET_VECTOR_HPP
64template<
typename Real>
class InactiveSet_PrimalVector;
65template<
typename Real>
class InactiveSet_DualVector;
68template<
typename Real>
84 const Ptr<V>& scaling_vec,
86 const Ptr<Bnd>& bnd ) :
92 Real
dot(
const V& x )
const override {
100 bnd_->pruneActive( *y, *
x_ );
111 Ptr<V>
basis(
const int i )
const override {
117 void const V&
dual()
const override {
119 auto dual_vec = w.copy( this->
getVector() );
132template<
typename Real>
148 const Ptr<V>& scaling_vec,
150 const Ptr<Bnd>& bnd ) :
155 Real
dot(
const V& x )
const override {
162 bnd_->pruneActive( *y, *
x_ );
164 return y->dot( *this->getVector() );
168 return makePtr<Primal>( this->getVector()->
clone(),
173 Ptr<V>
basis(
const int i )
const override {
174 return makePtr<Primal>( this->getVector()->
basis(i),
179 void const V&
dual()
const override {
181 auto dual_vec = w.copy( this->getVector() );
182 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.