small changes to plotting logic
This commit is contained in:
parent
8b97f79d55
commit
0a410b932d
@ -56,7 +56,7 @@ pub struct FunctionEntry {
|
|||||||
integral_data: Option<(Vec<Bar>, f64)>,
|
integral_data: Option<(Vec<Bar>, f64)>,
|
||||||
derivative_data: Vec<Value>,
|
derivative_data: Vec<Value>,
|
||||||
extrema_data: Vec<Value>,
|
extrema_data: Vec<Value>,
|
||||||
roots_data: Vec<Value>,
|
root_data: Vec<Value>,
|
||||||
|
|
||||||
autocomplete: AutoComplete<'static>,
|
autocomplete: AutoComplete<'static>,
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ impl Default for FunctionEntry {
|
|||||||
integral_data: None,
|
integral_data: None,
|
||||||
derivative_data: Vec::new(),
|
derivative_data: Vec::new(),
|
||||||
extrema_data: Vec::new(),
|
extrema_data: Vec::new(),
|
||||||
roots_data: Vec::new(),
|
root_data: Vec::new(),
|
||||||
autocomplete: AutoComplete::default(),
|
autocomplete: AutoComplete::default(),
|
||||||
test_result: None,
|
test_result: None,
|
||||||
}
|
}
|
||||||
@ -307,8 +307,8 @@ impl FunctionEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculates roots
|
// Calculates roots
|
||||||
if settings.do_roots && (min_max_changed | self.roots_data.is_empty()) {
|
if settings.do_roots && (min_max_changed | self.root_data.is_empty()) {
|
||||||
self.roots_data = self.newtons_method_helper(&threshold, 0);
|
self.root_data = self.newtons_method_helper(&threshold, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +346,7 @@ impl FunctionEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Plot extrema points
|
// Plot extrema points
|
||||||
if settings.do_extrema {
|
if settings.do_extrema && !self.extrema_data.is_empty() {
|
||||||
plot_ui.points(
|
plot_ui.points(
|
||||||
self.extrema_data
|
self.extrema_data
|
||||||
.to_points()
|
.to_points()
|
||||||
@ -357,9 +357,9 @@ impl FunctionEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Plot roots points
|
// Plot roots points
|
||||||
if settings.do_roots {
|
if settings.do_roots && !self.root_data.is_empty() {
|
||||||
plot_ui.points(
|
plot_ui.points(
|
||||||
self.roots_data
|
self.root_data
|
||||||
.to_points()
|
.to_points()
|
||||||
.color(Color32::LIGHT_BLUE)
|
.color(Color32::LIGHT_BLUE)
|
||||||
.name("Root")
|
.name("Root")
|
||||||
@ -389,7 +389,7 @@ impl FunctionEntry {
|
|||||||
self.invalidate_integral();
|
self.invalidate_integral();
|
||||||
self.invalidate_derivative();
|
self.invalidate_derivative();
|
||||||
self.extrema_data.clear();
|
self.extrema_data.clear();
|
||||||
self.roots_data.clear();
|
self.root_data.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Invalidate `back` data
|
/// Invalidate `back` data
|
||||||
@ -418,7 +418,7 @@ impl FunctionEntry {
|
|||||||
assert!(self.integral);
|
assert!(self.integral);
|
||||||
assert!(self.derivative);
|
assert!(self.derivative);
|
||||||
|
|
||||||
assert_eq!(!self.roots_data.is_empty(), settings.do_roots);
|
assert_eq!(!self.root_data.is_empty(), settings.do_roots);
|
||||||
assert_eq!(!self.extrema_data.is_empty(), settings.do_extrema);
|
assert_eq!(!self.extrema_data.is_empty(), settings.do_extrema);
|
||||||
assert!(!self.derivative_data.is_empty());
|
assert!(!self.derivative_data.is_empty());
|
||||||
assert!(self.integral_data.is_some());
|
assert!(self.integral_data.is_some());
|
||||||
@ -441,7 +441,7 @@ impl FunctionEntry {
|
|||||||
|
|
||||||
assert!(self.back_data.is_empty());
|
assert!(self.back_data.is_empty());
|
||||||
assert!(self.integral_data.is_none());
|
assert!(self.integral_data.is_none());
|
||||||
assert!(self.roots_data.is_empty());
|
assert!(self.root_data.is_empty());
|
||||||
assert!(self.extrema_data.is_empty());
|
assert!(self.extrema_data.is_empty());
|
||||||
assert!(self.derivative_data.is_empty());
|
assert!(self.derivative_data.is_empty());
|
||||||
|
|
||||||
@ -449,7 +449,7 @@ impl FunctionEntry {
|
|||||||
|
|
||||||
assert!(!self.back_data.is_empty());
|
assert!(!self.back_data.is_empty());
|
||||||
assert!(self.integral_data.is_none());
|
assert!(self.integral_data.is_none());
|
||||||
assert!(self.roots_data.is_empty());
|
assert!(self.root_data.is_empty());
|
||||||
assert!(self.extrema_data.is_empty());
|
assert!(self.extrema_data.is_empty());
|
||||||
assert!(self.derivative_data.is_empty());
|
assert!(self.derivative_data.is_empty());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user