pub struct FixedDesignRowCache { /* private fields */ }Expand description
Cached fixed design rows for GLM / changing-W PIRLS trials.
This cache owns the theta-invariant X rows once. Each trial recomputes
X'WX and X'Wz because the scalar working weights and working response
genuinely move during PIRLS. The Gaussian constant-Gram trick does not apply
when W changes; the saved work is the expensive measure-jet basis/design
construction, not the unavoidable weighted contraction over fixed rows.
Implementations§
Source§impl FixedDesignRowCache
impl FixedDesignRowCache
Sourcepub fn build(x: ArrayView2<'_, f64>) -> Result<Self, String>
pub fn build(x: ArrayView2<'_, f64>) -> Result<Self, String>
Cache a finite, non-empty fixed design.
pub fn n(&self) -> usize
pub fn p(&self) -> usize
pub fn design(&self) -> ArrayView2<'_, f64>
Sourcepub fn xtwx(&self, weights: ArrayView1<'_, f64>) -> Result<Array2<f64>, String>
pub fn xtwx(&self, weights: ArrayView1<'_, f64>) -> Result<Array2<f64>, String>
Recompute X' diag(weights) X over cached rows.
This remains O(n p^2), the irreducible weighted contraction when W
changes. It avoids rebuilding the n-row measure-jet design.
Sourcepub fn xtwz(
&self,
weights: ArrayView1<'_, f64>,
z: ArrayView1<'_, f64>,
) -> Result<Array1<f64>, String>
pub fn xtwz( &self, weights: ArrayView1<'_, f64>, z: ArrayView1<'_, f64>, ) -> Result<Array1<f64>, String>
Recompute X' diag(weights) z over cached rows for a PIRLS response.
Auto Trait Implementations§
impl Freeze for FixedDesignRowCache
impl RefUnwindSafe for FixedDesignRowCache
impl Send for FixedDesignRowCache
impl Sync for FixedDesignRowCache
impl Unpin for FixedDesignRowCache
impl UnsafeUnpin for FixedDesignRowCache
impl UnwindSafe for FixedDesignRowCache
Blanket Implementations§
impl<T> Allocation for T
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> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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.