-
Notifications
You must be signed in to change notification settings - Fork 484
Open
Labels
Description
🚀 Feature
Replace boost::variant by boost::variant::variant2 to modernize the code base.
This is not mandatory and will break the public API so this feature will be implemented for Pinocchio > 4.
Motivation
Simplify the code base:
- Use lambda instead of
Boost::fusionand custom visitors - Remove
BOOST_MPL_LIMIT_LIST_SIZEandBOOST_MPL_LIMIT_VECTOR_SIZEdefine - Remove
Boost::fusion
Improve build time
crba, rnea, aba and kinematics build benchmark:
- variant
- 58.79s user 2.71s system 293% cpu 20.936 total
- 908K src/libpinocchio_default.so.3.8.0
- Memory: 1992M
- variant2
- 46.83s user 2.14s system 255% cpu 19.148 total
- 896K src/libpinocchio_default.so.3.8.0
- Memory: 1716M
Total build time is reduced, but parallel build time is not because aba.cpp is mainly Eigen3 template instantiation bound.
Alternatives
No response
Additional context
No response
Checklist
- I have checked that there is no similar issue/discussion in the repo.
ManifoldFR and jcarpent