Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
src
Stokhos_Dense3TensorImp.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
template
<
typename
ordinal_type,
typename
value_type>
45
Stokhos::Dense3Tensor<ordinal_type, value_type>::
46
Dense3Tensor
(
ordinal_type
sz) :
47
l(sz),
48
Cijk_values(l*l*l)
49
{
50
}
51
52
template
<
typename
ordinal_type,
typename
value_type>
53
Stokhos::Dense3Tensor<ordinal_type, value_type>::
54
~Dense3Tensor
()
55
{
56
}
57
58
template
<
typename
ordinal_type,
typename
value_type>
59
ordinal_type
60
Stokhos::Dense3Tensor<ordinal_type, value_type>::
61
size
()
const
62
{
63
return
l;
64
}
65
66
template
<
typename
ordinal_type,
typename
value_type>
67
const
value_type
&
68
Stokhos::Dense3Tensor<ordinal_type, value_type>::
69
operator()
(
ordinal_type
i,
ordinal_type
j
,
ordinal_type
k)
const
70
{
71
return
Cijk_values[ l*(l*k +
j
) + i ];
72
}
73
74
template
<
typename
ordinal_type,
typename
value_type>
75
value_type
&
76
Stokhos::Dense3Tensor<ordinal_type, value_type>::
77
operator()
(
ordinal_type
i,
ordinal_type
j
,
ordinal_type
k)
78
{
79
return
Cijk_values[ l*(l*k +
j
) + i ];
80
}
81
82
template
<
typename
ordinal_type,
typename
value_type>
83
ordinal_type
84
Stokhos::Dense3Tensor<ordinal_type, value_type>::
85
num_values
(
ordinal_type
k)
const
86
{
87
return
l*l;
88
}
89
90
template
<
typename
ordinal_type,
typename
value_type>
91
void
92
Stokhos::Dense3Tensor<ordinal_type, value_type>::
93
value
(
ordinal_type
k,
ordinal_type
ll,
94
ordinal_type
& i,
ordinal_type
&
j
,
value_type
& c)
const
95
{
96
j
= ll/l;
97
i = ll-
j
*l;
98
c = triple_value(i,
j
,k);
99
}
100
101
template
<
typename
ordinal_type,
typename
value_type>
102
void
103
Stokhos::Dense3Tensor<ordinal_type, value_type>::
104
print
(std::ostream& os)
const
105
{
106
for
(
ordinal_type
i=0; i<l; i++)
107
for
(
ordinal_type
j
=0;
j
<l;
j
++)
108
for
(
ordinal_type
k=0; k<l; k++)
109
os <<
"i = "
<< i <<
", j = "
<<
j
<<
", k = "
<< k <<
", Dijk = "
110
<<
operator
()(i,
j
,k) << std::endl;
111
}
Stokhos::Dense3Tensor::operator()
const value_type & operator()(ordinal_type i, ordinal_type j, ordinal_type k) const
Get value (i,j,k)
Definition:
Stokhos_Dense3TensorImp.hpp:69
Stokhos::Dense3Tensor::print
void print(std::ostream &os) const
Print tensor.
Definition:
Stokhos_Dense3TensorImp.hpp:104
TotalOrderBasisUnitTest::value_type
double value_type
Definition:
Stokhos_LexicographicTreeBasisUnitTest.cpp:70
Stokhos::Dense3Tensor::num_values
ordinal_type num_values(ordinal_type k) const
Return number of non-zero's in Cijk for a given k.
Definition:
Stokhos_Dense3TensorImp.hpp:85
Stokhos::Dense3Tensor::~Dense3Tensor
~Dense3Tensor()
Destructor.
Definition:
Stokhos_Dense3TensorImp.hpp:54
j
expr expr expr expr j
Definition:
Sacado_Fad_Ops_MP_Vector.hpp:132
Stokhos::Dense3Tensor::size
ordinal_type size() const
Return size.
Definition:
Stokhos_Dense3TensorImp.hpp:61
Stokhos::Dense3Tensor::value
void value(ordinal_type k, ordinal_type l, ordinal_type &i, ordinal_type &j, value_type &c) const
Get value (i,j,k) using sparse access.
Definition:
Stokhos_Dense3TensorImp.hpp:93
Stokhos::Dense3Tensor::Dense3Tensor
Dense3Tensor(ordinal_type sz)
Constructor.
Definition:
Stokhos_Dense3TensorImp.hpp:46
TotalOrderBasisUnitTest::ordinal_type
int ordinal_type
Definition:
Stokhos_LexicographicTreeBasisUnitTest.cpp:69
Generated by
1.8.14