pub enum DenseDesignMatrix {
Materialized(Arc<Array2<f64>>),
Lazy(Arc<dyn DenseDesignOperator>),
}Variants§
Implementations§
Source§impl DenseDesignMatrix
impl DenseDesignMatrix
pub fn nrows(&self) -> usize
pub fn ncols(&self) -> usize
pub fn as_dense_ref(&self) -> Option<&Array2<f64>>
pub fn is_materialized_dense(&self) -> bool
pub fn is_operator_backed(&self) -> bool
pub fn to_dense(&self) -> Array2<f64>
pub fn to_dense_arc(&self) -> Arc<Array2<f64>> ⓘ
pub fn try_to_dense_arc( &self, context: &str, ) -> Result<Arc<Array2<f64>>, String>
Sourcepub fn try_to_dense_arc_with_policy(
&self,
context: &str,
policy: &ResourcePolicy,
) -> Result<Arc<Array2<f64>>, String>
pub fn try_to_dense_arc_with_policy( &self, context: &str, policy: &ResourcePolicy, ) -> Result<Arc<Array2<f64>>, String>
Policy-aware variant of Self::try_to_dense_arc.
Uses the supplied policy’s max_single_materialization_bytes cap when
deciding whether to densify a lazy operator-backed design. The default
try_to_dense_arc always uses ResourcePolicy::default_library() (the
conservative 256 MiB cap suitable for ad-hoc dense conversions); cache
layers that have their own larger cap (e.g.
CoefficientTransformOperator::MATERIALIZE_MAX_BYTES) can call this
method to consume the inner under their own threshold without forcing
the conservative default on every consumer.
pub fn try_row_chunk( &self, rows: Range<usize>, ) -> Result<Array2<f64>, MatrixMaterializationError>
pub fn row_chunk_into( &self, rows: Range<usize>, out: ArrayViewMut2<'_, f64>, ) -> Result<(), MatrixMaterializationError>
Trait Implementations§
Source§impl Clone for DenseDesignMatrix
impl Clone for DenseDesignMatrix
Source§fn clone(&self) -> DenseDesignMatrix
fn clone(&self) -> DenseDesignMatrix
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DenseDesignMatrix
impl Debug for DenseDesignMatrix
Source§impl DenseDesignOperator for DenseDesignMatrix
impl DenseDesignOperator for DenseDesignMatrix
fn compute_xtwy( &self, weights: &Array1<f64>, y: &Array1<f64>, ) -> Result<Array1<f64>, String>
fn quadratic_form_diag( &self, middle: &Array2<f64>, ) -> Result<Array1<f64>, String>
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.
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 to_dense_arc(&self) -> Arc<Array2<f64>> ⓘ
fn to_dense_arc(&self) -> Arc<Array2<f64>> ⓘ
Shared dense materialization via the required row-chunk API. Read more
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.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<T> From<Arc<T>> for DenseDesignMatrixwhere
T: DenseDesignOperator + 'static,
impl<T> From<Arc<T>> for DenseDesignMatrixwhere
T: DenseDesignOperator + 'static,
Source§impl From<DenseDesignMatrix> for DesignMatrix
impl From<DenseDesignMatrix> for DesignMatrix
Source§fn from(value: DenseDesignMatrix) -> Self
fn from(value: DenseDesignMatrix) -> Self
Converts to this type from the input type.
Source§impl LinearOperator for DenseDesignMatrix
impl LinearOperator for DenseDesignMatrix
fn nrows(&self) -> usize
fn ncols(&self) -> usize
fn apply(&self, vector: &Array1<f64>) -> Array1<f64>
fn apply_transpose(&self, vector: &Array1<f64>) -> Array1<f64>
fn diag_xtw_x(&self, weights: &Array1<f64>) -> Result<Array2<f64>, String>
fn diag_gram(&self, weights: &Array1<f64>) -> Result<Array1<f64>, String>
fn apply_weighted_normal( &self, weights: &Array1<f64>, vector: &Array1<f64>, penalty: Option<&Array2<f64>>, ridge: f64, ) -> Array1<f64>
fn uses_matrix_free_pcg(&self) -> bool
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 DenseDesignMatrix
impl !RefUnwindSafe for DenseDesignMatrix
impl Send for DenseDesignMatrix
impl Sync for DenseDesignMatrix
impl Unpin for DenseDesignMatrix
impl UnsafeUnpin for DenseDesignMatrix
impl !UnwindSafe for DenseDesignMatrix
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> 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,
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.