/usr/include/itpp/base/algebra/qr.h is in libitpp-dev 4.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | /*!
* \file
* \brief Definitions of QR factorisation functions
* \author Tony Ottosson, Simon Wood, Adam Piatyszek and Vasek Smidl
*
* -------------------------------------------------------------------------
*
* Copyright (C) 1995-2010 (see AUTHORS file for a list of contributors)
*
* This file is part of IT++ - a C++ library of mathematical, signal
* processing, speech processing, and communications classes and functions.
*
* IT++ is free software: you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* IT++ is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with IT++. If not, see <http://www.gnu.org/licenses/>.
*
* -------------------------------------------------------------------------
*/
#ifndef QR_H
#define QR_H
#include <itpp/base/mat.h>
namespace itpp
{
/*! \addtogroup matrixdecomp
*/
//!@{
/*!
\brief QR factorisation of real matrix
The QR factorization of the real matrix \f$\mathbf{A}\f$ of size \f$m \times n\f$ is given
by
\f[
\mathbf{A} = \mathbf{Q} \mathbf{R} ,
\f]
where \f$\mathbf{Q}\f$ is an \f$m \times m\f$ orthogonal matrix and \f$\mathbf{R}\f$ is an \f$m \times n\f$ upper triangular matrix.
Returns true is calculation succeeds. False otherwise.
Uses the LAPACK routine DGEQRF and DORGQR.
*/
bool qr(const mat &A, mat &Q, mat &R);
/*!
* \brief QR factorisation of real matrix with suppressed evaluation of Q
*
* For certain type of applications only the \f$\mathbf{R}\f$ matrix of full
* QR factorization of the real matrix \f$\mathbf{A}=\mathbf{Q}\mathbf{R}\f$
* is needed. These situations arise typically in designs of square-root
* algorithms where it is required that
* \f$\mathbf{A}^{T}\mathbf{A}=\mathbf{R}^{T}\mathbf{R}\f$. In such cases,
* evaluation of \f$\mathbf{Q}\f$ can be skipped.
*
* Modification of qr(A,Q,R).
*
* \author Vasek Smidl
*/
bool qr(const mat &A, mat &R);
/*!
\brief QR factorisation of real matrix with pivoting
The QR factorization of the real matrix \f$\mathbf{A}\f$ of size \f$m \times n\f$ is given
by
\f[
\mathbf{A} \mathbf{P} = \mathbf{Q} \mathbf{R} ,
\f]
where \f$\mathbf{Q}\f$ is an \f$m \times m\f$ orthogonal matrix, \f$\mathbf{R}\f$ is an \f$m \times n\f$ upper triangular matrix
and \f$\mathbf{P}\f$ is an \f$n \times n\f$ permutation matrix.
Returns true is calculation succeeds. False otherwise.
Uses the LAPACK routines DGEQP3 and DORGQR.
*/
bool qr(const mat &A, mat &Q, mat &R, bmat &P);
/*!
\brief QR factorisation of a complex matrix
The QR factorization of the complex matrix \f$\mathbf{A}\f$ of size \f$m \times n\f$ is given
by
\f[
\mathbf{A} = \mathbf{Q} \mathbf{R} ,
\f]
where \f$\mathbf{Q}\f$ is an \f$m \times m\f$ unitary matrix and \f$\mathbf{R}\f$ is an \f$m \times n\f$ upper triangular matrix.
Returns true is calculation succeeds. False otherwise.
Uses the LAPACK routines ZGEQRF and ZUNGQR.
*/
bool qr(const cmat &A, cmat &Q, cmat &R);
/*!
* \brief QR factorisation of complex matrix with suppressed evaluation of Q
*
* For certain type of applications only the \f$\mathbf{R}\f$ matrix of full
* QR factorization of the complex matrix
* \f$\mathbf{A}=\mathbf{Q}\mathbf{R}\f$ is needed. These situations arise
* typically in designs of square-root algorithms where it is required that
* \f$\mathbf{A}^{H}\mathbf{A}=\mathbf{R}^{H}\mathbf{R}\f$. In such cases,
* evaluation of \f$\mathbf{Q}\f$ can be skipped.
*
* Modification of qr(A,Q,R).
*
* \author Vasek Smidl
*/
bool qr(const cmat &A, cmat &R);
/*!
\brief QR factorisation of a complex matrix with pivoting
The QR factorization of the complex matrix \f$\mathbf{A}\f$ of size \f$m \times n\f$ is given
by
\f[
\mathbf{A} \mathbf{P} = \mathbf{Q} \mathbf{R} ,
\f]
where \f$\mathbf{Q}\f$ is an \f$m \times m\f$ unitary matrix, \f$\mathbf{R}\f$ is an \f$m \times n\f$ upper triangular matrix
and \f$\mathbf{P}\f$ is an \f$n \times n\f$ permutation matrix.
Returns true is calculation succeeds. False otherwise.
Uses the LAPACK routines ZGEQP3 and ZUNGQR.
*/
bool qr(const cmat &A, cmat &Q, cmat &R, bmat &P);
//!@}
} // namespace itpp
#endif // #ifndef QR_H
|