Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/simple-robotics/pycppad
- Owner: Simple-Robotics
- License: bsd-3-clause
- Created: 2021-08-19T14:13:48.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-08T01:37:19.000Z (3 months ago)
- Last Synced: 2024-10-11T16:40:15.011Z (2 months ago)
- Topics: automatic-differentiation, cppad, eigen3, numpy
- Language: C++
- Homepage:
- Size: 218 KB
- Stars: 19
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PyCppAD — Python bindings for CppAD Automatic Differentiation library
======**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).