pub struct SpMat<'buf, T> { /* private fields */ }Expand description
A sparse-matrix descriptor (CSR / CSC / COO / BSR). The descriptor keeps pointers to externally-owned device buffers; the lifetime parameter ties those buffers to the descriptor.
Implementations§
Source§impl<'buf, T: SparseScalar + DeviceRepr> SpMat<'buf, T>
impl<'buf, T: SparseScalar + DeviceRepr> SpMat<'buf, T>
Sourcepub fn csr(
rows: i64,
cols: i64,
nnz: i64,
row_offsets: &'buf mut DeviceBuffer<i32>,
col_indices: &'buf mut DeviceBuffer<i32>,
values: &'buf mut DeviceBuffer<T>,
) -> Result<Self>
pub fn csr( rows: i64, cols: i64, nnz: i64, row_offsets: &'buf mut DeviceBuffer<i32>, col_indices: &'buf mut DeviceBuffer<i32>, values: &'buf mut DeviceBuffer<T>, ) -> Result<Self>
Build a CSR (compressed sparse row) descriptor.
row_offsets.len() must equal rows + 1; col_indices.len() and
values.len() must equal nnz.
Sourcepub fn csc(
rows: i64,
cols: i64,
nnz: i64,
col_offsets: &'buf mut DeviceBuffer<i32>,
row_indices: &'buf mut DeviceBuffer<i32>,
values: &'buf mut DeviceBuffer<T>,
) -> Result<Self>
pub fn csc( rows: i64, cols: i64, nnz: i64, col_offsets: &'buf mut DeviceBuffer<i32>, row_indices: &'buf mut DeviceBuffer<i32>, values: &'buf mut DeviceBuffer<T>, ) -> Result<Self>
Build a CSC (compressed sparse column) descriptor.
Sourcepub fn bsr(
brows: i64,
bcols: i64,
bnnz: i64,
row_block_dim: i64,
col_block_dim: i64,
order: Order,
row_offsets: &'buf mut DeviceBuffer<i32>,
col_indices: &'buf mut DeviceBuffer<i32>,
values: &'buf mut DeviceBuffer<T>,
) -> Result<Self>
pub fn bsr( brows: i64, bcols: i64, bnnz: i64, row_block_dim: i64, col_block_dim: i64, order: Order, row_offsets: &'buf mut DeviceBuffer<i32>, col_indices: &'buf mut DeviceBuffer<i32>, values: &'buf mut DeviceBuffer<T>, ) -> Result<Self>
Build a BSR (block-sparse-row) descriptor.
Sourcepub fn coo(
rows: i64,
cols: i64,
nnz: i64,
row_indices: &'buf mut DeviceBuffer<i32>,
col_indices: &'buf mut DeviceBuffer<i32>,
values: &'buf mut DeviceBuffer<T>,
) -> Result<Self>
pub fn coo( rows: i64, cols: i64, nnz: i64, row_indices: &'buf mut DeviceBuffer<i32>, col_indices: &'buf mut DeviceBuffer<i32>, values: &'buf mut DeviceBuffer<T>, ) -> Result<Self>
Build a COO (coordinate) descriptor.
Source§impl<T> SpMat<'_, T>
impl<T> SpMat<'_, T>
Sourcepub unsafe fn set_csr_pointers(
&self,
row_offsets: *mut c_void,
col_indices: *mut c_void,
values: *mut c_void,
) -> Result<()>
pub unsafe fn set_csr_pointers( &self, row_offsets: *mut c_void, col_indices: *mut c_void, values: *mut c_void, ) -> Result<()>
Rebind a CSR descriptor’s underlying device pointers without rebuilding it. Saves descriptor recreation when the same shape is reused with new data.
§Safety
All three pointers must be live device allocations matching the
original (rows + 1, nnz, nnz) element counts and the original
element types. They must stay valid until the next operation
on this descriptor completes.
Sourcepub unsafe fn set_csc_pointers(
&self,
col_offsets: *mut c_void,
row_indices: *mut c_void,
values: *mut c_void,
) -> Result<()>
pub unsafe fn set_csc_pointers( &self, col_offsets: *mut c_void, row_indices: *mut c_void, values: *mut c_void, ) -> Result<()>
Sourcepub unsafe fn set_coo_pointers(
&self,
row_indices: *mut c_void,
col_indices: *mut c_void,
values: *mut c_void,
) -> Result<()>
pub unsafe fn set_coo_pointers( &self, row_indices: *mut c_void, col_indices: *mut c_void, values: *mut c_void, ) -> Result<()>
Sourcepub fn set_fill(&self, fill: Fill) -> Result<()>
pub fn set_fill(&self, fill: Fill) -> Result<()>
Set the fill-triangle attribute (for triangular solves).
Sourcepub fn set_diag(&self, diag: Diag) -> Result<()>
pub fn set_diag(&self, diag: Diag) -> Result<()>
Set the diagonal-type attribute (unit vs non-unit, for triangular solves).