Crates.io | iltcme |
lib.rs | iltcme |
version | 0.2.2 |
source | src |
created_at | 2023-09-01 12:07:19.203677 |
updated_at | 2024-01-31 10:58:48.227135 |
description | Inverse Laplace transform with concentrated matrix-exponential functions |
homepage | https://inverselaplace.org |
repository | https://github.com/cemsbv/iltcme |
max_upload_size | |
id | 960856 |
size | 12,515,905 |
Rust implementation of Inverse Laplace Transform with Concentrated Matrix-Exponential Functions.
Source: https://inverselaplace.org
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);
}
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.
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