[eigen] Problem with g++-4.4 -O2 and Eigen3 |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
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