Lapack

Struct Lapack 

Source
pub struct Lapack { /* private fields */ }

Implementations§

Source§

impl Lapack

Source

pub fn new() -> Self

Source

pub fn config_svd(self, config: SVDConfig) -> Self

Source

pub fn config_qr(self, _config: LapackQRConfig) -> Self

Trait Implementations§

Source§

impl Clone for Lapack

Source§

fn clone(&self) -> Lapack

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Lapack

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Lapack

Source§

fn default() -> Lapack

Returns the “default value” for a type. Read more
Source§

impl<T> Eig<T> for Lapack
where T: ComplexFloat + Default + LapackScalar + NeedsRwork<Elem = T>, i8: Into<T::Real>, T::Real: Into<T>,

Source§

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>

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>

Compute only eigenvalues with new allocated vectors

Source§

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>

Compute eigenvalues and eigenvectors of a Hermitian matrix

Source§

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>

Compute Schur decomposition overwriting existing matrices

Source§

fn schur_complex<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>

Compute Schur (complex) decomposition with new allocated matrices

Source§

fn schur_complex_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 (complex) decomposition overwriting existing matrices

Source§

impl<T> LU<T> for Lapack
where T: ComplexFloat + Default + LapackScalar + Workspace, T::Real: Into<T>,

Source§

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>

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>, )

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>)

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>

Computes inverse overwriting the input matrix
Source§

fn inv<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> InvResult<T>

Computes inverse with new allocated matrix
Source§

fn det<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> T

Computes the determinant of a square matrix. Panics if the matrix is non-square.
Source§

impl<T> QR<T> for Lapack
where T: ComplexFloat + Default + LapackScalar + NeedsRwork, T::Real: Into<T>,

Source§

fn qr_overwrite<L: Layout, Lq: Layout, Lr: Layout>( &self, a: &mut DSlice<T, 2, L>, q: &mut DSlice<T, 2, Lq>, r: &mut DSlice<T, 2, Lr>, )

Compute QR decomposition overwriting existing matrices
Source§

fn qr<L: Layout>( &self, a: &mut DSlice<T, 2, L>, ) -> (DTensor<T, 2>, DTensor<T, 2>)

Compute QR decomposition with new allocated matrices
Source§

impl<T> SVD<T> for Lapack
where T: ComplexFloat + Default + LapackScalar + NeedsRwork, T::Real: Into<T>,

Source§

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>

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>

Compute full SVD, overwriting existing matrices The matrix A is decomposed as A = U * S * V^T where: Read more
Source§

fn svd_overwrite_s<L: Layout, Ls: Layout>( &self, a: &mut DSlice<T, 2, L>, s: &mut DSlice<T, 2, Ls>, ) -> Result<(), SVDError>

Compute only singular values, overwriting existing matrix Computes only the diagonal elements of the S matrix from the SVD decomposition.
Source§

impl<T> Solve<T> for Lapack
where T: ComplexFloat + Default + LapackScalar, T::Real: Into<T>,

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>

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
Source§

fn solve<La: Layout, Lb: Layout>( &self, a: &mut DSlice<T, 2, La>, b: &DSlice<T, 2, Lb>, ) -> SolveResultType<T>

Solves linear system AX = B with new allocated solution matrix A is modified (overwritten with LU decomposition) Returns the solution X and P the permutation matrix, or error

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoCloned<T> for T

Source§

fn clone_to(self, target: &mut T)

Moves an existing object or clones from a reference to the target object.
Source§

fn into_cloned(self) -> T

Returns an existing object or a new clone from a reference.
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V