C++ BSD-2-Clause

eigenpy

Efficient bindings between Numpy and Eigen using Boost.Python

S

stack-of-tasks

Dernière activité 14 sept. 2026
stack-of-tasks/eigenpy

211

étoiles

51

forks

24

issues ouvertes

bindingsboostboost-pythoneigennumpypythonpython3-library

Ce README est souvent en anglais.

EigenPy — Versatile and efficient Python bindings between Numpy and Eigen

License Build Status Conda Downloads Conda Version PyPI version Code style: black Linter: ruff

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: optional types, std::pair, maps, variants...
  • full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)

Table of contents

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

  1. Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
  1. 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
  1. You need to run at least one apt update to fetch the package descriptions:
sudo apt update

Install EigenPy

  1. 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

Contribution

If you want to ask a question, report a bug, request a new feature or contributing with a pull requests please, follow the contribution guideline.

Core-dev team

The currently active core developers of EigenPy are:

Credits

In addition to the core dev team, the following people have also been involved in the development of EigenPy and are warmly thanked for their contributions:

Acknowledgments

The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.

Projets similaires

The fundamental package for scientific computing with Python.

Pythonnumpypython
Nnumpy
32,9 k étoiles12,9 k

nanobind: tiny and efficient C++/Python bindings

C++bindingscpp17pybind11
Wwjakob
3,7 k étoiles329

C++ implementation of the Python Numpy library

C++algorithmsc-plus-pluscpp
Ddpilger26
4 k étoiles575