Metadata-Version: 2.1
Name: dualnum
Version: 0.2.1
Summary: Python bindings for num-dual: Generalized (hyper) dual numbers for the
	calculation of exact (partial) derivatives
Keywords: mathematics,numerics,differentiation
Home-Page: https://github.com/itt-ustutt/dualnum
Author: Gernot Bauer <bauer@itt.uni-stuttgart.de>, Philipp Rehner <rehner@itt.uni-stuttgart.de>
Author-email: Gernot Bauer <bauer@itt.uni-stuttgart.de>, Philipp Rehner <rehner@itt.uni-stuttgart.de>
License: MIT OR Apache-2.0
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Source Code, https://github.com/itt-ustutt/dualnum

# dualnum

[![documentation](https://img.shields.io/badge/docs-github--pages-blue)](https://itt-ustutt.github.io/dualnum/)
[![PyPI version](https://badge.fury.io/py/dualnum.svg)](https://badge.fury.io/py/dualnum)

Python bindings for the `num-dual` rust crate.

## Installation

```
pip install dualnum
```

## Installation from source

To install from source, you need to have the rust compiler installed.

```
pip install git+https://github.com/itt-ustutt/dualnum
```

## Sphinx documentation

To build the documentation with sphinx:

```
maturin develop --release
cd docs
make html
make doctest
firefox _build/html/index.html
```

## Usage

### Compute first and second derivative of a scalar valued function.

```python
from dualnum import derive2
import numpy as np

def f(x):
    return np.exp(x) / np.sqrt(np.sin(x)**3 + np.cos(x)**3)

x = derive2(1.5)
result = f(x)
print('f(x)    = {}'.format(result.value))
print('df/dx   = {}'.format(result.first_derivative))
print('d2f/dx2 = {}'.format(result.second_derivative))
```

