pub struct Lapack { /* private fields */ }Expand description
LAPACK backend.
Implements the decomposition and solver traits from mdarray_linalg by
delegating to LAPACK routines.
Implementations§
Trait Implementations§
Source§impl<T, D0: Dim, D1: Dim> Eig<T, D0, D1> for Lapack
impl<T, D0: Dim, D1: Dim> Eig<T, D0, D1> for Lapack
Source§fn eig<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<EigDecomp<Self::SpectralScalar, D0, D1>, EigError>where
T: ComplexFloat,
fn eig<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<EigDecomp<Self::SpectralScalar, D0, D1>, EigError>where
T: ComplexFloat,
Compute eigenvalues and right eigenvectors with new allocated matrices
Source§fn eig_full<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<EigDecomp<Self::SpectralScalar, D0, D1>, EigError>
fn eig_full<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<EigDecomp<Self::SpectralScalar, D0, D1>, EigError>
Compute eigenvalues and both left/right eigenvectors with new allocated matrices
Source§fn eig_values<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<Array<Self::SpectralScalar, (D0,)>, EigError>
fn eig_values<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<Array<Self::SpectralScalar, (D0,)>, EigError>
Compute only eigenvalues with new allocated vectors
Source§fn eigh<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<EighDecomp<T, Self::RealScalar, D0, D1>, EigError>
fn eigh<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<EighDecomp<T, Self::RealScalar, D0, D1>, EigError>
Compute eigenvalues and eigenvectors of a self-adjoint matrix
Source§fn schur<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<SchurDecomp<T, D0, D1>, SchurError>
fn schur<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<SchurDecomp<T, D0, D1>, SchurError>
Compute Schur decomposition with new allocated matrices
Source§fn schur_write<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
t: &mut Slice<T, (D0, D1), Dense>,
z: &mut Slice<T, (D0, D1), Dense>,
) -> Result<(), SchurError>
fn schur_write<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, t: &mut Slice<T, (D0, D1), Dense>, z: &mut Slice<T, (D0, D1), Dense>, ) -> Result<(), SchurError>
Compute Schur decomposition overwriting existing matrices
Source§fn schur_complex<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<SchurDecomp<Self::SpectralScalar, D0, D1>, SchurError>
fn schur_complex<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<SchurDecomp<Self::SpectralScalar, D0, D1>, SchurError>
Compute Schur (complex) decomposition with new allocated matrices
Source§fn schur_complex_write<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
t: &mut Slice<Self::SpectralScalar, (D0, D1), Dense>,
z: &mut Slice<Self::SpectralScalar, (D0, D1), Dense>,
) -> Result<(), SchurError>
fn schur_complex_write<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, t: &mut Slice<Self::SpectralScalar, (D0, D1), Dense>, z: &mut Slice<Self::SpectralScalar, (D0, D1), Dense>, ) -> Result<(), SchurError>
Compute Schur (complex) decomposition overwriting existing matrices
Source§type SpectralScalar = Complex<<T as ComplexFloat>::Real>
type SpectralScalar = Complex<<T as ComplexFloat>::Real>
Source§type RealScalar = <T as ComplexFloat>::Real
type RealScalar = <T as ComplexFloat>::Real
Source§impl<T, D0: Dim, D1: Dim> LU<T, D0, D1> for Lapack
impl<T, D0: Dim, D1: Dim> LU<T, D0, D1> for Lapack
Source§fn cholesky<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<Array<T, (D0, D1)>, InvError>
fn cholesky<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<Array<T, (D0, D1)>, InvError>
Computes the Cholesky decomposition, returning a lower-triangular matrix
Source§fn cholesky_write<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<(), InvError>
fn cholesky_write<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<(), InvError>
Computes the Cholesky decomposition in-place, overwriting the input matrix
Source§fn lu_write<L: Layout, Ll: Layout, Lu: Layout, Lp: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
l: &mut Slice<T, (D0, D0), Ll>,
u: &mut Slice<T, (D0, D1), Lu>,
p: &mut Slice<T, (D0, D0), Lp>,
)
fn lu_write<L: Layout, Ll: Layout, Lu: Layout, Lp: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, l: &mut Slice<T, (D0, D0), Ll>, u: &mut Slice<T, (D0, D1), Lu>, p: &mut Slice<T, (D0, D0), Lp>, )
Source§fn lu<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> (Array<T, (D0, D0)>, Array<T, (D0, D1)>, Array<T, (D0, D0)>)
fn lu<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> (Array<T, (D0, D0)>, Array<T, (D0, D1)>, Array<T, (D0, D0)>)
Source§fn inv_write<L: Layout>(
&self,
a: &mut Slice<T, (D0, D1), L>,
) -> Result<(), InvError>
fn inv_write<L: Layout>( &self, a: &mut Slice<T, (D0, D1), L>, ) -> Result<(), InvError>
Source§impl<T, D0: Dim, D1: Dim> QR<T, D0, D1> for Lapack
impl<T, D0: Dim, D1: Dim> QR<T, D0, D1> for Lapack
Source§impl<T, D> SVD<T, D> for Lapack
impl<T, D> SVD<T, D> for Lapack
Source§type SingularValue = T
type SingularValue = T
Source§fn svd<L: Layout>(
&self,
a: &mut Slice<T, (D, D), L>,
) -> Result<SVDDecomp<T, Self::SingularValue, D>, SVDError>
fn svd<L: Layout>( &self, a: &mut Slice<T, (D, D), L>, ) -> Result<SVDDecomp<T, Self::SingularValue, D>, SVDError>
Source§fn svd_thin<L: Layout>(
&self,
a: &mut Slice<T, (D, D), L>,
) -> Result<SVDDecomp<T, Self::SingularValue, D>, SVDError>
fn svd_thin<L: Layout>( &self, a: &mut Slice<T, (D, D), L>, ) -> Result<SVDDecomp<T, Self::SingularValue, D>, SVDError>
Source§fn svd_s<L: Layout>(
&self,
a: &mut Slice<T, (D, D), L>,
) -> Result<Array<Self::SingularValue, (D,)>, SVDError>
fn svd_s<L: Layout>( &self, a: &mut Slice<T, (D, D), L>, ) -> Result<Array<Self::SingularValue, (D,)>, SVDError>
Auto Trait Implementations§
impl Freeze for Lapack
impl RefUnwindSafe for Lapack
impl Send for Lapack
impl Sync for Lapack
impl Unpin for Lapack
impl UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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