refactor: simplify Newton's method helper by extracting data source selection
This commit is contained in:
parent
df05601e26
commit
3305227ffe
@ -252,28 +252,23 @@ impl FunctionEntry {
|
||||
) -> Vec<PlotPoint> {
|
||||
self.function.generate_derivative(derivative_level);
|
||||
self.function.generate_derivative(derivative_level + 1);
|
||||
let newtons_method_output: Vec<f64> = match derivative_level {
|
||||
0 => newtons_method_helper(
|
||||
threshold,
|
||||
range,
|
||||
self.back_data.as_slice(),
|
||||
self.function.get_function_derivative(0),
|
||||
self.function.get_function_derivative(1),
|
||||
),
|
||||
1 => newtons_method_helper(
|
||||
threshold,
|
||||
range,
|
||||
self.derivative_data.as_slice(),
|
||||
self.function.get_function_derivative(1),
|
||||
self.function.get_function_derivative(2),
|
||||
),
|
||||
|
||||
let data_source = match derivative_level {
|
||||
0 => self.back_data.as_slice(),
|
||||
1 => self.derivative_data.as_slice(),
|
||||
_ => unreachable!(),
|
||||
};
|
||||
|
||||
newtons_method_output
|
||||
.into_iter()
|
||||
.map(|x| PlotPoint::new(x, self.function.get(0, x)))
|
||||
.collect()
|
||||
newtons_method_helper(
|
||||
threshold,
|
||||
range,
|
||||
data_source,
|
||||
self.function.get_function_derivative(derivative_level),
|
||||
self.function.get_function_derivative(derivative_level + 1),
|
||||
)
|
||||
.into_iter()
|
||||
.map(|x| PlotPoint::new(x, self.function.get(0, x)))
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// Generates plot data for a given derivative level over the resolution iterator
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user