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);
119 return LAPACKE_dgetrf(layout, m, n, A_data, lda, ipiv_data);
129 return LAPACKE_sgetri(layout, n, A_data, lda, ipiv_data);
139 return LAPACKE_dgetri(layout, n, A_data, lda, ipiv_data);
151 return LAPACKE_sgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
163 return LAPACKE_dgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
176 return LAPACKE_sgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
189 return LAPACKE_dgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
206 return LAPACKE_sgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
207 U_data, ldu, VT_data, ldvt, superb);
224 return LAPACKE_dgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
225 U_data, ldu, VT_data, ldvt, superb);
228 #ifdef BUILD_CUDA_MODULE 229 template <
typename scalar_t>
230 inline cusolverStatus_t getrf_cuda_buffersize(
231 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
233 return CUSOLVER_STATUS_INTERNAL_ERROR;
236 template <
typename scalar_t>
237 inline cusolverStatus_t getrf_cuda(cusolverDnHandle_t handle,
246 return CUSOLVER_STATUS_INTERNAL_ERROR;
249 template <
typename scalar_t>
250 inline cusolverStatus_t getrs_cuda(cusolverDnHandle_t handle,
251 cublasOperation_t trans,
254 const scalar_t* A_data,
256 const int* ipiv_data,
261 return CUSOLVER_STATUS_INTERNAL_ERROR;
264 template <
typename scalar_t>
265 inline cusolverStatus_t geqrf_cuda_buffersize(
266 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
268 return CUSOLVER_STATUS_INTERNAL_ERROR;
271 template <
typename scalar_t>
272 inline cusolverStatus_t geqrf_cuda(cusolverDnHandle_t handle,
282 return CUSOLVER_STATUS_INTERNAL_ERROR;
285 template <
typename scalar_t>
286 inline cusolverStatus_t ormqr_cuda_buffersize(cusolverDnHandle_t handle,
287 cublasSideMode_t side,
288 cublasOperation_t trans,
296 return CUSOLVER_STATUS_INTERNAL_ERROR;
299 template <
typename scalar_t>
300 inline cusolverStatus_t ormqr_cuda(cusolverDnHandle_t handle,
301 cublasSideMode_t side,
302 cublasOperation_t trans,
315 return CUSOLVER_STATUS_INTERNAL_ERROR;
318 template <
typename scalar_t>
319 inline cusolverStatus_t gesvd_cuda_buffersize(cusolverDnHandle_t handle,
324 return CUSOLVER_STATUS_INTERNAL_ERROR;
327 template <
typename scalar_t>
328 inline cusolverStatus_t gesvd_cuda(cusolverDnHandle_t handle,
345 return CUSOLVER_STATUS_INTERNAL_ERROR;
349 inline cusolverStatus_t getrf_cuda_buffersize<float>(
350 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
351 return cusolverDnSgetrf_bufferSize(handle, m, n, NULL, lda, len);
355 inline cusolverStatus_t getrf_cuda_buffersize<double>(
356 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
357 return cusolverDnDgetrf_bufferSize(handle, m, n, NULL, lda, len);
361 inline cusolverStatus_t getrf_cuda<float>(cusolverDnHandle_t handle,
369 return cusolverDnSgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
374 inline cusolverStatus_t getrf_cuda<double>(cusolverDnHandle_t handle,
382 return cusolverDnDgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
387 inline cusolverStatus_t getrs_cuda<float>(cusolverDnHandle_t handle,
388 cublasOperation_t trans,
393 const int* ipiv_data,
397 return cusolverDnSgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
402 inline cusolverStatus_t getrs_cuda<double>(cusolverDnHandle_t handle,
403 cublasOperation_t trans,
406 const double* A_data,
408 const int* ipiv_data,
412 return cusolverDnDgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
417 inline cusolverStatus_t geqrf_cuda_buffersize<float>(
418 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
419 return cusolverDnSgeqrf_bufferSize(handle, m, n, NULL, lda, len);
423 inline cusolverStatus_t geqrf_cuda_buffersize<double>(
424 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
425 return cusolverDnDgeqrf_bufferSize(handle, m, n, NULL, lda, len);
429 inline cusolverStatus_t geqrf_cuda<float>(cusolverDnHandle_t handle,
438 return cusolverDnSgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
442 inline cusolverStatus_t geqrf_cuda<double>(cusolverDnHandle_t handle,
451 return cusolverDnDgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
455 inline cusolverStatus_t ormqr_cuda_buffersize<float>(cusolverDnHandle_t handle,
456 cublasSideMode_t side,
457 cublasOperation_t trans,
464 return cusolverDnSormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
465 NULL, NULL, ldc, len);
469 inline cusolverStatus_t ormqr_cuda_buffersize<double>(cusolverDnHandle_t handle,
470 cublasSideMode_t side,
471 cublasOperation_t trans,
478 return cusolverDnDormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
479 NULL, NULL, ldc, len);
483 inline cusolverStatus_t ormqr_cuda<float>(cusolverDnHandle_t handle,
484 cublasSideMode_t side,
485 cublasOperation_t trans,
497 return cusolverDnSormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
498 workspace, len, dinfo);
502 inline cusolverStatus_t ormqr_cuda<double>(cusolverDnHandle_t handle,
503 cublasSideMode_t side,
504 cublasOperation_t trans,
516 return cusolverDnDormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
517 workspace, len, dinfo);
521 inline cusolverStatus_t gesvd_cuda_buffersize<float>(cusolverDnHandle_t handle,
525 return cusolverDnSgesvd_bufferSize(handle, m, n, len);
529 inline cusolverStatus_t gesvd_cuda_buffersize<double>(cusolverDnHandle_t handle,
533 return cusolverDnDgesvd_bufferSize(handle, m, n, len);
537 inline cusolverStatus_t gesvd_cuda<float>(cusolverDnHandle_t handle,
553 return cusolverDnSgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
554 ldvt, workspace, len, rwork, dinfo);
558 inline cusolverStatus_t gesvd_cuda<double>(cusolverDnHandle_t handle,
574 return cusolverDnDgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
575 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:167
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:133
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:112
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:193
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:143
void LogError(const char *format, const Args &... args)
Definition: Console.h:176
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:180
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:155
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:211
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:123
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