Skip to content

lazymatrix::LazyRow ​

LazyMatrix for Rust · 0.8.1

Source

rust
pub struct LazyRow<'a, F>

A borrowed sparse row with lazy column normalization.

The raw column indices and values, and the optional centers and scales, are borrowed without copying. Each logical entry is (raw[j] - center[j]) / scale[j], with effective centers of zero and scales of one when inactive. If storage contains duplicate column indices, sum their raw values before applying normalization.

The sparse-plus-affine representation consists of a generally dense background -center[j] / scale[j] and stored corrections value / scale[j]. A centered logical row can therefore be dense even when its raw row is empty. Self::implicit_value and Self::stored_corrections expose these parts without allocating a dense row. Adding the parts can differ from direct normalization because of floating-point rounding or nonfinite arithmetic.

Inherent implementation ​

Source

rust
impl<'a, F> LazyRow<'a, F>

centers ​

rust
pub fn centers(&self) -> Option<&'a [F]>

Source

Borrow the full column-center slice, or None when centering is inactive.

column_indices ​

rust
pub fn column_indices(&self) -> &'a [usize]

Source

Column indices of the raw stored entries, in backend storage order.

Unsorted and duplicate indices remain present.

is_empty ​

rust
pub fn is_empty(&self) -> bool

Source

Whether the logical row has no columns.

A row with no stored entries can still have a nonzero logical length.

len ​

rust
pub fn len(&self) -> usize

Source

Logical length of the row, including structurally absent entries.

scales ​

rust
pub fn scales(&self) -> Option<&'a [F]>

Source

Borrow the full column-scale slice, or None when scaling is inactive.

values ​

rust
pub fn values(&self) -> &'a [F]

Source

Raw stored values corresponding to Self::column_indices.

Explicitly stored zeros remain present.

Inherent implementation ​

Source

rust
impl<F: Scalar> LazyRow<'_, F>

center ​

rust
pub fn center(&self, j: usize) -> F

Source

Effective center of column j, or zero when centering is inactive.

This takes O(1) time.

Panics ​

Panics if j >= self.len().

implicit_value ​

rust
pub fn implicit_value(&self, j: usize) -> F

Source

Logical value at a structurally absent column, -center(j) / scale(j).

This takes O(1) time.

Panics ​

Panics if j >= self.len().

scale ​

rust
pub fn scale(&self, j: usize) -> F

Source

Effective scale of column j, or one when scaling is inactive.

This takes O(1) time.

Panics ​

Panics if j >= self.len().

stored_corrections ​

rust
pub fn stored_corrections(&self) -> impl Iterator<Item = (usize, F)> + '_

Source

Stored corrections to the background as (column, raw_value / scale).

The iterator preserves storage order, duplicates, and explicit zeros. Consuming it takes O(stored entries) time and allocates nothing. These corrections exclude centering; see the type documentation for the relationship to direct logical normalization.

Implementation of Clone ​

Source

rust
impl<'a, F: core::clone::Clone> Clone for LazyRow<'a, F>

clone ​

rust
fn clone(&self) -> Self

Source

Implementation of Copy ​

Source

rust
impl<'a, F: core::marker::Copy> Copy for LazyRow<'a, F>

Implementation of Debug ​

Source

rust
impl<'a, F: core::fmt::Debug> Debug for LazyRow<'a, F>

fmt ​

rust
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result

Source

Implementation of Freeze ​

rust
impl<'a, F> Freeze for LazyRow<'a, F> where &'a [F]: Freeze, Option<&'a [F]>: Freeze + Freeze

Implementation of RefUnwindSafe ​

rust
impl<'a, F> RefUnwindSafe for LazyRow<'a, F> where &'a [F]: RefUnwindSafe, Option<&'a [F]>: RefUnwindSafe + RefUnwindSafe

Implementation of Send ​

rust
impl<'a, F> Send for LazyRow<'a, F> where &'a [F]: Send, Option<&'a [F]>: Send + Send

Implementation of Sync ​

rust
impl<'a, F> Sync for LazyRow<'a, F> where &'a [F]: Sync, Option<&'a [F]>: Sync + Sync

Implementation of Unpin ​

rust
impl<'a, F> Unpin for LazyRow<'a, F> where &'a [F]: Unpin, Option<&'a [F]>: Unpin + Unpin

Implementation of UnsafeUnpin ​

rust
impl<'a, F> UnsafeUnpin for LazyRow<'a, F> where &'a [F]: UnsafeUnpin, Option<&'a [F]>: UnsafeUnpin + UnsafeUnpin

Implementation of UnwindSafe ​

rust
impl<'a, F> UnwindSafe for LazyRow<'a, F> where &'a [F]: UnwindSafe, Option<&'a [F]>: UnwindSafe + UnwindSafe

Implementation of Any ​

rust
impl<T> Any for T where T: 'static + ?Sized

Implementation of Borrow ​

rust
impl<T> Borrow<T> for T where T: ?Sized

Implementation of BorrowMut ​

rust
impl<T> BorrowMut<T> for T where T: ?Sized

Implementation of ByRef ​

rust
impl<T> ByRef<T> for T

Implementation of CastableFrom ​

rust
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT where ST: ?Sized, DT: ?Sized

Implementation of CastableFrom ​

rust
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT where ST: ?Sized, DT: ?Sized

Implementation of CloneToUninit ​

rust
impl<T> CloneToUninit for T where T: Clone

Implementation of From ​

rust
impl<T> From<T> for T

Implementation of Imply ​

rust
impl<T, U> Imply<T> for U where T: ?Sized, U: ?Sized

Implementation of Into ​

rust
impl<T, U> Into<U> for T where U: From<T>

Implementation of IntoEither ​

rust
impl<T> IntoEither for T

Implementation of Pointable ​

rust
impl<T> Pointable for T

Implementation of Read ​

rust
impl<T> Read<Exclusive, BecauseExclusive> for T where T: ?Sized

Implementation of Same ​

rust
impl<T> Same for T

Implementation of SupersetOf ​

rust
impl<SS, SP> SupersetOf<SS> for SP where SS: SubsetOf<SP>

Implementation of ToOwned ​

rust
impl<T> ToOwned for T where T: Clone

Implementation of TryFrom ​

rust
impl<T, U> TryFrom<U> for T where U: Into<T>

Implementation of TryInto ​

rust
impl<T, U> TryInto<U> for T where U: TryFrom<T>

Released under the MIT and Apache 2.0 licenses.