RE: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix
• To: <eigen@xxxxxxxxxxxxxxxxxxx>
• Subject: RE: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix
• From: <hamelin.philippe@xxxxxxx>
• Date: Tue, 21 Sep 2010 14:55:26 -0400
• Thread-topic: [eigen] Eigen3 dev branch - Problem inverting 6x6 identity matrix

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