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
34namespace Amesos2 {
35
36template <class, class> class Basker;
37
38/* Specialize the Amesos2::TypeMap struct for Basker types
39 * \cond Basker_type_specializations
40 */
41
42template <>
43struct TypeMap<Basker,float>
44{
45 typedef double dtype;
46 typedef double type;
47};
48
49template <>
50struct TypeMap<Basker,double>
51{
52 typedef double dtype;
53 typedef double type;
54};
55
56
57#ifdef HAVE_TEUCHOS_COMPLEX
58
59template <>
60struct TypeMap<Basker,std::complex<float> >
61{
62 typedef std::complex<double> dtype;
63 typedef Kokkos::complex<double> type;
64};
65
66template <>
67struct TypeMap<Basker,std::complex<double> >
68{
69 typedef std::complex<double> dtype;
70 typedef Kokkos::complex<double> type;
71};
72
73template <>
74struct TypeMap<Basker,Kokkos::complex<float> >
75{
76 typedef std::complex<double> dtype;
77 typedef Kokkos::complex<double> type;
78};
79
80template <>
81struct 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