pub struct CscMatrix<T: GpuFloat> { /* private fields */ }Expand description
A sparse matrix in Compressed Sparse Column (CSC) format, stored on GPU.
The matrix has shape (rows, cols) with nnz non-zero elements.
Implementations§
Source§impl<T: GpuFloat> CscMatrix<T>
impl<T: GpuFloat> CscMatrix<T>
Sourcepub fn from_host(
rows: u32,
cols: u32,
col_ptr: &[i32],
row_idx: &[i32],
values: &[T],
) -> SparseResult<Self>
pub fn from_host( rows: u32, cols: u32, col_ptr: &[i32], row_idx: &[i32], values: &[T], ) -> SparseResult<Self>
Creates a CSC matrix from host-side arrays, uploading to GPU.
§Arguments
rows– Number of rows.cols– Number of columns.col_ptr– Column pointer array of lengthcols + 1.row_idx– Row indices of lengthnnz.values– Non-zero values of lengthnnz.
§Errors
Returns SparseError::InvalidFormat if array lengths are inconsistent.
Sourcepub fn from_device(
rows: u32,
cols: u32,
nnz: u32,
col_ptr: DeviceBuffer<i32>,
row_idx: DeviceBuffer<i32>,
values: DeviceBuffer<T>,
) -> SparseResult<Self>
pub fn from_device( rows: u32, cols: u32, nnz: u32, col_ptr: DeviceBuffer<i32>, row_idx: DeviceBuffer<i32>, values: DeviceBuffer<T>, ) -> SparseResult<Self>
Creates a CSC matrix from pre-allocated device buffers.
§Errors
Returns SparseError::InvalidFormat if buffer lengths are inconsistent.
Sourcepub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<i32>, Vec<T>)>
pub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<i32>, Vec<T>)>
Downloads the CSC arrays from GPU to host memory.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn to_csr(&self) -> SparseResult<CsrMatrix<T>>
pub fn to_csr(&self) -> SparseResult<CsrMatrix<T>>
Converts this CSC matrix to CSR format on the host.
Downloads data, transposes the structure (CSC -> CSR is analogous to transposing the matrix), then uploads.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn col_ptr(&self) -> &DeviceBuffer<i32>
pub fn col_ptr(&self) -> &DeviceBuffer<i32>
Returns a reference to the column pointer device buffer.
Sourcepub fn row_idx(&self) -> &DeviceBuffer<i32>
pub fn row_idx(&self) -> &DeviceBuffer<i32>
Returns a reference to the row index device buffer.
Sourcepub fn values(&self) -> &DeviceBuffer<T>
pub fn values(&self) -> &DeviceBuffer<T>
Returns a reference to the values device buffer.