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>
70 typedef typename std::vector<Element>::size_type
uint;
75 mutable Teuchos::RCP<DualScaledStdVector<Real> >
dual_vec_;
80 const Teuchos::RCP<std::vector<Element> > & scaling_vec) :
81 StdVector<Real>(std_vec), scaling_vec_(scaling_vec) {}
85 const std::vector<Element>& xval = *ex.
getVector();
90 val += yval[i]*xval[i]*(*scaling_vec_)[i];
95 Teuchos::RCP<Vector<Real> >
clone()
const {
98 Teuchos::rcp(
new std::vector<Element>(dimension)), scaling_vec_ ) );
104 std::vector<Element> tmp_vec(yval);
106 tmp_vec[i] *= (*scaling_vec_)[i];
109 Teuchos::rcp(
new std::vector<Element>(tmp_vec)), scaling_vec_ ) );
117 template <
class Real,
class Element>
120 typedef typename std::vector<Element>::size_type
uint;
130 const Teuchos::RCP<std::vector<Element> > & scaling_vec) :
131 StdVector<Real>(std_vec), scaling_vec_(scaling_vec) {}
135 const std::vector<Element>& xval = *ex.
getVector();
140 val += yval[i]*xval[i]/(*scaling_vec_)[i];
145 Teuchos::RCP<Vector<Real> >
clone()
const {
148 Teuchos::rcp(
new std::vector<Element>(dimension)), scaling_vec_ ) );
154 std::vector<Element> tmp_vec(yval);
156 tmp_vec[i] /= (*scaling_vec_)[i];
159 Teuchos::rcp(
new std::vector<Element>(tmp_vec)), scaling_vec_ ) );
Teuchos::RCP< Vector< Real > > clone() const
Clone to make a new (uninitialized) vector.
Teuchos::RCP< const std::vector< Element > > getVector() const
std::vector< Element >::size_type uint
Teuchos::RCP< Vector< Real > > clone() const
Clone to make a new (uninitialized) vector.
Teuchos::RCP< PrimalScaledStdVector< Real > > primal_vec_
Provides the std::vector implementation of the ROL::Vector interface that handles scalings in the inn...
PrimalScaledStdVector(const Teuchos::RCP< std::vector< Element > > &std_vec, const Teuchos::RCP< std::vector< Element > > &scaling_vec)
std::vector< Element >::size_type uint
Defines the linear algebra or vector space interface.
Real dot(const Vector< Real > &x) const
Compute where .
Real dot(const Vector< Real > &x) const
Compute where .
const ROL::Vector< Real > & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
Provides the std::vector implementation of the ROL::Vector interface.
const ROL::Vector< Real > & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
Teuchos::RCP< DualScaledStdVector< Real > > dual_vec_
DualScaledStdVector(const Teuchos::RCP< std::vector< Element > > &std_vec, const Teuchos::RCP< std::vector< Element > > &scaling_vec)
Provides the std::vector implementation of the ROL::Vector interface that handles scalings in the inn...
Teuchos::RCP< std::vector< Element > > scaling_vec_
Teuchos::RCP< std::vector< Element > > scaling_vec_