#include <cfloat>
#include <iostream>
#include <iomanip>
#include "CmplxQRP.h"
#include "CmplxQR.h"
#include "dbleQR.h"
#include "f77-fcn.h"
#include "lo-math.h"
#include "quit.h"
#include "defun-dld.h"
#include "error.h"
#include "gripes.h"
#include "oct-obj.h"
#include "oct-map.h"
#include "ov.h"
#include "pager.h"
#include "symtab.h"
#include "utils.h"
#include "variables.h"
Typedefs | |
typedef octave_idx_type(* | sort_function )(const octave_idx_type &LSIZE, const double &ALPHA, const double &BETA, const double &S, const double &P) |
Functions | |
F77_RET_T | F77_FUNC (dggbal, DGGBAL)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (zggbal, ZGGBAL)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (dggbak, DGGBAK)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (zggbak, ZGGBAK)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (dgghrd, DGGHRD)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (zgghrd, ZGGHRD)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (dhgeqz, DHGEQZ)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (zhgeqz, ZHGEQZ)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (dlag2, DLAG2)(const double *A |
F77_RET_T | F77_FUNC (dsubsp, DSUBSP)(const octave_idx_type &NMAX |
F77_RET_T | F77_FUNC (dtgevc, DTGEVC)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (ztgevc, ZTGEVC)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (xdlamch, XDLAMCH)(F77_CONST_CHAR_ARG_DECL |
F77_RET_T | F77_FUNC (xdlange, XDLANGE)(F77_CONST_CHAR_ARG_DECL |
DEFUN_DLD (qz, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{lambda} =} qz (@var{A}, @var{B})\n\ @deftypefnx {Loadable Function} {@var{lambda} =} qz (@var{A}, @var{B}, @var{opt})\n\ QZ@tie{}decomposition of the generalized eigenvalue problem\n\ (@math{A x = s B x}). There are three ways to call this function:\n\ @enumerate\n\ @item @code{@var{lambda} = qz (@var{A}, @var{B})}\n\ \n\ Computes the generalized eigenvalues\n\ @tex\n\ $\\lambda$\n\ @end tex\n\ @ifnottex\n\ @var{lambda}\n\ @end ifnottex\n\ of @math{(A - s B)}.\n\ \n\ @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})}\n\ \n\ Computes QZ@tie{}decomposition, generalized eigenvectors, and \n\ generalized eigenvalues of @math{(A - s B)}\n\ @tex\n\ $$ AV = BV{ \\rm diag }(\\lambda) $$\n\ $$ W^T A = { \\rm diag }(\\lambda)W^T B $$\n\ $$ AA = Q^T AZ, BB = Q^T BZ $$\n\ @end tex\n\ @ifnottex\n\ \n\ @example\n\ @group\n\ \n\ A * V = B * V * diag (@var{lambda})\n\ W' * A = diag (@var{lambda}) * W' * B\n\ AA = Q * A * Z, BB = Q * B * Z\n\ \n\ @end group\n\ @end example\n\ \n\ @end ifnottex\n\ with @var{Q} and @var{Z} orthogonal (unitary)= @var{I}\n\ \n\ @item @code{[AA,BB,Z@{, @var{lambda}@}] = qz (@var{A}, @var{B}, @var{opt})}\n\ \n\ As in form [2], but allows ordering of generalized eigenpairs\n\ for (e.g.) solution of discrete time algebraic Riccati equations.\n\ Form 3 is not available for complex matrices, and does not compute\n\ the generalized eigenvectors @var{V}, @var{W}, nor the orthogonal matrix\n\ @var{Q}.\n\ \n\ @table @var\n\ @item opt\n\ for ordering eigenvalues of the GEP pencil. The leading block\n\ of the revised pencil contains all eigenvalues that satisfy:\n\ @table @asis\n\ @item \"N\"\n\ = unordered (default) \n\ \n\ @item \"S\"\n\ = small: leading block has all |lambda| @leq{} 1 \n\ \n\ @item \"B\"\n\ = big: leading block has all |lambda| @geq{} 1 \n\ \n\ @item \"-\"\n\ = negative real part: leading block has all eigenvalues\n\ in the open left half-plane\n\ \n\ @item \"+\"\n\ = non-negative real part: leading block has all eigenvalues\n\ in the closed right half-plane\n\ @end table\n\ @end table\n\ @end enumerate\n\ \n\ Note: @code{qz} performs permutation balancing, but not scaling\n\ (@pxref{doc-balance}). The order of output arguments was selected for\n\ compatibility with @sc{matlab}.\n\ @seealso{balance, eig, schur}\n\ @end deftypefn") | |
Variables | |
F77_RET_T const octave_idx_type & | N |
F77_RET_T const octave_idx_type double * | A |
F77_RET_T const octave_idx_type double const octave_idx_type & | LDA |
F77_RET_T const octave_idx_type double const octave_idx_type double * | B |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type & | LDB |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type & | ILO |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type octave_idx_type & | IHI |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type octave_idx_type double * | LSCALE |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type octave_idx_type double double * | RSCALE |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type octave_idx_type double double double * | WORK |
F77_RET_T const octave_idx_type double const octave_idx_type double const octave_idx_type octave_idx_type octave_idx_type double double double octave_idx_type &INFO | F77_CHAR_ARG_LEN_DECL |
F77_RET_T | F77_CONST_CHAR_ARG_DECL |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double octave_idx_type & | M |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double octave_idx_type double * | V |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double octave_idx_type double const octave_idx_type & | LDV |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double * | Q |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type & | LDQ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double * | Z |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type & | LDZ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double * | ALPHAR |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double double * | ALPHAI |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double double double * | BETA |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double double double double const octave_idx_type double const octave_idx_type double const octave_idx_type & | LWORK |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex * | ALPHA |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex * | CQ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type Complex * | CZ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type double * | RWORK |
F77_RET_T const octave_idx_type const double const octave_idx_type const double & | SAFMIN |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double & | SCALE1 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double & | SCALE2 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double & | WR1 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double double & | WR2 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double double double & | WI |
F77_RET_T const octave_idx_type double double double const double & | EPS |
F77_RET_T const octave_idx_type double double double const double octave_idx_type & | NDIM |
F77_RET_T const octave_idx_type double double double const double octave_idx_type octave_idx_type & | FAIL |
F77_RET_T const octave_idx_type double double double const double octave_idx_type octave_idx_type octave_idx_type * | IND |
F77_RET_T octave_idx_type * | SELECT |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double * | VL |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type & | LDVL |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double * | VR |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type & | LDVR |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type const octave_idx_type & | MM |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex * | xVL |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex * | xVR |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type const octave_idx_type octave_idx_type Complex * | CWORK |
F77_RET_T const octave_idx_type double double double sort_function |
DEFUN_DLD | ( | qz | , | |
args | , | |||
nargout | ||||
) |
F77_RET_T F77_FUNC | ( | dlag2 | , | |
DLAG2 | ||||
) | const |
F77_RET_T F77_FUNC | ( | dggbal | , | |
DGGBAL | ||||
) |
F77_RET_T F77_FUNC | ( | zggbal | , | |
ZGGBAL | ||||
) |
F77_RET_T F77_FUNC | ( | zhgeqz | , | |
ZHGEQZ | ||||
) |
F77_RET_T F77_FUNC | ( | zggbak | , | |
ZGGBAK | ||||
) |
F77_RET_T F77_FUNC | ( | xdlange | , | |
XDLANGE | ||||
) |
F77_RET_T F77_FUNC | ( | xdlamch | , | |
XDLAMCH | ||||
) |
F77_RET_T F77_FUNC | ( | ztgevc | , | |
ZTGEVC | ||||
) |
F77_RET_T F77_FUNC | ( | dtgevc | , | |
DTGEVC | ||||
) |
F77_RET_T F77_FUNC | ( | dgghrd | , | |
DGGHRD | ||||
) |
F77_RET_T F77_FUNC | ( | dsubsp | , | |
DSUBSP | ||||
) | const |
F77_RET_T F77_FUNC | ( | dggbak | , | |
DGGBAK | ||||
) |
F77_RET_T F77_FUNC | ( | dhgeqz | , | |
DHGEQZ | ||||
) |
F77_RET_T F77_FUNC | ( | zgghrd | , | |
ZGGHRD | ||||
) |
F77_RET_T octave_idx_type const octave_idx_type const Complex* A |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex* ALPHA |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double double* ALPHAI |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double* ALPHAR |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex* B |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex * BETA |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex* CQ |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type const octave_idx_type octave_idx_type Complex* CWORK |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type Complex* CZ |
F77_RET_T const octave_idx_type double double double const double& EPS |
F77_RET_T const octave_idx_type const octave_idx_type const double const octave_idx_type double double& F77_CHAR_ARG_LEN_DECL |
F77_RET_T F77_CONST_CHAR_ARG_DECL |
F77_RET_T const octave_idx_type double double double const double octave_idx_type octave_idx_type& FAIL |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type& IHI |
F77_RET_T const octave_idx_type const octave_idx_type& ILO |
F77_RET_T const octave_idx_type double double double const double octave_idx_type octave_idx_type octave_idx_type* IND |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type& LDA |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type& LDB |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type & LDQ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double octave_idx_type Complex const octave_idx_type& LDV |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type & LDVL |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type & LDVR |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type Complex const octave_idx_type & LDZ |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double* LSCALE |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type Complex Complex Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type & LWORK |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type const octave_idx_type octave_idx_type& M |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type const octave_idx_type & MM |
F77_RET_T octave_idx_type const octave_idx_type& N |
F77_RET_T const octave_idx_type double double double const double octave_idx_type& NDIM |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double double double double * Q |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double* RSCALE |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex const octave_idx_type const octave_idx_type octave_idx_type Complex double * RWORK |
F77_RET_T const octave_idx_type const double const octave_idx_type const double& SAFMIN |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double& SCALE1 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double& SCALE2 |
F77_RET_T octave_idx_type * SELECT |
F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const double const double octave_idx_type Complex* V |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double* VL |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double* VR |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double double double& WI |
F77_RET_T octave_idx_type const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type double const octave_idx_type const octave_idx_type octave_idx_type double* WORK |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double& WR1 |
F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double double& WR2 |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex* xVL |
F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex const octave_idx_type Complex const octave_idx_type Complex* xVR |
F77_RET_T const octave_idx_type double double double * Z |