Re: [eigen] cppduals - dual number implementation with Eigen specializations

[ Thread Index | Date Index | More Archives ]

Thanks Michael – this sounds hopeful, which is a pleasant surprise as after discussing the issue on the Ceres mailing list yesterday I was ready to give up. Fortuitous timing!


I’ll take a look at your eigen-expokit and see if I can get that working.




From: Michael Tesch <tesch1@xxxxxxxxx>
Reply to: "eigen@xxxxxxxxxxxxxxxxxxx" <eigen@xxxxxxxxxxxxxxxxxxx>
Date: Wednesday, 4 December 2019 at 11:47
To: "eigen@xxxxxxxxxxxxxxxxxxx" <eigen@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [eigen] cppduals - dual number implementation with Eigen specializations


Hi Toby,


Yes, that's literally my use case too - although I dont use Eigen's Pade' approximation, instead I have (partially, and admittedly somewhat sloppily) ported the great EXPOKIT to Eigen: --  that padm() might work directly with ceres::Jet (but of course would be slower).  See for an example.


To get Eigen's M.exp() to use the Pade approximant for a non-standard type, you might have to create some template trickery.  If you dont convince it that you actually want Pade, it silently falls back to the Sylvester's formula implementation, which I just checked doesn't work with cppduals (it compiles & runs but gives incorrect results - dunno why, didn't investigate).


As a side note, if you want really fast matrix exponential derivatives and have plenty of memory to throw at it:






On Wed, Dec 4, 2019 at 11:35 AM Wood, Tobias <tobias.wood@xxxxxxxxx> wrote:

Hello Michael,


Would I be able to use the Eigen matrix functions, e.g. the matrix exponential, with your library? Literally in the last week I found that the ceres::Jet<> class does not work with the matrix exponential, due to issues with implicit conversions.




Mail converted by MHonArc 2.6.19+