44 #ifndef ROL_INACTIVE_SET_VECTOR_HPP
45 #define ROL_INACTIVE_SET_VECTOR_HPP
68 template<
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_ );
106 return makePtr<Primal>( this->
getVector()->clone(),
111 Ptr<V>
basis(
const int i )
const override {
112 return makePtr<Primal>( this->
getVector()->basis(i),
117 void const V&
dual()
const override {
119 auto dual_vec = w.copy( this->
getVector() );
132 template<
typename Real>
133 class InactiveSet_DualVector :
public DualScaledVector<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 );
200 #endif // ROL_INACTIVE_SET_VECTOR_HPP
const Ptr< V > & getIterateVector()
const Ptr< V > & getScalingVector()
VectorWorkspace< Real > & getWorkspace() const
void const V & dual() const override
void multiply_scaling(const Ptr< V > &y) const
Defines the a Vector which has a diagonally scaled dot product that neglects active set elements Used...
const Ptr< V > & getIterateVector()
Defines the linear algebra or vector space interface.
const Ptr< V > & getVector()
const Ptr< const V > & getIterateVector() const
Provides the implementation of the ROL::Vector interface that handles scalings in the inner product...
Defines the a Vector which has a diagonally scaled dot product that neglects active set elements Used...
void const V & dual() const override
InactiveSet_DualVector(const Ptr< V > &vec, const Ptr< V > &scaling_vec, const Ptr< V > &x, const Ptr< Bnd > &bnd)
virtual ~InactiveSet_PrimalVector()
Ptr< V > basis(const int i) const override
virtual ~InactiveSet_PrimalVector()
VectorWorkspace< Real > & getWorkspace() const
Ptr< V > basis(const int i) const override
Real dot(const V &x) const override
const Ptr< V > & getScalingVector()
Provides the interface to apply upper and lower bound constraints.
Ptr< V > clone() const override
void divide_scaling(const < V > &y) const
const Ptr< const V > & getIterateVector() const
InactiveSet_PrimalVector(const Ptr< V > &vec, const Ptr< V > &scaling_vec, const Ptr< V > &x, const Ptr< Bnd > &bnd)
Real dot(const V &x) const override
void setIterateVector(const Ptr< V > &x) const
Ptr< V > clone() const override
void setIterateVector(const Ptr< V > &x) const