34 #ifndef EIGEN_QR_LAPACKE_H 35 #define EIGEN_QR_LAPACKE_H 38 #include "./InternalHeaderCheck.h" 44 namespace lapacke_helpers {
46 template <
typename MatrixQR,
typename HCoeffs>
48 static void run(MatrixQR& mat, HCoeffs& hCoeffs,
Index = 32,
typename MatrixQR::Scalar* = 0) {
49 lapack_int m = to_lapack(mat.rows());
50 lapack_int n = to_lapack(mat.cols());
51 lapack_int lda = to_lapack(mat.outerStride());
52 lapack_int matrix_order = lapack_storage_of(mat);
53 geqrf(matrix_order, m, n, to_lapack(mat.data()), lda, to_lapack(hCoeffs.data()));
54 hCoeffs.adjointInPlace();
61 #define EIGEN_LAPACKE_HH_QR(EIGTYPE) \ 62 template <typename MatrixQR, typename HCoeffs> \ 63 struct householder_qr_inplace_blocked<MatrixQR, HCoeffs, EIGTYPE, true> \ 64 : public lapacke_helpers::lapacke_hqr<MatrixQR, HCoeffs> {}; 66 EIGEN_LAPACKE_HH_QR(
double)
67 EIGEN_LAPACKE_HH_QR(
float)
68 EIGEN_LAPACKE_HH_QR(std::complex<double>)
69 EIGEN_LAPACKE_HH_QR(std::complex<float>)
71 #undef EIGEN_LAPACKE_HH_QR 77 #endif // EIGEN_QR_LAPACKE_H Namespace containing all symbols from the Eigen library.
Definition: B01_Experimental.dox:1
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:82