Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. template<typename Type>
  2. Type***& LinAlg::Matrix<Type>::operator ()(unsigned* row_interval, unsigned* column_interval)const
  3. {
  4.     //Assuma as devidas inicializações.
  5.     Type*** ret
  6.  
  7.     if(row_interval[0] < row_interval[1]){
  8.         if(column_interval[0] < column_interval[1]){            
  9.             for(unsigned i = row_interval[0]; i <= row_interval[1]; ++i)
  10.                 for(unsigned j = column_interval[0]; j <= column_interval[1]; ++j)
  11.                     ret[i - row_interval[0]][j - column_interval[0]] = &this->mat[i-1][j-1];
  12.  
  13.         }else{
  14.             for(unsigned i = row_interval[0]; i <= row_interval[1]; ++i)
  15.                 for(unsigned j = column_interval[0]; j >= column_interval[1]; --j)
  16.                     ret[i - row_interval[0]][column_interval[0] - j] = &this->mat[i-1][j - 1];
  17.         }
  18.  
  19.     } else{
  20.         if(column_interval[0] < column_interval[1]){
  21.             for(unsigned i = row_interval[0]; i >= row_interval[1]; --i)
  22.                 for(unsigned j = column_interval[0]; j <= column_interval[1]; ++j)
  23.                     ret[row_interval[0] - i][j - column_interval[0]] = &this->mat[i-1][j-1];
  24.         }else{
  25.             for(unsigned i = row_interval[0]; i >= row_interval[1]; --i)
  26.                 for(unsigned j = column_interval[0]; j >= column_interval[1]; --j)
  27.                     ret[row_interval[0] - i][column_interval[0] - j] = &this->mat[i-1][j - 1];
  28.         }
  29.     }
  30.  
  31.     return ret;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement