private static void s_uacmean(SparseBlock a,double[] c,int m,int n,KahanObject kbuff,Mean kmean,int rl,int ru){
  Arrays.fill(c,n,n * 2,ru - rl);
  if (a.isContiguous()) {
    countDisAgg(a.values(rl),c,a.indexes(rl),a.pos(rl),n,(int)a.size(rl,ru));
  }
 else {
    for (int i=rl; i < ru; i++) {
      if (!a.isEmpty(i))       countDisAgg(a.values(i),c,a.indexes(i),a.pos(i),n,a.size(i));
    }
  }
  if (a.isContiguous()) {
    meanAgg(a.values(rl),c,a.indexes(rl),a.pos(rl),(int)a.size(rl,ru),n,kbuff,kmean);
  }
 else {
    for (int i=rl; i < ru; i++) {
      if (!a.isEmpty(i))       meanAgg(a.values(i),c,a.indexes(i),a.pos(i),a.size(i),n,kbuff,kmean);
    }
  }
}

private static void s_uacmean ( SparseBlock a , double [ ] c , int m , int n , KahanObject kbuff , Mean kmean , int rl , int ru ) { Arrays . fill ( c , n , n * 2 , ru - rl ) ; if ( a . isContiguous ( ) ) { countDisAgg ( a . values ( rl ) , c , a . indexes ( rl ) , a . pos ( rl ) , n , ( int ) a . size ( rl , ru ) ) ; } else { for ( int i = rl ; i < ru ; i ++ ) { if ( ! a . isEmpty ( i ) ) countDisAgg ( a . values ( i ) , c , a . indexes ( i ) , a . pos ( i ) , n , a . size ( i ) ) ; } } if ( a . isContiguous ( ) ) { meanAgg ( a . values ( rl ) , c , a . indexes ( rl ) , a . pos ( rl ) , ( int ) a . size ( rl , ru ) , n , kbuff , kmean ) ; } else { for ( int i = rl ; i < ru ; i ++ ) { if ( ! a . isEmpty ( i ) ) meanAgg ( a . values ( i ) , c , a . indexes ( i ) , a . pos ( i ) , a . size ( i ) , n , kbuff , kmean ) ; } } }
colmean , opcode : uacmean , sparse input .
