pub enum SpectralMethod {
Lanczos,
Rff,
Eml,
}Expand description
Algorithm used to estimate algebraic connectivity (lambda₂).
§Decision rule (default policy)
Node count n | Path | Rationale |
|---|---|---|
n < 10_000 | SpectralMethod::Lanczos | Sparse O(k·m) is accurate and cheap enough; preferred when Fiedler quality matters |
10_000 ≤ n < 100_000 | SpectralMethod::Rff | O(m) random Fourier features; ~3–6× faster than Lanczos with ~5% accuracy loss |
n ≥ 100_000 | SpectralMethod::Eml | O(1) feature model for tick-rate budgets; re-train from occasional RFF/Lanczos |
Thresholds are SPECTRAL_RFF_MIN_NODES and SPECTRAL_EML_MIN_NODES.
Override via explicit spectral_analysis / spectral_analysis_rff /
EmlCoherenceModel::predict when a caller knows better.
See docs/benchmarks/results.md (WEFT-361) and the
spectral_lambda2_bench harness for measured latency/accuracy.
Variants§
Lanczos
Sparse Lanczos on the graph Laplacian (reference / small-n path).
Rff
Random Fourier Feature Laplacian estimator (large-n exact path).
Eml
O(1) EML coherence model from graph statistics (fast path).
Implementations§
Trait Implementations§
Source§impl Clone for SpectralMethod
impl Clone for SpectralMethod
impl Copy for SpectralMethod
Source§impl Debug for SpectralMethod
impl Debug for SpectralMethod
impl Eq for SpectralMethod
Source§impl Hash for SpectralMethod
impl Hash for SpectralMethod
Source§impl PartialEq for SpectralMethod
impl PartialEq for SpectralMethod
impl StructuralPartialEq for SpectralMethod
Auto Trait Implementations§
impl Freeze for SpectralMethod
impl RefUnwindSafe for SpectralMethod
impl Send for SpectralMethod
impl Sync for SpectralMethod
impl Unpin for SpectralMethod
impl UnsafeUnpin for SpectralMethod
impl UnwindSafe for SpectralMethod
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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