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.1.8.tar.gz (262.6 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.1.8-cp310-abi3-win_amd64.whl (195.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

pymittagleffler-0.1.8-cp310-abi3-manylinux_2_24_aarch64.whl (280.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.24+ ARM64

pymittagleffler-0.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (301.1 kB view details)

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

pymittagleffler-0.1.8-cp310-abi3-macosx_11_0_arm64.whl (266.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pymittagleffler-0.1.8.tar.gz
Algorithm Hash digest
SHA256 fd29ae99c58fbd245eb34bfc11f03466b1bfb2802aad80a9127dd1cebeee8c7b
MD5 b805e1af87c7403031ae19e7c07901ee
BLAKE2b-256 55ca7075688b32051017e5f468ac07f45076301feb85013660468fc5e19c241e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.1.8.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.1.8-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.1.8-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0f14015d270feb8742cebb99028dadc78b848af7fb69de524c12041669647af0
MD5 83ecfe8a41abdafb928afbbbf27a5277
BLAKE2b-256 4853ad5c6d4013a4292dbd35a656b2fe7847132608f23d545ef687012dc16f09

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.1.8-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.1.8-cp310-abi3-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.1.8-cp310-abi3-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 d02c18d85e7eb24d4daed9642dad887b98447b00c74024e877d12f318d0f131e
MD5 354c5bc687fb229e6537328389c10dae
BLAKE2b-256 3a2f0be1d7b017fc03a9da199ec067718bc2e7a438d3e58fd9a8244c34ae379a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.1.8-cp310-abi3-manylinux_2_24_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.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 623f17970f835b0b5d3071de6019a8ddd8120bc76a95ad21710ef5ce5521f363
MD5 0ff4550c939c10598a80476aedebe03e
BLAKE2b-256 f26f6bcfa2d3ea22fd07623522502d8fe28f022de9b84626ed6e6fda17ef8ce8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_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.1.8-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymittagleffler-0.1.8-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3a923658b5ae8e1fae7680a6b1b1ec5695352e3121e990c245ccda5c26a2d91
MD5 5545aab7ad4139eafc45c8ab1db9302b
BLAKE2b-256 61ee540df6067acf5b784c849d67660390719c2f123612d7b7c5efa2229366d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymittagleffler-0.1.8-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