/[escript]/trunk/paso/src/SparseMatrix_getSubmatrix.cpp
ViewVC logotype

Diff of /trunk/paso/src/SparseMatrix_getSubmatrix.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4797 by caltinay, Mon Mar 24 05:42:42 2014 UTC revision 4803 by caltinay, Wed Mar 26 06:52:28 2014 UTC
# Line 45  SparseMatrix* SparseMatrix_getSubmatrix( Line 45  SparseMatrix* SparseMatrix_getSubmatrix(
45                                          int n_col_sub, const index_t* row_list,                                          int n_col_sub, const index_t* row_list,
46                                          const index_t* new_col_index)                                          const index_t* new_col_index)
47  {  {
48      Paso_Pattern* sub_pattern=NULL;      Pattern* sub_pattern=NULL;
49      SparseMatrix* out=NULL;      SparseMatrix* out=NULL;
50      index_t index_offset=(A->type & MATRIX_FORMAT_OFFSET1 ? 1:0);      index_t index_offset=(A->type & MATRIX_FORMAT_OFFSET1 ? 1:0);
51      int i,k,tmp,m,subpattern_row;      int i,k,tmp,m,subpattern_row;
# Line 54  SparseMatrix* SparseMatrix_getSubmatrix( Line 54  SparseMatrix* SparseMatrix_getSubmatrix(
54      if (A->type & MATRIX_FORMAT_CSC) {      if (A->type & MATRIX_FORMAT_CSC) {
55          Esys_setError(TYPE_ERROR, "SparseMatrix_getSubmatrix: gathering submatrices supports CSR matrix format only.");          Esys_setError(TYPE_ERROR, "SparseMatrix_getSubmatrix: gathering submatrices supports CSR matrix format only.");
56      } else {      } else {
57          sub_pattern=Paso_Pattern_getSubpattern(A->pattern, n_row_sub,          sub_pattern=Pattern_getSubpattern(A->pattern, n_row_sub, n_col_sub,
58                                                 n_col_sub, row_list,                                            row_list, new_col_index);
                                                new_col_index);  
59          if (Esys_noError()) {          if (Esys_noError()) {
60              /* create the return object */              /* create the return object */
61              out=SparseMatrix_alloc(type,sub_pattern,A->row_block_size,A->col_block_size,TRUE);              out=SparseMatrix_alloc(type,sub_pattern,A->row_block_size,A->col_block_size,TRUE);
# Line 79  SparseMatrix* SparseMatrix_getSubmatrix( Line 78  SparseMatrix* SparseMatrix_getSubmatrix(
78                  }                  }
79              }              }
80          }          }
81          Paso_Pattern_free(sub_pattern);          Pattern_free(sub_pattern);
82      }      }
83      return out;      return out;
84  }  }

Legend:
Removed from v.4797  
changed lines
  Added in v.4803

  ViewVC Help
Powered by ViewVC 1.1.26