pub struct HermitianLanczosOptions {
pub max_iter: usize,
pub rtol: f64,
pub atol: f64,
pub breakdown_tol: f64,
pub hermitian_tol: f64,
pub verbose: bool,
}Expand description
Options for hermitian_lanczos_lowest_eigenpair.
These options control the maximum Krylov subspace dimension, convergence
tolerance, and validation tolerance for the small projected Hermitian matrix.
When in doubt, use Default::default.
§Examples
use tensor4all_core::krylov::HermitianLanczosOptions;
let opts = HermitianLanczosOptions {
max_iter: 32,
rtol: 1.0e-9,
..HermitianLanczosOptions::default()
};
assert_eq!(opts.max_iter, 32);
assert_eq!(opts.rtol, 1.0e-9);Fields§
§max_iter: usizeMaximum Krylov subspace dimension.
Larger values usually improve convergence but increase memory and the
cost of the small Rayleigh-Ritz eigensolve. Default: 64.
rtol: f64Relative residual tolerance.
Convergence requires ||A v - lambda v|| <= max(atol, rtol * max(1, |lambda|)). Default: 1e-10.
atol: f64Absolute residual tolerance.
This is useful when targeting eigenvalues near zero. Default: 0.0.
breakdown_tol: f64Breakdown threshold for the next Krylov vector norm.
If the orthogonalized vector norm is at or below this value, the current
Krylov subspace is treated as invariant and iteration stops. Default:
1e-14.
hermitian_tol: f64Hermitian validation tolerance for the projected Rayleigh-Ritz matrix.
The projected operator is rejected when V^dagger A V is not Hermitian
within this absolute tolerance. Default: 1e-10.
verbose: boolWhether to print per-iteration residual information.
Default: false.
Trait Implementations§
Source§impl Clone for HermitianLanczosOptions
impl Clone for HermitianLanczosOptions
Source§fn clone(&self) -> HermitianLanczosOptions
fn clone(&self) -> HermitianLanczosOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HermitianLanczosOptions
impl Debug for HermitianLanczosOptions
Auto Trait Implementations§
impl Freeze for HermitianLanczosOptions
impl RefUnwindSafe for HermitianLanczosOptions
impl Send for HermitianLanczosOptions
impl Sync for HermitianLanczosOptions
impl Unpin for HermitianLanczosOptions
impl UnsafeUnpin for HermitianLanczosOptions
impl UnwindSafe for HermitianLanczosOptions
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more