argmin/solver/brent/mod.rs
1// Copyright 2018-2024 argmin developers
2//
3// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
5// http://opensource.org/licenses/MIT>, at your option. This file may not be
6// copied, modified, or distributed except according to those terms.
7
8//! # Brent's methods
9//!
10//! ## BrentOpt
11//!
12//! A minimization algorithm combining parabolic interpolation and the
13//! golden-section method. It has the reliability of the golden-section
14//! method, but can be faster thanks to the parabolic interpolation steps.
15//!
16//! ### References
17//!
18//! "An algorithm with guaranteed convergence for finding a minimum of
19//! a function of one variable", _Algorithms for minimization without
20//! derivatives_, Richard P. Brent, 1973, Prentice-Hall.
21//!
22//! ## BrentRoot
23//!
24//! A root-finding algorithm combining the bisection method, the secant method
25//! and inverse quadratic interpolation. It has the reliability of bisection
26//! but it can be as quick as some of the less-reliable methods.
27//!
28//! ### References
29//!
30//! <https://en.wikipedia.org/wiki/Brent%27s_method>
31
32mod brentopt;
33mod brentroot;
34
35pub use brentopt::BrentOpt;
36pub use brentroot::BrentRoot;