pub struct HermitianKrylovExpmOptions {
pub max_iter: usize,
pub max_time_splits: usize,
pub tol: f64,
pub breakdown_tol: f64,
pub hermitian_tol: f64,
pub verbose: bool,
}Expand description
Options for hermitian_krylov_expm_multiply.
The routine builds a Hermitian Lanczos basis for a matrix-free operator, exponentiates the small projected Hermitian matrix, and combines the basis vectors without materializing the full operator. Scalar convergence checks and projected eigendecompositions are explicit non-differentiable boundaries; vector-space tensor operations preserve backend metadata when the underlying tensor implementation supports it.
§Examples
use tensor4all_core::krylov::HermitianKrylovExpmOptions;
let options = HermitianKrylovExpmOptions {
max_iter: 32,
tol: 1.0e-10,
..HermitianKrylovExpmOptions::default()
};
assert_eq!(options.max_iter, 32);
assert_eq!(options.tol, 1.0e-10);Fields§
§max_iter: usizeMaximum Krylov subspace dimension for one exponential application.
max_time_splits: usizeMaximum number of equal time splits attempted after non-convergence.
tol: f64Relative convergence tolerance for the Krylov residual estimate.
breakdown_tol: f64Breakdown threshold for zero vectors and invariant Krylov subspaces.
hermitian_tol: f64Hermitian validation tolerance for projected matrices.
verbose: boolWhether to print per-attempt diagnostics.
Trait Implementations§
Source§impl Clone for HermitianKrylovExpmOptions
impl Clone for HermitianKrylovExpmOptions
Source§fn clone(&self) -> HermitianKrylovExpmOptions
fn clone(&self) -> HermitianKrylovExpmOptions
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 HermitianKrylovExpmOptions
impl Debug for HermitianKrylovExpmOptions
Auto Trait Implementations§
impl Freeze for HermitianKrylovExpmOptions
impl RefUnwindSafe for HermitianKrylovExpmOptions
impl Send for HermitianKrylovExpmOptions
impl Sync for HermitianKrylovExpmOptions
impl Unpin for HermitianKrylovExpmOptions
impl UnsafeUnpin for HermitianKrylovExpmOptions
impl UnwindSafe for HermitianKrylovExpmOptions
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