pub struct SavedTransformationNormalGeometry {
pub parameterization: TransformationNormalParameterization,
pub response_degree: usize,
pub response_knot_count: usize,
pub shape_coordinate_count: usize,
pub cone_carrier_covariate_width: usize,
pub cone_carrier_row_count: usize,
pub certified_response_support: (f64, f64),
pub response_median: f64,
}Expand description
Direct-α SCOP-CTN transformation geometry required to replay a saved transformation-normal fit (gam#2306).
Beyond the response knots/degree/median/transform snapshot, direct-α replay
— and in particular the certified-domain refusal that
crate::transformation_normal::transformation_normal_pit_score raises for
out-of-support prediction — needs the coefficient parameterization marker,
the response value-basis spec, the shape-coordinate count, the cone-carrier
(Khatri-Rao factor) shape, and the response support the positivity cone was
certified over. This is a REQUIRED v13 field for a transformation-normal
model: loading a CTN payload that lacks it (a v12-or-older squared-γ model)
is a typed rejection in [FittedModelPayload::validate_for_persistence],
never a heuristic conversion.
Fields§
§parameterization: TransformationNormalParameterizationCoefficient chart. Only DirectAlpha is written by a v13+ CTN writer.
response_degree: usizeI-spline response value-basis degree (response_degree).
response_knot_count: usizeNumber of response knots persisted in transformation_response_knots
(a provenance cross-check: replay rebuilds the value basis from those
knots and this count must agree).
shape_coordinate_count: usizeNumber of shape coordinates p_resp − 1: the non-negativity-constrained
I-spline columns. Response column 0 is the unconstrained location field.
cone_carrier_covariate_width: usizeCovariate-side design width p_cov. The Khatri-Rao cone carrier factor
is n × p_cov, so the coefficient block is p_resp × p_cov.
cone_carrier_row_count: usizeNumber of covariate rows the positivity cone was certified over (the
fitted observation count n).
certified_response_support: (f64, f64)Response support [y_lo, y_hi] (the clamped-knot span) the transform and
positivity cone were certified over — the certified domain the
out-of-support prediction refusal is defined against.
response_median: f64Response median anchoring the per-row monotonicity floor ε·(y − median).
Implementations§
Trait Implementations§
Source§impl Clone for SavedTransformationNormalGeometry
impl Clone for SavedTransformationNormalGeometry
Source§fn clone(&self) -> SavedTransformationNormalGeometry
fn clone(&self) -> SavedTransformationNormalGeometry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de> Deserialize<'de> for SavedTransformationNormalGeometry
impl<'de> Deserialize<'de> for SavedTransformationNormalGeometry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for SavedTransformationNormalGeometry
Auto Trait Implementations§
impl Freeze for SavedTransformationNormalGeometry
impl RefUnwindSafe for SavedTransformationNormalGeometry
impl Send for SavedTransformationNormalGeometry
impl Sync for SavedTransformationNormalGeometry
impl Unpin for SavedTransformationNormalGeometry
impl UnsafeUnpin for SavedTransformationNormalGeometry
impl UnwindSafe for SavedTransformationNormalGeometry
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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,
impl<T> Scalar for T
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.