root/win32/itpp-4.0.1/itpp/base/algebra/schur.h @ 35

Revision 35, 3.8 kB (checked in by mido, 16 years ago)

zasadni zmeny ve /win32

RevLine 
[35]1/*!
2 * \file
3 * \brief Definitions of Schur decomposition functions
4 * \author Adam Piatyszek
5 *
6 * -------------------------------------------------------------------------
7 *
8 * IT++ - C++ library of mathematical, signal processing, speech processing,
9 *        and communications classes and functions
10 *
11 * Copyright (C) 1995-2007  (see AUTHORS file for a list of contributors)
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 *
27 * -------------------------------------------------------------------------
28 */
29
30#ifndef SCHUR_H
31#define SCHUR_H
32
33#include <itpp/base/mat.h>
34
35
36namespace itpp {
37
38  /*!
39   * \ingroup matrixdecomp
40   * \brief Schur decomposition of a real matrix
41   *
42   * This function computes the Schur form of a square real matrix
43   * \f$ \mathbf{A} \f$. The Schur decomposition satisfies the
44   * following equation:
45   * \f[ \mathbf{U} \mathbf{T} \mathbf{U}^{T} = \mathbf{A} \f]
46   * where: \f$ \mathbf{U} \f$ is a unitary, \f$ \mathbf{T} \f$ is upper
47   * quasi-triangular, and \f$ \mathbf{U}^{T} \f$ is the transposed
48   * \f$ \mathbf{U} \f$ matrix.
49   *
50   * The upper quasi-triangular matrix may have \f$ 2 \times 2 \f$ blocks on
51   * its diagonal.
52   *
53   * Uses the LAPACK routine DGEES.
54   */
55  bool schur(const mat &A, mat &U, mat &T);
56
57  /*!
58   * \ingroup matrixdecomp
59   * \brief Schur decomposition of a real matrix
60   *
61   * This function computes the Schur form of a square real matrix
62   * \f$ \mathbf{A} \f$. The Schur decomposition satisfies the
63   * following equation:
64   * \f[ \mathbf{U} \mathbf{T} \mathbf{U}^{T} = \mathbf{A} \f]
65   * where: \f$ \mathbf{U} \f$ is a unitary, \f$ \mathbf{T} \f$ is upper
66   * quasi-triangular, and \f$ \mathbf{U}^{T} \f$ is the transposed
67   * \f$ \mathbf{U} \f$ matrix.
68   *
69   * The upper quasi-triangular matrix may have \f$ 2 \times 2 \f$ blocks on
70   * its diagonal.
71   *
72   * \return  Real Schur matrix \f$ \mathbf{T} \f$
73   *
74   * uses the LAPACK routine DGEES.
75   */
76  mat schur(const mat &A);
77
78
79  /*!
80   * \ingroup matrixdecomp
81   * \brief Schur decomposition of a complex matrix
82   *
83   * This function computes the Schur form of a square complex matrix
84   * \f$ \mathbf{A} \f$. The Schur decomposition satisfies
85   * the following equation:
86   * \f[ \mathbf{U} \mathbf{T} \mathbf{U}^{H} = \mathbf{A} \f]
87   * where: \f$ \mathbf{U} \f$ is a unitary, \f$ \mathbf{T} \f$ is upper
88   * triangular, and \f$ \mathbf{U}^{H} \f$ is the Hermitian
89   * transposition of the \f$ \mathbf{U} \f$ matrix.
90   *
91   * Uses the LAPACK routine ZGEES.
92   */
93  bool schur(const cmat &A, cmat &U, cmat &T);
94
95  /*!
96   * \ingroup matrixdecomp
97   * \brief Schur decomposition of a complex matrix
98   *
99   * This function computes the Schur form of a square complex matrix
100   * \f$ \mathbf{A} \f$. The Schur decomposition satisfies
101   * the following equation:
102   * \f[ \mathbf{U} \mathbf{T} \mathbf{U}^{H} = \mathbf{A} \f]
103   * where: \f$ \mathbf{U} \f$ is a unitary, \f$ \mathbf{T} \f$ is upper
104   * triangular, and \f$ \mathbf{U}^{H} \f$ is the Hermitian
105   * transposition of the \f$ \mathbf{U} \f$ matrix.
106   *
107   * \return  Complex Schur matrix \f$ \mathbf{T} \f$
108   *
109   * Uses the LAPACK routine ZGEES.
110   */
111  cmat schur(const cmat &A);
112
113
114} // namespace itpp
115
116#endif // #ifndef SCHUR_H
Note: See TracBrowser for help on using the browser.