xlifepp::internalEigenSolver – Functions – S#

swapComplexSchurInPlace#

template<typename MatrixType>
void xlifepp::internalEigenSolver::swapComplexSchurInPlace(MatrixType &matrixT, const std::vector<int> &order)#
template<typename MatrixType>
void xlifepp::internalEigenSolver::swapComplexSchurInPlace(MatrixType &matrixT, MatrixType &matrixQ, const std::vector<int> &order)#

swapRealSchurInPlace#

template<typename MatrixType>
void xlifepp::internalEigenSolver::swapRealSchurInPlace(MatrixType &matrixT, MatrixType &matrixQ, unsigned int ifst, unsigned int ilst)#

Given the quasi-triangular matrix T and orthogonal matrix Q obtained from the real Schur decomposition, this function reorders the eigenvalues appearing on the (block) diagonal of matrix T The diagonal element of block of T with row index ifst is moved to row ilst.

This is implemented from “On Swapping Diagonal Blocks in Real Schur Form”

Parameters:
  • matrixT – [inout] quasi-triangular matrix of real Schur decomposition

  • matrixQ – [inout] orthogonal of real Schur decomposition

  • ifst – [in] index of row needs moving

  • ilst – [in] index of destination row