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

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


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/