Amesos2 - Direct Sparse Solver Interfaces  Version of the Day
Amesos2_Basker_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 
19 #ifndef AMESOS2_BASKER_TYPEMAP_HPP
20 #define AMESOS2_BASKER_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 
34 namespace Amesos2 {
35 
36 template <class, class> class Basker;
37 
38 /* Specialize the Amesos2::TypeMap struct for Basker types
39  * \cond Basker_type_specializations
40  */
41 
42 template <>
43 struct TypeMap<Basker,float>
44 {
45  typedef double dtype;
46  typedef double type;
47 };
48 
49 template <>
50 struct TypeMap<Basker,double>
51 {
52  typedef double dtype;
53  typedef double type;
54 };
55 
56 
57 #ifdef HAVE_TEUCHOS_COMPLEX
58 
59 template <>
60 struct TypeMap<Basker,std::complex<float> >
61 {
62  typedef std::complex<double> dtype;
63  typedef Kokkos::complex<double> type;
64 };
65 
66 template <>
67 struct TypeMap<Basker,std::complex<double> >
68 {
69  typedef std::complex<double> dtype;
70  typedef Kokkos::complex<double> type;
71 };
72 
73 template <>
74 struct TypeMap<Basker,Kokkos::complex<float> >
75 {
76  typedef std::complex<double> dtype;
77  typedef Kokkos::complex<double> type;
78 };
79 
80 template <>
81 struct TypeMap<Basker,Kokkos::complex<double> >
82 {
83  typedef std::complex<double> dtype;
84  typedef Kokkos::complex<double> type;
85 };
86 
87 
88 #endif // HAVE_TEUCHOS_COMPLEX
89 
90 /* \endcond Basker_type_specializations */
91 
92 
93 } // end namespace Amesos2
94 
95 #endif // AMESOS2_BASKER_TYPEMAP_HPP