33 #ifndef EIGEN_LLT_LAPACKE_H
34 #define EIGEN_LLT_LAPACKE_H
42 namespace lapacke_helpers {
47 template<UpLoType Mode>
48 struct rank_update {};
51 struct rank_update<
Lower> {
52 template<
typename MatrixType,
typename VectorType>
59 struct rank_update<
Upper> {
60 template<
typename MatrixType,
typename VectorType>
62 Transpose<MatrixType> matt(
mat);
71 template<
typename Scalar, UpLoType Mode>
74 template<
typename MatrixType>
84 constexpr
char uplo = Mode ==
Upper ?
'U' :
'L';
85 Scalar*
a = &(
m.coeffRef(0,0));
89 info = (info==0) ? -1 : info>0 ? info-1 :
size;
93 template<
typename MatrixType,
typename VectorType>
96 return rank_update<Mode>::run(
mat, vec, sigma);
108 #define EIGEN_LAPACKE_LLT(EIGTYPE) \
109 template<> struct llt_inplace<EIGTYPE, Lower> : public lapacke_helpers::lapacke_llt<EIGTYPE, Lower> {}; \
110 template<> struct llt_inplace<EIGTYPE, Upper> : public lapacke_helpers::lapacke_llt<EIGTYPE, Upper> {};
117 #undef EIGEN_LAPACKE_LLT
#define EIGEN_LAPACKE_LLT(EIGTYPE)
#define EIGEN_STATIC_ASSERT(X, MSG)
Matrix< float, 1, Dynamic > MatrixType
NumTraits< Scalar >::Real RealScalar
static Index llt_rank_update_lower(MatrixType &mat, const VectorType &vec, const typename MatrixType::RealScalar &sigma)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.