Skip to content

Class muda::details::MatrixFormatConverter

template <typename T, int N>

ClassList > muda > details > MatrixFormatConverter

Inherits the following classes: muda::details::MatrixFormatConverterBase

Public Functions

Type Name
MatrixFormatConverter (LinearSystemHandles & handles)
void bsr2csr (cusparseHandle_t handle, int mb, int nb, int blockDim, cusparseMatDescr_t descrA, const T * bsrValA, const int * bsrRowPtrA, const int * bsrColIndA, int nnzb, DeviceCSRMatrix< T > & to, muda::DeviceBuffer< int > & row_offsets, muda::DeviceBuffer< int > & col_indices, muda::DeviceBuffer< T > & values)
void calculate_block_offsets (const DeviceBCOOMatrix< T, N > & from, DeviceBSRMatrix< T, N > & to)
void convert (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void convert (const DeviceBCOOMatrix< T, N > & from, DeviceDenseMatrix< T > & to, bool clear_dense_matrix=true)
void convert (const DeviceBCOOMatrix< T, N > & from, DeviceCOOMatrix< T > & to)
void convert (const DeviceBCOOMatrix< T, N > & from, DeviceBSRMatrix< T, N > & to)
void convert (DeviceBCOOMatrix< T, N > && from, DeviceBSRMatrix< T, N > & to)
void convert (const DeviceDoubletVector< T, N > & from, DeviceBCOOVector< T, N > & to)
void convert (const DeviceBCOOVector< T, N > & from, DeviceDenseVector< T > & to, bool clear_dense_vector=true)
void convert (const DeviceDoubletVector< T, N > & from, DeviceDenseVector< T > & to, bool clear_dense_vector=true)
void convert (const DeviceBSRMatrix< T, N > & from, DeviceCSRMatrix< T > & to)
void expand_blocks (const DeviceBCOOMatrix< T, N > & from, DeviceCOOMatrix< T > & to)
void make_unique_blocks (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void make_unique_indices (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void make_unique_indices (const DeviceDoubletVector< T, N > & from, DeviceBCOOVector< T, N > & to)
void make_unique_indices_and_blocks (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void make_unique_segments (const DeviceDoubletVector< T, N > & from, DeviceBCOOVector< T, N > & to)
void merge_sort_indices_and_blocks (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void merge_sort_indices_and_segments (const DeviceDoubletVector< T, N > & from, DeviceBCOOVector< T, N > & to)
void radix_sort_indices_and_blocks (const DeviceTripletMatrix< T, N > & from, DeviceBCOOMatrix< T, N > & to)
void set_unique_values_to_dense_vector (const DeviceBCOOVector< T, N > & from, DeviceDenseVector< T > & to, bool clear_dense_vector)
void sort_indices_and_values (const DeviceBCOOMatrix< T, N > & from, DeviceCOOMatrix< T > & to)
virtual ~MatrixFormatConverter () = default

Public Functions inherited from muda::details::MatrixFormatConverterBase

See muda::details::MatrixFormatConverterBase

Type Name
MatrixFormatConverterBase (LinearSystemHandles & context, cudaDataType_t data_type, int N)
auto cublas () const
auto cusolver_dn () const
auto cusolver_sp () const
auto cusparse () const
auto data_type () const
auto dim () const
void loose_resize (DeviceBuffer< T > & buf, size_t new_size)
virtual ~MatrixFormatConverterBase () = default

Protected Attributes inherited from muda::details::MatrixFormatConverterBase

See muda::details::MatrixFormatConverterBase

Type Name
int m_N
cudaDataType_t m_data_type
LinearSystemHandles & m_handles

Public Functions Documentation

function MatrixFormatConverter

inline muda::details::MatrixFormatConverter::MatrixFormatConverter (
    LinearSystemHandles & handles
) 

function bsr2csr

inline void muda::details::MatrixFormatConverter::bsr2csr (
    cusparseHandle_t handle,
    int mb,
    int nb,
    int blockDim,
    cusparseMatDescr_t descrA,
    const T * bsrValA,
    const int * bsrRowPtrA,
    const int * bsrColIndA,
    int nnzb,
    DeviceCSRMatrix < T > & to,
    muda::DeviceBuffer < int > & row_offsets,
    muda::DeviceBuffer < int > & col_indices,
    muda::DeviceBuffer < T > & values
) 

function calculate_block_offsets

inline void muda::details::MatrixFormatConverter::calculate_block_offsets (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceBSRMatrix < T, N > & to
) 

function convert [1/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function convert [2/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceDenseMatrix < T > & to,
    bool clear_dense_matrix=true
) 

function convert [3/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceCOOMatrix < T > & to
) 

function convert [4/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceBSRMatrix < T, N > & to
) 

function convert [5/9]

inline void muda::details::MatrixFormatConverter::convert (
    DeviceBCOOMatrix < T, N > && from,
    DeviceBSRMatrix < T, N > & to
) 

function convert [6/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceDoubletVector < T, N > & from,
    DeviceBCOOVector < T, N > & to
) 

function convert [7/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceBCOOVector < T, N > & from,
    DeviceDenseVector < T > & to,
    bool clear_dense_vector=true
) 

function convert [8/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceDoubletVector < T, N > & from,
    DeviceDenseVector < T > & to,
    bool clear_dense_vector=true
) 

function convert [9/9]

inline void muda::details::MatrixFormatConverter::convert (
    const DeviceBSRMatrix < T, N > & from,
    DeviceCSRMatrix < T > & to
) 

function expand_blocks

inline void muda::details::MatrixFormatConverter::expand_blocks (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceCOOMatrix < T > & to
) 

function make_unique_blocks

inline void muda::details::MatrixFormatConverter::make_unique_blocks (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function make_unique_indices [1/2]

inline void muda::details::MatrixFormatConverter::make_unique_indices (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function make_unique_indices [2/2]

inline void muda::details::MatrixFormatConverter::make_unique_indices (
    const DeviceDoubletVector < T, N > & from,
    DeviceBCOOVector < T, N > & to
) 

function make_unique_indices_and_blocks

inline void muda::details::MatrixFormatConverter::make_unique_indices_and_blocks (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function make_unique_segments

inline void muda::details::MatrixFormatConverter::make_unique_segments (
    const DeviceDoubletVector < T, N > & from,
    DeviceBCOOVector < T, N > & to
) 

function merge_sort_indices_and_blocks

inline void muda::details::MatrixFormatConverter::merge_sort_indices_and_blocks (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function merge_sort_indices_and_segments

inline void muda::details::MatrixFormatConverter::merge_sort_indices_and_segments (
    const DeviceDoubletVector < T, N > & from,
    DeviceBCOOVector < T, N > & to
) 

function radix_sort_indices_and_blocks

inline void muda::details::MatrixFormatConverter::radix_sort_indices_and_blocks (
    const DeviceTripletMatrix < T, N > & from,
    DeviceBCOOMatrix < T, N > & to
) 

function set_unique_values_to_dense_vector

inline void muda::details::MatrixFormatConverter::set_unique_values_to_dense_vector (
    const DeviceBCOOVector < T, N > & from,
    DeviceDenseVector < T > & to,
    bool clear_dense_vector
) 

function sort_indices_and_values

inline void muda::details::MatrixFormatConverter::sort_indices_and_values (
    const DeviceBCOOMatrix < T, N > & from,
    DeviceCOOMatrix < T > & to
) 

function ~MatrixFormatConverter

virtual muda::details::MatrixFormatConverter::~MatrixFormatConverter () = default


The documentation for this class was generated from the following file src/muda/ext/linear_system/device_bcoo_matrix.h