front_cache -> integral_cache

This commit is contained in:
Simon Gardling 2022-03-08 11:06:45 -05:00
parent 25c4285fc0
commit 3827242a0a

View File

@ -36,7 +36,7 @@ pub struct FunctionEntry {
pixel_width: usize, pixel_width: usize,
back_cache: Option<Vec<Value>>, back_cache: Option<Vec<Value>>,
front_cache: Option<(Vec<Bar>, f64)>, integral_cache: Option<(Vec<Bar>, f64)>,
derivative_cache: Option<Vec<Value>>, derivative_cache: Option<Vec<Value>>,
pub(crate) integral: bool, pub(crate) integral: bool,
@ -57,7 +57,7 @@ impl FunctionEntry {
max_x: 1.0, max_x: 1.0,
pixel_width: 100, pixel_width: 100,
back_cache: None, back_cache: None,
front_cache: None, integral_cache: None,
derivative_cache: None, derivative_cache: None,
integral: false, integral: false,
derivative: false, derivative: false,
@ -77,7 +77,7 @@ impl FunctionEntry {
self.func_str = func_str.clone(); self.func_str = func_str.clone();
self.function = BackingFunction::new(&func_str); self.function = BackingFunction::new(&func_str);
self.back_cache = None; self.back_cache = None;
self.front_cache = None; self.integral_cache = None;
self.derivative_cache = None; self.derivative_cache = None;
} }
@ -91,7 +91,7 @@ impl FunctionEntry {
| (integral_num != Some(self.integral_num)) | (integral_num != Some(self.integral_num))
| (sum != Some(self.sum)) | (sum != Some(self.sum))
{ {
self.front_cache = None; self.integral_cache = None;
self.integral_min_x = integral_min_x.expect("integral_min_x is None"); self.integral_min_x = integral_min_x.expect("integral_min_x is None");
self.integral_max_x = integral_max_x.expect("integral_max_x is None"); self.integral_max_x = integral_max_x.expect("integral_max_x is None");
self.integral_num = integral_num.expect("integral_num is None"); self.integral_num = integral_num.expect("integral_num is None");
@ -190,12 +190,12 @@ impl FunctionEntry {
let integral_data = match self.integral { let integral_data = match self.integral {
true => { true => {
if self.front_cache.is_none() { if self.integral_cache.is_none() {
let (data, area) = self.integral_rectangles(); let (data, area) = self.integral_rectangles();
self.front_cache = self.integral_cache =
Some((data.iter().map(|(x, y)| Bar::new(*x, *y)).collect(), area)); Some((data.iter().map(|(x, y)| Bar::new(*x, *y)).collect(), area));
} }
let cache = self.front_cache.as_ref().unwrap(); let cache = self.integral_cache.as_ref().unwrap();
Some((cache.0.clone(), cache.1)) Some((cache.0.clone(), cache.1))
} }
false => None, false => None,
@ -267,11 +267,11 @@ impl FunctionEntry {
pub fn get_func_str(&self) -> &str { &self.func_str } pub fn get_func_str(&self) -> &str { &self.func_str }
// Updates riemann value and invalidates front_cache if needed // Updates riemann value and invalidates integral_cache if needed
pub fn update_riemann(mut self, riemann: RiemannSum) -> Self { pub fn update_riemann(mut self, riemann: RiemannSum) -> Self {
if self.sum != riemann { if self.sum != riemann {
self.sum = riemann; self.sum = riemann;
self.front_cache = None; self.integral_cache = None;
} }
self self
} }