Skip to main content

A package for computing Riemann summations in n-dimensional space

Project description

riemann

Repository Logo

Riemann is a pure-Python package for computing Riemann sums of functions in $n$-dimensional space.

GitHub GitHub Pipenv locked Python version PyPI - Python Version GitHub tag (latest SemVer)


Basic Usage

Riemann provides an intuitive syntax for calculating the Riemann sum of a function over a closed interval. The below code snippet computes the Riemann sum of $f(x) = x^{2}$ over the interval $[0, 2]$ using 10 partitions along the $x$ axis.

>>> import riemann
>>> from riemann import Dimension
>>> f = lambda x: x ** 2
>>> dim_x = Dimension(0, 2, 10, riemann.LOWER)
>>> dim_x
Dimension(a=0, b=2, n=10, method=Method(name='lower'))
>>> riemann.rsum(f, dim_x)
Decimal('2.28')

However, Riemann is not restricted to computing Riemann sums only over one dimension. A similar syntax can be used to calculate the Riemann sum of a function of several real variables over a closed multi-dimensional interval. The below code snippet computes the Riemann sum of $f(x, y) = x^{2} y^{2}$ over the interval $x \in [0, 2], y \in [0, 4]$ using 10 partitions along the $x$ axis and 10 partitions along the $y$ axis.

>>> import riemann
>>> from riemann import Dimension
>>> f = lambda x, y: (x ** 2) * (y ** 2)
>>> dim_x = Dimension(0, 2, 10, riemann.MIDDLE)
>>> dim_x
Dimension(a=0, b=2, n=10, method=Method(name='middle'))
>>> dim_y = Dimension(0, 4, 10, riemann.MIDDLE)
>>> dim_y
Dimension(a=0, b=4, n=10, method=Method(name='middle'))
>>> riemann.rsum(f, dim_x, dim_y)
Decimal('56.6048')

The sole requirement is that the number of parameters taken by the function passed as the func argument to riemann.rsum equals the number of riemann.Dimension objects passed.

Features

  • Fast computation of Riemann sum.
  • Support for computation of multi-dimensional Riemann sum.
  • Built-in support for left, middle, and right Riemann sum methods.
  • Support for custom Riemann sum methods (using the :py:class:riemann.Method class).

Requirements

Riemann requires Python 3.7+. This project does not require any additional dependencies.

Installation

$ pip install riemann

Documentation

Documentation Status

The documentation for this project is available on Read the Docs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riemann-0.9.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riemann-0.9.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file riemann-0.9.0.tar.gz.

File metadata

  • Download URL: riemann-0.9.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for riemann-0.9.0.tar.gz
Algorithm Hash digest
SHA256 40159879e2a180e2438a8cea743ea1a7ef1898bdae87b8de5b9fc5d213041075
MD5 e91e8b0bf9e16597cb464ef9aec5553b
BLAKE2b-256 21ae9ec7c5987d371f3e5c4546473713c2639d14b2c93c2e2543dd30448cac46

See more details on using hashes here.

File details

Details for the file riemann-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: riemann-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for riemann-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55064b4390193cb235668fbaf14426ac5428e0ba3374b5b5c72bf0435035ef34
MD5 2919dc31b3c26229258c3d76e3b48e96
BLAKE2b-256 a8914fd625a2e29a514f2348ea1840ba1c6ceaf76cad56a0180122f64afa1c6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page