Transparent calculations with uncertainties on the quantities involved (aka error propagation); fast calculation of derivatives


Keywords
error, propagation, uncertainties, uncertainty, calculations, standard, deviation, derivatives, partial, differentiation, autodiff, autodifferentiation, error-propagation
License
BSD-3-Clause
Install
pip install uncertainties==3.1

Documentation

uncertainties

Documentation Status https://pepy.tech/badge/uncertainties/week https://travis-ci.com/lebigot/uncertainties.svg?branch=master https://ci.appveyor.com/api/projects/status/j5238244myqx0a0r?svg=true

This is the uncertainties Python package, which performs transparent calculations with uncertainties (aka "error propagation"):

>>> from uncertainties import ufloat
>>> from uncertainties.umath import *  # sin(), etc.
>>> x = ufloat(1, 0.1)  # x = 1+/-0.1
>>> print 2*x
2.00+/-0.20
>>> sin(2*x)  # In a Python shell, "print" is optional
0.9092974268256817+/-0.08322936730942848

This package also automatically calculates derivatives of arbitrary functions:

>>> (2*x+1000).derivatives[x]
2.0

The main documentation is available at https://uncertainties.readthedocs.io/.

Git branches

The release branch is the latest stable release. It should pass the tests.

master* branches in the Github repository are bleeding-edge, and do not necessarily pass the tests. The master branch is the latest, relatively stable versions (while other master* branches are more experimental).

Other branches might be present in the GitHub repository, but they are typically temporary and represent work in progress that does not necessarily run properly yet.

License

This package and its documentation are released under the Revised BSD License.

Voluntary donations

If you find this open-source software useful (e.g. in saving you time or helping you produce something valuable), please consider donating $10 or more to help contribute to the maintenance of the package.