~vcs-imports/escript-finley/trunk

« back to all changes in this revision

Viewing changes to paso/src/SparseMatrix_AMGcomponents.c

  • Committer: jfenwick
  • Date: 2010-10-11 01:48:14 UTC
  • Revision ID: svn-v4:77569008-7704-0410-b7a0-a92fef0b09fd:trunk:3259
Merging dudley and scons updates from branches

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
  dim_t block_size=W->row_block_size;
49
49
 
50
50
  index_list=TMPMEMALLOC(n,Paso_IndexList);
51
 
   if (! Paso_checkPtr(index_list)) {
 
51
   if (! Esys_checkPtr(index_list)) {
52
52
        #pragma omp parallel for private(i) schedule(static)
53
53
        for(i=0;i<n;++i) {
54
54
             index_list[i].extension=NULL;
171
171
  index_t iptr,jptr;
172
172
 
173
173
  index_list=TMPMEMALLOC(C,Paso_IndexList);
174
 
   if (! Paso_checkPtr(index_list)) {
 
174
   if (! Esys_checkPtr(index_list)) {
175
175
        #pragma omp parallel for private(i) schedule(static)
176
176
        for(i=0;i<C;++i) {
177
177
             index_list[i].extension=NULL;
623
623
  double time0=0;
624
624
  bool_t verbose=0;
625
625
  
626
 
  time0=Paso_timer();
 
626
  time0=Esys_timer();
627
627
  
628
628
  outpattern=Paso_Pattern_multiply(PATTERN_FORMAT_DEFAULT,A->pattern,B->pattern);
629
629
  out=Paso_SparseMatrix_alloc(A->type, outpattern, block_size, block_size, FALSE);
630
630
  
631
 
  time0=Paso_timer()-time0;
 
631
  time0=Esys_timer()-time0;
632
632
  if (verbose) fprintf(stdout,"timing: Paso_SparseMatrix_MatrixMatrix: Pattern creation: %e\n",time0);
633
633
  
634
 
  time0=Paso_timer();
 
634
  time0=Esys_timer();
635
635
  
636
636
  if(block_size==1) {
637
637
        #pragma omp parallel for private(i,iptrC,j,sum,iptrA,k,b_lj,iptrB,l) schedule(static)
757
757
   
758
758
  }
759
759
  
760
 
  time0=Paso_timer()-time0;
 
760
  time0=Esys_timer()-time0;
761
761
  if (verbose) fprintf(stdout,"timing: Paso_SparseMatrix_MatrixMatrix: Matrix multiplication: %e\n",time0);
762
762
      
763
763
  Paso_Pattern_free(outpattern);
778
778
  double time0=0;
779
779
  bool_t verbose=0;
780
780
  
781
 
  time0=Paso_timer();
 
781
  time0=Esys_timer();
782
782
  
783
783
  temp=Paso_Pattern_multiply(PATTERN_FORMAT_DEFAULT,A->pattern,P->pattern);
784
784
  outpattern=Paso_Pattern_multiply(PATTERN_FORMAT_DEFAULT,R->pattern,temp);
785
785
  A_c=Paso_SparseMatrix_alloc(A->type,outpattern,1,1, TRUE);
786
786
  
787
 
  time0=Paso_timer()-time0;
 
787
  time0=Esys_timer()-time0;
788
788
  if (verbose) fprintf(stdout,"timing: Paso_Solver_getCoarseMatrix: Pattern creation: %e\n",time0);
789
789
  
790
790
  /*a^c_ij=sum_k^n(r_ik)sum_l^n(a_kl*P_lj)*/
791
791
 
792
 
  time0=Paso_timer();
 
792
  time0=Esys_timer();
793
793
  
794
794
  #pragma omp parallel for private(i,iptrA_c,j,second_sum,iptrR,k,first_sum,p_lj,iptrP,m,a_kl,r_ik) schedule(static)
795
795
  for(i = 0; i < A_c->numRows; i++) {
819
819
      A_c->val[iptrA_c]=second_sum;
820
820
     }
821
821
  }
822
 
  time0=Paso_timer()-time0;
 
822
  time0=Esys_timer()-time0;
823
823
  if (verbose) fprintf(stdout,"timing: Paso_Solver_getCoarseMatrix: Matrix multiplication: %e\n",time0);
824
824
    
825
825
  Paso_Pattern_free(outpattern);