Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-15 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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
- Remove
accelerate.hppheader that clash with Accelerate.hpp in non case sensitive OS (#593 We don’t consider it an API break since this header was rarely used.
Added
- Support for Python slice, tuple and list indexing for
std::vectorbindings (#592) - ROS: jrl_cmakmodules dependency + kilted CI (#602)
Fixed
- Fix partly the support of the change of API of GeneralizedEigenSolver in Eigen 5+ (#594)
- Fix Eigen decompositions and solvers for Eigen 5 (#596)
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, which was a mistake (#504)
[3.9.0] - 2024-08-31
Changed
File truncated at 100 lines see the full file
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-08-12 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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]
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
Added
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, 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)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged eigenpy at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 3.12.0 |
| License | BSD |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Efficient bindings between Numpy and Eigen using Boost.Python |
| Checkout URI | https://github.com/stack-of-tasks/eigenpy.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-08-12 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Tags | python numpy boost eigen bindings python3-library boost-python |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
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, SVD and QR decompositions
- 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:
optionaltypes,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
Docker
docker run --rm -it ghcr.io/stack-of-tasks/eigenpy:devel
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
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]
[3.12.0] - 2025-08-12
Added
- Add additional decompositions and solvers from Eigen (#571)
Added
- Docker images
ghcr.io/stack-of-tasks/eigenpy(#575)
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_PACKAGEto 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
deprecationTypeToPyObjdefinition to avoid linking error (#512)
[3.10.0] - 2024-09-26
Added
-
GenericMapPythonVisitor/StdMapPythonVisitorcan now take an extra visitor argument in theexpose()method, similar toStdVectorPythonVisitor
Changed
- Move
GenericMapPythonVisitorto its own headereigenpy/map.hpp - Rename
overload_base_get_item_for_std_maptooverload_base_get_item_for_map, move out ofeigenpy::detailsnamespace - Move
EmptyPythonVisitorto 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
GenericMapPythonVisitorfor 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
StdMapPythonVisitorout ofeigenpy::pythonnamespace, 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)
File truncated at 100 lines see the full file