## Uses of Class
org.apache.sysds.runtime.instructions.gpu.context.CSRPointer

Packages that use CSRPointer
org.apache.sysds.runtime.controlprogram.context
org.apache.sysds.runtime.instructions.gpu.context

### Uses of CSRPointer in org.apache.sysds.runtime.controlprogram.context

Methods in org.apache.sysds.runtime.controlprogram.context that return CSRPointer
`CSRPointer` ExecutionContext.`getGPUSparsePointerAddress(MatrixObject obj)`

### Uses of CSRPointer in org.apache.sysds.runtime.instructions.gpu.context

Methods in org.apache.sysds.runtime.instructions.gpu.context that return CSRPointer
`static CSRPointer` CSRPointer.`allocateEmpty(GPUContext gCtx, long nnz2, long rows)` Factory method to allocate an empty CSR Sparse matrix on the GPU
`static CSRPointer` CSRPointer.`allocateForDgeam(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, CSRPointer B, int m, int n)` Estimates the number of non zero elements from the results of a sparse cusparseDgeam operation C = a op(A) + b op(B)
`static CSRPointer` CSRPointer.`allocateForMatrixMultiply(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, int transA, CSRPointer B, int transB, int m, int n, int k)` Estimates the number of non-zero elements from the result of a sparse matrix multiplication C = A * B and returns the `CSRPointer` to C with the appropriate GPU memory.
`CSRPointer` CSRPointer.`clone(int rows)`
`static CSRPointer` GPUObject.`columnMajorDenseToRowMajorSparse(GPUContext gCtx, jcuda.jcusparse.cusparseHandle cusparseHandle, jcuda.Pointer densePtr, int rows, int cols)` Convenience method to convert a CSR matrix to a dense matrix on the GPU Since the allocated matrix is temporary, bookkeeping is not updated.
`CSRPointer` GPUObject.`getJcudaSparseMatrixPtr()` Pointer to sparse matrix
`CSRPointer` GPUObject.`getSparseMatrixCudaPointer()` Convenience method to directly examine the Sparse matrix on GPU

Methods in org.apache.sysds.runtime.instructions.gpu.context with parameters of type CSRPointer
`static CSRPointer` CSRPointer.`allocateForDgeam(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, CSRPointer B, int m, int n)` Estimates the number of non zero elements from the results of a sparse cusparseDgeam operation C = a op(A) + b op(B)
`static CSRPointer` CSRPointer.`allocateForMatrixMultiply(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, int transA, CSRPointer B, int transB, int m, int n, int k)` Estimates the number of non-zero elements from the result of a sparse matrix multiplication C = A * B and returns the `CSRPointer` to C with the appropriate GPU memory.
`static void` CSRPointer.`copyPtrToHost(CSRPointer src, int rows, long nnz, int[] rowPtr, int[] colInd)` Static method to copy a CSR sparse matrix from Device to host
`static void` CSRPointer.`copyToDevice(GPUContext gCtx, CSRPointer dest, int rows, long nnz, int[] rowPtr, int[] colInd, double[] values)` Static method to copy a CSR sparse matrix from Host to Device
`void` GPUObject.`setSparseMatrixCudaPointer(CSRPointer sparseMatrixPtr)` Convenience method to directly set the sparse matrix on GPU Needed for operations like cusparseDcsrgemm(cusparseHandle, int, int, int, int, int, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, int, Pointer, Pointer, Pointer, cusparseMatDescr, Pointer, Pointer, Pointer)