16 template <
typename scalar_t>
27 template <
typename scalar_t>
37 template <
typename scalar_t>
50 template <
typename scalar_t>
64 template <
typename scalar_t>
90 return LAPACKE_sgetrf(layout, m, n, A_data, lda, ipiv_data);
101 return LAPACKE_dgetrf(layout, m, n, A_data, lda, ipiv_data);
111 return LAPACKE_sgetri(layout, n, A_data, lda, ipiv_data);
121 return LAPACKE_dgetri(layout, n, A_data, lda, ipiv_data);
133 return LAPACKE_sgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
145 return LAPACKE_dgesv(layout, n, m, A_data, lda, ipiv_data, B_data, ldb);
158 return LAPACKE_sgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
171 return LAPACKE_dgels(layout, trans, m, n, nrhs, A_data, lda, B_data, ldb);
188 return LAPACKE_sgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
189 U_data, ldu, VT_data, ldvt, superb);
206 return LAPACKE_dgesvd(layout, jobu, jobvt, m, n, A_data, lda, S_data,
207 U_data, ldu, VT_data, ldvt, superb);
210 #ifdef BUILD_CUDA_MODULE
211 template <
typename scalar_t>
212 inline cusolverStatus_t getrf_cuda_buffersize(
213 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
215 return CUSOLVER_STATUS_INTERNAL_ERROR;
218 template <
typename scalar_t>
219 inline cusolverStatus_t getrf_cuda(cusolverDnHandle_t handle,
228 return CUSOLVER_STATUS_INTERNAL_ERROR;
231 template <
typename scalar_t>
232 inline cusolverStatus_t getrs_cuda(cusolverDnHandle_t handle,
233 cublasOperation_t trans,
236 const scalar_t* A_data,
238 const int* ipiv_data,
243 return CUSOLVER_STATUS_INTERNAL_ERROR;
246 template <
typename scalar_t>
247 inline cusolverStatus_t geqrf_cuda_buffersize(
248 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
250 return CUSOLVER_STATUS_INTERNAL_ERROR;
253 template <
typename scalar_t>
254 inline cusolverStatus_t geqrf_cuda(cusolverDnHandle_t handle,
264 return CUSOLVER_STATUS_INTERNAL_ERROR;
267 template <
typename scalar_t>
268 inline cusolverStatus_t ormqr_cuda_buffersize(cusolverDnHandle_t handle,
269 cublasSideMode_t side,
270 cublasOperation_t trans,
278 return CUSOLVER_STATUS_INTERNAL_ERROR;
281 template <
typename scalar_t>
282 inline cusolverStatus_t ormqr_cuda(cusolverDnHandle_t handle,
283 cublasSideMode_t side,
284 cublasOperation_t trans,
297 return CUSOLVER_STATUS_INTERNAL_ERROR;
300 template <
typename scalar_t>
301 inline cusolverStatus_t gesvd_cuda_buffersize(cusolverDnHandle_t handle,
306 return CUSOLVER_STATUS_INTERNAL_ERROR;
309 template <
typename scalar_t>
310 inline cusolverStatus_t gesvd_cuda(cusolverDnHandle_t handle,
327 return CUSOLVER_STATUS_INTERNAL_ERROR;
331 inline cusolverStatus_t getrf_cuda_buffersize<float>(
332 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
333 return cusolverDnSgetrf_bufferSize(handle, m, n, NULL, lda, len);
337 inline cusolverStatus_t getrf_cuda_buffersize<double>(
338 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
339 return cusolverDnDgetrf_bufferSize(handle, m, n, NULL, lda, len);
343 inline cusolverStatus_t getrf_cuda<float>(cusolverDnHandle_t handle,
351 return cusolverDnSgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
356 inline cusolverStatus_t getrf_cuda<double>(cusolverDnHandle_t handle,
364 return cusolverDnDgetrf(handle, m, n, A_data, lda, workspace, ipiv_data,
369 inline cusolverStatus_t getrs_cuda<float>(cusolverDnHandle_t handle,
370 cublasOperation_t trans,
375 const int* ipiv_data,
379 return cusolverDnSgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
384 inline cusolverStatus_t getrs_cuda<double>(cusolverDnHandle_t handle,
385 cublasOperation_t trans,
388 const double* A_data,
390 const int* ipiv_data,
394 return cusolverDnDgetrs(handle, trans, n, nrhs, A_data, lda, ipiv_data,
399 inline cusolverStatus_t geqrf_cuda_buffersize<float>(
400 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
401 return cusolverDnSgeqrf_bufferSize(handle, m, n, NULL, lda, len);
405 inline cusolverStatus_t geqrf_cuda_buffersize<double>(
406 cusolverDnHandle_t handle,
int m,
int n,
int lda,
int* len) {
407 return cusolverDnDgeqrf_bufferSize(handle, m, n, NULL, lda, len);
411 inline cusolverStatus_t geqrf_cuda<float>(cusolverDnHandle_t handle,
420 return cusolverDnSgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
424 inline cusolverStatus_t geqrf_cuda<double>(cusolverDnHandle_t handle,
433 return cusolverDnDgeqrf(handle, m, n, A, lda, tau, workspace, len, dinfo);
437 inline cusolverStatus_t ormqr_cuda_buffersize<float>(cusolverDnHandle_t handle,
438 cublasSideMode_t side,
439 cublasOperation_t trans,
446 return cusolverDnSormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
447 NULL, NULL, ldc, len);
451 inline cusolverStatus_t ormqr_cuda_buffersize<double>(cusolverDnHandle_t handle,
452 cublasSideMode_t side,
453 cublasOperation_t trans,
460 return cusolverDnDormqr_bufferSize(handle, side, trans, m, n, k, NULL, lda,
461 NULL, NULL, ldc, len);
465 inline cusolverStatus_t ormqr_cuda<float>(cusolverDnHandle_t handle,
466 cublasSideMode_t side,
467 cublasOperation_t trans,
479 return cusolverDnSormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
480 workspace, len, dinfo);
484 inline cusolverStatus_t ormqr_cuda<double>(cusolverDnHandle_t handle,
485 cublasSideMode_t side,
486 cublasOperation_t trans,
498 return cusolverDnDormqr(handle, side, trans, m, n, k, A, lda, tau, C, ldc,
499 workspace, len, dinfo);
503 inline cusolverStatus_t gesvd_cuda_buffersize<float>(cusolverDnHandle_t handle,
507 return cusolverDnSgesvd_bufferSize(handle, m, n, len);
511 inline cusolverStatus_t gesvd_cuda_buffersize<double>(cusolverDnHandle_t handle,
515 return cusolverDnDgesvd_bufferSize(handle, m, n, len);
519 inline cusolverStatus_t gesvd_cuda<float>(cusolverDnHandle_t handle,
535 return cusolverDnSgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
536 ldvt, workspace, len, rwork, dinfo);
540 inline cusolverStatus_t gesvd_cuda<double>(cusolverDnHandle_t handle,
556 return cusolverDnDgesvd(handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT,
557 ldvt, workspace, len, rwork, dinfo);
#define LogError(...)
Definition: Logging.h:48
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:193
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:149
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:137
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:28
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:94
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:162
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:51
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:105
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:17
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:175
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:65
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:115
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:125
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:38
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:83
Definition: PinholeCameraIntrinsic.cpp:16