Into

Modules

Documentation

classPii::EigenSystem

#include <PiiMathEigenSystem.h>

Implements eigenvalue calculations and stores the results of the calculations (eigenvalues and eigenvectors).

Description

Intended to be used through eigensolve.

T

Matrix elementtype

Real

Real number type used in calculations.

Public types

typedef tReal
typedef tT
typedef Real *const
typedef PiiMatrix< Real >

Public member functions

PiiMatrix< Real >

Creates block diagonal eigenvalue matrix from eigenvalues.

PiiMatrix< std::complex< Real > >

Returns row vector with complex eigenvalues.

const PiiMatrix< Real > &

Return imaginary parts of eigenvalues as row vector.

const PiiMatrix< Real > &

Returns real parts of eigenvalues as row vector.

const PiiMatrix< Real > &

Returns eigenvectors as columnvectors in a matrix.

void
( )

Solves eigenvalues and vectors for given matrix.

Static public member functions

static void
(
  • const PiiMatrix< T > & mat
  • Real *const pRealpartArray
  • Real *const pImagpartArray
  • PiiMatrix< Real > *const pEigenvectors
)

Solves eigenvalues of given matrix.

Function details

  • PiiMatrix< Real > blockDiagonalEigenvalMatrix

    ()

    Creates block diagonal eigenvalue matrix from eigenvalues.

    For real eigenvalues, returns diagonal matrix with eigenvalues on diagonal(1x1 blocks), and for complex eigenvalues block on diagonal is of size 2x2. For example if the complex eigenvalues are u+iv and u-iv, the block looks like

      u     v
     -v     u

  • PiiMatrix< std::complex< Real > > eigenvalues

    ()

    Returns row vector with complex eigenvalues.

  • const PiiMatrix< Real > & eigenvaluesI

    ()
    [inline]

    Return imaginary parts of eigenvalues as row vector.

  • const PiiMatrix< Real > & eigenvaluesR

    ()
    [inline]

    Returns real parts of eigenvalues as row vector.

  • const PiiMatrix< Real > & eigenvectors

    ()
    [inline]

    Returns eigenvectors as columnvectors in a matrix.

  • void solve

    ()

    Solves eigenvalues and vectors for given matrix.

  • static void solve

    (
    • const PiiMatrix< T > & mat
    • Real *const pRealpartArray
    • Real *const pImagpartArray
    • PiiMatrix< Real > *const pEigenvectors
    )
    [static]

    Solves eigenvalues of given matrix.

    Parameters
    mat

    Square matrix whose eigenvalues is to be calculated.

    pRealpartArray

    Null pointer or pointer to array where realparts of eigenvalues will be stored. Make sure that the array is large enough(at least the size of matrix dimension).

    pImagpartArray

    Null pointer or pointer to array where imaginaryparts of eigenvalues will be stored. Make sure that the array is large enough(at least the size of matrix dimension).

    pEigenvectors
  • static void cdiv

    (
    • const Real xr
    • const Real xi
    • const Real yr
    • const Real yi
    • Real & cdivr
    • Real & cdivi
    )
    [static]

    Complex scalar division, x/y (adapted from TNT function Eigenvalue::cdiv())

  • static void hqr2

    ()
    [static]

    Nonsymmetric reduction from Hessenberg to real Schur form(adapted from TNT function Eigenvalue::hqr2())

  • static void orthes

    ()
    [static]

    Nonsymmetric reduction to Hessenberg form (adapted from TNT function Eigenvalue::orthes())

  • static void tql2

    (
    • const int n
    • Array1D & d
    • Array1D & e
    • Array2D & V
    )
    [static]

    Symmetric tridiagonal QL algorithm (Adapted from TNT function Eigenvalue::tql2())

  • static void tred2

    (
    • const int n
    • Array1D & d
    • Array1D & e
    • Array2D & V
    )
    [static]

    Symmetric Householder reduction to tridiagonal form (adapted from TNT function Eigenvalue::tred2())

Notes (0)

Add a note

Not a single note added yet. Be the first, add yours.