Lines Matching full:matrix
28 * \brief Performs a complex Schur decomposition of a real or complex square matrix
30 * \tparam _MatrixType the type of the matrix of which we are
32 * instantiation of the Matrix class template.
34 * Given a real or complex square matrix A, this class computes the
36 * complex matrix, and T is a complex upper triangular matrix. The
37 * diagonal of the matrix T corresponds to the eigenvalues of the
38 * matrix A.
41 * a given matrix. Alternatively, you can use the
78 * This is a square matrix with entries of type #ComplexScalar.
81 typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrixType;
85 * \param [in] size Positive integer, size of the matrix whose Schur decomposition will be computed.
102 /** \brief Constructor; computes Schur decomposition of given matrix.
104 * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
111 ComplexSchur(const MatrixType& matrix, bool computeU = true)
112 : m_matT(matrix.rows(),matrix.cols()),
113 m_matU(matrix.rows(),matrix.cols()),
114 m_hess(matrix.rows()),
118 compute(matrix, computeU);
121 /** \brief Returns the unitary matrix in the Schur decomposition.
123 * \returns A const reference to the matrix U.
126 * ComplexSchur(const MatrixType& matrix, bool computeU) or the
127 * member function compute(const MatrixType& matrix, bool computeU)
129 * matrix, and that \p computeU was set to true (the default
138 eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the ComplexSchur decomposition.");
142 /** \brief Returns the triangular matrix in the Schur decomposition.
144 * \returns A const reference to the matrix T.
147 * ComplexSchur(const MatrixType& matrix, bool computeU) or the
148 * member function compute(const MatrixType& matrix, bool computeU)
150 * matrix.
152 * Note that this function returns a plain square matrix. If you want to reference
165 /** \brief Computes Schur decomposition of given matrix.
167 * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
172 * matrix to Hessenberg form using the class
173 * HessenbergDecomposition. The Hessenberg matrix is then reduced
184 ComplexSchur& compute(const MatrixType& matrix, bool computeU = true);
245 Matrix<ComplexScalar,2,2> t = m_matT.template block<2,2>(iu-1,iu-1);
271 ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
274 eigen_assert(matrix.cols() == matrix.rows());
276 if(matrix.cols() == 1)
278 m_matT = matrix.template cast<ComplexScalar>();
286 internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>::run(*this, matrix, computeU);
293 /* Reduce given matrix to Hessenberg form */
298 static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
300 _this.m_hess.compute(matrix);
309 static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
315 _this.m_hess.compute(matrix);
328 // Reduce the Hessenberg matrix m_matT to triangular form by QR iteration.
332 // The matrix m_matT is divided in three parts.
350 // if iu is zero then we are done; the whole matrix is triangularized