Added option to use LAPACK QR with -DUSE_LAPACK_QR
parent
71ddf0b755
commit
078f07650f
|
|
@ -649,7 +649,7 @@ void householder(Matrix &A, size_t k) {
|
||||||
/** in-place householder */
|
/** in-place householder */
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
#ifdef GT_USE_LAPACK
|
#ifdef GT_USE_LAPACK
|
||||||
#ifdef YA_BLAS
|
#ifdef USE_LAPACK_QR
|
||||||
void householder(Matrix &A) {
|
void householder(Matrix &A) {
|
||||||
__CLPK_integer m = A.size1();
|
__CLPK_integer m = A.size1();
|
||||||
__CLPK_integer n = A.size2();
|
__CLPK_integer n = A.size2();
|
||||||
|
|
|
||||||
|
|
@ -267,7 +267,7 @@ void householder_(Matrix& A, size_t k);
|
||||||
void householder(Matrix& A, size_t k);
|
void householder(Matrix& A, size_t k);
|
||||||
|
|
||||||
#ifdef GT_USE_LAPACK
|
#ifdef GT_USE_LAPACK
|
||||||
#ifdef YA_BLAS
|
#ifdef USE_LAPACK_QR
|
||||||
/**
|
/**
|
||||||
* Householder tranformation, zeros below diagonal
|
* Householder tranformation, zeros below diagonal
|
||||||
* @return nothing: in place !!!
|
* @return nothing: in place !!!
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,8 @@ void Gaussian::WhitenInPlace(MatrixColMajor& H) const {
|
||||||
// General QR, see also special version in Constrained
|
// General QR, see also special version in Constrained
|
||||||
SharedDiagonal Gaussian::QR(Matrix& Ab, boost::optional<vector<int>&> firstZeroRows) const {
|
SharedDiagonal Gaussian::QR(Matrix& Ab, boost::optional<vector<int>&> firstZeroRows) const {
|
||||||
|
|
||||||
|
assert(false);
|
||||||
|
|
||||||
// get size(A) and maxRank
|
// get size(A) and maxRank
|
||||||
// TODO: really no rank problems ?
|
// TODO: really no rank problems ?
|
||||||
size_t m = Ab.size1(), n = Ab.size2()-1;
|
size_t m = Ab.size1(), n = Ab.size2()-1;
|
||||||
|
|
@ -234,7 +236,13 @@ SharedDiagonal Gaussian::QRColumnWise(ublas::matrix<double, ublas::column_major>
|
||||||
|
|
||||||
// Perform in-place Householder
|
// Perform in-place Householder
|
||||||
#ifdef GT_USE_LAPACK
|
#ifdef GT_USE_LAPACK
|
||||||
|
#ifdef USE_LAPACK_QR
|
||||||
|
assert(firstZeroRows);
|
||||||
|
householderColMajor(Ab);
|
||||||
|
#elif USE_DAVIS_QR
|
||||||
|
#else
|
||||||
householder_denseqr_colmajor(Ab, &firstZeroRows[0]);
|
householder_denseqr_colmajor(Ab, &firstZeroRows[0]);
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
Matrix Ab_rowWise = Ab;
|
Matrix Ab_rowWise = Ab;
|
||||||
householder(Ab_rowWise, maxRank);
|
householder(Ab_rowWise, maxRank);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue