|
template<size_t M2, size_t N2, unsigned int Flags2> |
| Schur (const Matrix< T, M2, N2, Flags2 > &A, unsigned int max_iterations=100) |
| Constructor. More...
|
|
template<size_t M2, size_t N2, unsigned int Flags2> |
void | Compute (const Matrix< T, M2, N2, Flags2 > &A, unsigned int max_iterations=100) |
| Computes the real Schur decomposition. More...
|
|
template<typename T, size_t N, unsigned int Flags = 0>
struct Linear::Schur< T, N, Flags >
Struct for Schur decomposition.
This struct NxN matrix Q and NxN matrix U such that \(A=QUQ^*\) where Q is unitary and U is block upper triangular with block sizes 1x1 and 2x2.
- Parameters
-
T | Type to store matrix entries as. |
N | Number of rows/columns for Q and U (both square). Dynamic is allowed for N. |
Flags | Flags to pass to the matrices (default = row major). |
template<typename T , size_t N, unsigned int Flags = 0>
template<size_t M2, size_t N2, unsigned int Flags2>
void Linear::Schur< T, N, Flags >::Compute |
( |
const Matrix< T, M2, N2, Flags2 > & |
A, |
|
|
unsigned int |
max_iterations = 100 |
|
) |
| |
|
inline |
Computes the real Schur decomposition.
If A is not square or Q != N, then an exception is thrown.
- Parameters
-