8 #ifndef MUELU_QR_INTERFACEEX_DECL_HPP_ 9 #define MUELU_QR_INTERFACEEX_DECL_HPP_ 12 #include <Teuchos_ArrayRCP.hpp> 24 template <
class Scalar,
class LocalOrdinal>
78 template <
class Scalar,
class LocalOrdinal>
84 template <
class LocalOrdinal>
86 LocalOrdinal myAggSize,
int intFineNSDim,
ArrayRCP<std::complex<double> > &localQR,
88 LocalOrdinal &workSize, LocalOrdinal &info);
92 #define MUELU_QR_INTERFACEEX_SHORT QR_InterfaceEx(const size_t nullSpaceDimension)
Constructor.
Interface to the Teuchos wrappers for LAPACK's QR.
LocalOrdinal info_
(out) =0: success; =i, i<0: i-th argument has illegal value
Teuchos::LAPACK< LocalOrdinal, Scalar > lapack_
Teuchos LAPACK wrapper.
LocalOrdinal internalNSDim_
Namespace for MueLu classes and methods.
ArrayRCP< Scalar > tau_
Internal LAPACK variables.
void ExtractQ(LocalOrdinal const &myAggSize, ArrayRCP< Scalar > &localQR)
Calculate the Q factor.
ArrayRCP< Scalar > work_
Temporary work space.
void Compute(LocalOrdinal const &myAggSize, ArrayRCP< Scalar > &localQR)
Compute the QR factorization.
std::vector< LocalOrdinal > nonZeroCols_
virtual ~QR_InterfaceEx()
Destructor.
void LapackQR(Teuchos::LAPACK< LocalOrdinal, Scalar > &lapack, LocalOrdinal myAggSize, int intFineNSDim, ArrayRCP< Scalar > &localQR, ArrayRCP< Scalar > &tau, ArrayRCP< Scalar > &work, LocalOrdinal &workSize, LocalOrdinal &info)
Non-member templated function to handle extracting Q from QR factorization.
LocalOrdinal NSDim_
Dimension of nullspace.
bool isZeroNspColumn(LocalOrdinal const &myAggSize, ArrayRCP< Scalar > &localQR, LocalOrdinal nspCol)
LocalOrdinal workSize_
Length of work vectors. Must be at least dimension of nullspace.
ArrayRCP< Scalar > internalLocalQR_
internal local QR (without zero columns)