Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/simple-robotics/pycppad

Python bindings for CppAD and CppADCodeGen using Boost.Python
https://github.com/simple-robotics/pycppad

automatic-differentiation cppad eigen3 numpy

Last synced: 2 months ago
JSON representation

Python bindings for CppAD and CppADCodeGen using Boost.Python

Awesome Lists containing this project

README

        

PyCppAD — Python bindings for CppAD Automatic Differentiation library
======


License
Pipeline status
Coverage report
Conda Downloads
Conda Version
PyPI version

**PyCppAD** is an open source framework which provides bindings for the CppAD Automatic Differentiation([CppAD](https://coin-or.github.io/CppAD/doc/cppad.htm)) C++ library in Python.
**PyCppAD** also includes support for the CppADCodeGen ([CppADCodeGen](https://github.com/joaoleal/CppADCodeGen)) library, which exploits CppAD functionality to perform code generation.

## Installing PyCppAD

### Installation via

As simple as that:
```bash
conda install pycppad -c conda-forge
```

### Installation via PyPI

As simple as that:
```bash
pip install pycppad
```

### Installation by source

#### Dependencies

PyCppAD dependes on the following dependencies:
* [Boost.Python](http://boostorg.github.io/python/doc/html/index.html)
* [Eigen3](https://eigen.tuxfamily.org)
* [EigenPy](https://github.com/stack-of-tasks/eigenpy)
* [CppAD](https://coin-or.github.io/CppAD/doc/install.htm)
* [CppADCodeGen](https://github.com/joaoleal/CppADCodeGen) (Optional)

#### Compiling PyCppAD

Once the dependencies have been installed, follow the following commands to compile PyCppAD:

```
cd ${path_to_your_development_source}/
git clone --recursive https://github.com/Simple-Robotics/pycppad.git
cd pycppad
mkdir _build-RELEASE
cd _build-RELEASE
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=${path_to_your_installation}
make install
```

Set up the `path_to_your_installation` and `path_to_your_development_source` based on your personal development environment.

Alternatively, in order to compile with [CppADCodeGen](https://github.com/joaoleal/CppADCodeGen) support, add `-DBUILD_WITH_CPPAD_CODEGEN_BINDINGS=ON` to the cmake command, and follow the build sequence as before:

```
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=${path_to_your_installation} -DBUILD_WITH_CPPAD_CODEGEN_BINDINGS=ON
```

## Credits

The following people have been involved in the development of **PyCppAD** and are warmly thanked for their contributions:

- [Rohan Budhiraja](https://scholar.google.com/citations?user=NW9Io9AAAAAJ) (Inria): main developer
- [Justin Carpentier](https://jcarpent.github.io) (Inria): main developer and manager of the project

## Acknowledgments

The development of **PyCppAD** is supported by the [Willow team](https://www.di.ens.fr/willow/) [@INRIA](http://www.inria.fr).