pub trait RowIDTraits {
type A: Scalar;
// Required methods
fn get_x(&self) -> ArrayView2<'_, Self::A>;
fn get_r(&self) -> ArrayView2<'_, Self::A>;
fn get_row_ind(&self) -> ArrayView1<'_, usize>;
fn get_x_mut(&mut self) -> ArrayViewMut2<'_, Self::A>;
fn get_r_mut(&mut self) -> ArrayViewMut2<'_, Self::A>;
fn get_row_ind_mut(&mut self) -> ArrayViewMut1<'_, usize>;
fn new(
x: Array2<Self::A>,
r: Array2<Self::A>,
row_ind: Array1<usize>,
) -> Self;
fn two_sided_id(&self) -> Result<TwoSidedID<Self::A>>;
// Provided methods
fn nrows(&self) -> usize { ... }
fn ncols(&self) -> usize { ... }
fn rank(&self) -> usize { ... }
fn to_mat(&self) -> Array2<Self::A> { ... }
}
Expand description
Traits defining a row interpolative decomposition
A row interpolative decomposition of a matrix $A\in\mathbb{C}^{m\times n}$ is
Required Associated Types§
Required Methods§
Sourcefn get_x(&self) -> ArrayView2<'_, Self::A>
fn get_x(&self) -> ArrayView2<'_, Self::A>
Return the X matrix
Sourcefn get_r(&self) -> ArrayView2<'_, Self::A>
fn get_r(&self) -> ArrayView2<'_, Self::A>
Return the R matrix
Sourcefn get_row_ind(&self) -> ArrayView1<'_, usize>
fn get_row_ind(&self) -> ArrayView1<'_, usize>
Return the index vector
fn get_x_mut(&mut self) -> ArrayViewMut2<'_, Self::A>
fn get_r_mut(&mut self) -> ArrayViewMut2<'_, Self::A>
fn get_row_ind_mut(&mut self) -> ArrayViewMut1<'_, usize>
Sourcefn new(x: Array2<Self::A>, r: Array2<Self::A>, row_ind: Array1<usize>) -> Self
fn new(x: Array2<Self::A>, r: Array2<Self::A>, row_ind: Array1<usize>) -> Self
Return a row interpolative decomposition from given component matrices $X$ and $R$ and index array row_ind.
Sourcefn two_sided_id(&self) -> Result<TwoSidedID<Self::A>>
fn two_sided_id(&self) -> Result<TwoSidedID<Self::A>>
Convert the row interpolative decomposition into a two sided interpolative decomposition
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.