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

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] any remaining issues blocking beta1, speak up!*From*: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>*Date*: Sat, 3 Jul 2010 10:52:56 -0400*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=MPhEADnm/rTb2RelP9QYzZgPJnJCZCKpBE4ssypw2pU=; b=SrBZeVThdxkLlNZE45xqWQKRFNGpPoaOHh4Z2Z3ilagbu6kFcZlEhY/in56FAx4nGo cZu1hPd3rEn+jJaupqSEvmkYpM4rYjCMtNStFohXkHYX8jHygQQnRz2JEdyR3SUBRqix zPLKzYNN6SQ+2ct8d5wJGe/Bv3ULkyzEAaOiE=*Domainkey-signature*: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=WYSrc6RwfV/UdZ9ELyZ0WuVRmtShkwZcSufIKi08CT3jj9OkxEP2s1NcjKAv6loxV0 UK8YK9aQy6zW0zT/6fLOzr00RXz5dgU33yDdxnar3l2+j/45Z/FK7Sz8tEkWw9LSIuYk a8CSVAPwqloMUmr9Y4j+QP1gpGK+fH3ERP3d8=

I really can't reproduce on linux x86-64 with GCC 4.3. I tried compiling with -fstrict-aliasing and also with -O2 I tried both your versions, reading the program's return value like this: ##### 10:53:39 ~/build/eigen$ g++-4.3 z.cpp -o z -I ~/eigen -O2 && ./z && echo "zero" zero Benoit 2010/7/3 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>: > no warning. > > > here is an simpler version: > > #include <iostream> > #include <Eigen/Dense> > > int main() > { > Eigen::Matrix<float,1,1> v; > v.setOnes(); > return (v.cwiseAbs()-v).sum(); > } > > I have also simplified CwiseBinaryOp, such that the coeff(int) > function is directly implemented in CwiseBinaryOp (not in the base > class CwiseBinaryOpImpl) and such that it simply does: > > return m_rhs.coeff(0); > > which, in this example, should return v.coeff(0) == 1; > > (so the left hand side and the functor are not used, but I remove > them then the issue disappear). > > I've also changed the functor by an object of type: > > struct foo { > foo() : x(1) {} > int x; > }; > > just be sure the issue does not come from our empty functors. No success. > > If the left hand side (here v.cwiseAbs(), which is not used) is nested > by reference, then the issue disappear. > > Also, m_rhs().data() is wrong. > > ... > > gael > > On Sat, Jul 3, 2010 at 3:55 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote: >> Can you try compiling with >> >> -Wstrict-aliasing=1 >> >> indeed, the default value is 3, and 1 is the most aggressive warning >> level. It could however report a lot of false positives. According to >> `man gcc`. >> >> Benoit >> >> 2010/7/3 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>: >>> here is a simplified version: >>> >>> #include <iostream> >>> #include <Eigen/Dense> >>> >>> template<typename A, typename B> EIGEN_DONT_INLINE int foo(const A& a, >>> const B& b) >>> { >>> return (a - b).sum() <= 0; >>> } >>> >>> int main() >>> { >>> Eigen::Matrix<float,1,1> v; >>> v.setOnes(); >>> return foo(v.colwise().maxCoeff(),v); >>> } >>> >>> which, again, fails with gcc-4.3 + strict-aliasing only.... >>> investigating to see if I can find a workaround. >>> >>> gael >>> >>> On Sat, Jul 3, 2010 at 1:03 PM, Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx> wrote: >>>> 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 >>>>> >>>>> Hello, >>>>> >>>>> 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 >>>>> example: >>>>> >>>>> #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 >>>>> produces: >>>>> >>>>> 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 >>>>> /scratch/1/users/jitse/work/c/eigen/eigenfoo) >>>>> 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 >>>>> warnings. >>>>> >>>>> Over to the gurus! >>>>> >>>>> Cheers, >>>>> Jitse >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > >

**Follow-Ups**:**Re: [eigen] any remaining issues blocking beta1, speak up!***From:*Benoit Jacob

**References**:**[eigen] any remaining issues blocking beta1, speak up!***From:*Benoit Jacob

**Re: [eigen] any remaining issues blocking beta1, speak up!***From:*Jitse Niesen

**Re: [eigen] any remaining issues blocking beta1, speak up!***From:*Gael Guennebaud

**Re: [eigen] any remaining issues blocking beta1, speak up!***From:*Benoit Jacob

**Re: [eigen] any remaining issues blocking beta1, speak up!***From:*Gael Guennebaud

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] any remaining issues blocking beta1, speak up!** - Next by Date:
**Re: [eigen] any remaining issues blocking beta1, speak up!** - Previous by thread:
**Re: [eigen] any remaining issues blocking beta1, speak up!** - Next by thread:
**Re: [eigen] any remaining issues blocking beta1, speak up!**

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