pub struct StreamingRbf { /* private fields */ }Expand description
Online / incremental RBF interpolant.
Points are added one at a time via update. When
the window is full the oldest point is removed via a rank-1 downdate.
Implementations§
Source§impl StreamingRbf
impl StreamingRbf
Sourcepub fn new(config: StreamingRbfConfig) -> Self
pub fn new(config: StreamingRbfConfig) -> Self
Create a new, empty streaming RBF.
Sourcepub fn cholesky_rank1_update(
l: &mut Vec<Vec<f64>>,
v: &[f64],
) -> Result<(), InterpolateError>
pub fn cholesky_rank1_update( l: &mut Vec<Vec<f64>>, v: &[f64], ) -> Result<(), InterpolateError>
Performs an O(n²) Cholesky extension.
Appends a new row and column to the current lower-triangular Cholesky
factor L so that the extended factor corresponds to the augmented
Gram matrix G' = [[G, v[..n]]; [v[..n]ᵀ, v[n]]].
v has length old_n + 1:
v[0..old_n]are the cross-kernel values between the new point and all existing points.v[old_n]is the self-kernel valueφ(new, new).
Sourcepub fn update(&mut self, x: Vec<f64>, y: f64) -> Result<(), InterpolateError>
pub fn update(&mut self, x: Vec<f64>, y: f64) -> Result<(), InterpolateError>
Add a new observation (x, y) and update the interpolant.
If the window is full the oldest observation is evicted first.
Implementation strategy:
- When
forget_factor == 1.0(no forgetting): use rank-1 Cholesky update (O(n²)) by appending the new column. - When
forget_factor < 1.0: apply exponential forgetting to stored values and rebuild the Gram matrix from scratch (O(n²) rebuild, but avoids the numerical issues of scaling an existing factorisation).
Trait Implementations§
Source§impl Clone for StreamingRbf
impl Clone for StreamingRbf
Source§fn clone(&self) -> StreamingRbf
fn clone(&self) -> StreamingRbf
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for StreamingRbf
impl RefUnwindSafe for StreamingRbf
impl Send for StreamingRbf
impl Sync for StreamingRbf
impl Unpin for StreamingRbf
impl UnsafeUnpin for StreamingRbf
impl UnwindSafe for StreamingRbf
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.