double function ( int arg0 ) { double loc0 = RANDOM_SOURCE . nextDouble ( ) ; loc0 = Math . scalb ( loc0 , RANDOM_SOURCE . nextInt ( arg0 + 1 ) ) ; return RANDOM_SOURCE . nextBoolean ( ) ? loc0 : - loc0 ; }
generates a number in 0 , 2 ^ numbits with an exponential distribution . the floor of the log2 of the absolute value of the result is chosen uniformly at random in 0 , numbits , and then the result is chosen from those possibilities uniformly at random . zero is treated as having log2 == 0 . concode_field_sep int ARRAY_SIZE concode_elem_sep int[] biggestBinomials concode_elem_sep int ARRAY_MASK concode_elem_sep int MAX_EXPONENT concode_elem_sep Random RANDOM_SOURCE concode_field_sep BigInteger randomNonZeroBigInteger concode_elem_sep BigInteger randomBigInteger concode_elem_sep BigInteger randomPositiveBigInteger concode_elem_sep BigInteger randomNonNegativeBigInteger concode_elem_sep int randomExponent concode_elem_sep double randomPositiveDouble