35 template <
typename scalar_t>
46 template <
typename scalar_t>
56 template <
typename scalar_t>
69 template <
typename scalar_t>
83 template <
typename scalar_t>
109 return LAPACKE_sgetrf(layout, m, n, A_data, lda, ipiv_data);
120 return LAPACKE_dgetrf(layout, m, n, A_data, lda, ipiv_data);
130 return LAPACKE_sgetri(layout, n, A_data, lda, ipiv_data);
140 return LAPACKE_dgetri(layout, n, A_data, lda, ipiv_data);
152 return LAPACKE_sgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
164 return LAPACKE_dgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
177 return LAPACKE_sgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
190 return LAPACKE_dgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
207 return LAPACKE_sgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
208 U_data, ldu, VT_data, ldvt, superb);
225 return LAPACKE_dgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
226 U_data, ldu, VT_data, ldvt, superb);
229 #ifdef BUILD_CUDA_MODULE 230 template <
typename scalar_t>
231 inline cusolverStatus_t getrf_cuda_buffersize(
232 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
234 return CUSOLVER_STATUS_INTERNAL_ERROR;
237 template <
typename scalar_t>
238 inline cusolverStatus_t getrf_cuda(cusolverDnHandle_t handle,
247 return CUSOLVER_STATUS_INTERNAL_ERROR;
250 template <
typename scalar_t>
251 inline cusolverStatus_t getrs_cuda(cusolverDnHandle_t handle,
252 cublasOperation_t trans,
255 const scalar_t* A_data,
257 const int* ipiv_data,
262 return CUSOLVER_STATUS_INTERNAL_ERROR;
265 template <
typename scalar_t>
266 inline cusolverStatus_t geqrf_cuda_buffersize(
267 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
269 return CUSOLVER_STATUS_INTERNAL_ERROR;
272 template <
typename scalar_t>
273 inline cusolverStatus_t geqrf_cuda(cusolverDnHandle_t handle,
283 return CUSOLVER_STATUS_INTERNAL_ERROR;
286 template <
typename scalar_t>
287 inline cusolverStatus_t ormqr_cuda_buffersize(cusolverDnHandle_t handle,
288 cublasSideMode_t side,
289 cublasOperation_t trans,
297 return CUSOLVER_STATUS_INTERNAL_ERROR;
300 template <
typename scalar_t>
301 inline cusolverStatus_t ormqr_cuda(cusolverDnHandle_t handle,
302 cublasSideMode_t side,
303 cublasOperation_t trans,
316 return CUSOLVER_STATUS_INTERNAL_ERROR;
319 template <
typename scalar_t>
320 inline cusolverStatus_t gesvd_cuda_buffersize(cusolverDnHandle_t handle,
325 return CUSOLVER_STATUS_INTERNAL_ERROR;
328 template <
typename scalar_t>
329 inline cusolverStatus_t gesvd_cuda(cusolverDnHandle_t handle,
346 return CUSOLVER_STATUS_INTERNAL_ERROR;
350 inline cusolverStatus_t getrf_cuda_buffersize<float>(
351 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
352 return cusolverDnSgetrf_bufferSize(handle, m, n, NULL, lda, len);
356 inline cusolverStatus_t getrf_cuda_buffersize<double>(
357 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
358 return cusolverDnDgetrf_bufferSize(handle, m, n, NULL, lda, len);
362 inline cusolverStatus_t getrf_cuda<float>(cusolverDnHandle_t handle,
370 return cusolverDnSgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
375 inline cusolverStatus_t getrf_cuda<double>(cusolverDnHandle_t handle,
383 return cusolverDnDgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
388 inline cusolverStatus_t getrs_cuda<float>(cusolverDnHandle_t handle,
389 cublasOperation_t trans,
394 const int* ipiv_data,
398 return cusolverDnSgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
403 inline cusolverStatus_t getrs_cuda<double>(cusolverDnHandle_t handle,
404 cublasOperation_t trans,
407 const double* A_data,
409 const int* ipiv_data,
413 return cusolverDnDgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
418 inline cusolverStatus_t geqrf_cuda_buffersize<float>(
419 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
420 return cusolverDnSgeqrf_bufferSize(handle, m, n, NULL, lda, len);
424 inline cusolverStatus_t geqrf_cuda_buffersize<double>(
425 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
426 return cusolverDnDgeqrf_bufferSize(handle, m, n, NULL, lda, len);
430 inline cusolverStatus_t geqrf_cuda<float>(cusolverDnHandle_t handle,
439 return cusolverDnSgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
443 inline cusolverStatus_t geqrf_cuda<double>(cusolverDnHandle_t handle,
452 return cusolverDnDgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
456 inline cusolverStatus_t ormqr_cuda_buffersize<float>(cusolverDnHandle_t handle,
457 cublasSideMode_t side,
458 cublasOperation_t trans,
465 return cusolverDnSormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
466 NULL, NULL, ldc, len);
470 inline cusolverStatus_t ormqr_cuda_buffersize<double>(cusolverDnHandle_t handle,
471 cublasSideMode_t side,
472 cublasOperation_t trans,
479 return cusolverDnDormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
480 NULL, NULL, ldc, len);
484 inline cusolverStatus_t ormqr_cuda<float>(cusolverDnHandle_t handle,
485 cublasSideMode_t side,
486 cublasOperation_t trans,
498 return cusolverDnSormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
499 workspace, len, dinfo);
503 inline cusolverStatus_t ormqr_cuda<double>(cusolverDnHandle_t handle,
504 cublasSideMode_t side,
505 cublasOperation_t trans,
517 return cusolverDnDormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
518 workspace, len, dinfo);
522 inline cusolverStatus_t gesvd_cuda_buffersize<float>(cusolverDnHandle_t handle,
526 return cusolverDnSgesvd_bufferSize(handle, m, n, len);
530 inline cusolverStatus_t gesvd_cuda_buffersize<double>(cusolverDnHandle_t handle,
534 return cusolverDnDgesvd_bufferSize(handle, m, n, len);
538 inline cusolverStatus_t gesvd_cuda<float>(cusolverDnHandle_t handle,
554 return cusolverDnSgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
555 ldvt, workspace, len, rwork, dinfo);
559 inline cusolverStatus_t gesvd_cuda<double>(cusolverDnHandle_t handle,
575 return cusolverDnDgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
576 ldvt, workspace, len, rwork, dinfo);
OPEN3D_CPU_LINALG_INT getrf_cpu< float >(int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:102
OPEN3D_CPU_LINALG_INT gels_cpu< float >(int layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, float *A_data, OPEN3D_CPU_LINALG_INT lda, float *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:168
OPEN3D_CPU_LINALG_INT getri_cpu< double >(int layout, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:134
OPEN3D_CPU_LINALG_INT getrf_cpu< double >(int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:113
OPEN3D_CPU_LINALG_INT gesvd_cpu< float >(int layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, float *S_data, float *U_data, OPEN3D_CPU_LINALG_INT ldu, float *VT_data, OPEN3D_CPU_LINALG_INT ldvt, float *superb)
Definition: LapackWrapper.h:194
OPEN3D_CPU_LINALG_INT gesv_cpu< float >(int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, float *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:144
OPEN3D_CPU_LINALG_INT getrf_cpu(int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:36
OPEN3D_CPU_LINALG_INT gels_cpu< double >(int layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, double *A_data, OPEN3D_CPU_LINALG_INT lda, double *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:181
#define LogError(...)
Definition: Console.h:79
OPEN3D_CPU_LINALG_INT gesv_cpu< double >(int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, double *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:156
Definition: PinholeCameraIntrinsic.cpp:35
OPEN3D_CPU_LINALG_INT gesvd_cpu< double >(int layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, double *S_data, double *U_data, OPEN3D_CPU_LINALG_INT ldu, double *VT_data, OPEN3D_CPU_LINALG_INT ldvt, double *superb)
Definition: LapackWrapper.h:212
OPEN3D_CPU_LINALG_INT getri_cpu< float >(int layout, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:124
OPEN3D_CPU_LINALG_INT gesvd_cpu(int matrix_layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, scalar_t *S_data, scalar_t *U_data, OPEN3D_CPU_LINALG_INT ldu, scalar_t *VT_data, OPEN3D_CPU_LINALG_INT ldvt, scalar_t *superb)
Definition: LapackWrapper.h:84
OPEN3D_CPU_LINALG_INT gels_cpu(int matrix_layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:70
OPEN3D_CPU_LINALG_INT gesv_cpu(int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb)
Definition: LapackWrapper.h:57
OPEN3D_CPU_LINALG_INT getri_cpu(int layout, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
Definition: LapackWrapper.h:47