Skip to main content

High performance implementation of the Mittag-Leffler function

Project description


mittagleffler

Build Status REUSE PyPI crates.io readthedocs.io docs.rs

This library implements the two-parameter Mittag-Leffler function.

Currently only the algorithm described in the paper by Roberto Garrapa (2015) is implemented. This seems to be the most accurate and computationally efficient method to date for evaluating the Mittag-Leffler function.

Links

Other implementations

  • ml.m (MATLAB): implements the three-parameter Mittag-Leffler function.
  • ml_matrix.m (MATLAB): implements the matrix-valued two-parameter Mittag-Leffler function.
  • MittagLeffler.jl (Julia): implements the two-parameter Mittag-Leffler function and its derivative.
  • MittagLeffler (R): implements the three-parameter Mittag-Leffler function.
  • mittag-leffler (Python): implements the three-parameter Mittag-Leffler function.
  • mlf (Fortran 90): implements the three-parameter Mittag-Leffler function.
  • mlpade (MATLAB): implements the two-parameter Mittag-Leffler function.
  • MittagLeffler (Stata): implements the three-parameter Mittag-Leffler function.
  • MittagLefflerE (Mathematica): implements the two-parameter Mittag-Leffler function.

Rust Crate

The library is available as a Rust crate that implements the main algorithms. Evaluating the Mittag-Leffler function can be performed directly by

use mittagleffler::MittagLeffler;

let alpha = 0.75;
let beta = 1.25;
let z = Complex64::new(1.0, 2.0);
println!("E({}; {}, {}) = {}", z, alpha, beta, z.mittag_leffler(alpha, beta));

let z: f64 = 3.1415;
println!("E({}; {}, {}) = {}", z, alpha, beta, z.mittag_leffler(alpha, beta));

This method will call the best underlying algorithm and takes care of any special cases that are known in the literature, e.g. for (alpha, beta) = (1, 1) we know that the Mittag-Leffler function is equivalent to the standard exponential. To call a specific algorithm, we can do

use mittagleffler::GarrappaMittagLeffler

let eps = 1.0e-8;
let ml = GarrappaMittagLeffler::new(eps);

let z = Complex64::new(1.0, 2.0);
println!("E({}; {}, {}) = {}",z,  alpha, beta, ml.evaluate(z, alpha, beta));

The algorithm from Garrappa (2015) has several parameters that can be tweaked for better performance or accuracy. They can be found in the documentation of the structure, but should not be changed unless there is good reason!

Python Bindings

The library also has Python bindings (using pyo3) that can be found in the python directory. The bindings are written to work with scalars and with numpy arrays equally. For example

import numpy as np
from pymittagleffler import mittag_leffler

alpha, beta = 2.0, 2.0
z = np.linspace(0.0, 1.0, 128)
result = mittag_leffler(z, alpha, beta)

These are available on PyPI under the name pymittagleffler.

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

pymittagleffler-0.2.1.tar.gz (266.5 kB view details)

Uploaded Source

Built Distributions

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

pymittagleffler-0.2.1-cp310-abi3-win_amd64.whl (196.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl (300.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl (281.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pymittagleffler-0.2.1-cp310-abi3-macosx_11_0_arm64.whl (266.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file pymittagleffler-0.2.1.tar.gz.

File metadata

  • Download URL: pymittagleffler-0.2.1.tar.gz
  • Upload date:
  • Size: 266.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pymittagleffler-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b50a0f74d88d79ac8d9e03acea2c62f189f14d83f2865eaaf10482e1300dfb67
MD5 d4ba38839429127778ccfd0d86c96285
BLAKE2b-256 bd345ad515ad8a9846f2d952898eacf06195b9a24f9eaddfd637c84209c2640a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.2.1.tar.gz:

Publisher: wheels.yml on alexfikl/mittagleffler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymittagleffler-0.2.1-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.2.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f3748295469b064a4051d7461270b6994666d251ce5a4a8071a4eed10d245ddf
MD5 3982368828b7b06d85009cf4ba4863e7
BLAKE2b-256 3b504c98beeab729dd973fd0f3537669ba64b1b594f3342352ba0588d8d89618

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.2.1-cp310-abi3-win_amd64.whl:

Publisher: wheels.yml on alexfikl/mittagleffler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 80670daae92cd62178f40fff8663adef19c3ed1c0e220a3d6fe0e1f377f9c5ff
MD5 16d085041a9eb8eaf3b598adacb2db94
BLAKE2b-256 1e02faf4c90d8b068bfc3f9b39f46f135cbb5214e2c2aab5420966afa2b0e0e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on alexfikl/mittagleffler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9df3682e21ebcf811dccb5d8e2eb37fe72cb06b6e031b0cccdfa4b2a36944b31
MD5 5a40f3b97217d7bdd93e166541c5c5e9
BLAKE2b-256 53a993af66509a0dfab8ccf320de9c2f8c8570c3855ae9b558fafc040604356f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on alexfikl/mittagleffler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymittagleffler-0.2.1-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.2.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7088181a9ea0ded48171e039e549b13a5f3f923c50a541bf8a6ed963c5262c13
MD5 9092e61d9af73851d31e3ecea5d75cef
BLAKE2b-256 62e19a026060d9cf7daa4b25d9892d3ca857bc3749497ed2df9693b56fe21477

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.2.1-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: wheels.yml on alexfikl/mittagleffler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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