Struct rgsl::types::roots::RootFdfSolver
source · pub struct RootFdfSolver<'a> { /* private fields */ }
Expand description
This is a workspace for finding roots using methods which do require derivatives.
Implementations§
source§impl<'a> RootFdfSolver<'a>
impl<'a> RootFdfSolver<'a>
sourcepub fn new(t: RootFdfSolverType) -> Option<RootFdfSolver<'a>>
pub fn new(t: RootFdfSolverType) -> Option<RootFdfSolver<'a>>
This function returns a pointer to a newly allocated instance of a derivative-based solver of type T.
If there is insufficient memory to create the solver then the function returns a null
pointer and the error handler is invoked with an error code of Value::NoMemory
.
sourcepub fn set<F: Fn(f64) -> f64 + 'a, DF: Fn(f64) -> f64 + 'a, FDF: Fn(f64, &mut f64, &mut f64) + 'a>(
&mut self,
f: F,
df: DF,
fdf: FDF,
root: f64
) -> Result<(), Value>
pub fn set<F: Fn(f64) -> f64 + 'a, DF: Fn(f64) -> f64 + 'a, FDF: Fn(f64, &mut f64, &mut f64) + 'a>( &mut self, f: F, df: DF, fdf: FDF, root: f64 ) -> Result<(), Value>
This function initializes, or reinitializes, an existing solver s to use the function and derivative fdf and the initial guess root.
sourcepub fn iterate(&mut self) -> Result<(), Value>
pub fn iterate(&mut self) -> Result<(), Value>
The following function drives the iteration of each algorithm. Each function performs one iteration to update the state of any solver of the corresponding type. The same func- tion works for all solvers so that different methods can be substituted at runtime without modifications to the code.
This function performs a single iteration of the solver s. If the iteration encounters an unexpected problem then an error code will be returned.
The solver maintains a current best estimate of the root at all times. The bracketing solvers also keep track of the current best interval bounding the root.