32 #ifndef SHARK_LINALG_TOOLS_H 33 #define SHARK_LINALG_TOOLS_H 41 template<
class Matrix>
45 Blocking(Matrix& matrix,std::size_t i, std::size_t j)
46 : m_upperLeft(subrange(matrix,0,i,0,j))
47 , m_upperRight(subrange(matrix,0,i,j,matrix.size2()))
48 , m_lowerLeft(subrange(matrix,i,matrix.size1(),0,j))
49 , m_lowerRight(subrange(matrix,i,matrix.size1(),j,matrix.size2()))
53 matrix_range<Matrix>
const& upperLeft()
const{
57 matrix_range<Matrix>
const& upperRight()
const{
61 matrix_range<Matrix>
const& lowerLeft()
const{
66 matrix_range<Matrix>
const& lowerRight()
const{
71 matrix_range<Matrix>& upperLeft(){
75 matrix_range<Matrix>& upperRight(){
79 matrix_range<Matrix>& lowerLeft(){
84 matrix_range<Matrix>& lowerRight(){
90 matrix_range<Matrix> m_upperLeft;
91 matrix_range<Matrix> m_upperRight;
92 matrix_range<Matrix> m_lowerLeft;
93 matrix_range<Matrix> m_lowerRight;