# [−][src]Struct na::linalg::Bidiagonal

The bidiagonalization of a general matrix.

## Methods

`impl<N, R, C> Bidiagonal<N, R, C> where`

C: Dim,

N: ComplexField,

R: DimMin<C>,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, C, U1>,

DefaultAllocator: Allocator<N, R, U1>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

[src]

C: Dim,

N: ComplexField,

R: DimMin<C>,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, C, U1>,

DefaultAllocator: Allocator<N, R, U1>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

`pub fn new(`

matrix: Matrix<N, R, C, <DefaultAllocator as Allocator<N, R, C>>::Buffer>

) -> Bidiagonal<N, R, C>

[src]

matrix: Matrix<N, R, C, <DefaultAllocator as Allocator<N, R, C>>::Buffer>

) -> Bidiagonal<N, R, C>

Computes the Bidiagonal decomposition using householder reflections.

`pub fn is_upper_diagonal(&self) -> bool`

[src]

Indicates whether this decomposition contains an upper-diagonal matrix.

`pub fn unpack(`

self

) -> (Matrix<N, R, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, R, <R as DimMin<C>>::Output>>::Buffer>, Matrix<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>>::Buffer>, Matrix<N, <R as DimMin<C>>::Output, C, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, C>>::Buffer>) where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>,

DefaultAllocator: Allocator<N, R, <R as DimMin<C>>::Output>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, C>,

[src]

self

) -> (Matrix<N, R, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, R, <R as DimMin<C>>::Output>>::Buffer>, Matrix<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>>::Buffer>, Matrix<N, <R as DimMin<C>>::Output, C, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, C>>::Buffer>) where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>,

DefaultAllocator: Allocator<N, R, <R as DimMin<C>>::Output>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, C>,

Unpacks this decomposition into its three matrix factors `(U, D, V^t)`

.

The decomposed matrix `M`

is equal to `U * D * V^t`

.

`pub fn d(`

&self

) -> Matrix<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>>::Buffer> where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>,

[src]

&self

) -> Matrix<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>>::Buffer> where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, <R as DimMin<C>>::Output>,

Retrieves the upper trapezoidal submatrix `R`

of this decomposition.

`pub fn u(`

&self

) -> Matrix<N, R, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, R, <R as DimMin<C>>::Output>>::Buffer> where

DefaultAllocator: Allocator<N, R, <R as DimMin<C>>::Output>,

[src]

&self

) -> Matrix<N, R, <R as DimMin<C>>::Output, <DefaultAllocator as Allocator<N, R, <R as DimMin<C>>::Output>>::Buffer> where

DefaultAllocator: Allocator<N, R, <R as DimMin<C>>::Output>,

Computes the orthogonal matrix `U`

of this `U * D * V`

decomposition.

`pub fn v_t(`

&self

) -> Matrix<N, <R as DimMin<C>>::Output, C, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, C>>::Buffer> where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, C>,

[src]

&self

) -> Matrix<N, <R as DimMin<C>>::Output, C, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, C>>::Buffer> where

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, C>,

Computes the orthogonal matrix `V_t`

of this `U * D * V_t`

decomposition.

`pub fn diagonal(`

&self

) -> Matrix<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1>>::Buffer> where

DefaultAllocator: Allocator<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1>,

[src]

&self

) -> Matrix<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1>>::Buffer> where

DefaultAllocator: Allocator<<N as ComplexField>::RealField, <R as DimMin<C>>::Output, U1>,

The diagonal part of this decomposed matrix.

`pub fn off_diagonal(`

&self

) -> Matrix<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>>::Buffer> where

DefaultAllocator: Allocator<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

[src]

&self

) -> Matrix<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>>::Buffer> where

DefaultAllocator: Allocator<<N as ComplexField>::RealField, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

The off-diagonal part of this decomposed matrix.

## Trait Implementations

`impl<N, R, C> Copy for Bidiagonal<N, R, C> where`

C: Dim,

N: ComplexField,

R: DimMin<C>,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

Matrix<N, R, C, <DefaultAllocator as Allocator<N, R, C>>::Buffer>: Copy,

Matrix<N, <R as DimMin<C>>::Output, U1, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, U1>>::Buffer>: Copy,

Matrix<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1, <DefaultAllocator as Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>>::Buffer>: Copy,

[src]

C: Dim,

N: ComplexField,

R: DimMin<C>,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

Matrix<N, R, C, <DefaultAllocator as Allocator<N, R, C>>::Buffer>: Copy,

Matrix<N, <R as DimMin<C>>::Output, U1, <DefaultAllocator as Allocator<N, <R as DimMin<C>>::Output, U1>>::Buffer>: Copy,

Matrix<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1, <DefaultAllocator as Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>>::Buffer>: Copy,

`impl<N, R, C> Clone for Bidiagonal<N, R, C> where`

C: Dim + Clone,

N: Clone + ComplexField,

R: DimMin<C> + Clone,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

[src]

C: Dim + Clone,

N: Clone + ComplexField,

R: DimMin<C> + Clone,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

`fn clone(&self) -> Bidiagonal<N, R, C>`

[src]

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

1.0.0[src]

Performs copy-assignment from `source`

. Read more

`impl<N, R, C> Debug for Bidiagonal<N, R, C> where`

C: Dim + Debug,

N: Debug + ComplexField,

R: DimMin<C> + Debug,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

[src]

C: Dim + Debug,

N: Debug + ComplexField,

R: DimMin<C> + Debug,

<R as DimMin<C>>::Output: DimSub<U1>,

DefaultAllocator: Allocator<N, R, C>,

DefaultAllocator: Allocator<N, <R as DimMin<C>>::Output, U1>,

DefaultAllocator: Allocator<N, <<R as DimMin<C>>::Output as DimSub<U1>>::Output, U1>,

## Auto Trait Implementations

`impl<N, R, C> !Send for Bidiagonal<N, R, C>`

`impl<N, R, C> !Sync for Bidiagonal<N, R, C>`

## Blanket Implementations

`impl<V> IntoVec for V`

[src]

`impl<V> IntoPnt for V`

[src]

`impl<T> ToOwned for T where`

T: Clone,

[src]

T: Clone,

`impl<T> From for T`

[src]

`impl<T, U> Into for T where`

U: From<T>,

[src]

U: From<T>,

`impl<T, U> TryFrom for T where`

U: Into<T>,

[src]

U: Into<T>,

`type Error = Infallible`

The type returned in the event of a conversion error.

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

[src]

`impl<T> Borrow for T where`

T: ?Sized,

[src]

T: ?Sized,

`impl<T> Any for T where`

T: 'static + ?Sized,

[src]

T: 'static + ?Sized,

`impl<T> BorrowMut for T where`

T: ?Sized,

[src]

T: ?Sized,

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

[src]

`impl<T, U> TryInto for T where`

U: TryFrom<T>,

[src]

U: TryFrom<T>,

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

The type returned in the event of a conversion error.

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

[src]

`impl<T> Same for T`

`type Output = T`

Should always be `Self`

`impl<SS, SP> SupersetOf for SP where`

SS: SubsetOf<SP>,

[src]

SS: SubsetOf<SP>,