/[escript]/trunk/paso/src/Pattern_coupling.c
ViewVC logotype

Diff of /trunk/paso/src/Pattern_coupling.c

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

revision 2699 by artak, Wed Sep 30 05:43:20 2009 UTC revision 2704 by artak, Thu Oct 1 05:38:33 2009 UTC
# Line 246  void Paso_Pattern_Aggregiation(Paso_Spar Line 246  void Paso_Pattern_Aggregiation(Paso_Spar
246          for (iptr=A->pattern->ptr[i];iptr<A->pattern->ptr[i+1]; ++iptr) {          for (iptr=A->pattern->ptr[i];iptr<A->pattern->ptr[i+1]; ++iptr) {
247              j=A->pattern->index[iptr];              j=A->pattern->index[iptr];
248              val=A->val[iptr];              val=A->val[iptr];
             if(j!= i) {  
249                if((val*val)>=(eps_Aii*diags[j])) {                if((val*val)>=(eps_Aii*diags[j])) {
250                 Paso_IndexList_insertIndex(&(index_list[i]),j);                 Paso_IndexList_insertIndex(&(index_list[i]),j);
251                }                }
             }  
252          }          }
253         }         }
254       }       }
# Line 291  void Paso_Pattern_greedy(Paso_Pattern* p Line 289  void Paso_Pattern_greedy(Paso_Pattern* p
289     #pragma omp parallel for private(i) schedule(static)     #pragma omp parallel for private(i) schedule(static)
290     for (i=0;i<n;++i)     for (i=0;i<n;++i)
291          if(mis_marker[i]==IS_AVAILABLE)          if(mis_marker[i]==IS_AVAILABLE)
292                      mis_marker[i]=IS_REMOVED;                      mis_marker[i]=IS_IN_SET;
293    
294    
295      for (i=0;i<n;++i) {      for (i=0;i<n;++i) {
296        if (mis_marker[i]==IS_REMOVED) {        if (mis_marker[i]==IS_IN_SET) {
297          for (iptr=pattern->ptr[i];iptr<pattern->ptr[i+1]; ++iptr) {          for (iptr=pattern->ptr[i];iptr<pattern->ptr[i+1]; ++iptr) {
298               j=pattern->index[iptr];               j=pattern->index[iptr];
299               mis_marker[j]=IS_IN_SET;               mis_marker[j]=IS_REMOVED;
300          }          }
301        }        }
302      }      }
# Line 306  void Paso_Pattern_greedy(Paso_Pattern* p Line 304  void Paso_Pattern_greedy(Paso_Pattern* p
304            
305            
306      for (i=0;i<n;i++) {      for (i=0;i<n;i++) {
307          if (mis_marker[i]==IS_IN_SET) {          if (mis_marker[i]==IS_REMOVED) {
308             passed=TRUE;             passed=TRUE;
309             for (iptr=pattern->ptr[i];iptr<pattern->ptr[i+1]; ++iptr) {             for (iptr=pattern->ptr[i];iptr<pattern->ptr[i+1]; ++iptr) {
310                j=pattern->index[iptr];                j=pattern->index[iptr];
311                  if (mis_marker[j]==IS_IN_SET) {                  if (mis_marker[j]==IS_REMOVED) {
312                      passed=TRUE;                      passed=TRUE;
313                  }                  }
314                  else {                  else {
# Line 318  void Paso_Pattern_greedy(Paso_Pattern* p Line 316  void Paso_Pattern_greedy(Paso_Pattern* p
316                      break;                      break;
317                  }                  }
318                }                }
319             if (passed) mis_marker[i]=IS_REMOVED;             if (passed) mis_marker[i]=IS_IN_SET;
320             }             }
321          }          }
322    
323       /* swap to TRUE/FALSE in mis_marker */       /* swap to TRUE/FALSE in mis_marker */
324       #pragma omp parallel for private(i) schedule(static)       #pragma omp parallel for private(i) schedule(static)
325       for (i=0;i<n;i++) mis_marker[i]=(mis_marker[i]!=IS_IN_SET);       for (i=0;i<n;i++) mis_marker[i]=(mis_marker[i]!=IS_REMOVED);
326            
327  }  }
328    
# Line 392  void Paso_Pattern_greedy_color(Paso_Patt Line 390  void Paso_Pattern_greedy_color(Paso_Patt
390                  }                  }
391                }                }
392             }             }
            }  
393             if (passed) mis_marker[i]=IS_IN_SET;             if (passed) mis_marker[i]=IS_IN_SET;
394               }
395              
396          }          }
397      }      }
398     }     }

Legend:
Removed from v.2699  
changed lines
  Added in v.2704

  ViewVC Help
Powered by ViewVC 1.1.26