RE: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix

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


It's very strange. Now I recompiled all my application and the inverse is working correctly. I guess this is something about the CMake cache that mixed different versions of Eigen that I was testing (beta1 vs trunk). I will consider the problem solved from now :-). 

Thank you for your support,

Philippe

-----Message d'origine-----
De : Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] De la part de Gael Guennebaud
Envoyé : 23 septembre 2010 12:52
À : eigen@xxxxxxxxxxxxxxxxxxx
Objet : Re: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix

yes, I've also tried gcc 4.41, no problem. If I remember correctly,
this is not the first time we have an issue with Ubuntu's GCC that we
cannot reproduce. Can you try my little example ? Could you also
precise your compilation flags and your platform (32 or 64 bits) ?

gael

On Thu, Sep 23, 2010 at 6:29 PM,  <hamelin.philippe@xxxxxxx> wrote:
> Sorry I missed the last line of your message. So you tried many versions of GCC. It's strange...
>
> -----Message d'origine-----
> De : Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] De la part de Gael Guennebaud
> Envoyé : 23 septembre 2010 12:27
> À : eigen@xxxxxxxxxxxxxxxxxxx
> Objet : Re: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix
>
> sorry but I cannot reproduce, here is my test program:
>
> #include <iostream>
> #include <Eigen/LU>
> using namespace Eigen;
>
> int main()
> {
>  typedef Matrix<double,6,6> Matrix6d;
>  std::cout << Matrix6d::Identity().inverse() << "\n";
>
>  return 0;
> }
>
> I tried gcc 4.3, 4.5, 32 and 64 bits......
>
>
> gael
>
> On Tue, Sep 21, 2010 at 8:55 PM,  <hamelin.philippe@xxxxxxx> wrote:
>> Hi,
>>
>> After debugging the code, I may add some more information. This is
>> effectively an infinite loop in function:
>>
>> template <typename Scalar, typename Index, int Mode, bool Conjugate, int
>> TriStorageOrder>
>> struct
>> ei_triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>
>> More specifically, in this loop:
>>
>>         for(Index i2=start; i2<end; i2+=mc)
>>         {
>>           const Index actual_mc = std::min(mc,end-i2);
>>           if (actual_mc>0)
>>           {
>>             pack_lhs(blockA, &tri(i2, IsLower ? k2 : k2-kc), triStride,
>> actual_kc, actual_mc);
>>
>>             gebp_kernel(_other+i2, otherStride, blockA, blockB, actual_mc,
>> actual_kc, cols, Scalar(-1));
>>           }
>>         }
>> The value of "mc" is zero, so the for loop never ends.
>>
>> Philippe
>> ________________________________
>> De : Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] De la part de
>> hamelin.philippe@xxxxxxx
>> Envoyé : 21 septembre 2010 14:37
>> À : eigen@xxxxxxxxxxxxxxxxxxx
>> Objet : [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix
>>
>> Hi,
>> I'm getting problem inverting an identity matrix with Eigen3, let say :
>>
>> Matrix6d::Identity().inverse()
>>
>> With the beta1 version, it produces an "Arithmetic Exception". With the
>> trunk, it's mostly an infinite loop (at least I cancelled it after about 30
>> seconds). Does anybody can reproduce that problem? I'm on Ubuntu with GCC
>> 4.4.3.
>>
>> Thank you,
>>
>> ------------------------------------
>> Philippe Hamelin, ing. jr, M. Ing
>> Chercheur / Researcher
>>
>> T: 450-652-8499 x2198
>> F: 450-652-1316
>>
>> Expertise robotique et civil
>> Institut de recherche d'Hydro-Québec (IREQ)
>> 1740, boul. Lionel-Boulet
>> Varennes (QC) J3X 1S1, Canada
>>
>
>
>
>
>





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