Go to the documentation of this file.
33 #ifndef EIGEN_LLT_LAPACKE_H
34 #define EIGEN_LLT_LAPACKE_H
42 #define EIGEN_LAPACKE_LLT(EIGTYPE, BLASTYPE, LAPACKE_PREFIX) \
43 template<> struct lapacke_llt<EIGTYPE> \
45 template<typename MatrixType> \
46 static inline Index potrf(MatrixType& m, char uplo) \
48 lapack_int matrix_order; \
49 lapack_int size, lda, info, StorageOrder; \
51 eigen_assert(m.rows()==m.cols()); \
53 size = convert_index<lapack_int>(m.rows()); \
54 StorageOrder = MatrixType::Flags&RowMajorBit?RowMajor:ColMajor; \
55 matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
56 a = &(m.coeffRef(0,0)); \
57 lda = convert_index<lapack_int>(m.outerStride()); \
59 info = LAPACKE_##LAPACKE_PREFIX##potrf( matrix_order, uplo, size, (BLASTYPE*)a, lda ); \
60 info = (info==0) ? -1 : info>0 ? info-1 : size; \
64 template<> struct llt_inplace<EIGTYPE, Lower> \
66 template<typename MatrixType> \
67 static Index blocked(MatrixType& m) \
69 return lapacke_llt<EIGTYPE>::potrf(m, 'L'); \
71 template<typename MatrixType, typename VectorType> \
72 static Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
73 { return Eigen::internal::llt_rank_update_lower(mat, vec, sigma); } \
75 template<> struct llt_inplace<EIGTYPE, Upper> \
77 template<typename MatrixType> \
78 static Index blocked(MatrixType& m) \
80 return lapacke_llt<EIGTYPE>::potrf(m, 'U'); \
82 template<typename MatrixType, typename VectorType> \
83 static Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
85 Transpose<MatrixType> matt(mat); \
86 return llt_inplace<EIGTYPE, Lower>::rankUpdate(matt, vec.conjugate(), sigma); \
99 #endif // EIGEN_LLT_LAPACKE_H
Namespace containing all symbols from the Eigen library.
static const double d[K][N]
#define EIGEN_LAPACKE_LLT(EIGTYPE, BLASTYPE, LAPACKE_PREFIX)
#define lapack_complex_float
std::complex< float > scomplex
std::complex< double > dcomplex
#define lapack_complex_double
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:55