21 #ifndef AMESOS2_SOLVERTRAITS_HPP
22 #define AMESOS2_SOLVERTRAITS_HPP
25 #include "Amesos2_MatrixAdapter.hpp"
36 template <
template <
class,
class>
class ConcreteSolver>
38 typedef Meta::nil_t supported_scalars;
62 template <
template <
class,
class>
class ConcreteSolver,
65 static const bool value =
66 std::conditional_t<std::is_same_v<typename solver_traits<ConcreteSolver>::supported_scalars, Meta::nil_t>,
68 Meta::type_list_contains<
69 typename solver_traits<ConcreteSolver>::supported_scalars,
73 template <
template <
class,
class>
class ConcreteSolver,
75 struct solver_supports_matrix {
76 static const bool value =
true;
84 template <
template <
class,
class>
class ConcreteSolver,
85 typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
86 struct solver_supports_matrix<ConcreteSolver,
87 KokkosSparse::CrsMatrix<Scalar, LocalOrdinal, ExecutionSpace>> {
88 static const bool value =
false;
93 #endif // AMESOS2_SOLVERTRAITS_HPP
Provides traits about solvers.
Definition: Amesos2_SolverTraits.hpp:37
Check whether a solver supports a scalar type.
Definition: Amesos2_SolverTraits.hpp:64