pub struct RemlOuterAdmission {
pub n: usize,
pub p: usize,
pub num_rho: usize,
pub family: Option<PirlsLoopFamilyKind>,
pub curvature: PirlsLoopCurvatureKind,
pub gpu_available: bool,
}Expand description
Inputs to [should_run_reml_outer_on_device]. The admission predicate
for routing the outer REML BFGS-over-ρ loop onto a fully device-resident
driver (rather than the host orchestrator that hops out per step).
Fields are intentionally lifted from data the CPU REML entry has on hand before it touches the seed generator or the inner P-IRLS loop, so the admission check is allocation-free and can short-circuit before any device call.
Fields§
§n: usizeActive design rows (post-transform).
p: usizeActive design columns / penalised-Hessian dimension.
num_rho: usizeNumber of smoothing parameters ρ the outer BFGS optimises over.
family: Option<PirlsLoopFamilyKind>Inner family / link pair the device-resident PIRLS loop can evaluate.
None means the family does not map onto the six JIT-cached row
kernels — the outer loop must stay on the host orchestrator because
the inner step would already hop out anyway.
curvature: PirlsLoopCurvatureKindCurvature surface the inner loop will use; tied to family via
pirls_loop_curvature_for.
gpu_available: boolTrue when the CUDA runtime is initialised on this host.
Trait Implementations§
Source§impl Clone for RemlOuterAdmission
impl Clone for RemlOuterAdmission
Source§fn clone(&self) -> RemlOuterAdmission
fn clone(&self) -> RemlOuterAdmission
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RemlOuterAdmission
Auto Trait Implementations§
impl Freeze for RemlOuterAdmission
impl RefUnwindSafe for RemlOuterAdmission
impl Send for RemlOuterAdmission
impl Sync for RemlOuterAdmission
impl Unpin for RemlOuterAdmission
impl UnsafeUnpin for RemlOuterAdmission
impl UnwindSafe for RemlOuterAdmission
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
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> 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 more