Typedefs | Functions | Variables

qz.cc File Reference

#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"
Include dependency graph for qz.cc:

Go to the source code of this file.

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

 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")
F77_RET_T F77_FUNC (dlag2, DLAG2)(const double *A
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 (zhgeqz, ZHGEQZ)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (zggbak, ZGGBAK)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (xdlange, XDLANGE)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (xdlamch, XDLAMCH)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (ztgevc, ZTGEVC)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dtgevc, DTGEVC)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dgghrd, DGGHRD)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dsubsp, DSUBSP)(const octave_idx_type &NMAX
F77_RET_T F77_FUNC (dggbak, DGGBAK)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dhgeqz, DHGEQZ)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (zgghrd, ZGGHRD)(F77_CONST_CHAR_ARG_DECL
static octave_idx_type fcrhp (const octave_idx_type &lsize, const double &alpha, const double &beta, const double &s, const double &)
static octave_idx_type fin (const octave_idx_type &lsize, const double &alpha, const double &beta, const double &, const double &p)
static octave_idx_type folhp (const octave_idx_type &lsize, const double &alpha, const double &beta, const double &s, const double &)
static octave_idx_type fout (const octave_idx_type &lsize, const double &alpha, const double &beta, const double &, const double &p)

Variables

F77_RET_T const
octave_idx_type double
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 const
octave_idx_type double const
octave_idx_type double
B
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 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 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 double double
double const double
octave_idx_type
octave_idx_type
FAIL
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
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 const
octave_idx_type double const
octave_idx_type
LDA
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 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 const double
const double octave_idx_type
double const octave_idx_type
LDV
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
const octave_idx_type
LDVR
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 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 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 const double
const double octave_idx_type
M
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 const octave_idx_typeN
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
Q
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 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 octave_idx_typeSELECT
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 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 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 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 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

Typedef Documentation

Definition at line 61 of file qz.cc.


Function Documentation

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   
)
static octave_idx_type fcrhp ( const octave_idx_type lsize,
const double alpha,
const double beta,
const double s,
const double  
) [static]

Definition at line 243 of file qz.cc.

static octave_idx_type fin ( const octave_idx_type lsize,
const double alpha,
const double beta,
const double ,
const double p 
) [static]

Definition at line 253 of file qz.cc.

static octave_idx_type folhp ( const octave_idx_type lsize,
const double alpha,
const double beta,
const double s,
const double  
) [static]

Definition at line 271 of file qz.cc.

static octave_idx_type fout ( const octave_idx_type lsize,
const double alpha,
const double beta,
const double ,
const double p 
) [static]

Definition at line 281 of file qz.cc.


Variable Documentation

F77_RET_T octave_idx_type const octave_idx_type const Complex * A

Definition at line 157 of file qz.cc.

Referenced by DDASTP(), DDSTP(), DLINSD(), DLINSK(), and DROOTS().

Definition at line 139 of file qz.cc.

Definition at line 139 of file qz.cc.

F77_RET_T octave_idx_type const octave_idx_type const Complex const octave_idx_type const Complex * B

Definition at line 139 of file qz.cc.

Referenced by DDASTP(), DDSTP(), and ZUNHJ().

Definition at line 157 of file qz.cc.

Referenced by DEFUN_DLD().

Definition at line 208 of file qz.cc.

Definition at line 157 of file qz.cc.

Referenced by CBKNU(), and DEFUN_DLD().

F77_RET_T const octave_idx_type double double double const double& EPS

Definition at line 184 of file qz.cc.

Referenced by BETAI(), D9GMIT(), R9GMIT(), R9LGIC(), and R9LGIT().

Definition at line 69 of file qz.cc.

Definition at line 89 of file qz.cc.

Definition at line 184 of file qz.cc.

F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type & IHI

Definition at line 69 of file qz.cc.

F77_RET_T const octave_idx_type const octave_idx_type & ILO

Definition at line 69 of file qz.cc.

Definition at line 184 of file qz.cc.

Definition at line 69 of file qz.cc.

Definition at line 69 of file qz.cc.

Definition at line 113 of file qz.cc.

Definition at line 89 of file qz.cc.

Definition at line 194 of file qz.cc.

Definition at line 194 of file qz.cc.

Definition at line 113 of file qz.cc.

F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const float * LSCALE

Definition at line 69 of file qz.cc.

Definition at line 139 of file qz.cc.

Definition at line 89 of file qz.cc.

Referenced by CUNHJ(), CUNK1(), D9GMIT(), DDASTP(), DNSD(), DNSID(), DNSIK(), DNSK(), lin_interpn(), R9GMIT(), ZUNHJ(), and ZUNK1().

Definition at line 194 of file qz.cc.

Referenced by CBESH(), and ZBESH().

F77_RET_T const octave_idx_type & N

Definition at line 184 of file qz.cc.

F77_RET_T const octave_idx_type const octave_idx_type const octave_idx_type const float const float * RSCALE

Definition at line 69 of file qz.cc.

Definition at line 157 of file qz.cc.

Referenced by DDASPK(), DDASRT(), DDASSL(), DLSODE(), DRCHEK(), and SLSODE().

F77_RET_T const octave_idx_type const double const octave_idx_type const double& SAFMIN

Definition at line 174 of file qz.cc.

F77_RET_T const octave_idx_type const double const octave_idx_type const double double& SCALE1

Definition at line 174 of file qz.cc.

F77_RET_T const octave_idx_type const double const octave_idx_type const double double double& SCALE2

Definition at line 174 of file qz.cc.

F77_RET_T octave_idx_type * SELECT

Definition at line 194 of file qz.cc.

Definition at line 194 of file qz.cc.

Referenced by DEFUN_DLD().

Definition at line 194 of file qz.cc.

Referenced by DEFUN_DLD().

Definition at line 174 of file qz.cc.

Referenced by CUNHJ(), ZSERI(), and ZUNHJ().

Definition at line 69 of file qz.cc.

Referenced by DQAGI(), and DQAGP().

F77_RET_T const octave_idx_type const double const octave_idx_type const double double double double& WR1

Definition at line 174 of file qz.cc.

Definition at line 174 of file qz.cc.

Definition at line 208 of file qz.cc.

Definition at line 208 of file qz.cc.

F77_RET_T const octave_idx_type double double double * Z
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines