This bugzilla service is closed. All entries have been migrated to
Bug 756 - M.log().exp() != M for random 3x3 double matrix
Summary: M.log().exp() != M for random 3x3 double matrix
Status: NEW
Alias: None
Product: Eigen
Classification: Unclassified
Component: Unsupported modules (show other bugs)
Version: 3.2
Hardware: x86 - general Windows
: Normal Unknown
Assignee: Nobody
Depends on:
Reported: 2014-03-10 13:45 UTC by Hauke Heibel
Modified: 2019-12-04 13:03 UTC (History)
1 user (show)

Sample code to reproduce the issue (1.03 KB, text/plain)
2014-03-10 13:45 UTC, Hauke Heibel
no flags Details

Description Hauke Heibel 2014-03-10 13:45:36 UTC
Created attachment 426 [details]
Sample code to reproduce the issue

The code attached in the sample file does not work, i.e.

  Matrix3d M = Matrix3d::Random();
  bool is_approx = M.isApprox(M.log().exp(), 1e-5);

evaluates to is_approx == false.

The weird part is that the general interpolation works (see attached example).

My compiler is VC11, 64bit.
Comment 1 Hauke Heibel 2014-03-10 15:15:44 UTC
Sample output on VC11:

M.log().exp() == M evaluates to false

  M             =  -0.997497   0.617481  -0.299417
  0.127171   0.170019   0.791925
 -0.613392 -0.0402539    0.64568

  M.log().exp() =   1.06493 -0.256064   0.38904
-0.419692  0.401644  0.609377
 0.040232 -0.317098  0.863866

interp(M,N,s) == interp(N,M,1-s) evaluates to true
Comment 2 Jitse Niesen 2014-03-15 21:54:29 UTC
I tried it on Debian computer and found that with GCC 4.8.2, 4.7.3, 4.6.4, 4.5.3 and 4.4.7 and with LLVM 3.3 it works fine (compiled with -O3 in 64 bits). However, Christoph said that his version of GCC (I think 4.7.1) generates an Internal Compiler Error.
Comment 3 Nobody 2019-12-04 13:03:49 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance:

Note You need to log in before you can comment on or make changes to this bug.