Re: [eigen] Eigen2 to Eigen3 Migration Path |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
I believe that if we do have full coverage of the Eigen2 API with Eigen3+EIGEN2_SUPPORT this would be fine for our use cases. We would just compile all libraries against EIgen3+EIGEN2_SUPPORT instead of Eigen2.2011/1/13 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:On Thu, Jan 13, 2011 at 12:13 AM, Gael Guennebaud <gael.guennebaud@xxxxxxxxx> wrote:The EIGEN2_SUPPORT way seems much more powerful. Let's be specific. If project A wants to use Eigen3 as well as a lib B which relies on Eigen2 then there are two cases:1 - lib B is a pure template lib (or at least the parts which rely on Eigen2) then EIGEN2_SUPPORT should do the job (we can make it better if needed).2 - lib B is a binary library with a public API involving Eigen2 objects. Then there is still the possibility to recompile B with Eigen3+EIGEN2_SUPPORT.3 - lib B is a binary library without Eigen2 in the public API.. Again, there exists the possibility to recombile B with Eigen3+EIGEN2_SUPPORT. Asumming for a moment we had Eigen:: and Eigen3:: namespaces. This would imply the following things.OK, so let's focus for now on Gael's solution (tell people to use Eigen3 + EIGEN2_SUPPORT) plus my suggestion to make EIGEN2_SUPPORT as complete as possible and validated by the actual eigen2 test suite. At least it doesn't hurt anyone. It's true that if Eigen3 + EIGEN2_SUPPORT were 100% API compatible with Eigen2 then the lack of ABI compatibility wouldn't be a big problem anymore since switching would be virtually costless.
Regarding kdl (http://www.orocos.org/kdl), I tried to compile it against Eigen3+EIGEN2_SUPPORT and the major hickup I am seeing is caused by Map's const-correctness. We should be able to fix that through the plugin by re-enabling the non-const constructor of Maps though I did not properly think this over.Ah, ok. It should be quite easy to allow non-const-correct Map constructors with EIGEN2_SUPPORT. Benoit
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |