refactor: simplify Newton's method helper by extracting data source selection
This commit is contained in:
parent
df05601e26
commit
3305227ffe
@ -252,25 +252,20 @@ impl FunctionEntry {
|
|||||||
) -> Vec<PlotPoint> {
|
) -> Vec<PlotPoint> {
|
||||||
self.function.generate_derivative(derivative_level);
|
self.function.generate_derivative(derivative_level);
|
||||||
self.function.generate_derivative(derivative_level + 1);
|
self.function.generate_derivative(derivative_level + 1);
|
||||||
let newtons_method_output: Vec<f64> = match derivative_level {
|
|
||||||
0 => newtons_method_helper(
|
let data_source = match derivative_level {
|
||||||
threshold,
|
0 => self.back_data.as_slice(),
|
||||||
range,
|
1 => self.derivative_data.as_slice(),
|
||||||
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),
|
|
||||||
),
|
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
};
|
};
|
||||||
|
|
||||||
newtons_method_output
|
newtons_method_helper(
|
||||||
|
threshold,
|
||||||
|
range,
|
||||||
|
data_source,
|
||||||
|
self.function.get_function_derivative(derivative_level),
|
||||||
|
self.function.get_function_derivative(derivative_level + 1),
|
||||||
|
)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|x| PlotPoint::new(x, self.function.get(0, x)))
|
.map(|x| PlotPoint::new(x, self.function.get(0, x)))
|
||||||
.collect()
|
.collect()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user