10#include "lapack_common.h"
11#include <Eigen/Cholesky>
14EIGEN_LAPACK_FUNC(potrf,(
char* uplo,
int *n, RealScalar *pa,
int *lda,
int *info))
17 if(UPLO(*uplo)==INVALID) *info = -1;
18 else if(*n<0) *info = -2;
19 else if(*lda<std::max(1,*n)) *info = -4;
23 return xerbla_(SCALAR_SUFFIX_UP
"POTRF", &e, 6);
26 Scalar* a =
reinterpret_cast<Scalar*
>(pa);
29 if(UPLO(*uplo)==UP) ret = int(internal::llt_inplace<Scalar, Upper>::blocked(A));
30 else ret = int(internal::llt_inplace<Scalar, Lower>::blocked(A));
41EIGEN_LAPACK_FUNC(potrs,(
char* uplo,
int *n,
int *nrhs, RealScalar *pa,
int *lda, RealScalar *pb,
int *ldb,
int *info))
44 if(UPLO(*uplo)==INVALID) *info = -1;
45 else if(*n<0) *info = -2;
46 else if(*nrhs<0) *info = -3;
47 else if(*lda<std::max(1,*n)) *info = -5;
48 else if(*ldb<std::max(1,*n)) *info = -7;
52 return xerbla_(SCALAR_SUFFIX_UP
"POTRS", &e, 6);
55 Scalar* a =
reinterpret_cast<Scalar*
>(pa);
56 Scalar* b =
reinterpret_cast<Scalar*
>(pb);
62 A.triangularView<
Upper>().adjoint().solveInPlace(B);
63 A.triangularView<
Upper>().solveInPlace(B);
67 A.triangularView<
Lower>().solveInPlace(B);
68 A.triangularView<
Lower>().adjoint().solveInPlace(B);
@ Lower
Definition Constants.h:209
@ Upper
Definition Constants.h:211