Module bio::data_structures::interpolation_table
source · Expand description
Fast lookup table for arbitrary floating point functions.
§Examples
§Easy:
use bio::data_structures::interpolation_table::*;
let table = InterpolationTable::new(0.0, 10.0, 5, |x| x.powf(2.0));
assert_eq!(table.get(3.0), 9.0);
assert_eq!(table.get(5.0), 25.0);
§More complicated:
extern crate approx;
fn main() {
use bio::data_structures::interpolation_table::*;
use approx::assert_relative_eq;
let table = InterpolationTable::new(0.0, 10.0, 5, |x| x.ln_1p());
for &x in &[0.02, 0.04, 0.45678686, 0.23875, 1.45345e-6] {
assert_relative_eq!(table.get(x), x.ln_1p(), epsilon = 0.00001);
}
}
Structs§
- Fast lookup table for arbitrary floating point functions. This can be used to e.g., provide fast lookups of distribution values. Input values are sampled with a given precision and results are stored in a vector. During lookup, infimum and supremum of a given value are calculated and the result is interpolated.