function quantile( r, p ) {
	if (
		isnan( p ) ||
		isnan( r ) ||
		p < 0.0 ||
		p > 1.0 ||
		r < 0.0 ||
		r > 1.0
	) {
		return NaN;
	}
	if ( r === 1.0 ) {
		return PINF;
	}
	return max( 0.0, ceil( ( ln(1.0-r)/log1p(-p) )- ( 1.0+1.0e-12 ) ) );
}
Evaluates the quantile function for a geometric distribution with success probability `p` at a probability `r`.

@param {Probability} r - input value
@param {Probability} p - success probability
@returns {NonNegativeInteger} evaluated quantile function

@example
var y = quantile( 0.8, 0.4 );
// returns 3

@example
var y = quantile( 0.5, 0.4 );
// returns 1

@example
var y = quantile( 0.9, 0.1 );
// returns 21

@example
var y = quantile( -0.2, 0.1 );
// returns NaN

@example
var y = quantile( NaN, 0.8 );
// returns NaN

@example
var y = quantile( 0.4, NaN );
// returns NaN

@example
var y = quantile( 0.5, -1.0 );
// returns NaN

@example
var y = quantile( 0.5, 1.5 );
// returns NaN