Function parametrizer::term::quick_parametrization [−][src]
pub fn quick_parametrization<T: Number>(
param: &str,
functions: &[ParametrizerFunction]
) -> Result<Box<dyn Term<T> + Send + Sync>, ParametrizerError>
Expand description
Checks the piecewise case, which can only occur at the top level, then recurses normally using parametrize_string. Can be called directly with a properly formatted param string to avoid the potentially expensive formatting operations of create_parametrization
Examples
use crate::parametrizer::term::quick_parametrization; let p1 = quick_parametrization::<i32>("p2>0|4>2|8>6", &[]).unwrap(); let p2 = quick_parametrization::<i32>("p2*t>0|4>2", &[]).unwrap(); let eq = quick_parametrization::<f32>("4+2*t", &[]).unwrap(); assert_eq!(2, p1.evaluate(1)); assert_eq!(4, p1.evaluate(5)); assert_eq!(2, p2.evaluate(1)); assert_eq!(4, p2.evaluate(9)); assert_eq!(9.0, eq.evaluate(2.5));
use crate::parametrizer::term::quick_parametrization; let p1 = quick_parametrization::<i32>("p[10]t>0|t*t+-16>5", &[]).unwrap(); let p2 = quick_parametrization::<f32>("p[3.5]4>0|8>2", &[]).unwrap(); assert_eq!(4, p1.evaluate(4)); assert_eq!(48, p1.evaluate(18)); assert_eq!(3, p1.evaluate(23)); assert_eq!(4.0, p2.evaluate(8.9)); assert_eq!(8.0, p2.evaluate(30.1));