static private double fac2(int j){
  long i=j;
  if (j < 0)   i=Math.abs(j);
  double d=1.0;
  while (i > 1)   d*=i--;
  if (j < 0)   return -d;
 else   return d;
}

static private double fac2 ( int j ) { long i = j ; if ( j < 0 ) i = Math . abs ( j ) ; double d = 1.0 ; while ( i > 1 ) d *= i -- ; if ( j < 0 ) return - d ; else return d ; }
returns the factorial of the argument .
