private static void d_ucumm(double[] a,double[] agg,double[] c,int m,int n,int rl,int ru){
  double[] cprods=(agg != null) ? agg : new double[n];
  if (agg == null)   Arrays.fill(cprods,1);
  for (int i=rl, aix=rl * n; i < ru; i++, aix+=n) {
    productAgg(a,cprods,aix,0,n);
    System.arraycopy(cprods,0,c,aix,n);
  }
}

private static void d_ucumm ( double [ ] a , double [ ] agg , double [ ] c , int m , int n , int rl , int ru ) { double [ ] cprods = ( agg != null ) ? agg : new double [ n ] ; if ( agg == null ) Arrays . fill ( cprods , 1 ) ; for ( int i = rl , aix = rl * n ; i < ru ; i ++ , aix += n ) { productAgg ( a , cprods , aix , 0 , n ) ; System . arraycopy ( cprods , 0 , c , aix , n ) ; } }
cumprod , opcode : ucum * , dense input .
