Amesos2 - Direct Sparse Solver Interfaces Version of the Day
Amesos2_KLU2_TypeMap.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Amesos2: Templated Direct Sparse Solver Package
4//
5// Copyright 2011 NTESS and the Amesos2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
18
19#ifndef AMESOS2_KLU2_TYPEMAP_HPP
20#define AMESOS2_KLU2_TYPEMAP_HPP
21
22#include <functional>
23#ifdef HAVE_TEUCHOS_COMPLEX
24#include <complex>
25#endif
26
27#include <Teuchos_as.hpp>
28#ifdef HAVE_TEUCHOS_COMPLEX
29#include <Teuchos_SerializationTraits.hpp>
30#endif
31
32#include "Amesos2_TypeMap.hpp"
33
34namespace KLU2 {
35
36#include "klu2_ext.hpp" // for Dtype_t declaration
37
38} // end namespace KLU
39
40namespace Amesos2 {
41
42template <class, class> class KLU2;
43
44/* Specialize the Amesos2::TypeMap struct for KLU2 types
45 * TODO: Mostly dummy assignments as KLU2 is templated. Remove if possible.
46 *
47 * \cond KLU2_type_specializations
48 */
49template <>
50struct TypeMap<KLU2,float>
51{
52 typedef float dtype;
53 typedef float type;
54};
55
56template <>
57struct TypeMap<KLU2,double>
58{
59 typedef double dtype;
60 typedef double type;
61};
62
63#ifdef HAVE_TEUCHOS_COMPLEX
64template <>
65struct TypeMap<KLU2,std::complex<float> >
66{
67 typedef std::complex<double> dtype;
68 typedef Kokkos::complex<double> type;
69};
70
71template <>
72struct TypeMap<KLU2,std::complex<double> >
73{
74 typedef std::complex<double> dtype;
75 typedef Kokkos::complex<double> type;
76};
77
78template <>
79struct TypeMap<KLU2,Kokkos::complex<float> >
80{
81 typedef std::complex<double> dtype;
82 typedef Kokkos::complex<double> type;
83};
84
85template <>
86struct TypeMap<KLU2,Kokkos::complex<double> >
87{
88 typedef std::complex<double> dtype;
89 typedef Kokkos::complex<double> type;
90};
91#endif // HAVE_TEUCHOS_COMPLEX
92/* \endcond KLU2_type_specializations */
93
94} // end namespace Amesos2
95
96#endif // AMESOS2_SUPERLU_TYPEMAP_HPP
Amesos2 interface to the KLU2 package.
Definition Amesos2_KLU2_decl.hpp:39
Map types to solver-specific data-types and enums.
Definition Amesos2_TypeMap.hpp:48