/* * Copyright 1993-2020 NVIDIA Corporation. All rights reserved. * * NOTICE TO LICENSEE: * * This source code and/or documentation ("Licensed Deliverables") are * subject to NVIDIA intellectual property rights under U.S. and * international Copyright laws. * * These Licensed Deliverables contained herein is PROPRIETARY and * CONFIDENTIAL to NVIDIA and is being provided under the terms and * conditions of a form of NVIDIA software license agreement by and * between NVIDIA and Licensee ("License Agreement") or electronically * accepted by Licensee. Notwithstanding any terms or conditions to * the contrary in the License Agreement, reproduction or disclosure * of the Licensed Deliverables to any third party without the express * written consent of NVIDIA is prohibited. * * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THESE LICENSED DELIVERABLES. * * U.S. Government End Users. These Licensed Deliverables are a * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT * 1995), consisting of "commercial computer software" and "commercial * computer software documentation" as such terms are used in 48 * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government * only as a commercial end item. Consistent with 48 C.F.R.12.212 and * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all * U.S. Government End Users acquire the Licensed Deliverables with * only those rights set forth herein. * * Any use of the Licensed Deliverables in individual and commercial * software must include, in the user documentation and internal * comments to the code, the above Disclaimer and U.S. Government End * Users Notice. */ typedef size_t ptr_t; /* * Example of Fortran callable thin wrappers for a few CUDA functions. */ #if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ int CUDA_MALLOC(ptr_t *devPtr, int *size); int CUDA_FREE(ptr_t *devPtr); int CUDA_MEMCPY_FORT2C_INT(ptr_t *devPtr, const ptr_t *hostPtr, int *count, int *kind); int CUDA_MEMCPY_FORT2C_REAL(ptr_t *devPtr, const ptr_t *hostPtr, int *count, int *kind); int CUDA_MEMCPY_C2FORT_INT(ptr_t *devPtr, const ptr_t *hostPtr, int *count, int *kind); int CUDA_MEMCPY_C2FORT_REAL(ptr_t *devPtr, const ptr_t *hostPtr, int *count, int *kind); int CUDA_MEMSET(ptr_t *devPtr, int *value, int *count); void GET_SHIFTED_ADDRESS(ptr_t *originPtr, int *count, ptr_t *resultPtr); #if defined(__cplusplus) } #endif /* __cplusplus */ /* * Example of Fortran callable thin wrappers for CUSPARSE. * Fortran application must allocate and deallocate * GPU memory, and copy data up and down. */ #if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ int CUSPARSE_CREATE(ptr_t *handle); int CUSPARSE_DESTROY(ptr_t *handle); int CUSPARSE_GET_VERSION(ptr_t *handle, int *version); int CUSPARSE_SET_STREAM(ptr_t *handle, ptr_t *streamId); int CUSPARSE_GET_POINTER_MODE(ptr_t *handle, int *mode); int CUSPARSE_SET_POINTER_MODE(ptr_t *handle, int *mode); int CUSPARSE_CREATE_MAT_DESCR(ptr_t *descrA); int CUSPARSE_DESTROY_MAT_DESCR(ptr_t *descrA); int CUSPARSE_SET_MAT_TYPE(ptr_t *descrA, int *type); int CUSPARSE_GET_MAT_TYPE(const ptr_t *descrA); int CUSPARSE_SET_MAT_FILL_MODE(ptr_t *descrA, int *fillMode); int CUSPARSE_GET_MAT_FILL_MODE(const ptr_t *descrA); int CUSPARSE_SET_MAT_DIAG_TYPE(ptr_t *descrA, int *diagType); int CUSPARSE_GET_MAT_DIAG_TYPE(const ptr_t *descrA); int CUSPARSE_SET_MAT_INDEX_BASE(ptr_t *descrA, int *base); int CUSPARSE_GET_MAT_INDEX_BASE(const ptr_t *descrA); int CUSPARSE_CREATE_SOLVE_ANALYSIS_INFO(ptr_t *info); int CUSPARSE_DESTROY_SOLVE_ANALYSIS_INFO(ptr_t *info); //int CUSPARSE_SAXPYI(ptr_t *handle, // int *nnz, // const float *alpha, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_DAXPYI(ptr_t *handle, // int *nnz, // const double *alpha, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_CAXPYI(ptr_t *handle, // int *nnz, // const cuComplex *alpha, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_ZAXPYI(ptr_t *handle, // int *nnz, // const cuDoubleComplex *alpha, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_SDOTI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // float *result, // int *idxBase); // //int CUSPARSE_DDOTI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // double *result, // int *idxBase); // //int CUSPARSE_CDOTI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // cuComplex *result, // int *idxBase); // //int CUSPARSE_ZDOTI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // cuDoubleComplex *result, // int *idxBase); // //int CUSPARSE_CDOTCI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // cuComplex *result, // int *idxBase); // //int CUSPARSE_ZDOTCI(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // const ptr_t *y, // cuDoubleComplex *result, // int *idxBase); // //int CUSPARSE_SGTHR(ptr_t *handle, // int *nnz, // const ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_DGTHR(ptr_t *handle, // int *nnz, // const ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_CGTHR(ptr_t *handle, // int *nnz, // const ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_ZGTHR(ptr_t *handle, // int *nnz, // const ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_SGTHRZ(ptr_t *handle, // int *nnz, // ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_DGTHRZ(ptr_t *handle, // int *nnz, // ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_CGTHRZ(ptr_t *handle, // int *nnz, // ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_ZGTHRZ(ptr_t *handle, // int *nnz, // ptr_t *y, // ptr_t *xVal, // const ptr_t *xInd, // int *idxBase); // //int CUSPARSE_SSCTR(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_DSCTR(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_CSCTR(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // //int CUSPARSE_ZSCTR(ptr_t *handle, // int *nnz, // const ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // int *idxBase); // // //int CUSPARSE_SROTI(ptr_t *handle, // int *nnz, // ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // const float *c, // const float *s, // int *idxBase); // //int CUSPARSE_DROTI(ptr_t *handle, // int *nnz, // ptr_t *xVal, // const ptr_t *xInd, // ptr_t *y, // const double *c, // const double *s, // int *idxBase); //int CUSPARSE_SCSRMV(ptr_t *handle, // int *transA, // int *m, // int *n, // int *nnz, // const float *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *x, // const float *beta, // ptr_t *y); //int CUSPARSE_DCSRMV(ptr_t *handle, // int *transA, // int *m, // int *n, // int *nnz, // const double *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *x, // const double *beta, // ptr_t *y); //int CUSPARSE_CCSRMV(ptr_t *handle, // int *transA, // int *m, // int *n, // int *nnz, // const cuComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *x, // const cuComplex *beta, // ptr_t *y); //int CUSPARSE_ZCSRMV(ptr_t *handle, // int *transA, // int *m, // int *n, // int *nnz, // const cuDoubleComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *x, // const cuDoubleComplex *beta, // ptr_t *y); //int CUSPARSE_SCSRSV_ANALYSIS(ptr_t *handle, // int *transA, // int *m, // int *nnz, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info); //int CUSPARSE_DCSRSV_ANALYSIS(ptr_t *handle, // int *transA, // int *m, // int *nnz, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info); //int CUSPARSE_CCSRSV_ANALYSIS(ptr_t *handle, // int *transA, // int *m, // int *nnz, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info); //int CUSPARSE_ZCSRSV_ANALYSIS(ptr_t *handle, // int *transA, // int *m, // int *nnz, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info); //int CUSPARSE_SCSRSV_SOLVE(ptr_t *handle, // int *transA, // int *m, // const float *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info, // const ptr_t *x, // ptr_t *y); //int CUSPARSE_DCSRSV_SOLVE(ptr_t *handle, // int *transA, // int *m, // const double *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info, // const ptr_t *x, // ptr_t *y); //int CUSPARSE_CCSRSV_SOLVE(ptr_t *handle, // int *transA, // int *m, // const cuComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info, // const ptr_t *x, // ptr_t *y); //int CUSPARSE_ZCSRSV_SOLVE(ptr_t *handle, // int *transA, // int *m, // const cuDoubleComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // ptr_t *info, // const ptr_t *x, // ptr_t *y); //int CUSPARSE_SCSRMM(ptr_t *handle, // int *transA, // int *m, // int *n, // int *k, // int *nnz, // const float *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *B, // int *ldb, // const float *beta, // ptr_t *C, // int *ldc); // //int CUSPARSE_DCSRMM(ptr_t *handle, // int *transA, // int *m, // int *n, // int *k, // int *nnz, // const double *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *B, // int *ldb, // const double *beta, // ptr_t *C, // int *ldc); // //int CUSPARSE_CCSRMM(ptr_t *handle, // int *transA, // int *m, // int *n, // int *k, // int *nnz, // const cuComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *B, // int *ldb, // const cuComplex *beta, // ptr_t *C, // int *ldc); // //int CUSPARSE_ZCSRMM(ptr_t *handle, // int *transA, // int *m, // int *n, // int *k, // int *nnz, // const cuDoubleComplex *alpha, // const ptr_t *descrA, // const ptr_t *csrValA, // const ptr_t *csrRowPtrA, // const ptr_t *csrColIndA, // const ptr_t *B, // int *ldb, // const cuDoubleComplex *beta, // ptr_t *C, // int *ldc); int CUSPARSE_SCSRSM_ANALYSIS(ptr_t *handle, int *transA, int *m, int *nnz, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info); int CUSPARSE_DCSRSM_ANALYSIS(ptr_t *handle, int *transA, int *m, int *nnz, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info); int CUSPARSE_CCSRSM_ANALYSIS(ptr_t *handle, int *transA, int *m, int *nnz, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info); int CUSPARSE_ZCSRSM_ANALYSIS(ptr_t *handle, int *transA, int *m, int *nnz, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info); int CUSPARSE_SCSRSM_SOLVE(ptr_t *handle, int *transA, int *m, int *n, const float *alpha, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info, const ptr_t *x, int *ldx, ptr_t *y, int *ldy); int CUSPARSE_DCSRSM_SOLVE(ptr_t *handle, int *transA, int *m, int *n, const double *alpha, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info, const ptr_t *x, int *ldx, ptr_t *y, int *ldy); int CUSPARSE_CCSRSM_SOLVE(ptr_t *handle, int *transA, int *m, int *n, const cuComplex *alpha, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info, const ptr_t *x, int *ldx, ptr_t *y, int *ldy); int CUSPARSE_ZCSRSM_SOLVE(ptr_t *handle, int *transA, int *m, int *n, const cuDoubleComplex *alpha, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *info, const ptr_t *x, int *ldx, ptr_t *y, int *ldy); int CUSPARSE_SGTSV(ptr_t *handle, int *m, int *n, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *B, int *ldb); int CUSPARSE_DGTSV(ptr_t *handle, int *m, int *n, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *B, int *ldb); int CUSPARSE_CGTSV(ptr_t *handle, int *m, int *n, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *B, int *ldb); int CUSPARSE_ZGTSV(ptr_t *handle, int *m, int *n, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *B, int *ldb); int CUSPARSE_SGTSV_STRIDEDBATCH(ptr_t *handle, int *m, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *x, int *batchCount, int *batchStride); int CUSPARSE_DGTSV_STRIDEDBATCH(ptr_t *handle, int *m, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *x, int *batchCount, int *batchStride); int CUSPARSE_CGTSV_STRIDEDBATCH(ptr_t *handle, int *m, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *x, int *batchCount, int *batchStride); int CUSPARSE_ZGTSV_STRIDEDBATCH(ptr_t *handle, int *m, const ptr_t *dl, const ptr_t *d, const ptr_t *du, ptr_t *x, int *batchCount, int *batchStride); int CUSPARSE_SNNZ(ptr_t *handle, int *dirA, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, ptr_t *nnzPerRowCol, int *nnzTotal); int CUSPARSE_DNNZ(ptr_t *handle, int *dirA, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, ptr_t *nnzPerRowCol, int *nnzTotal); int CUSPARSE_CNNZ(ptr_t *handle, int *dirA, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, ptr_t *nnzPerRowCol, int *nnzTotal); int CUSPARSE_ZNNZ(ptr_t *handle, int *dirA, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, ptr_t *nnzPerRowCol, int *nnzTotal); int CUSPARSE_SDENSE2CSR(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerRow, ptr_t *csrValA, ptr_t *csrRowPtrA, ptr_t *csrColIndA); int CUSPARSE_DDENSE2CSR(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerRow, ptr_t *csrValA, ptr_t *csrRowPtrA, ptr_t *csrColIndA); int CUSPARSE_CDENSE2CSR(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerRow, ptr_t *csrValA, ptr_t *csrRowPtrA, ptr_t *csrColIndA); int CUSPARSE_ZDENSE2CSR(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerRow, ptr_t *csrValA, ptr_t *csrRowPtrA, ptr_t *csrColIndA); int CUSPARSE_SCSR2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *A, int *lda); int CUSPARSE_DCSR2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *A, int *lda); int CUSPARSE_CCSR2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *A, int *lda); int CUSPARSE_ZCSR2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *csrValA, const ptr_t *csrRowPtrA, const ptr_t *csrColIndA, ptr_t *A, int *lda); int CUSPARSE_SDENSE2CSC(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerCol, ptr_t *cscValA, ptr_t *cscRowIndA, ptr_t *cscColPtrA); int CUSPARSE_DDENSE2CSC(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerCol, ptr_t *cscValA, ptr_t *cscRowIndA, ptr_t *cscColPtrA); int CUSPARSE_CDENSE2CSC(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerCol, ptr_t *cscValA, ptr_t *cscRowIndA, ptr_t *cscColPtrA); int CUSPARSE_ZDENSE2CSC(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *A, int *lda, const ptr_t *nnzPerCol, ptr_t *cscValA, ptr_t *cscRowIndA, ptr_t *cscColPtrA); int CUSPARSE_SCSC2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *cscValA, const ptr_t *cscRowIndA, const ptr_t *cscColPtrA, ptr_t *A, int *lda); int CUSPARSE_DCSC2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *cscValA, const ptr_t *cscRowIndA, const ptr_t *cscColPtrA, ptr_t *A, int *lda); int CUSPARSE_CCSC2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *cscValA, const ptr_t *cscRowIndA, const ptr_t *cscColPtrA, ptr_t *A, int *lda); int CUSPARSE_ZCSC2DENSE(ptr_t *handle, int *m, int *n, const ptr_t *descrA, const ptr_t *cscValA, const ptr_t *cscRowIndA, const ptr_t *cscColPtrA, ptr_t *A, int *lda); int CUSPARSE_XCOO2CSR(ptr_t *handle, const ptr_t *cooRowInd, int *nnz, int *m, ptr_t *csrRowPtr, int *idxBase); int CUSPARSE_XCSR2COO(ptr_t *handle, const ptr_t *csrRowPtr, int *nnz, int *m, ptr_t *cooRowInd, int *idxBase); /* int CUSPARSE_SCSR2CSC(ptr_t *handle, int *m, int *n, int *nnz, const ptr_t *csrVal, const ptr_t *csrRowPtr, const ptr_t *csrColInd, ptr_t *cscVal, ptr_t *cscRowInd, ptr_t *cscColPtr, int *copyValues, int *idxBase); int CUSPARSE_DCSR2CSC(ptr_t *handle, int *m, int *n, int *nnz, const ptr_t *csrVal, const ptr_t *csrRowPtr, const ptr_t *csrColInd, ptr_t *cscVal, ptr_t *cscRowInd, ptr_t *cscColPtr, int *copyValues, int *idxBase); int CUSPARSE_CCSR2CSC(ptr_t *handle, int *m, int *n, int *nnz, const ptr_t *csrVal, const ptr_t *csrRowPtr, const ptr_t *csrColInd, ptr_t *cscVal, ptr_t *cscRowInd, ptr_t *cscColPtr, int *copyValues, int *idxBase); int CUSPARSE_ZCSR2CSC(ptr_t *handle, int *m, int *n, int *nnz, const ptr_t *csrVal, const ptr_t *csrRowPtr, const ptr_t *csrColInd, ptr_t *cscVal, ptr_t *cscRowInd, ptr_t *cscColPtr, int *copyValues, int *idxBase); */ #if defined(__cplusplus) } #endif /* __cplusplus */