33#ifndef EIGEN_PARTIALLU_LAPACK_H
34#define EIGEN_PARTIALLU_LAPACK_H
42#define EIGEN_LAPACKE_LU_PARTPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX) \
43template<int StorageOrder> \
44struct partial_lu_impl<EIGTYPE, StorageOrder, lapack_int> \
47 static lapack_int blocked_lu(Index rows, Index cols, EIGTYPE* lu_data, Index luStride, lapack_int* row_transpositions, lapack_int& nb_transpositions, lapack_int maxBlockSize=256) \
49 EIGEN_UNUSED_VARIABLE(maxBlockSize);\
50 lapack_int matrix_order, first_zero_pivot; \
51 lapack_int m, n, lda, *ipiv, info; \
54 matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
55 lda = convert_index<lapack_int>(luStride); \
57 ipiv = row_transpositions; \
58 m = convert_index<lapack_int>(rows); \
59 n = convert_index<lapack_int>(cols); \
60 nb_transpositions = 0; \
62 info = LAPACKE_##LAPACKE_PREFIX##getrf( matrix_order, m, n, (LAPACKE_TYPE*)a, lda, ipiv ); \
64 for(int i=0;i<m;i++) { ipiv[i]--; if (ipiv[i]!=i) nb_transpositions++; } \
66 eigen_assert(info >= 0); \
69 first_zero_pivot = info; \
70 return first_zero_pivot; \
#define EIGEN_LAPACKE_LU_PARTPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX)
Definition PartialPivLU_LAPACKE.h:42
Scalar Scalar * c
Definition benchVecAdd.cpp:17
#define lapack_complex_double
Definition lapacke.h:92
#define lapack_complex_float
Definition lapacke.h:76
RealScalar s
Definition level1_cplx_impl.h:126
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
std::complex< double > dcomplex
Definition MKL_support.h:125
std::complex< float > scomplex
Definition MKL_support.h:126
Definition BandTriangularSolver.h:13