30# include <itpp/config.h>
32# include <itpp/config_msvc.h>
35#if defined(HAVE_LAPACK)
36# include <itpp/base/algebra/lapack.h>
45#if defined(HAVE_LAPACK)
47bool schur(
const mat &A, mat &U, mat &T)
63 T.set_size(lda, n,
false);
64 U.set_size(ldvs, n,
false);
68 dgees_(&jobvs, &
sort, 0, &n, T._data(), &lda, &sdim, wr._data(), wi._data(),
69 U._data(), &ldvs, work._data(), &lwork, 0, &info);
75bool schur(
const cmat &A, cmat &U, cmat &T)
91 T.set_size(lda, n,
false);
92 U.set_size(ldvs, n,
false);
96 zgees_(&jobvs, &
sort, 0, &n, T._data(), &lda, &sdim, w._data(), U._data(),
97 &ldvs, work._data(), &lwork, rwork._data(), 0, &info);
104bool schur(
const mat &A, mat &U, mat &T)
106 it_error(
"LAPACK library is needed to use schur() function");
111bool schur(
const cmat &A, cmat &U, cmat &T)
113 it_error(
"LAPACK library is needed to use schur() function");
void sort(Vec< T > &data, SORTING_METHOD method=INTROSORT)
Sort the data vector in increasing order.
#define it_error(s)
Abort unconditionally.
#define it_assert_debug(t, s)
Abort if t is not true and NDEBUG is not defined.
bool schur(const mat &A, mat &U, mat &T)
Schur decomposition of a real matrix.
Definitions of Schur decomposition functions.