pub enum AdvancedSparsityPattern {
Diagonal {
fill_ratio: f32,
},
MultiDiagonal {
num_diagonals: usize,
offsets: Vec<i32>,
},
BlockDiagonal {
block_sizes: Vec<(usize, usize)>,
block_positions: Vec<(usize, usize)>,
},
Banded {
lower_bandwidth: usize,
upper_bandwidth: usize,
fill_ratio: f32,
},
Symmetric {
symmetry_ratio: f32,
base_pattern: Box<AdvancedSparsityPattern>,
},
ArrowHead {
head_size: usize,
},
Random {
clustering_coefficient: f32,
},
}
Expand description
Advanced sparsity patterns with detailed characteristics
Variants§
Diagonal
Diagonal matrix
MultiDiagonal
Multi-diagonal (tridiagonal, pentadiagonal, etc.)
BlockDiagonal
Block diagonal with detected block structure
Fields
Banded
Banded matrix with upper and lower bandwidth
Fields
Symmetric
Symmetric pattern
Fields
§
base_pattern: Box<AdvancedSparsityPattern>
Underlying pattern
ArrowHead
Arrow-head pattern (dense first row/column, sparse elsewhere)
Random
Random/unstructured pattern
Trait Implementations§
Source§impl Clone for AdvancedSparsityPattern
impl Clone for AdvancedSparsityPattern
Source§fn clone(&self) -> AdvancedSparsityPattern
fn clone(&self) -> AdvancedSparsityPattern
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for AdvancedSparsityPattern
impl RefUnwindSafe for AdvancedSparsityPattern
impl Send for AdvancedSparsityPattern
impl Sync for AdvancedSparsityPattern
impl Unpin for AdvancedSparsityPattern
impl UnwindSafe for AdvancedSparsityPattern
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> 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 more