Re: [eigen] Problem with g++-4.4 -O2 and Eigen3

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


ok, so just like before, the default value of the multiplicative
factor alpha gets transformed into a -1.... that's really crasy.

Does that change anything if explicitly put a multiplicative factor, e.g.:

C.noalias() = 1 * A * B;

Regarding the matrix size, this is because for matrices smaller than 8
we use another product implementation.


gael


On Sun, May 29, 2011 at 2:45 PM, Boris Lau
<lau@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi folks,
>
> after updating Eigen to the newest version in the repository, I now compile
> my code with Eigen including the "no inlining of the GEBP product kernel"
> change by Gael.
>
> However, still a simple matrix multiplication goes awfully wrong when using
> -O2 in g++-4.4:
>
> // a code snipped
> Eigen::Matrix<double,3,9> J;
> J.fill(1.0);
> Eigen::Matrix<double,3,9> Jprime = Eigen::Matrix3d::Identity() * J;
> std::cout << "J\n" << J << std::endl;
> std::cout << "Jprime\n" << Jprime << std::endl;
>
> // output
> J
> 1 1 1 1 1 1 1 1 1
> 1 1 1 1 1 1 1 1 1
> 1 1 1 1 1 1 1 1 1
> Jprime
> -1 -1 -1 -1 -1 -1 -1 -1 -1
> -1 -1 -1 -1 -1 -1 -1 -1 -1
> -1 -1 -1 -1 -1 -1 -1 -1 -1
>
> As for Hauke, this only occurs only when used deeper inside a project, in
> the main function it works alright. The problem also occurs for a matrix
> size of 3x8, and disappears for 3x7 and smaller. Using dynamic sizes does
> not help.
> I also could not find a working order of .o files during linking.
>
> Maybe the no onlining fix didn't go far enough?
>
> Boris
>
> --
> Boris Lau
>
> Albert-Ludwigs-University Freiburg
> Institute of Computer Science, Autonomous Intelligent Systems Group
> Georges-Koehler-Allee 079, D-79110 Freiburg, Germany
>
> Building 079, Room 1005
> Phone: +49 761 203-8012 | Mobile: +49 174 9436758
> http://www.informatik.uni-freiburg.de/~lau
>
>
>



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