|
namespace ewalena
0.2.15
ewalena is not an acronym
|
#include <include/ewalena/lac/solver_jacobi.h>


Public Member Functions | |
| virtual void | solve (const Matrix< ValueType > &A, Vector< ValueType > &lambda, VectorBasis< ValueType > &X) |
| SolverJacobi (SolverControl< ValueType > &solver_control) | |
Protected Member Functions | |
| void | do_jacobi_rotation (ValueType *index_i, ValueType *index_j, const ValueType &root) |
| void | sort (Vector< ValueType > &lambda) |
| void | sort (Vector< ValueType > &lambda, VectorBasis< ValueType > &X) |
The SolverJacobi class is a standard eigenspectrum solver that uses cyclic Jacobi transformations to annihilate the upper triangle of the matrix
.
Let
the definition of the rotation angle
can be written as
where the smaller root
corresponds to an angle 
| ewalena::SolverJacobi< ValueType >::SolverJacobi | ( | SolverControl< ValueType > & | solver_control | ) |
Constructor.
| void ewalena::SolverJacobi< ValueType >::do_jacobi_rotation | ( | ValueType * | index_i, |
| ValueType * | index_j, | ||
| const ValueType & | root | ||
| ) | [inline, protected] |
Do a jacobi rotation with two indices index_i and index_j. The variable root is the root of the quadratic:
, as defined in the class documentation.
| virtual void ewalena::SolverJacobi< ValueType >::solve | ( | const Matrix< ValueType > & | A, |
| Vector< ValueType > & | lambda, | ||
| VectorBasis< ValueType > & | X | ||
| ) | [virtual] |
Actually solve the eigensystem
.
Reimplemented from ewalena::SolverBase< ValueType >.
| void ewalena::SolverJacobi< ValueType >::sort | ( | Vector< ValueType > & | lambda | ) | [inline, protected] |
Sort eigenvalues in ascending order.
| void ewalena::SolverJacobi< ValueType >::sort | ( | Vector< ValueType > & | lambda, |
| VectorBasis< ValueType > & | X | ||
| ) | [inline, protected] |
Sort eigenpairs in ascending order.
1.7.6.1