Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename Type>
- Type***& LinAlg::Matrix<Type>::operator ()(unsigned* row_interval, unsigned* column_interval)const
- {
- //Assuma as devidas inicializações.
- Type*** ret
- if(row_interval[0] < row_interval[1]){
- if(column_interval[0] < column_interval[1]){
- for(unsigned i = row_interval[0]; i <= row_interval[1]; ++i)
- for(unsigned j = column_interval[0]; j <= column_interval[1]; ++j)
- ret[i - row_interval[0]][j - column_interval[0]] = &this->mat[i-1][j-1];
- }else{
- for(unsigned i = row_interval[0]; i <= row_interval[1]; ++i)
- for(unsigned j = column_interval[0]; j >= column_interval[1]; --j)
- ret[i - row_interval[0]][column_interval[0] - j] = &this->mat[i-1][j - 1];
- }
- } else{
- if(column_interval[0] < column_interval[1]){
- for(unsigned i = row_interval[0]; i >= row_interval[1]; --i)
- for(unsigned j = column_interval[0]; j <= column_interval[1]; ++j)
- ret[row_interval[0] - i][j - column_interval[0]] = &this->mat[i-1][j-1];
- }else{
- for(unsigned i = row_interval[0]; i >= row_interval[1]; --i)
- for(unsigned j = column_interval[0]; j >= column_interval[1]; --j)
- ret[row_interval[0] - i][column_interval[0] - j] = &this->mat[i-1][j - 1];
- }
- }
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement