private synchronized void precomputeLogs(int len){
  if (len <= ilogs.length) {
    return;
  }
  double[] logs=Arrays.copyOf(ilogs,len);
  for (int i=ilogs.length; i < len; i++) {
    logs[i]=Math.log(1 + i);
  }
  this.ilogs=logs;
}

private synchronized void precomputeLogs ( int len ) { if ( len <= ilogs . length ) { return ; } double [ ] logs = Arrays . copyOf ( ilogs , len ) ; for ( int i = ilogs . length ; i < len ; i ++ ) { logs [ i ] = Math . log ( 1 + i ) ; } this . ilogs = logs ; }
grow the log [ i ] cache .
