mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
* fix bug in col-pivoting qr, forgot to swap the colNorms when swapping cols
* add Gael a copyright line
This commit is contained in:
parent
46be9c9ac1
commit
a4fd0aa25b
@ -2,6 +2,7 @@
|
|||||||
// for linear algebra.
|
// for linear algebra.
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
|
// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
|
||||||
|
// Copyright (C) 2009 Gael Guennebaud <g.gael@free.fr>
|
||||||
//
|
//
|
||||||
// Eigen is free software; you can redistribute it and/or
|
// Eigen is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -306,6 +306,7 @@ ColPivotingHouseholderQR<MatrixType>& ColPivotingHouseholderQR<MatrixType>::comp
|
|||||||
cols_transpositions.coeffRef(k) = biggest_col_in_corner;
|
cols_transpositions.coeffRef(k) = biggest_col_in_corner;
|
||||||
if(k != biggest_col_in_corner) {
|
if(k != biggest_col_in_corner) {
|
||||||
m_qr.col(k).swap(m_qr.col(biggest_col_in_corner));
|
m_qr.col(k).swap(m_qr.col(biggest_col_in_corner));
|
||||||
|
std::swap(colSqNorms.coeffRef(k), colSqNorms.coeffRef(biggest_col_in_corner));
|
||||||
++number_of_transpositions;
|
++number_of_transpositions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,9 +116,7 @@ template<typename MatrixType> void qr_verify_assert()
|
|||||||
|
|
||||||
void test_qr_colpivoting()
|
void test_qr_colpivoting()
|
||||||
{
|
{
|
||||||
for(int i = 0; i < 1; i++) {
|
for(int i = 0; i < 1; i++) {
|
||||||
// FIXME : very weird bug here
|
|
||||||
// CALL_SUBTEST( qr(Matrix2f()) );
|
|
||||||
CALL_SUBTEST( qr<MatrixXf>() );
|
CALL_SUBTEST( qr<MatrixXf>() );
|
||||||
CALL_SUBTEST( qr<MatrixXd>() );
|
CALL_SUBTEST( qr<MatrixXd>() );
|
||||||
CALL_SUBTEST( qr<MatrixXcd>() );
|
CALL_SUBTEST( qr<MatrixXcd>() );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user