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>
11#include <muda/type_traits/cuda_arch.h>
12#include <muda/buffer/device_var.h>
22 cudaDataType_t m_data_type;
28 , m_data_type(data_type)
35 auto dim()
const {
return m_N; }
36 auto data_type()
const {
return m_data_type; }
37 auto cublas()
const {
return m_handles.cublas(); }
38 auto cusparse()
const {
return m_handles.cusparse(); }
39 auto cusolver_sp()
const {
return m_handles.cusolver_sp(); }
40 auto cusolver_dn()
const {
return m_handles.cusolver_dn(); }
45 if(buf.capacity() < new_size)
46 buf.reserve(new_size * m_handles.reserve_ratio());
51 template <
typename T,
int N>
54 using BlockMatrix =
typename DeviceTripletMatrix<T, N>::BlockMatrix;
55 using SegmentVector =
typename DeviceDoubletVector<T, N>::SegmentVector;
113 bool clear_dense_matrix =
true);
140 bool clear_dense_vector =
true);
143 bool clear_dense_vector);
148 bool clear_dense_vector =
true);
154 template <
typename T>
209 bool clear_dense_matrix =
true);
230 bool clear_dense_vector =
true);
233 bool clear_dense_vector);
238 bool clear_dense_vector =
true);
243#include "details/matrix_format_converter_impl_block.inl"
244#include "details/matrix_format_converter_impl.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
A std::vector like wrapper of cuda device memory, allows user to:
Definition device_buffer.h:46
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 device_var.h:11
Definition linear_system_handles.h:16