53 #ifndef AMESOS2_KLU2_TYPEMAP_HPP 54 #define AMESOS2_KLU2_TYPEMAP_HPP 57 #ifdef HAVE_TEUCHOS_COMPLEX 61 #include <Teuchos_as.hpp> 62 #ifdef HAVE_TEUCHOS_COMPLEX 63 #include <Teuchos_SerializationTraits.hpp> 66 #include "Amesos2_TypeMap.hpp" 78 #include "klu2_ext.hpp" 81 #ifdef HAVE_TEUCHOS_COMPLEX 97 class ValueTypeConversionTraits<
std::complex<double>, std::complex<float> >
100 static std::complex<double> convert(
const std::complex<float> t )
102 std::complex<double> ret(Teuchos::as<double>(t.real()),
103 Teuchos::as<double>(t.imag()));
107 static std::complex<double> safeConvert(
const std::complex<float> t )
109 std::complex<double> ret(Teuchos::as<double>(t.real()),
110 Teuchos::as<double>(t.imag()));
118 class ValueTypeConversionTraits<
std::complex<float> , std::complex<double> >
121 static std::complex<float> convert(
const std::complex<double> t )
123 float ret_r = Teuchos::as<float>( t.real() );
124 float ret_i = Teuchos::as<float>( t.imag() );
125 std::complex<float> ret (ret_r, ret_i);
130 static std::complex<float> safeConvert(
const std::complex<double> t )
132 float ret_r = Teuchos::as<float>( t.real() );
133 float ret_i = Teuchos::as<float>( t.imag() );
134 std::complex<float> ret (ret_r, ret_i);
146 #endif // HAVE_TEUCHOS_COMPLEX 151 template <
class,
class>
class KLU2;
159 struct TypeMap<
KLU2,float>
163 typedef float magnitude_type;
168 struct TypeMap<
KLU2,double>
172 typedef double magnitude_type;
176 #ifdef HAVE_TEUCHOS_COMPLEX 179 struct TypeMap<
KLU2,
std::complex<float> >
181 static std::complex<double> dtype;
182 typedef std::complex<double> type;
183 typedef double magnitude_type;
188 struct TypeMap<
KLU2,
std::complex<double> >
190 static std::complex<double> dtype;
191 typedef std::complex<double> type;
192 typedef double magnitude_type;
196 #endif // HAVE_TEUCHOS_COMPLEX 203 #endif // AMESOS2_SUPERLU_TYPEMAP_HPP
Definition: Amesos2_AbstractConcreteMatrixAdapter.hpp:48
Definition: Amesos2_KLU2_FunctionMap.hpp:67
Definition: Amesos2_Cholmod_TypeMap.hpp:92