pub struct PirlsProblem<'a, X> {
pub x: X,
pub offset: ArrayView1<'a, f64>,
pub y: ArrayView1<'a, f64>,
pub priorweights: ArrayView1<'a, f64>,
pub covariate_se: Option<ArrayView1<'a, f64>>,
pub gaussian_fixed_cache: Option<&'a GaussianFixedCache>,
pub glm_first_step_gram: Option<&'a Array2<f64>>,
}Fields§
§x: X§offset: ArrayView1<'a, f64>§y: ArrayView1<'a, f64>§priorweights: ArrayView1<'a, f64>§covariate_se: Option<ArrayView1<'a, f64>>§gaussian_fixed_cache: Option<&'a GaussianFixedCache>When set, the inner PLS solver reuses the precomputed XᵀWX and
XᵀW(y − offset) in original coordinates instead of streaming the
O(N·p²) GEMM and the O(N·p) matvec on every outer REML iteration.
Valid only when the family is Gaussian + Identity link, prior weights
are constant across outer iterations (always true in the REML outer
loop), no Firth bias reduction, and no inequality / lower-bound
constraints (matching the existing Identity short-circuit at
pirls.rs:6237). The penalty λ·S is still added per-λ on top of
the cached XᵀWX.
glm_first_step_gram: Option<&'a Array2<f64>>Frozen-weight first-Fisher-step data-fit Gram XᵀWX for a GLM
design-moving ψ-trial (#1111 / #1033 mechanism (c)), in original
(conditioned x_fit) coordinates. When set, the iterative GLM P-IRLS
serves its FIRST Fisher-scoring iteration’s XᵀWX from this matrix
instead of streaming the O(N·p²) weighted cross-product; every later
iteration restreams the true moving W, so the converged β̂ is
unchanged. Mutually distinct from gaussian_fixed_cache (which is the
Gaussian-identity converged-objective short-circuit); this is the GLM
first-step lane and never short-circuits the iteration count.
Auto Trait Implementations§
impl<'a, X> Freeze for PirlsProblem<'a, X>where
X: Freeze,
impl<'a, X> RefUnwindSafe for PirlsProblem<'a, X>where
X: RefUnwindSafe,
impl<'a, X> Send for PirlsProblem<'a, X>where
X: Send,
impl<'a, X> Sync for PirlsProblem<'a, X>where
X: Sync,
impl<'a, X> Unpin for PirlsProblem<'a, X>where
X: Unpin,
impl<'a, X> UnsafeUnpin for PirlsProblem<'a, X>where
X: UnsafeUnpin,
impl<'a, X> UnwindSafe for PirlsProblem<'a, X>where
X: UnwindSafe,
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
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>
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 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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.