protected int nextIntSlow(){
  final double bound=Math.exp(-mean);
  int count=0;
  double product;
  for (product=1.0; product >= bound && product > 0.0; count++) {
    product*=randomGenerator.raw();
  }
  if (product <= 0.0 && bound > 0.0)   return (int)Math.round(mean);
  return count - 1;
}

protected int nextIntSlow ( ) { final double bound = Math . exp ( - mean ) ; int count = 0 ; double product ; for ( product = 1.0 ; product >= bound && product > 0.0 ; count ++ ) { product *= randomGenerator . raw ( ) ; } if ( product <= 0.0 && bound > 0.0 ) return ( int ) Math . round ( mean ) ; return count - 1 ; }
returns a random number from the distribution .
