pub struct Lapack { /* private fields */ }Implementations§
Trait Implementations§
Source§impl<T> Eig<T> for Lapack
impl<T> Eig<T> for Lapack
Source§fn eig<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>where
T: ComplexFloat,
fn eig<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>where
T: ComplexFloat,
Compute eigenvalues and right eigenvectors with new allocated matrices
Source§fn eig_full<L: Layout>(&self, _a: &mut DSlice<T, 2, L>) -> EigResult<T>
fn eig_full<L: Layout>(&self, _a: &mut DSlice<T, 2, L>) -> EigResult<T>
Compute eigenvalues and both left/right eigenvectors with new allocated matrices
Source§fn eig_values<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
fn eig_values<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
Compute only eigenvalues with new allocated vectors
Source§fn eigh<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
fn eigh<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
Compute eigenvalues and eigenvectors of a Hermitian matrix
Source§fn eigs<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
fn eigs<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>
Compute eigenvalues and eigenvectors of a Hermitian matrix
Source§fn schur<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>
fn schur<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>
Compute Schur decomposition with new allocated matrices
Source§fn schur_overwrite<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
t: &mut DSlice<T, 2, Dense>,
z: &mut DSlice<T, 2, Dense>,
) -> Result<(), SchurError>
fn schur_overwrite<L: Layout>( &self, a: &mut DSlice<T, 2, L>, t: &mut DSlice<T, 2, Dense>, z: &mut DSlice<T, 2, Dense>, ) -> Result<(), SchurError>
Compute Schur decomposition overwriting existing matrices
Source§fn schur_complex<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>
fn schur_complex<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>
Compute Schur (complex) decomposition with new allocated matrices
Source§impl<T> LU<T> for Lapack
impl<T> LU<T> for Lapack
Source§fn choleski<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> InvResult<T>
fn choleski<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> InvResult<T>
Computes the Cholesky decomposition, returning a lower-triangular matrix
Source§fn choleski_overwrite<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
) -> Result<(), InvError>
fn choleski_overwrite<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> Result<(), InvError>
Computes the Cholesky decomposition in-place, overwriting the input matrix
Source§fn lu_overwrite<L: Layout, Ll: Layout, Lu: Layout, Lp: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
l: &mut DSlice<T, 2, Ll>,
u: &mut DSlice<T, 2, Lu>,
p: &mut DSlice<T, 2, Lp>,
)
fn lu_overwrite<L: Layout, Ll: Layout, Lu: Layout, Lp: Layout>( &self, a: &mut DSlice<T, 2, L>, l: &mut DSlice<T, 2, Ll>, u: &mut DSlice<T, 2, Lu>, p: &mut DSlice<T, 2, Lp>, )
Computes LU decomposition overwriting existing matrices
Source§fn lu<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
) -> (DTensor<T, 2>, DTensor<T, 2>, DTensor<T, 2>)
fn lu<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> (DTensor<T, 2>, DTensor<T, 2>, DTensor<T, 2>)
Computes LU decomposition with new allocated matrices: L, U, P (permutation matrix)
Source§fn inv_overwrite<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
) -> Result<(), InvError>
fn inv_overwrite<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> Result<(), InvError>
Computes inverse overwriting the input matrix
Source§impl<T> QR<T> for Lapack
impl<T> QR<T> for Lapack
Source§impl<T> SVD<T> for Lapack
impl<T> SVD<T> for Lapack
Source§fn svd<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
) -> Result<SVDDecomp<T>, SVDError>
fn svd<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> Result<SVDDecomp<T>, SVDError>
Compute full SVD with new allocated matrices
Source§fn svd_s<L: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
) -> Result<DTensor<T, 2>, SVDError>
fn svd_s<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> Result<DTensor<T, 2>, SVDError>
Compute only singular values with new allocated matrix
Source§fn svd_overwrite<L: Layout, Ls: Layout, Lu: Layout, Lvt: Layout>(
&self,
a: &mut DSlice<T, 2, L>,
s: &mut DSlice<T, 2, Ls>,
u: &mut DSlice<T, 2, Lu>,
vt: &mut DSlice<T, 2, Lvt>,
) -> Result<(), SVDError>
fn svd_overwrite<L: Layout, Ls: Layout, Lu: Layout, Lvt: Layout>( &self, a: &mut DSlice<T, 2, L>, s: &mut DSlice<T, 2, Ls>, u: &mut DSlice<T, 2, Lu>, vt: &mut DSlice<T, 2, Lvt>, ) -> Result<(), SVDError>
Compute full SVD, overwriting existing matrices
The matrix A is decomposed as A = U * S * V^T where: Read more
Source§impl<T> Solve<T> for Lapack
impl<T> Solve<T> for Lapack
Source§fn solve_overwrite<La: Layout, Lb: Layout, Lp: Layout>(
&self,
a: &mut DSlice<T, 2, La>,
b: &mut DSlice<T, 2, Lb>,
p: &mut DSlice<T, 2, Lp>,
) -> Result<(), SolveError>
fn solve_overwrite<La: Layout, Lb: Layout, Lp: Layout>( &self, a: &mut DSlice<T, 2, La>, b: &mut DSlice<T, 2, Lb>, p: &mut DSlice<T, 2, Lp>, ) -> Result<(), SolveError>
Solves linear system AX = b overwriting existing matrices
A is overwritten with its LU decomposition
B is overwritten with the solution X
P is filled with the permutation matrix such that A = PLU
Returns Ok(()) on success, Err(SolveError) on failure
Auto Trait Implementations§
impl Freeze for Lapack
impl RefUnwindSafe for Lapack
impl Send for Lapack
impl Sync for Lapack
impl Unpin for Lapack
impl UnwindSafe for Lapack
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> IntoCloned<T> for T
impl<T> IntoCloned<T> for T
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