template<> template<typename InputType> inline \
RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >
::compute(
const EigenBase<InputType>& 
matrix, 
bool computeU) \
{ \
\
  lapack_int 
n = internal::convert_index<lapack_int>(
matrix.cols()), sdim, 
info; \
  lapack_int matrix_order = LAPACKE_COLROW; \
  char jobvs, sort='N'; \
  LAPACK_##LAPACKE_PREFIX_U##_SELECT2 select = 0; \
  jobvs = (computeU) ? 'V' : 'N'; \
  lapack_int ldvs  = internal::convert_index<lapack_int>(m_matU.outerStride()); \
  lapack_int 
lda = internal::convert_index<lapack_int>(m_matT.outerStride()); \
  Matrix<EIGTYPE, Dynamic, Dynamic> wr, wi; \
  wr.resize(
n, 1); wi.resize(
n, 1); \
  info = LAPACKE_##LAPACKE_PREFIX##gees( matrix_order, jobvs, sort, select, 
n, (LAPACKE_TYPE*)m_matT.data(), 
lda, &sdim, (LAPACKE_TYPE*)wr.data(), (LAPACKE_TYPE*)wi.data(), (LAPACKE_TYPE*)m_matU.data(), ldvs ); \
  else \
\
  m_isInitialized = true; \
  m_matUisUptodate = computeU; \
  return *this; \
\
}