Navigation

Operators and Keywords

Function List:

C++ API

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:

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_typeN
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_typeSELECT
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

Typedef Documentation

F77_RET_T const octave_idx_type double double double sort_function

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   
)

Variable Documentation

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 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 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 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 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 const octave_idx_type const octave_idx_type const octave_idx_type const double* LSCALE
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 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 const octave_idx_type double double double * Z
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines