[eigen] Eigen 3.0-beta1 operator+= problem

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Dear Eigen list,

I decided to evaluate Eigen and (wanting to dive in at the deep end) downloaded Eigen 3.0 beta.  However, I immediately ran into the problem exemplified by the code below, in which using operator+= seems to give a different answer than using operators + and = separately when the rhs is the result of ColPivHouseholderQR::solve().  (The problem did not occur with a plain MatrixXd on the right.)  Is this behaviour a bug, or am I doing something wrong?

Many thanks,
Gavin Band.

// ==== begin code ====

#include <iostream>
#include <Eigen/Dense>

int main()
{
    Eigen::VectorXd pt( 1 ), v1( 1 ), v2( 1 ) ;
    pt << 1 ;
    v1 << 1 ;
    v2 << 1 ;

    Eigen::MatrixXd M( 1, 1 ) ;
    M << 1.0 ;

    Eigen::ColPivHouseholderQR< Eigen::MatrixXd > decomposer( M ) ;

    v1 += decomposer.solve( pt ) ;      //  value is 1 ???
    v2 = v2 + decomposer.solve( pt ) ;  //  value is 2, ok.

    std::cerr << "QR = " << decomposer.matrixQR() << ", v1 = " << v1 << ", v2 = " << v2 << ".\n" ;
}





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/