Re: [eigen] any remaining issues blocking beta1, speak up!

[ Thread Index | Date Index | More Archives ]

On Sat, 3 Jul 2010, Benoit Jacob wrote:

All is in the title. Can we release beta1 this Saturday?

There is also the stable_norm_1 test that is failing on gcc 4.3. This seems to be a mistake in Eigen itself.

See the previous email I wrote:

On Thu, 1 Jul 2010, Jitse Niesen wrote:

Date: Thu, 1 Jul 2010 11:02:51 +0100 (BST)
From: Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>
To: Eigen mailinglist <eigen@xxxxxxxxxxxxxxxxxxx>
Subject: Failing stable_norm_1 test


I just spent some time on the stable_norm_1 test, which fails on both my
computer and Gael's computer when using gcc 4.3. It looks similar to the issue
which you solved by the empty struct magic (well done!).

The details are as follows. I constructed the following (fairly) minimal test

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

int main()
  Eigen::Matrix<float,1,1> v;
  v(0,0) = 0.1;
  std::cerr << "blue norm = " << v.colwise().blueNorm() << "\n";
  std::cerr << "status = " <<
v.colwise().hypotNorm().isApprox(v.colwise().norm(), 1e-4) << "\n";

When compiling with g++ (version 4.3.3) -O2 -g and running under valgrind, this

Use of uninitialised value of size 4
    at 0x8048F28: bool
Eigen::DenseBase<Eigen::PartialReduxExpr<Eigen::Matrix<float, 1, 1, 0, 1, 1>,
Eigen::ei_member_hypotNorm<float>, 0>
>::isApprox<Eigen::PartialReduxExpr<Eigen::Matrix<float, 1, 1, 0, 1, 1>,
Eigen::ei_member_norm<float>, 0>
>(Eigen::DenseBase<Eigen::PartialReduxExpr<Eigen::Matrix<float, 1, 1, 0, 1, 1>,
Eigen::ei_member_norm<float>, 0> > const&, float) const (in
    by 0x8048AF5: main (in /scratch/1/users/jitse/work/c/eigen/eigenfoo)

and the same error with the same stack trace a bit later, at 0x8048F2A.

The result of the program is also wrong: it should print status = 1, but it
says status = 0.

The error goes away when compiling with -fno-strict-aliasing.
I tried compiling with -Wstrict-aliasing=2 but that does not produce any

Over to the gurus!


Mail converted by MHonArc 2.6.19+