17 template <
typename scalar_t>
29 template <
typename scalar_t>
40 template <
typename scalar_t>
54 template <
typename scalar_t>
68 template <
typename scalar_t>
94 return LAPACKE_sgetrf(layout, m, n, A_data, lda, ipiv_data);
105 return LAPACKE_dgetrf(layout, m, n, A_data, lda, ipiv_data);
115 return LAPACKE_sgetri(layout, n, A_data, lda, ipiv_data);
125 return LAPACKE_dgetri(layout, n, A_data, lda, ipiv_data);
138 return LAPACKE_sgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
151 return LAPACKE_dgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
165 return LAPACKE_sgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
179 return LAPACKE_dgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
197 return LAPACKE_sgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
198 U_data, ldu, VT_data, ldvt, superb);
216 return LAPACKE_dgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
217 U_data, ldu, VT_data, ldvt, superb);
220 #ifdef BUILD_CUDA_MODULE
221 template <
typename scalar_t>
222 inline cusolverStatus_t getrf_cuda_buffersize(
223 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
225 return CUSOLVER_STATUS_INTERNAL_ERROR;
228 template <
typename scalar_t>
229 inline cusolverStatus_t getrf_cuda(cusolverDnHandle_t handle,
238 return CUSOLVER_STATUS_INTERNAL_ERROR;
241 template <
typename scalar_t>
242 inline cusolverStatus_t getrs_cuda(cusolverDnHandle_t handle,
243 cublasOperation_t trans,
246 const scalar_t* A_data,
248 const int* ipiv_data,
253 return CUSOLVER_STATUS_INTERNAL_ERROR;
256 template <
typename scalar_t>
257 inline cusolverStatus_t geqrf_cuda_buffersize(
258 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
260 return CUSOLVER_STATUS_INTERNAL_ERROR;
263 template <
typename scalar_t>
264 inline cusolverStatus_t geqrf_cuda(cusolverDnHandle_t handle,
274 return CUSOLVER_STATUS_INTERNAL_ERROR;
277 template <
typename scalar_t>
278 inline cusolverStatus_t ormqr_cuda_buffersize(cusolverDnHandle_t handle,
279 cublasSideMode_t side,
280 cublasOperation_t trans,
288 return CUSOLVER_STATUS_INTERNAL_ERROR;
291 template <
typename scalar_t>
292 inline cusolverStatus_t ormqr_cuda(cusolverDnHandle_t handle,
293 cublasSideMode_t side,
294 cublasOperation_t trans,
307 return CUSOLVER_STATUS_INTERNAL_ERROR;
310 template <
typename scalar_t>
311 inline cusolverStatus_t gesvd_cuda_buffersize(cusolverDnHandle_t handle,
316 return CUSOLVER_STATUS_INTERNAL_ERROR;
319 template <
typename scalar_t>
320 inline cusolverStatus_t gesvd_cuda(cusolverDnHandle_t handle,
337 return CUSOLVER_STATUS_INTERNAL_ERROR;
341 inline cusolverStatus_t getrf_cuda_buffersize<float>(
342 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
343 return cusolverDnSgetrf_bufferSize(handle, m, n,
NULL, lda, len);
347 inline cusolverStatus_t getrf_cuda_buffersize<double>(
348 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
349 return cusolverDnDgetrf_bufferSize(handle, m, n,
NULL, lda, len);
353 inline cusolverStatus_t getrf_cuda<float>(cusolverDnHandle_t handle,
361 return cusolverDnSgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
366 inline cusolverStatus_t getrf_cuda<double>(cusolverDnHandle_t handle,
374 return cusolverDnDgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
379 inline cusolverStatus_t getrs_cuda<float>(cusolverDnHandle_t handle,
380 cublasOperation_t trans,
385 const int* ipiv_data,
389 return cusolverDnSgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
394 inline cusolverStatus_t getrs_cuda<double>(cusolverDnHandle_t handle,
395 cublasOperation_t trans,
398 const double* A_data,
400 const int* ipiv_data,
404 return cusolverDnDgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
409 inline cusolverStatus_t geqrf_cuda_buffersize<float>(
410 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
411 return cusolverDnSgeqrf_bufferSize(handle, m, n,
NULL, lda, len);
415 inline cusolverStatus_t geqrf_cuda_buffersize<double>(
416 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
417 return cusolverDnDgeqrf_bufferSize(handle, m, n,
NULL, lda, len);
421 inline cusolverStatus_t geqrf_cuda<float>(cusolverDnHandle_t handle,
430 return cusolverDnSgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
434 inline cusolverStatus_t geqrf_cuda<double>(cusolverDnHandle_t handle,
443 return cusolverDnDgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
447 inline cusolverStatus_t ormqr_cuda_buffersize<float>(cusolverDnHandle_t handle,
448 cublasSideMode_t side,
449 cublasOperation_t trans,
456 return cusolverDnSormqr_bufferSize(handle, side, trans, m, n, k,
NULL, lda,
461 inline cusolverStatus_t ormqr_cuda_buffersize<double>(cusolverDnHandle_t handle,
462 cublasSideMode_t side,
463 cublasOperation_t trans,
470 return cusolverDnDormqr_bufferSize(handle, side, trans, m, n, k,
NULL, lda,
475 inline cusolverStatus_t ormqr_cuda<float>(cusolverDnHandle_t handle,
476 cublasSideMode_t side,
477 cublasOperation_t trans,
489 return cusolverDnSormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
490 workspace, len, dinfo);
494 inline cusolverStatus_t ormqr_cuda<double>(cusolverDnHandle_t handle,
495 cublasSideMode_t side,
496 cublasOperation_t trans,
508 return cusolverDnDormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
509 workspace, len, dinfo);
513 inline cusolverStatus_t gesvd_cuda_buffersize<float>(cusolverDnHandle_t handle,
517 return cusolverDnSgesvd_bufferSize(handle, m, n, len);
521 inline cusolverStatus_t gesvd_cuda_buffersize<double>(cusolverDnHandle_t handle,
525 return cusolverDnDgesvd_bufferSize(handle, m, n, len);
529 inline cusolverStatus_t gesvd_cuda<float>(cusolverDnHandle_t handle,
545 return cusolverDnSgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
546 ldvt, workspace, len, rwork, dinfo);
550 inline cusolverStatus_t gesvd_cuda<double>(cusolverDnHandle_t handle,
566 return cusolverDnDgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
567 ldvt, workspace, len, rwork, dinfo);
CLOUDVIEWER_CPU_LINALG_INT getrf_cpu< float >(int layout, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, float *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
CLOUDVIEWER_CPU_LINALG_INT gels_cpu< float >(int layout, char trans, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT nrhs, float *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, float *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT gesv_cpu< double >(int layout, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT m, double *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data, double *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT gesvd_cpu< float >(int layout, char jobu, char jobvt, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, float *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, float *S_data, float *U_data, CLOUDVIEWER_CPU_LINALG_INT ldu, float *VT_data, CLOUDVIEWER_CPU_LINALG_INT ldvt, float *superb)
CLOUDVIEWER_CPU_LINALG_INT gels_cpu(int matrix_layout, char trans, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT nrhs, scalar_t *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, scalar_t *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT getri_cpu< double >(int layout, CLOUDVIEWER_CPU_LINALG_INT n, double *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
CLOUDVIEWER_CPU_LINALG_INT getri_cpu(int layout, CLOUDVIEWER_CPU_LINALG_INT n, scalar_t *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
CLOUDVIEWER_CPU_LINALG_INT gesvd_cpu(int matrix_layout, char jobu, char jobvt, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, scalar_t *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, scalar_t *S_data, scalar_t *U_data, CLOUDVIEWER_CPU_LINALG_INT ldu, scalar_t *VT_data, CLOUDVIEWER_CPU_LINALG_INT ldvt, scalar_t *superb)
CLOUDVIEWER_CPU_LINALG_INT gels_cpu< double >(int layout, char trans, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT nrhs, double *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, double *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT gesv_cpu< float >(int layout, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT m, float *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data, float *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT getrf_cpu< double >(int layout, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, double *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
CLOUDVIEWER_CPU_LINALG_INT getrf_cpu(int layout, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, scalar_t *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
CLOUDVIEWER_CPU_LINALG_INT gesvd_cpu< double >(int layout, char jobu, char jobvt, CLOUDVIEWER_CPU_LINALG_INT m, CLOUDVIEWER_CPU_LINALG_INT n, double *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, double *S_data, double *U_data, CLOUDVIEWER_CPU_LINALG_INT ldu, double *VT_data, CLOUDVIEWER_CPU_LINALG_INT ldvt, double *superb)
CLOUDVIEWER_CPU_LINALG_INT gesv_cpu(int layout, CLOUDVIEWER_CPU_LINALG_INT n, CLOUDVIEWER_CPU_LINALG_INT m, scalar_t *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data, scalar_t *B_data, CLOUDVIEWER_CPU_LINALG_INT ldb)
CLOUDVIEWER_CPU_LINALG_INT getri_cpu< float >(int layout, CLOUDVIEWER_CPU_LINALG_INT n, float *A_data, CLOUDVIEWER_CPU_LINALG_INT lda, CLOUDVIEWER_CPU_LINALG_INT *ipiv_data)
Generic file read and write utility for python interface.