README.md 3.6 KB
Newer Older
Justin Carpentier's avatar
Justin Carpentier committed
1
EigenPy — Efficient Python bindings between Numpy/Eigen
Justin Carpentier's avatar
Justin Carpentier committed
2
======
Nicolas Mansard's avatar
Nicolas Mansard committed
3

Justin Carpentier's avatar
Justin Carpentier committed
4
5
6
7
8
<p align="center">
  <a href="https://opensource.org/licenses/BSD-2-Clause"><img src="https://img.shields.io/badge/License-BSD%202--Clause-green.svg" alt="License"/></a>
  <a href="https://travis-ci.org/stack-of-tasks/eigenpy"><img src="https://travis-ci.org/stack-of-tasks/eigenpy.svg?branch=master" alt="Build Status"/></a>
  <a href="https://anaconda.org/conda-forge/eigenpy"><img src="https://img.shields.io/conda/dn/conda-forge/eigenpy.svg" alt="Conda Downloads"/></a>
  <a href="https://anaconda.org/conda-forge/eigenpy"><img src="https://img.shields.io/conda/vn/conda-forge/eigenpy.svg" alt="Conda Version"/></a>
Justin Carpentier's avatar
Justin Carpentier committed
9
  <a href="https://badge.fury.io/py/eigenpy"><img src="https://badge.fury.io/py/eigenpy.svg" alt="PyPI version"></a>
Justin Carpentier's avatar
Justin Carpentier committed
10
</p>
Justin Carpentier's avatar
Justin Carpentier committed
11

Justin Carpentier's avatar
Justin Carpentier committed
12
**EigenPy** is an open source framework which allows to bind the famous [Eigen](http://eigen.tuxfamily.org) C++ library in Python.
13

Guilhem Saurel's avatar
Guilhem Saurel committed
14
**EigenPy** provides:
Justin Carpentier's avatar
Justin Carpentier committed
15
16
17
 - full memory sharing between Numpy and Eigen avoiding memory allocation
 - full support Eigen::Ref avoiding memory allocation
 - exposition of the Geometry module of Eigen for easy code prototyping
Justin Carpentier's avatar
Justin Carpentier committed
18
 - standard matrix decomposion routines of Eigen such as the Cholesky decomposition, SVD decomposition, QR decomposition, and etc.
Justin Carpentier's avatar
Justin Carpentier committed
19
 - full support of SWIG objects
Nicolas Mansard's avatar
Nicolas Mansard committed
20

Justin Carpentier's avatar
Justin Carpentier committed
21
## Setup
22

Justin Carpentier's avatar
Justin Carpentier committed
23
The installation of **EigenPy** on your computer is made easy for Linux/BSD, Mac OS X and Windows environments.
Nicolas Mansard's avatar
Nicolas Mansard committed
24

Justin Carpentier's avatar
Justin Carpentier committed
25
26
27
28
29
30
### The Conda approach

You simply need this simple line:
```
conda install eigenpy -c conda-forge
```
Justin Carpentier's avatar
Justin Carpentier committed
31
### Ubuntu
Nicolas Mansard's avatar
Nicolas Mansard committed
32

Justin Carpentier's avatar
Justin Carpentier committed
33
You can easily install **EigenPy** from binairies.
34

Justin Carpentier's avatar
Justin Carpentier committed
35
#### Add robotpkg apt repository
Justin Carpentier's avatar
Justin Carpentier committed
36
1. Add robotpkg as source repository to apt:
Justin Carpentier's avatar
Justin Carpentier committed
37
```
Justin Carpentier's avatar
Justin Carpentier committed
38
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"
Justin Carpentier's avatar
Justin Carpentier committed
39
```
Justin Carpentier's avatar
Justin Carpentier committed
40
2. Register the authentication certificate of robotpkg:
Justin Carpentier's avatar
Justin Carpentier committed
41
42
43
```
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
```
Justin Carpentier's avatar
Justin Carpentier committed
44
3. You need to run at least once apt update to fetch the package descriptions:
Justin Carpentier's avatar
Justin Carpentier committed
45
46
47
48
```
sudo apt-get update
```
#### Install EigenPy
Justin Carpentier's avatar
Justin Carpentier committed
49
4. The installation of **EigenPy** and its dependencies is made through the line:
50

Justin Carpentier's avatar
Justin Carpentier committed
51
52
53
54
55
For Python 2.7
```
sudo apt install robotpkg-py27-eigenpy
```
or for Python 3.{5,6,7}
56
```
Justin Carpentier's avatar
Justin Carpentier committed
57
sudo apt install robotpkg-py35-eigenpy
58
```
Justin Carpentier's avatar
Justin Carpentier committed
59
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).
60

Justin Carpentier's avatar
Justin Carpentier committed
61
### Mac OS X
62

Guilhem Saurel's avatar
Guilhem Saurel committed
63
The installation of **EigenPy** on Mac OS X is made via [HomeBrew](https://brew.sh/).
Justin Carpentier's avatar
Justin Carpentier committed
64
65
66
67
You just need to register the tap of the sofware repository.

```
brew tap gepetto/homebrew-gepetto
68
```
Justin Carpentier's avatar
Justin Carpentier committed
69
and then install **EigenPy** for Python 3.x with:
70
```
Justin Carpentier's avatar
Justin Carpentier committed
71
72
73
74
75
76
brew install eigenpy
```

## Credits

The following people have been involved in the development of **EigenPy**:
77

Justin Carpentier's avatar
Justin Carpentier committed
78
79
- [Justin Carpentier](https://jcarpent.github.io) (INRIA): main developer and manager of the project
- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): initial project instructor
80
- [Wolfgang Merkt](http://www.wolfgangmerkt.com/) (University of Edinburgh): ROS integration and support
81
- [Sean Yen](https://www.linkedin.com/in/seanyentw) (Microsoft): Windows integration
82
- [Loïc Estève](https://github.com/lesteve) (INRIA): Conda integration
Nicolas Mansard's avatar
Nicolas Mansard committed
83

Justin Carpentier's avatar
Justin Carpentier committed
84
If you have taken part to the development of **EigenPy**, feel free to add your name and contribution here.
Nicolas Mansard's avatar
Nicolas Mansard committed
85

Justin Carpentier's avatar
Justin Carpentier committed
86
## Acknowledgments
Nicolas Mansard's avatar
Nicolas Mansard committed
87

Justin Carpentier's avatar
Justin Carpentier committed
88
The development of **EigenPy** is supported by the [Gepetto team](http://projects.laas.fr/gepetto/) [@LAAS-CNRS](http://www.laas.fr) and the [Willow team](https://www.di.ens.fr/willow/) [@INRIA](http://www.inria.fr).