Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Sacado_Fad_Vector.hpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Sacado Package
7
// Copyright (2006) Sandia Corporation
8
//
9
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
10
// the U.S. Government retains certain rights in this software.
11
//
12
// This library is free software; you can redistribute it and/or modify
13
// it under the terms of the GNU Lesser General Public License as
14
// published by the Free Software Foundation; either version 2.1 of the
15
// License, or (at your option) any later version.
16
//
17
// This library is distributed in the hope that it will be useful, but
18
// WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
// Lesser General Public License for more details.
21
//
22
// You should have received a copy of the GNU Lesser General Public
23
// License along with this library; if not, write to the Free Software
24
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25
// USA
26
// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
27
// (etphipp@sandia.gov).
28
//
29
// ***********************************************************************
30
// @HEADER
31
32
#ifndef SACADO_FAD_VECTOR_HPP
33
#define SACADO_FAD_VECTOR_HPP
34
35
#include <vector>
36
#include "
Sacado_Fad_DVFad.hpp
"
37
38
namespace
Sacado
{
39
40
namespace
Fad
{
41
42
enum
VectorDerivOrientation
{
43
Row
,
44
Column
45
};
46
54
template
<
typename
OrdinalType,
typename
FadType >
55
class
Vector
{
56
public
:
57
59
typedef
typename
Sacado::ValueType<FadType>::type
ValueType
;
60
62
Vector
(OrdinalType vec_size, OrdinalType deriv_sz,
63
VectorDerivOrientation
orient =
Row
) :
64
deriv_size_
(deriv_sz),
vec_
(vec_size) {
65
for
(OrdinalType i=0; i<vec_size; i++)
66
vec_
[i] =
FadType
(
deriv_size_
,
ValueType
(0.0));
67
}
68
70
Vector
(
const
Vector
& fv) :
deriv_size_
(fv.
deriv_size_
),
vec_
(fv.
vec_
) {}
71
73
~Vector
() {}
74
76
Vector
&
operator=
(
const
Vector
& fv) {
77
deriv_size_
= fv.
deriv_size_
;
78
vec_
= fv.
vec_
;
79
return
*
this
;
80
}
81
83
OrdinalType
size
()
const
{
return
vec_
.size(); }
84
86
OrdinalType
deriv_size
()
const
{
return
deriv_size_
; }
87
89
OrdinalType
deriv_stride
()
const
{
return
1; }
90
92
VectorDerivOrientation
deriv_orientation
()
const
{
return
Column
; }
93
95
FadType
&
operator[]
(OrdinalType i) {
return
vec_
[i]; }
96
98
const
FadType
&
operator[]
(OrdinalType i)
const
{
return
vec_
[i]; }
99
100
protected
:
101
103
OrdinalType
deriv_size_
;
104
106
std::vector<FadType>
vec_
;
107
108
};
// class Vector
109
116
template
<
typename
OrdinalType,
typename
ValueType>
117
class
Vector
< OrdinalType,
Sacado
::
Fad::DVFad
<ValueType> > {
118
public
:
119
121
typedef
Sacado::Fad::DVFad<ValueType>
FadType
;
122
124
Vector
(OrdinalType vec_size, OrdinalType
deriv_size
,
125
VectorDerivOrientation
orient =
Row
);
126
128
Vector
(
const
Vector
& fv);
129
131
~Vector
();
132
134
Vector
&
operator=
(
const
Vector
& fv);
135
137
OrdinalType
size
()
const
{
return
vec_
.size(); }
138
140
OrdinalType
deriv_size
()
const
{
return
deriv_size_
; }
141
143
OrdinalType
deriv_stride
()
const
{
return
stride_
; }
144
146
VectorDerivOrientation
deriv_orientation
()
const
{
return
orient_
; }
147
149
FadType
&
operator[]
(OrdinalType i) {
return
vec_
[i]; }
150
152
const
FadType
&
operator[]
(OrdinalType i)
const
{
return
vec_
[i]; }
153
155
ValueType
* vals();
156
158
const
ValueType
* vals()
const
;
159
161
ValueType
*
dx
();
162
164
const
ValueType
*
dx
()
const
;
165
166
protected
:
167
169
OrdinalType
deriv_size_
;
170
172
VectorDerivOrientation
orient_
;
173
175
OrdinalType
stride_
;
176
178
std::vector<FadType>
vec_
;
179
180
};
// class Vector
181
182
}
// namespace Fad
183
184
}
// namespace Sacado
185
186
#include "
Sacado_Fad_VectorImp.hpp
"
187
188
#endif
// SACADO_FAD_VECTOR_HPP
Sacado_Fad_DVFad.hpp
dx
expr expr dx(i)
Sacado_Fad_VectorImp.hpp
FadType
Sacado::Fad::DFad< double > FadType
Definition
blas_example.cpp:49
Sacado::Fad::DVFad
Forward-mode AD class using dynamic memory allocation and expression templates.
Definition
Sacado_Fad_DVFad.hpp:68
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::deriv_size_
OrdinalType deriv_size_
Size of derivative array.
Definition
Sacado_Fad_Vector.hpp:169
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::Vector
Vector(OrdinalType vec_size, OrdinalType deriv_size, VectorDerivOrientation orient=Row)
Constructor.
Definition
Sacado_Fad_VectorImp.hpp:36
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::FadType
Sacado::Fad::DVFad< ValueType > FadType
Synonym for Fad type.
Definition
Sacado_Fad_Vector.hpp:121
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::operator[]
const FadType & operator[](OrdinalType i) const
Array access.
Definition
Sacado_Fad_Vector.hpp:152
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::stride_
OrdinalType stride_
Derivative array stride.
Definition
Sacado_Fad_Vector.hpp:175
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::Vector
Vector(const Vector &fv)
Copy constructor.
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::deriv_size
OrdinalType deriv_size() const
Derivative size.
Definition
Sacado_Fad_Vector.hpp:140
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::deriv_orientation
VectorDerivOrientation deriv_orientation() const
Derivative array orientation.
Definition
Sacado_Fad_Vector.hpp:146
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::orient_
VectorDerivOrientation orient_
Derivative array orientation.
Definition
Sacado_Fad_Vector.hpp:172
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::deriv_stride
OrdinalType deriv_stride() const
Derivative array stride.
Definition
Sacado_Fad_Vector.hpp:143
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::size
OrdinalType size() const
Vector size.
Definition
Sacado_Fad_Vector.hpp:137
Sacado::Fad::Vector< OrdinalType, Sacado::Fad::DVFad< ValueType > >::vec_
std::vector< FadType > vec_
Vector of Fad's.
Definition
Sacado_Fad_Vector.hpp:178
Sacado::Fad::Vector::~Vector
~Vector()
Destructor.
Definition
Sacado_Fad_Vector.hpp:73
Sacado::Fad::Vector::deriv_orientation
VectorDerivOrientation deriv_orientation() const
Derivative array orientation.
Definition
Sacado_Fad_Vector.hpp:92
Sacado::Fad::Vector::deriv_stride
OrdinalType deriv_stride() const
Derivative array stride.
Definition
Sacado_Fad_Vector.hpp:89
Sacado::Fad::Vector::operator[]
const FadType & operator[](OrdinalType i) const
Array access.
Definition
Sacado_Fad_Vector.hpp:98
Sacado::Fad::Vector< unsigned int, FadType >::vec_
std::vector< FadType > vec_
Definition
Sacado_Fad_Vector.hpp:106
Sacado::Fad::Vector::Vector
Vector(OrdinalType vec_size, OrdinalType deriv_sz, VectorDerivOrientation orient=Row)
Constructor.
Definition
Sacado_Fad_Vector.hpp:62
Sacado::Fad::Vector::operator[]
FadType & operator[](OrdinalType i)
Array access.
Definition
Sacado_Fad_Vector.hpp:95
Sacado::Fad::Vector::operator=
Vector & operator=(const Vector &fv)
Assignment.
Definition
Sacado_Fad_Vector.hpp:76
Sacado::Fad::Vector::ValueType
Sacado::ValueType< FadType >::type ValueType
Typename of values.
Definition
Sacado_Fad_Vector.hpp:59
Sacado::Fad::Vector< unsigned int, FadType >::deriv_size_
unsigned int deriv_size_
Definition
Sacado_Fad_Vector.hpp:103
Sacado::Fad::Vector::size
OrdinalType size() const
Vector size.
Definition
Sacado_Fad_Vector.hpp:83
Sacado::Fad::Vector::Vector
Vector(const Vector &fv)
Copy constructor.
Definition
Sacado_Fad_Vector.hpp:70
Sacado::Fad::Vector::deriv_size
OrdinalType deriv_size() const
Derivative size.
Definition
Sacado_Fad_Vector.hpp:86
Sacado::Fad
Namespace for forward-mode AD classes.
Definition
Sacado_Fad_Exp_DFad.hpp:38
Sacado::Fad::VectorDerivOrientation
VectorDerivOrientation
Definition
Sacado_Fad_Vector.hpp:42
Sacado::Fad::Row
@ Row
Definition
Sacado_Fad_Vector.hpp:43
Sacado::Fad::Column
@ Column
Derivatives are stored row-wise (strided).
Definition
Sacado_Fad_Vector.hpp:44
Sacado
Definition
Sacado_mpl_apply.hpp:39
Sacado::ValueType
Base template specification for ValueType.
Definition
Sacado_Traits.hpp:320
Sacado::ValueType::type
T type
Definition
Sacado_Traits.hpp:321
Generated by
1.17.0