2#include <muda/ext/linear_system/linear_system_handles.h>
3#include <muda/ext/linear_system/device_dense_matrix.h>
4#include <muda/ext/linear_system/device_dense_vector.h>
5#include <muda/ext/linear_system/device_triplet_matrix.h>
6#include <muda/ext/linear_system/device_doublet_vector.h>
7#include <muda/ext/linear_system/device_bcoo_matrix.h>
8#include <muda/ext/linear_system/device_bcoo_vector.h>
9#include <muda/ext/linear_system/device_bsr_matrix.h>
10#include <muda/ext/linear_system/device_csr_matrix.h>
12namespace muda::details
14class MatrixFormatConverterBase;
15template <
typename T,
int N>
16class MatrixFormatConverter;
21 cudaDataType_t data_type;
26 return lhs.data_type == rhs.data_type && lhs.N == rhs.N;
34struct hash<muda::details::MatrixFormatConverterType>
38 return (std::hash<int>()(x.data_type) << 8) ^ std::hash<int>()(x.N);
50 using U = std::unique_ptr<T>;
52 using TypeN = std::pair<cudaDataType_t, int>;
53 std::unordered_map<details::MatrixFormatConverterType, U<details::MatrixFormatConverterBase>> m_impls;
55 template <
typename T,
int N>
66 template <
typename T,
int N>
70 template <
typename T,
int N>
73 bool clear_dense_matrix =
true);
76 template <
typename T,
int N>
80 template <
typename T,
int N>
84 template <
typename T,
int N>
88 template <
typename T,
int N>
91 bool clear_dense_vector =
true);
94 template <
typename T,
int N>
97 bool clear_dense_vector =
true);
100 template <
typename T,
int N>
104 template <
typename T>
108 template <
typename T>
111 bool clear_dense_matrix =
true);
114 template <
typename T>
116 template <
typename T>
120 template <
typename T>
124 template <
typename T>
127 bool clear_dense_vector =
true);
130 template <
typename T>
133 bool clear_dense_vector =
true);
137#include "details/matrix_format_converter.inl"
Definition device_bcoo_matrix.h:18
Definition device_bcoo_vector.h:28
Definition device_bcoo_vector.h:10
Definition device_bsr_matrix.h:16
Definition device_csr_matrix.h:16
Definition device_dense_matrix.h:16
Definition device_dense_vector.h:16
Definition device_doublet_vector.h:16
Definition device_triplet_matrix.h:14
Definition linear_system_handles.h:16