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

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


Hi,

Have you tried it on Linux/GCC? I finally tried that on Visual Studio 2005 and it also works fine. The problem only happend on Linux with GCC. 

Thank you,

Philippe

-----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/