ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
vector
ROL_WrappedVector.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Rapid Optimization Library (ROL) Package
4
//
5
// Copyright 2014 NTESS and the ROL contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#pragma once
11
#ifndef ROL_WRAPPEDVECTOR_HPP
12
#define ROL_WRAPPEDVECTOR_HPP
13
14
15
namespace
ROL
{
16
30
31
template
<
typename
Real>
32
class
PrimalScaledVector
{
33
34
using
V
=
Vector<Real>
;
35
using
VPrim
=
PrimalScaledVector<Real>
;
36
using
VDual
=
DualScaledVector<Real>
;
37
38
private
:
39
40
mutable
Ptr<V>
vec_
;
41
42
43
public
:
44
45
WrappedVector
(
const
Ptr<V>& vec ) :
vec_
(vec) {}
46
47
virtual
~WrappedVector
() {}
48
49
virtual
void
plus
(
const
V
& x )
override
{
vec_
->plus(x); }
50
virtual
void
scale
(
const
Real alpha )
override
{
vec_
->scale(alpha); }
51
52
virtual
Real
dot
(
const
V
& x )
const override
{
return
vec_
->dot(x); }
53
54
virtual
Real
norm
()
const override
{
return
std::sqrt( this->
dot
(*
this
) ); }
55
56
virtual
Ptr<V>
clone
()
const override
{
57
return
makePtr<WrappedVector>(
vec_
->clone() );
58
}
59
60
virtual
void
axpy
(
const
Real alpha,
const
V
& x )
override
{
61
vec_
->axpy( alpha, x );
62
}
63
64
virtual
Ptr<V>
basis
(
const
int
i )
const override
{
65
return
makePtr<VPrim>(
vec_
->basis(i) );
66
}
67
68
virtual
int
dimension
()
const override
{
return
vec_
->dimension(); }
69
70
virtual
void
set
(
const
V
& x )
override
{
vec_
->set(x); }
71
72
virtual
void
const
V
&
dual
()
const override
{
return
vec_
->dual(); }
73
74
virtual
Real
apply
(
const
V
& x )
const override
{
return
vec_
->apply(x); }
75
76
virtual
void
applyUnary
(
const
Elementwise::UnaryFunction<Real>& f )
override
{
77
vec_
->applyUnary(f);
78
}
79
80
virtual
void
applyBinary
(
const
Elementwise::BinaryFunction<Real>& f,
81
const
V
& x )
override
{
82
vec_
->applyBinary(f,x);
83
}
84
85
virtual
Real
reduce
(
const
Elementwise::ReductionOp<Real>& r )
const override
{
86
return
vec_
->reduce(r);
87
}
88
89
virtual
void
setScalar
(
const
Real C )
override
{
vec_
->setScalar(C); }
90
91
virtual
void
randomize
(
const
Real l=0.0,
const
Real u=1.0 )
override
{
92
vec_
->randomize(l,u);
93
}
94
95
virtual
void
print
( std::ostream& os )
override
{
vec_
->print(os); }
96
97
const
Ptr<V>&
getVector
() {
return
vec_
; }
98
const
Ptr<const V>&
getVector
()
const
{
return
vec_
; }
99
100
virtual
void
setVector
(
const
Ptr<const V>& vec )
const
{
vec_
= vec; }
101
102
};
// class PrimalScaledVector
103
104
105
106
107
}
// namespace ROL
108
109
110
#endif
ROL::DualScaledVector
Provides the implementation of the ROL::Vector interface that handles scalings in the inner product....
Definition
ROL_ScaledVector.hpp:99
ROL::PrimalScaledVector::dimension
virtual int dimension() const override
Definition
ROL_WrappedVector.hpp:68
ROL::PrimalScaledVector::apply
virtual Real apply(const V &x) const override
Definition
ROL_WrappedVector.hpp:74
ROL::PrimalScaledVector::dot
virtual Real dot(const V &x) const override
Definition
ROL_WrappedVector.hpp:52
ROL::PrimalScaledVector::applyUnary
virtual void applyUnary(const Elementwise::UnaryFunction< Real > &f) override
Definition
ROL_WrappedVector.hpp:76
ROL::PrimalScaledVector::randomize
virtual void randomize(const Real l=0.0, const Real u=1.0) override
Definition
ROL_WrappedVector.hpp:91
ROL::PrimalScaledVector::VDual
DualScaledVector< Real > VDual
Definition
ROL_ScaledVector.hpp:42
ROL::PrimalScaledVector::scale
virtual void scale(const Real alpha) override
Definition
ROL_WrappedVector.hpp:50
ROL::PrimalScaledVector::clone
virtual Ptr< V > clone() const override
Definition
ROL_WrappedVector.hpp:56
ROL::PrimalScaledVector::getVector
const Ptr< V > & getVector()
Definition
ROL_WrappedVector.hpp:97
ROL::PrimalScaledVector::~WrappedVector
virtual ~WrappedVector()
Definition
ROL_WrappedVector.hpp:47
ROL::PrimalScaledVector::reduce
virtual Real reduce(const Elementwise::ReductionOp< Real > &r) const override
Definition
ROL_WrappedVector.hpp:85
ROL::PrimalScaledVector::axpy
virtual void axpy(const Real alpha, const V &x) override
Definition
ROL_WrappedVector.hpp:60
ROL::PrimalScaledVector::set
virtual void set(const V &x) override
Definition
ROL_WrappedVector.hpp:70
ROL::PrimalScaledVector::getVector
const Ptr< const V > & getVector() const
Definition
ROL_WrappedVector.hpp:98
ROL::PrimalScaledVector::print
virtual void print(std::ostream &os) override
Definition
ROL_WrappedVector.hpp:95
ROL::PrimalScaledVector::V
Vector< Real > V
Definition
ROL_ScaledVector.hpp:40
ROL::PrimalScaledVector::setScalar
virtual void setScalar(const Real C) override
Definition
ROL_WrappedVector.hpp:89
ROL::PrimalScaledVector::WrappedVector
WrappedVector(const Ptr< V > &vec)
Definition
ROL_WrappedVector.hpp:45
ROL::PrimalScaledVector::setVector
virtual void setVector(const Ptr< const V > &vec) const
Definition
ROL_WrappedVector.hpp:100
ROL::PrimalScaledVector::dual
virtual void const V & dual() const override
Definition
ROL_WrappedVector.hpp:72
ROL::PrimalScaledVector::norm
virtual Real norm() const override
Definition
ROL_WrappedVector.hpp:54
ROL::PrimalScaledVector::basis
virtual Ptr< V > basis(const int i) const override
Definition
ROL_WrappedVector.hpp:64
ROL::PrimalScaledVector::vec_
Ptr< V > vec_
Definition
ROL_WrappedVector.hpp:40
ROL::PrimalScaledVector::PrimalScaledVector
PrimalScaledVector(const Ptr< V > &vec, const Ptr< V > &scaling_vec)
Definition
ROL_ScaledVector.hpp:62
ROL::PrimalScaledVector::VPrim
PrimalScaledVector< Real > VPrim
Definition
ROL_ScaledVector.hpp:41
ROL::PrimalScaledVector::applyBinary
virtual void applyBinary(const Elementwise::BinaryFunction< Real > &f, const V &x) override
Definition
ROL_WrappedVector.hpp:80
ROL::PrimalScaledVector::plus
virtual void plus(const V &x) override
Definition
ROL_WrappedVector.hpp:49
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL
Definition
ROL_ElementwiseVector.hpp:27
Generated by
1.17.0