Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Stokhos_StandardStorage.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_STANDARD_STORAGE_HPP
45
#define STOKHOS_STANDARD_STORAGE_HPP
46
47
#include "Teuchos_Array.hpp"
48
#include <algorithm>
49
50
namespace
Stokhos
{
51
52
template
<
typename
ordinal_type,
typename
value_type>
53
class
StandardStorage
{
54
public
:
55
56
typedef
value_type
&
reference
;
57
typedef
const
value_type
&
const_reference
;
58
typedef
value_type
*
pointer
;
59
typedef
const
value_type
*
const_pointer
;
60
62
template
<
typename
ord_t,
typename
val_t>
63
struct
apply
{
64
typedef
StandardStorage<ord_t,val_t>
type
;
65
};
66
68
StandardStorage
(
const
ordinal_type
& sz,
69
const
value_type
& x =
value_type
(0.0)) :
70
coeff_
(sz, x) {}
71
73
~StandardStorage
() {}
74
76
void
init
(
const_reference
v) {
77
std::fill(
coeff_
.begin(),
coeff_
.end(), v);
78
}
79
81
void
init
(
const_pointer
v,
const
ordinal_type
& sz = 0) {
82
if
(sz == 0)
83
std::copy(v, v+
coeff_
.size(),
coeff_
.begin());
84
else
85
std::copy(v, v+sz,
coeff_
.begin());
86
}
87
89
void
load
(
pointer
v) {
90
std::copy(
coeff_
.begin(),
coeff_
.end(), v);
91
}
92
94
void
resize
(
const
ordinal_type
& sz) {
coeff_
.resize(sz); }
95
97
ordinal_type
size
()
const
{
return
coeff_
.size(); }
98
100
const_reference
operator[]
(
const
ordinal_type
& i)
const
{
101
return
coeff_
[i];
102
}
103
105
reference
operator[]
(
const
ordinal_type
& i) {
106
return
coeff_
[i];
107
}
108
110
const_pointer
coeff
()
const
{
return
coeff_
.getRawPtr(); }
111
113
pointer
coeff
() {
return
coeff_
.getRawPtr(); }
114
115
private
:
116
118
Teuchos::Array<value_type>
coeff_
;
119
120
};
121
122
}
123
124
#endif
// STOKHOS_STANDARD_STORAGE_HPP
Stokhos::value_type
Stokhos::StandardStorage::~StandardStorage
~StandardStorage()
Destructor.
Definition
Stokhos_StandardStorage.hpp:73
Stokhos::StandardStorage::coeff
pointer coeff()
Get coefficients.
Definition
Stokhos_StandardStorage.hpp:113
Stokhos::StandardStorage::StandardStorage
StandardStorage(const ordinal_type &sz, const value_type &x=value_type(0.0))
Constructor.
Definition
Stokhos_StandardStorage.hpp:68
Stokhos::StandardStorage::const_pointer
const value_type * const_pointer
Definition
Stokhos_StandardStorage.hpp:59
Stokhos::StandardStorage::load
void load(pointer v)
Load values to an array of values.
Definition
Stokhos_StandardStorage.hpp:89
Stokhos::StandardStorage::pointer
value_type * pointer
Definition
Stokhos_StandardStorage.hpp:58
Stokhos::StandardStorage::init
void init(const_pointer v, const ordinal_type &sz=0)
Initialize values to an array of values.
Definition
Stokhos_StandardStorage.hpp:81
Stokhos::StandardStorage::const_reference
const value_type & const_reference
Definition
Stokhos_StandardStorage.hpp:57
Stokhos::StandardStorage::size
ordinal_type size() const
Return size.
Definition
Stokhos_StandardStorage.hpp:97
Stokhos::StandardStorage< ord_t, val_t >::coeff_
Teuchos::Array< val_t > coeff_
Definition
Stokhos_StandardStorage.hpp:118
Stokhos::StandardStorage::coeff
const_pointer coeff() const
Get coefficients.
Definition
Stokhos_StandardStorage.hpp:110
Stokhos::StandardStorage::init
void init(const_reference v)
Initialize values to a constant value.
Definition
Stokhos_StandardStorage.hpp:76
Stokhos::StandardStorage::resize
void resize(const ordinal_type &sz)
Resize to new size (values are preserved).
Definition
Stokhos_StandardStorage.hpp:94
Stokhos::StandardStorage::reference
value_type & reference
Definition
Stokhos_StandardStorage.hpp:56
Stokhos::StandardStorage::operator[]
const_reference operator[](const ordinal_type &i) const
Coefficient access (avoid if possible).
Definition
Stokhos_StandardStorage.hpp:100
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Stokhos::StandardStorage::apply
Turn StandardStorage into a meta-function class usable with mpl::apply.
Definition
Stokhos_StandardStorage.hpp:63
Stokhos::StandardStorage::apply::type
StandardStorage< ord_t, val_t > type
Definition
Stokhos_StandardStorage.hpp:64
Generated by
1.17.0