pub fn spgemm_numeric<T: GpuFloat>(
handle: &SparseHandle,
a: &CsrMatrix<T>,
b: &CsrMatrix<T>,
c_row_ptr: CUdeviceptr,
c_col_idx: CUdeviceptr,
c_values: CUdeviceptr,
) -> SparseResult<()>Expand description
Numeric phase of SpGEMM: fills in values and column indices of C = A * B.
The output matrix c must already have its row_ptr set (from the symbolic
phase) and its col_idx / values arrays allocated to the correct size.
§Arguments
handle– Sparse handle.a– Sparse CSR matrixA.b– Sparse CSR matrixB.c_row_ptr– Device pointer to C’s row_ptr (from symbolic phase upload).c_col_idx– Device pointer to C’s col_idx (pre-allocated).c_values– Device pointer to C’s values (pre-allocated).
§Errors
Returns SparseError::DimensionMismatch if dimensions are wrong.
Returns SparseError::PtxGeneration if kernel generation fails.