Home | History | Annotate | Download | only in MatrixFunctions

Lines Matching refs:block

28   * computation of the matrix function on every block corresponding to these clusters to an object of type
30 * \p AtomicType should have a \p compute() member function for computing the matrix function of a block.
157 Block<MatrixType> block(MatrixType& A, Index i, Index j);
169 DynamicIntVectorType m_blockStart; /**< \brief Row index at which block corresponding to i-th cluster starts */
359 /** \brief Compute block diagonal part of #m_fT.
361 * This routine computes the matrix function applied to the block diagonal part of #m_T, with the blocking
362 * given by #m_blockStart. The matrix function of each diagonal block is computed by #m_atomic. The
371 block(m_fT, i, i) = m_atomic.compute(block(m_T, i, i));
375 /** \brief Return block of matrix according to blocking given by #m_blockStart */
377 Block<MatrixType> MatrixFunction<MatrixType,AtomicType,1>::block(MatrixType& A, Index i, Index j)
379 return A.block(m_blockStart(i), m_blockStart(j), m_clusterSize(i), m_clusterSize(j));
382 /** \brief Compute part of #m_fT above block diagonal.
384 * This routine assumes that the block diagonal part of #m_fT (which
386 * the part above the block diagonal. The part below the diagonal is
394 // compute (blockIndex, blockIndex+diagIndex) block
395 DynMatrixType A = block(m_T, blockIndex, blockIndex);
396 DynMatrixType B = -block(m_T, blockIndex+diagIndex, blockIndex+diagIndex);
397 DynMatrixType C = block(m_fT, blockIndex, blockIndex) * block(m_T, blockIndex, blockIndex+diagIndex);
398 C -= block(m_T, blockIndex, blockIndex+diagIndex) * block(m_fT, blockIndex+diagIndex, blockIndex+diagIndex);
400 C += block(m_fT, blockIndex, k) * block(m_T, k, blockIndex+diagIndex);
401 C -= block(m_T, blockIndex, k) * block(m_fT, k, blockIndex+diagIndex);
403 block(m_fT, blockIndex, blockIndex+diagIndex) = solveTriangularSylvester(A, B, C);