33 #ifndef EIGEN_PARTIALLU_LAPACK_H    34 #define EIGEN_PARTIALLU_LAPACK_H    42 #define EIGEN_LAPACKE_LU_PARTPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX) \    43 template<int StorageOrder> \    44 struct 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; \    83 #endif // EIGEN_PARTIALLU_LAPACK_H #define lapack_complex_float
#define EIGEN_LAPACKE_LU_PARTPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX)
std::complex< float > scomplex
std::complex< double > dcomplex
#define lapack_complex_double