#[repr(C)]pub struct FixedLanczosEigensolver {
pub iteration: u32,
pub alpha: [f64; 100],
pub beta: [f64; 100],
pub vectors: [Vector4; 3],
pub eigenvalues: [f64; 4],
pub config: SolverConfig,
pub solver_state: SolverState,
}Expand description
Lanczos eigensolver for finding lowest eigenvalues
Fields§
§iteration: u32Current iteration count
alpha: [f64; 100]Tridiagonal matrix elements
beta: [f64; 100]§vectors: [Vector4; 3]Lanczos vectors (only store 3 at a time)
eigenvalues: [f64; 4]Eigenvalues
config: SolverConfigSolver configuration
solver_state: SolverStateSolver state
Implementations§
Source§impl FixedLanczosEigensolver
impl FixedLanczosEigensolver
Sourcepub fn solve_smallest_eigenvector(
&mut self,
matrix: &Matrix4x4,
) -> SolverResult<Vector4>
pub fn solve_smallest_eigenvector( &mut self, matrix: &Matrix4x4, ) -> SolverResult<Vector4>
Solves for the eigenvector corresponding to the smallest eigenvalue. This is a deterministic numerical method.
Source§impl FixedLanczosEigensolver
impl FixedLanczosEigensolver
Sourcepub fn new(config: SolverConfig) -> Self
pub fn new(config: SolverConfig) -> Self
Create new Lanczos eigensolver
Sourcepub fn find_lowest_eigenvalues(
&mut self,
matrix: &Matrix4x4,
num_eigenvalues: usize,
) -> SolverResult<[f64; 4]>
pub fn find_lowest_eigenvalues( &mut self, matrix: &Matrix4x4, num_eigenvalues: usize, ) -> SolverResult<[f64; 4]>
Find lowest eigenvalues of symmetric matrix
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FixedLanczosEigensolver
impl RefUnwindSafe for FixedLanczosEigensolver
impl Send for FixedLanczosEigensolver
impl Sync for FixedLanczosEigensolver
impl Unpin for FixedLanczosEigensolver
impl UnsafeUnpin for FixedLanczosEigensolver
impl UnwindSafe for FixedLanczosEigensolver
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§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
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.