Morpheus 1.0.0
Dynamic matrix type and algorithms for sparse matrices
Loading...
Searching...
No Matches
DenseMatrix/Kokkos/Morpheus_Convert_Impl.hpp
1
24#ifndef MORPHEUS_DENSEMATRIX_KOKKOS_CONVERT_IMPL_HPP
25#define MORPHEUS_DENSEMATRIX_KOKKOS_CONVERT_IMPL_HPP
26
27#include <Morpheus_Exceptions.hpp>
28#include <Morpheus_SpaceTraits.hpp>
29#include <Morpheus_FormatTraits.hpp>
30#include <Morpheus_FormatTags.hpp>
31#include <Morpheus_Spaces.hpp>
32
33namespace Morpheus {
34namespace Impl {
35
36template <typename ExecSpace, typename SourceType, typename DestinationType>
37void convert(
38 const SourceType&, DestinationType&, DenseMatrixTag, DenseMatrixTag,
39 typename std::enable_if<
40 Morpheus::is_dense_matrix_format_container_v<SourceType> &&
41 Morpheus::is_dense_matrix_format_container_v<DestinationType> &&
42 Morpheus::has_generic_backend_v<ExecSpace> &&
43 Morpheus::has_access_v<ExecSpace, SourceType, DestinationType>>::type* =
44 nullptr) {
45 throw Morpheus::NotImplementedException("convert<Kokkos>");
46}
47
48template <typename ExecSpace, typename SourceType, typename DestinationType>
49void convert(
50 const SourceType&, DestinationType&,
51 typename std::enable_if<
52 Morpheus::is_dense_matrix_format_container_v<SourceType> &&
53 Morpheus::is_dense_vector_format_container_v<DestinationType> &&
54 Morpheus::has_generic_backend_v<ExecSpace> &&
55 Morpheus::has_access_v<ExecSpace, SourceType, DestinationType>>::type* =
56 nullptr) {
57 throw Morpheus::NotImplementedException("convert<Kokkos>");
58}
59
60template <typename ExecSpace, typename SourceType, typename DestinationType>
61void convert(
62 const SourceType&, DestinationType&,
63 typename std::enable_if<
64 Morpheus::is_dense_matrix_format_container_v<SourceType> &&
65 Morpheus::is_coo_matrix_format_container_v<DestinationType> &&
66 Morpheus::has_generic_backend_v<ExecSpace> &&
67 Morpheus::has_access_v<ExecSpace, SourceType, DestinationType>>::type* =
68 nullptr) {
69 throw Morpheus::NotImplementedException("convert<Kokkos>");
70}
71
72template <typename ExecSpace, typename SourceType, typename DestinationType>
73void convert(
74 const SourceType&, DestinationType&,
75 typename std::enable_if<
76 Morpheus::is_coo_matrix_format_container_v<SourceType> &&
77 Morpheus::is_dense_matrix_format_container_v<DestinationType> &&
78 Morpheus::has_generic_backend_v<ExecSpace> &&
79 Morpheus::has_access_v<ExecSpace, SourceType, DestinationType>>::type* =
80 nullptr) {
81 throw Morpheus::NotImplementedException("convert<Kokkos>");
82}
83
84} // namespace Impl
85} // namespace Morpheus
86
87#endif // MORPHEUS_DENSEMATRIX_KOKKOS_CONVERT_IMPL_HPP
Definition: Morpheus_Exceptions.hpp:43
Generic Morpheus interfaces.
Definition: dummy.cpp:24