pub struct SupernodalIntranodeLbltRef<'a, I: Index, T> { /* private fields */ }Expand description
cholesky $LBL^\top$ factors containing both the symbolic and numeric representations
Implementations§
Source§impl<'a, I: Index, T> SupernodalIntranodeLbltRef<'a, I, T>
impl<'a, I: Index, T> SupernodalIntranodeLbltRef<'a, I, T>
Sourcepub fn new(
symbolic: &'a SymbolicSupernodalCholesky<I>,
values: &'a [T],
subdiag: &'a [T],
perm: PermRef<'a, I>,
) -> Self
pub fn new( symbolic: &'a SymbolicSupernodalCholesky<I>, values: &'a [T], subdiag: &'a [T], perm: PermRef<'a, I>, ) -> Self
creates a new cholesky intranodal $LBL^\top$ factor from the symbolic part and numerical values, as well as the pivoting permutation
§panics
- panics if
values.len() != symbolic.len_val() - panics if
subdiag.len() != symbolic.nrows() - panics if
perm.len() != symbolic.nrows()
Sourcepub fn symbolic(self) -> &'a SymbolicSupernodalCholesky<I>
pub fn symbolic(self) -> &'a SymbolicSupernodalCholesky<I>
returns the symbolic part of the cholesky factor
Sourcepub fn supernode(self, s: usize) -> SupernodeRef<'a, I, T>
pub fn supernode(self, s: usize) -> SupernodeRef<'a, I, T>
returns the s’th supernode
Sourcepub fn solve_in_place_no_numeric_permute_with_conj(
self,
conj_lb: Conj,
rhs: MatMut<'_, T>,
par: Par,
stack: &mut MemStack,
)where
T: ComplexField,
pub fn solve_in_place_no_numeric_permute_with_conj(
self,
conj_lb: Conj,
rhs: MatMut<'_, T>,
par: Par,
stack: &mut MemStack,
)where
T: ComplexField,
solves the system $L B L^H x = \text{rhs}$, implicitly conjugating $L$ and $B$ if needed
§note
note that this function doesn’t apply the pivoting permutation. users are expected to
apply it manually to rhs before and after calling this function
§panics
panics if rhs.nrows() != self.symbolic().nrows()
Trait Implementations§
Source§impl<I: Index, T> Clone for SupernodalIntranodeLbltRef<'_, I, T>
impl<I: Index, T> Clone for SupernodalIntranodeLbltRef<'_, I, T>
impl<I: Index, T> Copy for SupernodalIntranodeLbltRef<'_, I, T>
Auto Trait Implementations§
impl<'a, I, T> Freeze for SupernodalIntranodeLbltRef<'a, I, T>
impl<'a, I, T> RefUnwindSafe for SupernodalIntranodeLbltRef<'a, I, T>where
T: RefUnwindSafe,
I: RefUnwindSafe,
impl<'a, I, T> Send for SupernodalIntranodeLbltRef<'a, I, T>where
T: Sync,
impl<'a, I, T> Sync for SupernodalIntranodeLbltRef<'a, I, T>where
T: Sync,
impl<'a, I, T> Unpin for SupernodalIntranodeLbltRef<'a, I, T>
impl<'a, I, T> UnwindSafe for SupernodalIntranodeLbltRef<'a, I, T>where
T: RefUnwindSafe,
I: RefUnwindSafe,
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 more