NeuralEngine
A Game Engine with embeded Machine Learning algorithms based on Gaussian Processes.
NeuralEngine::MachineLearning::EigenvalueDecomposition Class Reference

Eigenvalue Decomposition. More...

#include <FgEigenvalueDecomposition.h>

Collaboration diagram for NeuralEngine::MachineLearning::EigenvalueDecomposition:

Public Member Functions

 EigenvalueDecomposition (af::array &A)
 Constructor. More...
 
 ~EigenvalueDecomposition ()
 Destructor. More...
 
void Compute (af::array &A)
 Computes the eigenvalues and -vectors in decending order More...
 
af::array Eigenvalues ()
 Gets the eigenvalues in decending order. More...
 
af::array Eigenvectors ()
 Gets the corresponding eigenvectors. More...
 

Private Member Functions

void compute ()
 
void orthes ()
 Nonsymmetric reduction to Hessenberg form. More...
 
void hqr2 ()
 Nonsymmetric reduction from Hessenberg to real Schur form. More...
 
void cdiv (double xr, double xi, double yr, double yi)
 
template<typename _Tp >
_Tp * alloc_1d (int m)
 
template<typename _Tp >
_Tp * alloc_1d (int m, _Tp val)
 
template<typename _Tp >
_Tp ** alloc_2d (int m, int n)
 
template<typename _Tp >
_Tp ** alloc_2d (int m, int n, _Tp val)
 

Private Attributes

int n
 
double cdivr
 
double cdivi
 
double * d
 
double * e
 
double * ort
 
double ** V
 
double ** H
 
af::array fV
 
af::array fd
 

Detailed Description

Eigenvalue Decomposition.

<note> In linear algebra, eigendecomposition or sometimes spectral decomposition is the factorization of a matrix into a canonical form, whereby the matrix is represented in terms of its eigenvalues and eigenvectors. Only diagonalizable matrices can be factorized in this way. </note>

Hmetal T, 08.03.2017.

Definition at line 35 of file FgEigenvalueDecomposition.h.

Constructor & Destructor Documentation

◆ EigenvalueDecomposition()

NeuralEngine::MachineLearning::EigenvalueDecomposition::EigenvalueDecomposition ( af::array &  A)

Constructor.

Hmetal T, 14.04.2017.

Parameters
A[in,out] Positive definit matrix.

◆ ~EigenvalueDecomposition()

NeuralEngine::MachineLearning::EigenvalueDecomposition::~EigenvalueDecomposition ( )

Destructor.

Hmetal T, 14.04.2017.

Member Function Documentation

◆ Compute()

void NeuralEngine::MachineLearning::EigenvalueDecomposition::Compute ( af::array &  A)

Computes the eigenvalues and -vectors in decending order

<note> Let A be a square (N×N) matrix with N linearly independent eigenvectors, q_i ( i = 1 , … , N ). Then A can be factorized as

A = Q Λ Q^(− 1) 

where Q is the square(N×N) matrix whose ith column is the eigenvector q_i of A and Λ is the diagonal matrix whose diagonal elements are the corresponding eigenvalues, i.e., Λ_(i i) = λ_i. Note that only diagonalizable matrices can be factorized in this way. </note>

Hmetal T, 08.03.2017.

Parameters
A[in,out] Positiv semidefinit input matrix.
outEigvec[in,out] Corresponding eigenvectors.
Returns
An af::array of eigenvalues.

◆ Eigenvalues()

af::array NeuralEngine::MachineLearning::EigenvalueDecomposition::Eigenvalues ( )

Gets the eigenvalues in decending order.

Hmetal T, 14.04.2017.

Returns
An af::array.

◆ Eigenvectors()

af::array NeuralEngine::MachineLearning::EigenvalueDecomposition::Eigenvectors ( )

Gets the corresponding eigenvectors.

Hmetal T, 14.04.2017.

Returns
An af::array.

◆ orthes()

void NeuralEngine::MachineLearning::EigenvalueDecomposition::orthes ( )
private

Nonsymmetric reduction to Hessenberg form.


This is derived from the Algol procedures orthes and ortran, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutines in EISPACK.

◆ hqr2()

void NeuralEngine::MachineLearning::EigenvalueDecomposition::hqr2 ( )
private

Nonsymmetric reduction from Hessenberg to real Schur form.


This is derived from the Algol procedure hqr2, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutine in EISPACK.

◆ alloc_1d() [1/2]

template<typename _Tp >
_Tp * NeuralEngine::MachineLearning::EigenvalueDecomposition::alloc_1d ( int  m)
inlineprivate

Definition at line 134 of file FgEigenvalueDecomposition.h.

◆ alloc_1d() [2/2]

template<typename _Tp >
_Tp * NeuralEngine::MachineLearning::EigenvalueDecomposition::alloc_1d ( int  m,
_Tp  val 
)
inlineprivate

Definition at line 140 of file FgEigenvalueDecomposition.h.

◆ alloc_2d() [1/2]

template<typename _Tp >
_Tp ** NeuralEngine::MachineLearning::EigenvalueDecomposition::alloc_2d ( int  m,
int  n 
)
inlineprivate

Definition at line 149 of file FgEigenvalueDecomposition.h.

◆ alloc_2d() [2/2]

template<typename _Tp >
_Tp ** NeuralEngine::MachineLearning::EigenvalueDecomposition::alloc_2d ( int  m,
int  n,
_Tp  val 
)
inlineprivate

Definition at line 158 of file FgEigenvalueDecomposition.h.

Member Data Documentation

◆ n

int NeuralEngine::MachineLearning::EigenvalueDecomposition::n
private

Definition at line 125 of file FgEigenvalueDecomposition.h.

◆ cdivr

double NeuralEngine::MachineLearning::EigenvalueDecomposition::cdivr
private

Definition at line 126 of file FgEigenvalueDecomposition.h.

◆ cdivi

double NeuralEngine::MachineLearning::EigenvalueDecomposition::cdivi
private

Definition at line 126 of file FgEigenvalueDecomposition.h.

◆ d

double* NeuralEngine::MachineLearning::EigenvalueDecomposition::d
private

Definition at line 128 of file FgEigenvalueDecomposition.h.

◆ e

double * NeuralEngine::MachineLearning::EigenvalueDecomposition::e
private

Definition at line 128 of file FgEigenvalueDecomposition.h.

◆ ort

double * NeuralEngine::MachineLearning::EigenvalueDecomposition::ort
private

Definition at line 128 of file FgEigenvalueDecomposition.h.

◆ V

double** NeuralEngine::MachineLearning::EigenvalueDecomposition::V
private

Definition at line 129 of file FgEigenvalueDecomposition.h.

◆ H

double ** NeuralEngine::MachineLearning::EigenvalueDecomposition::H
private

Definition at line 129 of file FgEigenvalueDecomposition.h.

◆ fV

af::array NeuralEngine::MachineLearning::EigenvalueDecomposition::fV
private

Definition at line 131 of file FgEigenvalueDecomposition.h.

◆ fd

af::array NeuralEngine::MachineLearning::EigenvalueDecomposition::fd
private

Definition at line 131 of file FgEigenvalueDecomposition.h.


The documentation for this class was generated from the following file: