MultiRootFSolver

Struct MultiRootFSolver 

Source
pub struct MultiRootFSolver<'a> { /* private fields */ }
Expand description

This is a workspace for multidimensional root-finding without derivatives.

Implementations§

Source§

impl<'a> MultiRootFSolver<'a>

Source

pub fn new(t: &MultiRootFSolverType, n: usize) -> Option<MultiRootFSolver<'a>>

This function returns a pointer to a newly allocated instance of a solver of type T with n unknowns.

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.

Source

pub fn set<F: Fn(&VectorF64, &mut VectorF64) -> Value + 'a>( &mut self, f: F, n: usize, x: &VectorF64, ) -> Result<(), Value>

This function initializes, or reinitializes, an existing solver s to use the multi function f with n unknowns.

Source

pub fn iterate(&mut self) -> Result<(), Value>

This function performs a single iteration of the minimizer s. If the iteration encounters an unexpected problem then an error code will be returned,

Value::BadFunc the iteration encountered a singular point where the function evaluated to Inf or NaN.

Value::Failure the algorithm could not improve the current best approximation or bounding interval.

The minimizer maintains a current best estimate of the position of the minimum at all times, and the current interval bounding the minimum. This information can be accessed with the following auxiliary functions,

Source

pub fn root(&self) -> View<'_, VectorF64>

This function returns the current estimate of the root for the solver s, given by s->x.

Source

pub fn dx(&self) -> View<'_, VectorF64>

This function returns the last step dx taken by the solver s, given by s->dx.

Source

pub fn f(&self) -> View<'_, VectorF64>

This function returns the function value f(x) at the current estimate of the root for the solver s, given by s->f.

Trait Implementations§

Source§

impl<'a> Drop for MultiRootFSolver<'a>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for MultiRootFSolver<'a>

§

impl<'a> !RefUnwindSafe for MultiRootFSolver<'a>

§

impl<'a> !Send for MultiRootFSolver<'a>

§

impl<'a> !Sync for MultiRootFSolver<'a>

§

impl<'a> Unpin for MultiRootFSolver<'a>

§

impl<'a> !UnwindSafe for MultiRootFSolver<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.