private static void s_ucumkp(SparseBlock a,double[] agg,double[] c,int m,int n,KahanObject kbuff,KahanPlus kplus,int rl,int ru){
  double[] csums=new double[2 * n];
  if (agg != null)   System.arraycopy(agg,0,csums,0,n);
  for (int i=rl, ix=rl * n; i < ru; i++, ix+=n) {
    if (!a.isEmpty(i))     sumAgg(a.values(i),csums,a.indexes(i),a.pos(i),a.size(i),n,kbuff,kplus);
    System.arraycopy(csums,0,c,ix,n);
  }
}

private static void s_ucumkp ( SparseBlock a , double [ ] agg , double [ ] c , int m , int n , KahanObject kbuff , KahanPlus kplus , int rl , int ru ) { double [ ] csums = new double [ 2 * n ] ; if ( agg != null ) System . arraycopy ( agg , 0 , csums , 0 , n ) ; for ( int i = rl , ix = rl * n ; i < ru ; i ++ , ix += n ) { if ( ! a . isEmpty ( i ) ) sumAgg ( a . values ( i ) , csums , a . indexes ( i ) , a . pos ( i ) , a . size ( i ) , n , kbuff , kplus ) ; System . arraycopy ( csums , 0 , c , ix , n ) ; } }
cumsum , opcode : ucumk + , sparse input .
