Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Sacado_Fad_LAPACK.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_LAPACK_HPP
33
#define SACADO_FAD_LAPACK_HPP
34
35
#include "Teuchos_LAPACK.hpp"
36
#include "
Sacado_No_Kokkos.hpp
"
37
#include "
Sacado_CacheFad_DFad.hpp
"
38
#include "
Sacado_dummy_arg.hpp
"
39
40
namespace
Sacado
{
41
42
namespace
Fad
{
43
44
template
<
typename
OrdinalType,
typename
FadType>
45
class
ArrayTraits
{
46
47
typedef
typename
Sacado::ValueType<FadType>::type
ValueType
;
48
typedef
typename
Sacado::ScalarType<FadType>::type
scalar_type
;
49
typedef
typename
Sacado::dummy<ValueType,scalar_type>::type
ScalarType
;
50
51
public
:
52
53
ArrayTraits
(
bool
use_dynamic
=
true
,
54
OrdinalType
workspace_size
= 0);
55
56
ArrayTraits
(
const
ArrayTraits
&
a
);
57
58
~ArrayTraits
();
59
60
void
unpack
()
const
;
61
62
void
pack
()
const
;
63
64
void
free
()
const
;
65
66
ValueType
*
allocate_array
(OrdinalType size)
const
;
67
68
void
free_array
(
const
ValueType
* ptr, OrdinalType size)
const
;
69
70
bool
is_array_contiguous
(
const
FadType
*
a
, OrdinalType n,
71
OrdinalType n_dot)
const
;
72
73
protected
:
74
76
bool
use_dynamic
;
77
79
OrdinalType
workspace_size
;
80
82
mutable
ValueType
*
workspace
;
83
85
mutable
ValueType
*
workspace_pointer
;
86
87
};
88
89
template
<
typename
T>
struct
ArrayValueType
{
typedef
T
type
; };
90
92
template
<
typename
OrdinalType,
typename
FadType>
93
class
Fad_LAPACK
{
94
95
typedef
typename
Teuchos::ScalarTraits<FadType>::magnitudeType
MagnitudeType
;
96
typedef
typename
Sacado::ValueType<FadType>::type
ValueType
;
97
typedef
typename
Sacado::ScalarType<FadType>::type
scalar_type
;
98
typedef
typename
Sacado::dummy<ValueType,scalar_type>::type
ScalarType
;
99
typedef
Teuchos::LAPACK<OrdinalType,FadType>
LAPACKType
;
100
101
public
:
103
104
106
Fad_LAPACK
(
bool
use_default_impl
=
true
,
107
bool
use_dynamic =
true
,
108
OrdinalType static_workspace_size = 0);
109
111
112
Fad_LAPACK
(
const
Fad_LAPACK
& x);
113
115
virtual
~Fad_LAPACK
();
116
118
120
void
GESV
(
const
OrdinalType n,
const
OrdinalType nrhs,
FadType
*
A
,
const
OrdinalType lda,
121
OrdinalType* IPIV,
FadType
*
B
,
const
OrdinalType ldb, OrdinalType* info)
const
;
122
123
protected
:
124
126
ArrayTraits<OrdinalType,FadType>
arrayTraits
;
127
129
Teuchos::LAPACK<OrdinalType, ValueType>
lapack
;
130
132
bool
use_default_impl
;
133
134
protected
:
135
137
void
Fad_GESV
()
const
;
138
139
};
// class FadLAPACK
140
141
}
// namespace Fad
142
143
}
// namespace Sacado
144
145
namespace
Teuchos
{
146
// Specialization of Teuchos::LAPACK for Sacado::Fad::DFad
147
template
<
typename
OrdinalType,
typename
ScalarType>
148
class
LAPACK< OrdinalType,
Sacado
::Fad::DFad<ScalarType> > :
149
public
Sacado::Fad::Fad_LAPACK
< OrdinalType, Sacado::Fad::DFad<ScalarType> > {};
150
}
151
152
#include "
Sacado_Fad_LAPACKImp.hpp
"
153
154
#endif
// SACADO_FAD_LAPACK_HPP
Sacado_CacheFad_DFad.hpp
a
a
Definition
Sacado_CacheFad_Ops.hpp:426
Sacado_Fad_LAPACKImp.hpp
Sacado_No_Kokkos.hpp
Sacado_dummy_arg.hpp
T
#define T
Definition
Sacado_rad.hpp:573
A
#define A
Definition
Sacado_rad.hpp:572
FadType
Sacado::Fad::DFad< double > FadType
Definition
blas_example.cpp:49
Sacado::Fad::ArrayTraits
Definition
Sacado_Fad_BLAS.hpp:45
Sacado::Fad::ArrayTraits::free_array
void free_array(const ValueType *ptr, OrdinalType size) const
Sacado::Fad::ArrayTraits::workspace_size
OrdinalType workspace_size
Size of static workspace.
Definition
Sacado_Fad_BLAS.hpp:170
Sacado::Fad::ArrayTraits::ValueType
Sacado::ValueType< FadType >::type ValueType
Definition
Sacado_Fad_BLAS.hpp:47
Sacado::Fad::ArrayTraits::~ArrayTraits
~ArrayTraits()
Sacado::Fad::ArrayTraits::ScalarType
Sacado::dummy< ValueType, scalar_type >::type ScalarType
Definition
Sacado_Fad_BLAS.hpp:49
Sacado::Fad::ArrayTraits::unpack
void unpack() const
Definition
Sacado_Fad_LAPACKImp.hpp:85
Sacado::Fad::ArrayTraits::workspace
ValueType * workspace
Workspace for holding contiguous values/derivatives.
Definition
Sacado_Fad_BLAS.hpp:173
Sacado::Fad::ArrayTraits::use_dynamic
bool use_dynamic
Use dynamic memory allocation.
Definition
Sacado_Fad_BLAS.hpp:167
Sacado::Fad::ArrayTraits::ArrayTraits
ArrayTraits(const ArrayTraits &a)
Sacado::Fad::ArrayTraits::scalar_type
Sacado::ScalarType< FadType >::type scalar_type
Definition
Sacado_Fad_BLAS.hpp:48
Sacado::Fad::ArrayTraits::workspace_pointer
ValueType * workspace_pointer
Pointer to current free entry in workspace.
Definition
Sacado_Fad_BLAS.hpp:176
Sacado::Fad::ArrayTraits::is_array_contiguous
bool is_array_contiguous(const FadType *a, OrdinalType n, OrdinalType n_dot) const
Sacado::Fad::ArrayTraits::free
void free() const
Definition
Sacado_Fad_LAPACKImp.hpp:99
Sacado::Fad::ArrayTraits::allocate_array
ValueType * allocate_array(OrdinalType size) const
Sacado::Fad::ArrayTraits::ArrayTraits
ArrayTraits(bool use_dynamic=true, OrdinalType workspace_size=0)
Sacado::Fad::ArrayTraits::pack
void pack() const
Definition
Sacado_Fad_LAPACKImp.hpp:92
Sacado::Fad::Fad_LAPACK
Fad specializations for Teuchos::LAPACK wrappers.
Definition
Sacado_Fad_LAPACK.hpp:93
Sacado::Fad::Fad_LAPACK::GESV
void GESV(const OrdinalType n, const OrdinalType nrhs, FadType *A, const OrdinalType lda, OrdinalType *IPIV, FadType *B, const OrdinalType ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations.
Definition
Sacado_Fad_LAPACKImp.hpp:177
Sacado::Fad::Fad_LAPACK::Fad_LAPACK
Fad_LAPACK(bool use_default_impl=true, bool use_dynamic=true, OrdinalType static_workspace_size=0)
Default constructor.
Definition
Sacado_Fad_LAPACKImp.hpp:150
Sacado::Fad::Fad_LAPACK::Fad_GESV
void Fad_GESV() const
Implementation of GESV.
Definition
Sacado_Fad_LAPACKImp.hpp:201
Sacado::Fad::Fad_LAPACK::ScalarType
Sacado::dummy< ValueType, scalar_type >::type ScalarType
Definition
Sacado_Fad_LAPACK.hpp:98
Sacado::Fad::Fad_LAPACK::lapack
Teuchos::LAPACK< OrdinalType, ValueType > lapack
LAPACK for values.
Definition
Sacado_Fad_LAPACK.hpp:129
Sacado::Fad::Fad_LAPACK::use_default_impl
bool use_default_impl
Use custom or default implementation.
Definition
Sacado_Fad_LAPACK.hpp:132
Sacado::Fad::Fad_LAPACK::MagnitudeType
Teuchos::ScalarTraits< FadType >::magnitudeType MagnitudeType
Definition
Sacado_Fad_LAPACK.hpp:95
Sacado::Fad::Fad_LAPACK::arrayTraits
ArrayTraits< OrdinalType, FadType > arrayTraits
ArrayTraits for packing/unpacking value/derivative arrays.
Definition
Sacado_Fad_LAPACK.hpp:126
Sacado::Fad::Fad_LAPACK::LAPACKType
Teuchos::LAPACK< OrdinalType, FadType > LAPACKType
Definition
Sacado_Fad_LAPACK.hpp:99
Sacado::Fad::Fad_LAPACK::~Fad_LAPACK
virtual ~Fad_LAPACK()
Destructor.
Definition
Sacado_Fad_LAPACKImp.hpp:170
Sacado::Fad::Fad_LAPACK::scalar_type
Sacado::ScalarType< FadType >::type scalar_type
Definition
Sacado_Fad_LAPACK.hpp:97
Sacado::Fad::Fad_LAPACK::ValueType
Sacado::ValueType< FadType >::type ValueType
Definition
Sacado_Fad_LAPACK.hpp:96
Sacado::Fad
Namespace for forward-mode AD classes.
Definition
Sacado_Fad_Exp_DFad.hpp:38
Sacado
Definition
Sacado_mpl_apply.hpp:39
Teuchos
Definition
Sacado_Fad_LAPACK.hpp:145
B
Definition
ConversionTests.cpp:44
Sacado::Fad::ArrayValueType
Definition
Sacado_Fad_BLAS.hpp:180
Sacado::Fad::ArrayValueType::type
T type
Definition
Sacado_Fad_BLAS.hpp:180
Sacado::ScalarType::type
T type
Definition
Sacado_Traits.hpp:304
Sacado::ValueType::type
T type
Definition
Sacado_Traits.hpp:321
Sacado::dummy::type
U type
Definition
Sacado_dummy_arg.hpp:41
Generated by
1.17.0