iltcme

Crates.ioiltcme
lib.rsiltcme
version0.2.2
sourcesrc
created_at2023-09-01 12:07:19.203677
updated_at2024-01-31 10:58:48.227135
descriptionInverse Laplace transform with concentrated matrix-exponential functions
homepagehttps://inverselaplace.org
repositoryhttps://github.com/cemsbv/iltcme
max_upload_size
id960856
size12,515,905
Thomas Versteeg (tversteeg)

documentation

https://docs.rs/iltcme/

README

Crates.io MIT/Apache docs.rs ci

Rust implementation of Inverse Laplace Transform with Concentrated Matrix-Exponential Functions.

Source: https://inverselaplace.org

Usage

Approximate a sine function where $x = 1$ with a maximum of 50 function evaluations.

The Laplace transform of sine is $h^*(s) = 1 / (s^2 + 1)$.

fn main() {
  let result = iltcme::laplace_inversion(|s| 1.0 / (s.powi(2) + 1.0), 1.0, 50);
  approx::relative_eq!(result, 1.0_f64.sin(), epsilon = 0.001);
}

Implementation details

This crate parses a large list of precomputed parameters from a JSON file and converts them to a Rust file which is internally used. The effect of this is that the build time might be slow, no runtime penalty should be paid though.

Generate manually

To regenerate the Rust coefficient files run the following commands in the root:

cargo run -p gen-coefficients -- --input iltcme.json --output src/coefficients.rs
Commit count: 8

cargo fmt