pub struct ConditionedDesign { /* private fields */ }Expand description
A design matrix wrapper that lazily applies per-column centering and scaling without materializing a new dense matrix.
For each conditioned column j, the effective column is
(X[:,j] - mean_j) / scale_j. All other columns pass through unchanged.
Algebraically this is X·diag(a) - 1·d' where a[j] = 1/scale for
conditioned columns (1 otherwise) and d[j] = mean/scale for conditioned
columns (0 otherwise).
Implementations§
Trait Implementations§
Source§impl DenseDesignOperator for ConditionedDesign
impl DenseDesignOperator for ConditionedDesign
Source§fn compute_xtwy(
&self,
weights: &Array1<f64>,
y: &Array1<f64>,
) -> Result<Array1<f64>, String>
fn compute_xtwy( &self, weights: &Array1<f64>, y: &Array1<f64>, ) -> Result<Array1<f64>, String>
X_c’(w⊙y) = a⊙(X’(w⊙y)) - d·Σ(w⊙y)
Source§fn quadratic_form_diag(
&self,
middle: &Array2<f64>,
) -> Result<Array1<f64>, String>
fn quadratic_form_diag( &self, middle: &Array2<f64>, ) -> Result<Array1<f64>, String>
diag(X_c M X_c’) = diag(X(D_a M D_a)X’) - 2·X(D_a M d) + d’Md
Source§fn row_chunk_into(
&self,
rows: Range<usize>,
out: ArrayViewMut2<'_, f64>,
) -> Result<(), MatrixMaterializationError>
fn row_chunk_into( &self, rows: Range<usize>, out: ArrayViewMut2<'_, f64>, ) -> Result<(), MatrixMaterializationError>
Fill a dense row chunk without materializing the full matrix.
Required: every implementor must provide row-local access here.
Source§fn to_dense(&self) -> Array2<f64>
fn to_dense(&self) -> Array2<f64>
Materialize the full dense matrix. Operators that exist precisely to
avoid materialization should still support this for fallback paths,
diagnostics, and prediction.
Source§fn try_row_chunk(
&self,
rows: Range<usize>,
) -> Result<Array2<f64>, MatrixMaterializationError>
fn try_row_chunk( &self, rows: Range<usize>, ) -> Result<Array2<f64>, MatrixMaterializationError>
Extract a dense row chunk without materializing the full matrix.
Non-panicking owned-chunk API built on top of
row_chunk_into.Source§fn as_dense_ref(&self) -> Option<&Array2<f64>>
fn as_dense_ref(&self) -> Option<&Array2<f64>>
Borrow dense storage when this operator already owns it.
fn estimated_dense_bytes(&self) -> usize
fn try_to_dense_with_policy( &self, policy: &MaterializationPolicy, context: &'static str, ) -> Result<Arc<Array2<f64>>, MatrixMaterializationError>
Source§impl LinearOperator for ConditionedDesign
impl LinearOperator for ConditionedDesign
Source§fn diag_xtw_x(&self, weights: &Array1<f64>) -> Result<Array2<f64>, String>
fn diag_xtw_x(&self, weights: &Array1<f64>) -> Result<Array2<f64>, String>
X_c’WX_c = D_a(X’WX)D_a - D_a(X’w)d’ - d(X’w)’D_a + Σw·dd’
Source§fn diag_gram(&self, weights: &Array1<f64>) -> Result<Array1<f64>, String>
fn diag_gram(&self, weights: &Array1<f64>) -> Result<Array1<f64>, String>
Diagonal of X_c’WX_c — only conditioned columns change.
fn nrows(&self) -> usize
fn ncols(&self) -> usize
fn uses_matrix_free_pcg(&self) -> bool
fn apply_weighted_normal( &self, weights: &Array1<f64>, vector: &Array1<f64>, penalty: Option<&Array2<f64>>, ridge: f64, ) -> Array1<f64>
fn solve_system_matrix_free_pcg_try( &self, weights: &Array1<f64>, rhs: &Array1<f64>, penalty: Option<&Array2<f64>>, baseridge: f64, ) -> Result<Array1<f64>, String>
fn solve_system_matrix_free_pcg_with_info_try( &self, weights: &Array1<f64>, rhs: &Array1<f64>, penalty: Option<&Array2<f64>>, baseridge: f64, ) -> Result<(Array1<f64>, PcgSolveInfo), String>
fn factorize_system( &self, weights: &Array1<f64>, penalty: Option<&Array2<f64>>, ) -> Result<Box<dyn FactorizedSystem>, String>
fn solve_system( &self, weights: &Array1<f64>, rhs: &Array1<f64>, penalty: Option<&Array2<f64>>, ) -> Result<Array1<f64>, String>
fn solve_systemwith_policy( &self, weights: &Array1<f64>, rhs: &Array1<f64>, penalty: Option<&Array2<f64>>, ridge_floor: f64, ridge_policy: RidgePolicy, ) -> Result<Array1<f64>, String>
fn matvec(&self, vector: &Array1<f64>) -> Array1<f64>
fn matvec_trans(&self, vector: &Array1<f64>) -> Array1<f64>
fn compute_xtwx(&self, weights: &Array1<f64>) -> Result<Array2<f64>, String>
Auto Trait Implementations§
impl Freeze for ConditionedDesign
impl !RefUnwindSafe for ConditionedDesign
impl Send for ConditionedDesign
impl Sync for ConditionedDesign
impl Unpin for ConditionedDesign
impl UnsafeUnpin for ConditionedDesign
impl !UnwindSafe for ConditionedDesign
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
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
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
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.