Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_Details_LapackSupportsScalar.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4 //
5 // Copyright 2009 NTESS and the Ifpack2 contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 #ifndef IFPACK2_DETAILS_LAPACKSUPPORTSSCALAR_HPP
10 #define IFPACK2_DETAILS_LAPACKSUPPORTSSCALAR_HPP
11 
12 #include "Teuchos_ConfigDefs.hpp"
13 
14 #ifdef HAVE_TEUCHOS_COMPLEX
15 # include <complex>
16 #endif // HAVE_TEUCHOS_COMPLEX
17 
18 namespace Ifpack2 {
19 namespace Details {
20 
24  template<class ScalarType>
26  public:
27  const static bool value = false;
28  };
29 
30  template<>
31  class LapackSupportsScalar<float> {
32  public:
33  const static bool value = true;
34  };
35 
36  template<>
37  class LapackSupportsScalar<double> {
38  public:
39  const static bool value = true;
40  };
41 
42 #ifdef HAVE_TEUCHOS_COMPLEX
43  template<>
44  class LapackSupportsScalar<std::complex<float> > {
45  public:
46  const static bool value = true;
47  };
48 
49  template<>
50  class LapackSupportsScalar<std::complex<double> > {
51  public:
52  const static bool value = true;
53  };
54 #endif // HAVE_TEUCHOS_COMPLEX
55 
56 } // namespace Details
57 } // namespace Ifpack2
58 
59 #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:25