Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_Details_LapackSupportsScalar.hpp
1 #ifndef IFPACK2_DETAILS_LAPACKSUPPORTSSCALAR_HPP
2 #define IFPACK2_DETAILS_LAPACKSUPPORTSSCALAR_HPP
3 
4 #include "Teuchos_ConfigDefs.hpp"
5 
6 #ifdef HAVE_TEUCHOS_COMPLEX
7 # include <complex>
8 #endif // HAVE_TEUCHOS_COMPLEX
9 
10 namespace Ifpack2 {
11 namespace Details {
12 
16  template<class ScalarType>
18  public:
19  const static bool value = false;
20  };
21 
22  template<>
23  class LapackSupportsScalar<float> {
24  public:
25  const static bool value = true;
26  };
27 
28  template<>
29  class LapackSupportsScalar<double> {
30  public:
31  const static bool value = true;
32  };
33 
34 #ifdef HAVE_TEUCHOS_COMPLEX
35  template<>
36  class LapackSupportsScalar<std::complex<float> > {
37  public:
38  const static bool value = true;
39  };
40 
41  template<>
42  class LapackSupportsScalar<std::complex<double> > {
43  public:
44  const static bool value = true;
45  };
46 #endif // HAVE_TEUCHOS_COMPLEX
47 
48 } // namespace Details
49 } // namespace Ifpack2
50 
51 #endif // IFPACK2_DETAILS_LAPACKSUPPORTSSCALAR_HPP
Type traits class that says whether Teuchos::LAPACK has a valid implementation for the given ScalarTy...
Definition: Ifpack2_Details_LapackSupportsScalar.hpp:17