pub struct CooMatrix<T: GpuFloat> { /* private fields */ }Expand description
A sparse matrix in Coordinate (COO) format, stored on GPU.
The matrix has shape (rows, cols) with nnz non-zero elements.
Each non-zero is represented by its row index, column index, and value.
Implementations§
Source§impl<T: GpuFloat> CooMatrix<T>
impl<T: GpuFloat> CooMatrix<T>
Sourcepub fn from_host(
rows: u32,
cols: u32,
row_idx: &[i32],
col_idx: &[i32],
values: &[T],
) -> SparseResult<Self>
pub fn from_host( rows: u32, cols: u32, row_idx: &[i32], col_idx: &[i32], values: &[T], ) -> SparseResult<Self>
Creates a COO matrix from host-side arrays, uploading to GPU.
The triplets are assumed to be unsorted unless the caller knows
otherwise (use with_sorted to override).
§Arguments
rows– Number of rows.cols– Number of columns.row_idx– Row indices of lengthnnz.col_idx– Column 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,
row_idx: DeviceBuffer<i32>,
col_idx: DeviceBuffer<i32>,
values: DeviceBuffer<T>,
) -> SparseResult<Self>
pub fn from_device( rows: u32, cols: u32, nnz: u32, row_idx: DeviceBuffer<i32>, col_idx: DeviceBuffer<i32>, values: DeviceBuffer<T>, ) -> SparseResult<Self>
Creates a COO matrix from pre-allocated device buffers.
§Errors
Returns SparseError::InvalidFormat if buffer lengths are inconsistent.
Sourcepub fn with_sorted(self, sorted: bool) -> Self
pub fn with_sorted(self, sorted: bool) -> Self
Mark the COO matrix as sorted by (row, col).
This is a hint for conversion routines; the caller is responsible for ensuring correctness.
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 COO 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 COO matrix to CSR format.
Downloads to host, builds row pointers via histogram, then uploads.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn to_csc(&self) -> SparseResult<CscMatrix<T>>
pub fn to_csc(&self) -> SparseResult<CscMatrix<T>>
Converts this COO matrix to CSC format.
Downloads to host, builds column pointers, then uploads.
§Errors
Returns SparseError::Cuda on transfer failure.
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 col_idx(&self) -> &DeviceBuffer<i32>
pub fn col_idx(&self) -> &DeviceBuffer<i32>
Returns a reference to the column index device buffer.
Sourcepub fn values(&self) -> &DeviceBuffer<T>
pub fn values(&self) -> &DeviceBuffer<T>
Returns a reference to the values device buffer.