44 #ifndef ROL_SCALEDSTDVECTOR_H 45 #define ROL_SCALEDSTDVECTOR_H 61 template <
class Real,
class Element=Real>
64 template <
class Real,
class Element=Real>
67 template <
class Real,
class Element>
81 const Ptr<std::vector<Element> > & scaling_vec) :
82 StdVector<Real>(std_vec), scaling_vec_(scaling_vec),
83 isDualInitialized_(false) {}
87 const std::vector<Element>& xval = *ex.
getVector();
92 val += yval[i]*xval[i]*(*scaling_vec_)[i];
97 Ptr<Vector<Real> >
clone()
const {
99 return makePtr<PrimalScaledStdVector>(
100 makePtr<std::vector<Element>>(
dimension), scaling_vec_ );
105 if ( !isDualInitialized_ ) {
106 dual_vec_ = makePtr<DualScaledStdVector<Real>>(
107 makePtr<std::vector<Element>>(n),
109 isDualInitialized_ =
true;
111 for (uint i = 0; i < n; i++) {
112 (*(dual_vec_->getVector()))[i]
122 template <
class Real,
class Element>
136 const Ptr<std::vector<Element> > & scaling_vec) :
137 StdVector<Real>(std_vec), scaling_vec_(scaling_vec),
138 isDualInitialized_(false) {}
142 const std::vector<Element>& xval = *ex.
getVector();
147 val += yval[i]*xval[i]/(*scaling_vec_)[i];
154 return makePtr<DualScaledStdVector>(
155 makePtr<std::vector<Element>>(
dimension), scaling_vec_ );
160 if ( !isDualInitialized_ ) {
161 primal_vec_ = makePtr<PrimalScaledStdVector<Real>>(
162 makePtr<std::vector<Element>>(n),
164 isDualInitialized_ =
true;
166 for (uint i = 0; i < n; i++) {
167 (*(primal_vec_->getVector()))[i]
typename PV< Real >::size_type size_type
std::vector< Element >::size_type uint
Ptr< Vector< Real > > clone() const
Clone to make a new (uninitialized) vector.
Provides the std::vector implementation of the ROL::Vector interface that handles scalings in the inn...
DualScaledStdVector(const Ptr< std::vector< Element > > &std_vec, const Ptr< std::vector< Element > > &scaling_vec)
Ptr< const std::vector< Element > > getVector() const
const Vector< Real > & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
std::vector< Element >::size_type uint
Defines the linear algebra or vector space interface.
Provides the ROL::Vector interface for scalar values, to be used, for example, with scalar constraint...
Ptr< PrimalScaledStdVector< Real > > primal_vec_
Ptr< std::vector< Element > > scaling_vec_
PrimalScaledStdVector(const Ptr< std::vector< Element > > &std_vec, const Ptr< std::vector< Element > > &scaling_vec)
Real dot(const Vector< Real > &x) const
Compute where .
Ptr< DualScaledStdVector< Real > > dual_vec_
Provides the std::vector implementation of the ROL::Vector interface that handles scalings in the inn...
Ptr< std::vector< Element > > scaling_vec_
Ptr< Vector< Real > > clone() const
Clone to make a new (uninitialized) vector.
const Vector< Real > & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
Real dot(const Vector< Real > &x) const
Compute where .