function quantile( p, a, b ) {
	if (
		isnan( p ) ||
		isnan( a ) ||
		isnan( b ) ||
		a <= 0.0 ||
		b <= 0.0 ||
		p < 0.0 ||
		p > 1.0
	) {
		return NaN;
	}
	return pow( 1.0 - pow( 1.0-p, 1.0/b ), 1.0/a );
}
Evaluates the quantile function for a Kumaraswamy's double bounded distribution with first shape parameter `a` and second shape parameter `b` at a probability `p`.

@param {Probability} p - input probability
@param {PositiveNumber} a - first shape parameter
@param {PositiveNumber} b - second shape parameter
@returns {number} evaluated quantile function

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

@example
var y = quantile( 0.5, 2.0, 4.0 );
// returns ~0.399

@example
var y = quantile( 0.2, 2.0, 2.0 );
// returns ~0.325

@example
var y = quantile( 0.8, 4.0, 4.0 );
// returns ~0.759

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

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

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

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

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

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