Struct LUDecomposition

Source
pub struct LUDecomposition<T> { /* private fields */ }
Expand description

LU Decomposition.

Originally based on JAMA.

For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n unit lower triangular matrix L, an n-by-n upper triangular matrix U, and a permutation vector piv of length m so that A(piv,:) = L*U. If m < n, then L is m-by-m and U is m-by-n.

The LU decompostion with pivoting always exists, even if the matrix is singular. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if the matrix is singular.

Implementations§

Source§

impl<T: Float + ApproxEq<T> + Signed> LUDecomposition<T>

Source

pub fn new(a: &Matrix<T>) -> LUDecomposition<T>

Source

pub fn is_singular(&self) -> bool

Source

pub fn is_non_singular(&self) -> bool

Source

pub fn get_l(&self) -> Matrix<T>

Source

pub fn get_u(&self) -> Matrix<T>

Source

pub fn get_p(&self) -> Matrix<T>

Source

pub fn get_piv<'lt>(&'lt self) -> &'lt Vec<usize>

Source

pub fn det(&self) -> T

Source

pub fn solve(&self, b: &Matrix<T>) -> Option<Matrix<T>>

Auto Trait Implementations§

§

impl<T> Freeze for LUDecomposition<T>

§

impl<T> RefUnwindSafe for LUDecomposition<T>
where T: RefUnwindSafe,

§

impl<T> Send for LUDecomposition<T>
where T: Send,

§

impl<T> Sync for LUDecomposition<T>
where T: Sync,

§

impl<T> Unpin for LUDecomposition<T>
where T: Unpin,

§

impl<T> UnwindSafe for LUDecomposition<T>
where T: UnwindSafe,

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