question: public double nextDouble ( double tau ) { double u , u1 , v , x , y ; if ( tau != tau_set ) { s = 1.0 / tau ; sm1 = 1.0 - s ; tau_set = tau ; } do { u = randomGenerator . raw ( ) ; u = ( 2.0 * u ) - 1.0 ; u1 = Math . abs ( u ) ; v = randomGenerator . raw ( ) ; if ( u1 <= sm1 ) { x = u1 ; } else { y = tau * ( 1.0 - u1 ) ; x = sm1 - s * Math . log ( y ) ; v = v * y ; } } while ( Math . log ( v ) > - Math . exp ( Math . log ( x ) * tau ) ) ; if ( u < 0.0 ) return x ; else return - x ; }
target:  Returns a random number from the distribution; bypasses the internal state.