41 const octave_idx_type&, octave_idx_type&,
42 double*,
double*,
double*,
const octave_idx_type&,
43 double&,
double&,
double*,
const octave_idx_type&,
44 octave_idx_type*,
const octave_idx_type&,
45 octave_idx_type*, octave_idx_type&
60 return (hypot (a, b) < 1.0);
71 (*current_liboctave_error_handler) (
"SCHUR requires square matrix");
93 char ord_char = ord.empty () ?
'U' : ord[0];
95 if (ord_char ==
'A' || ord_char ==
'D' || ord_char ==
'a' || ord_char ==
'd')
98 if (ord_char ==
'A' || ord_char ==
'a')
100 else if (ord_char ==
'D' || ord_char ==
'd')
142 n, s, n, sdim, pwr, pwi, q, n, rconde, rcondv,
143 pwork, lwork, piwork, liwork, pbwork, info
161 : schur_mat (s), unitary_mat (u), selector (0)
166 (
"schur: inconsistent matrix dimensions");
#define F77_CHAR_ARG_LEN(l)
F77_RET_T F77_CONST_CHAR_ARG_DECL
octave_idx_type(* select_function)(const double &, const double &)
#define F77_XFCN(f, F, args)
octave_idx_type rows(void) const
#define F77_CONST_CHAR_ARG2(x, l)
liboctave_error_handler current_liboctave_error_handler
Array< double > sort(int dim=0, sortmode mode=ASCENDING) const
octave_idx_type init(const Matrix &a, const std::string &ord, bool calc_unitary)
static octave_idx_type select_ana(const double &a, const double &)
F77_RET_T F77_FUNC(dgeesx, DGEESX)(F77_CONST_CHAR_ARG_DECL
std::ostream & operator<<(std::ostream &os, const SCHUR &a)
static octave_idx_type select_dig(const double &a, const double &b)
F77_RET_T const octave_idx_type double const octave_idx_type octave_idx_type double double double const octave_idx_type double double double const octave_idx_type octave_idx_type const octave_idx_type octave_idx_type octave_idx_type &F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL
const T * fortran_vec(void) const
Matrix unitary_matrix(void) const
octave_idx_type cols(void) const
octave_idx_type columns(void) const
Matrix schur_matrix(void) const