Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-25 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg ([#545)(https://github.com/stack-of-tasks/eigenpy/pull/545))
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
- Remove CMake CMP0167 warnings (#487)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-25 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg ([#545)(https://github.com/stack-of-tasks/eigenpy/pull/545))
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
- Remove CMake CMP0167 warnings (#487)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.10.3 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/nim65s/eigenpy.git |
VCS Type | git |
VCS Version | ros |
Last Updated | 2025-02-20 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
[3.7.0] - 2024-06-11
Added
[3.6.0] - 2024-06-05
Added
- Added a deprecation call policy shortcut (#466)
Fixed
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-03 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
- Add robotpkg as source repository to apt:
sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg
EOF
- You need to run at least one apt update to fetch the package descriptions:
sudo apt update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#547)
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg (#545)
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
- Add compatibility with jrl-cmakemodules workspace (#485)
File truncated at 100 lines see the full file
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-25 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg ([#545)(https://github.com/stack-of-tasks/eigenpy/pull/545))
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
- Remove CMake CMP0167 warnings (#487)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
coal | |
moveit_ros_planning_interface | |
pinocchio |
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-25 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg ([#545)(https://github.com/stack-of-tasks/eigenpy/pull/545))
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
- Remove CMake CMP0167 warnings (#487)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.11.0 |
License | BSD |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-25 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
- Justin Carpentier
- Nicolas Mansard
EigenPy — Versatile and efficient Python bindings between Numpy and Eigen
EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.
EigenPy provides:
- full memory sharing between Numpy and Eigen, avoiding memory allocation
- full support Eigen::Ref avoiding memory allocation
- full support of the Eigen::Tensor module
- exposition of the Geometry module of Eigen for easy code prototyping
- standard matrix decomposion routines of Eigen such as the Cholesky decomposition (SVD and QR decompositions can be added)
- full support of SWIG objects
- full support of runtime declaration of Numpy scalar types
- extended API to expose several STL types and some of their Boost equivalents:
optional
types,std::pair
, maps, variants… - full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)
Installation
The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.
Conda
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binaries.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
Build
Build instruction can be found here
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (Inria): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (Inria): Conda integration
- Wilson Jallet (Inria/LAAS-CNRS): core developer
- Joris Vaillant (Inria): core developer and manager of the project
If you have taken part in the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[3.11.0] - 2025-04-25
Added
- Add user-defined literal ““_a for bp::arg ([#545)(https://github.com/stack-of-tasks/eigenpy/pull/545))
Fixed
- Fix handling of non sorted sparse matrix (#538)
Changed
- Update clang-format standard to C++11, reformat code
[3.10.3] - 2025-02-11
Added
- Add
BUILDING_ROS2_PACKAGE
to generate ament specific file (#530)
Changed
- Modernize doxygen documentation (#533)
[3.10.2] - 2025-01-13
Fixed
- Fix Python library linkage for Debug build on Windows (#514)
- Fix np.ones when dtype is a custom user type (#525)
[3.10.1] - 2024-10-30
Added
- Add Pixi support (#444)
Fixed
- Don’t use C++14 feature (#510)
- Add inline to
deprecationTypeToPyObj
definition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor
/StdMapPythonVisitor
can now take an extra visitor argument in theexpose()
method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitor
to its own headereigenpy/map.hpp
- Rename
overload_base_get_item_for_std_map
tooverload_base_get_item_for_map
, move out ofeigenpy::details
namespace - Move
EmptyPythonVisitor
to new headereigenpy/utils/empty-visitor.hpp
[3.9.1] - 2024-09-19
Added
- Add test returning reference of std::pair (#503)
- Add more general visitor
GenericMapPythonVisitor
for map types testboost::unordered_map<std::string, int>
(#504) - Support for non-default-contructible types in map types (#504)
- Add type_info helpers (#502)
- Add NumPy 2 support (#496)
Changed
- Move
StdMapPythonVisitor
out ofeigenpy::python
namespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
- The
exposeStdVectorEigenSpecificType()
template function now takes the vector allocator as a template parameter (#500)
Added
- Add bp::dist to std::map converter (#499)
[3.8.2] - 2024-08-26
Fixed
- Fix function signature on Windows (#494)
[3.8.1] - 2024-08-25
Fixed
- Fix compatibility issue with NumPy 2.x on Windows (#492)
[3.8.0] - 2024-08-14
Added
Fixed
- Remove CMake CMP0167 warnings (#487)
File truncated at 100 lines see the full file