55 #ifndef AMESOS2_SOLVERTRAITS_HPP
56 #define AMESOS2_SOLVERTRAITS_HPP
59 #include "Amesos2_MatrixAdapter.hpp"
70 template <
template <
class,
class>
class ConcreteSolver>
72 typedef Meta::nil_t supported_scalars;
96 template <
template <
class,
class>
class ConcreteSolver,
99 static const bool value =
100 Meta::if_then_else<Meta::is_same<typename solver_traits<ConcreteSolver>::supported_scalars, Meta::nil_t>::value,
102 Meta::type_list_contains<
103 typename solver_traits<ConcreteSolver>::supported_scalars,
104 Scalar> >::type::value;
107 template <
template <
class,
class>
class ConcreteSolver,
109 struct solver_supports_matrix {
110 static const bool value =
true;
118 template <
template <
class,
class>
class ConcreteSolver,
119 typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
120 struct solver_supports_matrix<ConcreteSolver,
121 KokkosSparse::CrsMatrix<Scalar, LocalOrdinal, ExecutionSpace>> {
122 static const bool value =
false;
127 #endif // AMESOS2_SOLVERTRAITS_HPP
Provides traits about solvers.
Definition: Amesos2_SolverTraits.hpp:71
Check whether a solver supports a scalar type.
Definition: Amesos2_SolverTraits.hpp:98