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

```pub struct SymmetricEigen<N, D> where    D: Dim,    N: ComplexField,    DefaultAllocator: Allocator<N, D, D>,    DefaultAllocator: Allocator<<N as ComplexField>::RealField, D, U1>,  {
pub eigenvectors: Matrix<N, D, D, <DefaultAllocator as Allocator<N, D, D>>::Buffer>,
pub eigenvalues: Matrix<<N as ComplexField>::RealField, D, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, D, U1>>::Buffer>,
}```

Eigendecomposition of a symmetric matrix.

## Fields

`eigenvectors: Matrix<N, D, D, <DefaultAllocator as Allocator<N, D, D>>::Buffer>`

The eigenvectors of the decomposed matrix.

`eigenvalues: Matrix<<N as ComplexField>::RealField, D, U1, <DefaultAllocator as Allocator<<N as ComplexField>::RealField, D, U1>>::Buffer>`

The unsorted eigenvalues of the decomposed matrix.

## Methods

### `impl<N, D> SymmetricEigen<N, D> where    D: Dim,    N: ComplexField,    DefaultAllocator: Allocator<N, D, D>,    DefaultAllocator: Allocator<<N as ComplexField>::RealField, D, U1>, `[src]

#### `pub fn new(    m: Matrix<N, D, D, <DefaultAllocator as Allocator<N, D, D>>::Buffer>) -> SymmetricEigen<N, D> where    D: DimSub<U1>,    DefaultAllocator: Allocator<N, <D as DimSub<U1>>::Output, U1>,    DefaultAllocator: Allocator<<N as ComplexField>::RealField, <D as DimSub<U1>>::Output, U1>, `[src]

Computes the eigendecomposition of the given symmetric matrix.

Only the lower-triangular parts (including its diagonal) of `m` is read.

#### `pub fn try_new(    m: Matrix<N, D, D, <DefaultAllocator as Allocator<N, D, D>>::Buffer>,     eps: <N as ComplexField>::RealField,     max_niter: usize) -> Option<SymmetricEigen<N, D>> where    D: DimSub<U1>,    DefaultAllocator: Allocator<N, <D as DimSub<U1>>::Output, U1>,    DefaultAllocator: Allocator<<N as ComplexField>::RealField, <D as DimSub<U1>>::Output, U1>, `[src]

Computes the eigendecomposition of the given symmetric matrix with user-specified convergence parameters.

Only the lower-triangular part (including its diagonal) of `m` is read.

# Arguments

• `eps` − tolerance used to determine when a value converged to 0.
• `max_niter` − maximum total number of iterations performed by the algorithm. If this number of iteration is exceeded, `None` is returned. If `niter == 0`, then the algorithm continues indefinitely until convergence.

#### `pub fn recompose(    &self) -> Matrix<N, D, D, <DefaultAllocator as Allocator<N, D, D>>::Buffer>`[src]

Rebuild the original matrix.

This is useful if some of the eigenvalues have been manually modified.

## Trait Implementations

### `impl<N, D> Clone for SymmetricEigen<N, D> where    D: Dim + Clone,    N: Clone + ComplexField,    DefaultAllocator: Allocator<N, D, D>,    DefaultAllocator: Allocator<<N as ComplexField>::RealField, D, U1>,    <N as ComplexField>::RealField: Clone, `[src]

#### `default fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

## Blanket Implementations

### `impl<T, U> TryFrom for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto for T where    U: TryFrom<T>, `[src]

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

The type returned in the event of a conversion error.

### `impl<T> Same for T`

#### `type Output = T`

Should always be `Self`