34 #ifndef EIGEN_QR_MKL_H 35 #define EIGEN_QR_MKL_H 45 #define EIGEN_MKL_QR_NOPIV(EIGTYPE, MKLTYPE, MKLPREFIX) \ 46 template<typename MatrixQR, typename HCoeffs> \ 47 void householder_qr_inplace_blocked(MatrixQR& mat, HCoeffs& hCoeffs, \ 48 typename MatrixQR::Index maxBlockSize=32, \ 49 EIGTYPE* tempData = 0) \ 51 lapack_int m = mat.rows(); \ 52 lapack_int n = mat.cols(); \ 53 lapack_int lda = mat.outerStride(); \ 54 lapack_int matrix_order = (MatrixQR::IsRowMajor) ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \ 55 LAPACKE_##MKLPREFIX##geqrf( matrix_order, m, n, (MKLTYPE*)mat.data(), lda, (MKLTYPE*)hCoeffs.data()); \ 56 hCoeffs.adjointInPlace(); \ 69 #endif // EIGEN_QR_MKL_H iterative scaling algorithm to equilibrate rows and column norms in matrices
#define EIGEN_MKL_QR_NOPIV(EIGTYPE, MKLTYPE, MKLPREFIX)