Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Stokhos_StaticFixedStandardStorage.hpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Stokhos Package
7
// Copyright (2009) Sandia Corporation
8
//
9
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
10
// license for use of this work by or on behalf of the U.S. Government.
11
//
12
// Redistribution and use in source and binary forms, with or without
13
// modification, are permitted provided that the following conditions are
14
// met:
15
//
16
// 1. Redistributions of source code must retain the above copyright
17
// notice, this list of conditions and the following disclaimer.
18
//
19
// 2. Redistributions in binary form must reproduce the above copyright
20
// notice, this list of conditions and the following disclaimer in the
21
// documentation and/or other materials provided with the distribution.
22
//
23
// 3. Neither the name of the Corporation nor the names of the
24
// contributors may be used to endorse or promote products derived from
25
// this software without specific prior written permission.
26
//
27
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
28
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
31
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
34
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
//
39
// Questions? Contact Eric T. Phipps (etphipp@sandia.gov).
40
//
41
// ***********************************************************************
42
// @HEADER
43
44
#ifndef STOKHOS_STATIC_FIXED_STANDARD_STORAGE_HPP
45
#define STOKHOS_STATIC_FIXED_STANDARD_STORAGE_HPP
46
47
#include "Sacado_StaticArrayTraits.hpp"
48
#include <algorithm>
49
50
namespace
Stokhos
{
51
53
template
<
typename
ordinal_type,
typename
value_type,
int
Num>
54
class
StaticFixedStandardStorage
{
55
public
:
56
57
typedef
value_type
&
reference
;
58
typedef
const
value_type
&
const_reference
;
59
typedef
value_type
*
pointer
;
60
typedef
const
value_type
*
const_pointer
;
61
typedef
Sacado::ss_array<value_type>
ss
;
62
64
template
<
typename
ord_t,
typename
val_t>
65
struct
apply
{
66
typedef
StaticFixedStandardStorage<ord_t,val_t,Num>
type
;
67
};
68
70
StaticFixedStandardStorage
(
const
ordinal_type
& sz,
71
const
value_type
& x =
value_type
(0.0)) {
72
std::fill(
coeff_
,
coeff_
+Num, x);
73
}
74
76
StaticFixedStandardStorage
(
const
StaticFixedStandardStorage
& s) {
77
ss::copy(s.
coeff_
,
coeff_
, Num);
78
}
79
81
~StaticFixedStandardStorage
() {}
82
84
StaticFixedStandardStorage
&
operator=
(
const
StaticFixedStandardStorage
& s) {
85
ss::copy(s.
coeff_
,
coeff_
, Num);
86
return
*
this
;
87
}
88
90
void
init
(
const_reference
v) {
91
std::fill(
coeff_
,
coeff_
+Num, v);
92
}
93
95
void
init
(
const_pointer
v,
const
ordinal_type
& sz_ = 0) {
96
if
(sz_ == 0)
97
ss::copy(v,
coeff_
, Num);
98
else
99
ss::copy(v,
coeff_
, sz_);
100
}
101
103
void
load
(
pointer
v) {
104
ss::copy(
coeff_
, v, Num);
105
}
106
108
void
resize
(
const
ordinal_type
& sz) {}
109
111
static
ordinal_type
size
() {
return
Num; }
112
114
const_reference
operator[]
(
const
ordinal_type
& i)
const
{
115
return
coeff_
[i];
116
}
117
119
reference
operator[]
(
const
ordinal_type
& i) {
return
coeff_
[i]; }
120
122
const_pointer
coeff
()
const
{
return
coeff_
; }
123
125
pointer
coeff
() {
return
coeff_
; }
126
127
private
:
128
130
value_type
coeff_
[Num];
131
132
};
133
134
}
135
136
#endif
// STOKHOS_STANDARD_STORAGE_HPP
Stokhos::value_type
Stokhos::StaticFixedStandardStorage::resize
void resize(const ordinal_type &sz)
Resize to new size (values are preserved).
Definition
Stokhos_StaticFixedStandardStorage.hpp:108
Stokhos::StaticFixedStandardStorage::ss
Sacado::ss_array< value_type > ss
Definition
Stokhos_StaticFixedStandardStorage.hpp:61
Stokhos::StaticFixedStandardStorage::coeff
const_pointer coeff() const
Get coefficients.
Definition
Stokhos_StaticFixedStandardStorage.hpp:122
Stokhos::StaticFixedStandardStorage::reference
value_type & reference
Definition
Stokhos_StaticFixedStandardStorage.hpp:57
Stokhos::StaticFixedStandardStorage::size
static ordinal_type size()
Return size.
Definition
Stokhos_StaticFixedStandardStorage.hpp:111
Stokhos::StaticFixedStandardStorage::const_reference
const value_type & const_reference
Definition
Stokhos_StaticFixedStandardStorage.hpp:58
Stokhos::StaticFixedStandardStorage::operator=
StaticFixedStandardStorage & operator=(const StaticFixedStandardStorage &s)
Assignment operator.
Definition
Stokhos_StaticFixedStandardStorage.hpp:84
Stokhos::StaticFixedStandardStorage::load
void load(pointer v)
Load values to an array of values.
Definition
Stokhos_StaticFixedStandardStorage.hpp:103
Stokhos::StaticFixedStandardStorage::const_pointer
const value_type * const_pointer
Definition
Stokhos_StaticFixedStandardStorage.hpp:60
Stokhos::StaticFixedStandardStorage::coeff
pointer coeff()
Get coefficients.
Definition
Stokhos_StaticFixedStandardStorage.hpp:125
Stokhos::StaticFixedStandardStorage::~StaticFixedStandardStorage
~StaticFixedStandardStorage()
Destructor.
Definition
Stokhos_StaticFixedStandardStorage.hpp:81
Stokhos::StaticFixedStandardStorage::init
void init(const_pointer v, const ordinal_type &sz_=0)
Initialize values to an array of values.
Definition
Stokhos_StaticFixedStandardStorage.hpp:95
Stokhos::StaticFixedStandardStorage::pointer
value_type * pointer
Definition
Stokhos_StaticFixedStandardStorage.hpp:59
Stokhos::StaticFixedStandardStorage::init
void init(const_reference v)
Initialize values to a constant value.
Definition
Stokhos_StaticFixedStandardStorage.hpp:90
Stokhos::StaticFixedStandardStorage::StaticFixedStandardStorage
StaticFixedStandardStorage(const StaticFixedStandardStorage &s)
Copy constructor.
Definition
Stokhos_StaticFixedStandardStorage.hpp:76
Stokhos::StaticFixedStandardStorage::operator[]
const_reference operator[](const ordinal_type &i) const
Coefficient access (avoid if possible).
Definition
Stokhos_StaticFixedStandardStorage.hpp:114
Stokhos::StaticFixedStandardStorage::StaticFixedStandardStorage
StaticFixedStandardStorage(const ordinal_type &sz, const value_type &x=value_type(0.0))
Constructor.
Definition
Stokhos_StaticFixedStandardStorage.hpp:70
Stokhos::StaticFixedStandardStorage< ord_t, val_t, Num >::coeff_
val_t coeff_[Num]
Definition
Stokhos_StaticFixedStandardStorage.hpp:130
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Stokhos::StaticFixedStandardStorage::apply
Turn StaticFixedStandardStorage into a meta-function class usable with mpl::apply.
Definition
Stokhos_StaticFixedStandardStorage.hpp:65
Stokhos::StaticFixedStandardStorage::apply::type
StaticFixedStandardStorage< ord_t, val_t, Num > type
Definition
Stokhos_StaticFixedStandardStorage.hpp:66
Generated by
1.17.0