Navigation

Operators and Keywords

Function List:

C++ API

qz.cc File Reference

#include "config.h"
#include <cfloat>
#include <iostream>
#include <iomanip>
#include "CmplxQRP.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 (dggbak, DGGBAK)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dgghrd, DGGHRD)(F77_CONST_CHAR_ARG_DECL
F77_RET_T F77_FUNC (dhgeqz, DHGEQZ)(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 (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\ Generalized eigenvalue problem @math{A x = s B x},\n\ @var{QZ} decomposition. There are three ways to call this function:\n\ @enumerate\n\ @item @code{lambda = qz(A,B)}\n\ \n\ Computes the generalized eigenvalues\n\ @iftex\n\ @tex\n\ $\\lambda$\n\ @end tex\n\ @end iftex\n\ @ifnottex\n\ @var{lambda}\n\ @end ifnottex\n\ of @math{(A - s B)}.\n\ @item @code{[AA, BB, Q, Z, V, W, lambda] = qz (A, B)}\n\ \n\ Computes qz decomposition, generalized eigenvectors, and \n\ generalized eigenvalues of @math{(A - sB)}\n\ @iftex\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\ @end iftex\n\ @ifnottex\n\ @example\n\ @group\n\ \n\ A*V = B*V*diag(lambda)\n\ W'*A = diag(lambda)*W'*B\n\ AA = Q'*A*Z, BB = Q'*B*Z\n\ \n\ @end group\n\ @end example\n\ @end ifnottex\n\ with @var{Q} and @var{Z} orthogonal (unitary)= @var{I}\n\ \n\ @item @code{[AA,BB,Z@{, lambda@}] = qz(A,B,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 @var{Q}.\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 @code\n\ @item \"N\"\n\ = unordered (default) \n\ \n\ @item \"S\"\n\ = small: leading block has all |lambda| <=1 \n\ \n\ @item \"B\"\n\ = big: leading block has all |lambda| >= 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: qz performs permutation balancing, but not scaling (see balance).\n\ Order of output arguments was selected for compatibility with @sc{matlab}\n\ \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 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

Typedef Documentation

F77_RET_T const octave_idx_type double double double sort_function ( const octave_idx_type LSIZE,
const double ALPHA,
const double BETA,
const double S,
const double P 
)


Function Documentation

DEFUN_DLD ( qz  ,
args  ,
nargout   
)

F77_RET_T F77_FUNC ( xdlange  ,
XDLANGE   
)

F77_RET_T F77_FUNC ( xdlamch  ,
XDLAMCH   
)

F77_RET_T F77_FUNC ( dtgevc  ,
DTGEVC   
)

F77_RET_T F77_FUNC ( dsubsp  ,
DSUBSP   
) const

F77_RET_T F77_FUNC ( dlag2  ,
DLAG2   
) const

F77_RET_T F77_FUNC ( dhgeqz  ,
DHGEQZ   
)

F77_RET_T F77_FUNC ( dgghrd  ,
DGGHRD   
)

F77_RET_T F77_FUNC ( dggbak  ,
DGGBAK   
)

F77_RET_T F77_FUNC ( dggbal  ,
DGGBAL   
)


Variable Documentation

F77_RET_T octave_idx_type* SELECT