34#ifndef EIGEN_QR_LAPACKE_H
35#define EIGEN_QR_LAPACKE_H
38#include "./InternalHeaderCheck.h"
44namespace lapacke_helpers {
46template <
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> {};
66EIGEN_LAPACKE_HH_QR(
double)
67EIGEN_LAPACKE_HH_QR(
float)
68EIGEN_LAPACKE_HH_QR(std::complex<double>)
69EIGEN_LAPACKE_HH_QR(std::complex<float>)
71#undef EIGEN_LAPACKE_HH_QR
Namespace containing all symbols from the Eigen library.
Definition Core:137