Type Alias VerticallyStridedMatrixView

Source
pub type VerticallyStridedMatrixView<Inner> = RowIndexMappedView<VerticallyStridedRowIndexMap, Inner>;

Aliased Type§

struct VerticallyStridedMatrixView<Inner> {
    pub index_map: VerticallyStridedRowIndexMap,
    pub inner: Inner,
}

Fields§

§index_map: VerticallyStridedRowIndexMap§inner: Inner

Trait Implementations

Source§

impl<IndexMap: Clone, Inner: Clone> Clone for RowIndexMappedView<IndexMap, Inner>

Source§

fn clone(&self) -> RowIndexMappedView<IndexMap, Inner>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<IndexMap: Debug, Inner: Debug> Debug for RowIndexMappedView<IndexMap, Inner>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T: Send + Sync, IndexMap: RowIndexMap, Inner: Matrix<T>> Matrix<T> for RowIndexMappedView<IndexMap, Inner>

Source§

type Row<'a> = <Inner as Matrix<T>>::Row<'a> where Self: 'a

Source§

fn width(&self) -> usize

Source§

fn height(&self) -> usize

Source§

fn get(&self, r: usize, c: usize) -> T

Source§

fn row(&self, r: usize) -> Self::Row<'_>

Source§

fn row_slice(&self, r: usize) -> impl Deref<Target = [T]>

Source§

fn to_row_major_matrix(self) -> RowMajorMatrix<T>
where Self: Sized, T: Clone,

Source§

fn horizontally_packed_row<'a, P>( &'a self, r: usize, ) -> (impl Iterator<Item = P> + Send + Sync, impl Iterator<Item = T> + Send + Sync)
where P: PackedValue<Value = T>, T: Clone + 'a,

Source§

fn padded_horizontally_packed_row<'a, P>( &'a self, r: usize, ) -> impl Iterator<Item = P> + Send + Sync
where P: PackedValue<Value = T>, T: Clone + Default + 'a,

Zero padded.
Source§

fn dimensions(&self) -> Dimensions

Source§

fn rows(&self) -> impl Iterator<Item = Self::Row<'_>>

Source§

fn par_rows(&self) -> impl IndexedParallelIterator<Item = Self::Row<'_>>

Source§

fn first_row(&self) -> Self::Row<'_>

Source§

fn last_row(&self) -> Self::Row<'_>

Source§

fn par_horizontally_packed_rows<'a, P>( &'a self, ) -> impl IndexedParallelIterator<Item = (impl Iterator<Item = P> + Send + Sync, impl Iterator<Item = T> + Send + Sync)>
where P: PackedValue<Value = T>, T: Clone + 'a,

Source§

fn par_padded_horizontally_packed_rows<'a, P>( &'a self, ) -> impl IndexedParallelIterator<Item = impl Iterator<Item = P> + Send + Sync>
where P: PackedValue<Value = T>, T: Clone + Default + 'a,

Source§

fn vertically_packed_row<P>(&self, r: usize) -> impl Iterator<Item = P>
where T: Copy, P: PackedValue<Value = T>,

Pack together a collection of adjacent rows from the matrix. Read more
Source§

fn vertically_packed_row_pair<P>(&self, r: usize, step: usize) -> Vec<P>
where T: Copy, P: PackedValue<Value = T>,

Pack together a collection of rows and “next” rows from the matrix. Read more
Source§

fn vertically_strided( self, stride: usize, offset: usize, ) -> VerticallyStridedMatrixView<Self>
where Self: Sized,

Source§

fn columnwise_dot_product<EF>(&self, v: &[EF]) -> Vec<EF>
where T: Field, EF: ExtensionField<T>,

Compute Mᵀv, aka premultiply this matrix by the given vector, aka scale each row by the corresponding entry in v and take the sum across rows. v can be a vector of extension elements.
Source§

fn dot_ext_powers<EF>( &self, base: EF, ) -> impl IndexedParallelIterator<Item = EF>
where T: Field, EF: ExtensionField<T>,

Multiply this matrix by the vector of powers of base, which is an extension element.
Source§

impl<IndexMap: Copy, Inner: Copy> Copy for RowIndexMappedView<IndexMap, Inner>