function padjust( pvals, method, comparisons ) {
	if ( !isProbabilityArray( pvals ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be an array of probabilities. Value: `%s`.', pvals ) );
	}
	if ( !isString( method ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be a string. Value: `%s`.', method ) );
	}
	if ( arguments.length > 2 ) {
		if ( !isInteger( comparisons ) ) {
			throw new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', comparisons ) );
		}
		if ( comparisons < pvals.length ) {
			throw new RangeError( format( 'invalid argument. The number of comparisons must be greater or equal to the number of p-values to be adjusted. Value: `%u`.', comparisons ) );
		}
	}
	comparisons = comparisons || pvals.length;
	switch ( method ) {
	case 'bonferroni':
		return bonferroni( pvals, comparisons );
	case 'by':
		return by( pvals, comparisons );
	case 'bh':
		return bh( pvals, comparisons );
	case 'holm':
		return holm( pvals, comparisons );
	case 'hommel':
		return hommel( pvals, comparisons );
	default:
		throw new Error( format( 'invalid argument. Second argument must be one of the following: "%s". Value: `%s`.', METHODS.join( '", "' ), method ) );
	}
}
Adjusts supplied p-values for multiple comparisons via a specified method.

@param {ProbabilityArray} pvals - p-values to be adjusted
@param {string} method - correction method
@param {PositiveInteger} [comparisons=pvals.length] - number of comparisons
@throws {TypeError} first argument has to be an array-like object
@throws {TypeError} second argument must be a string
@throws {Error} second argument must be `bh`, `bonferroni`, `by`, `holm`, or `hommel`
@throws {RangeError} comparisons must be greater or equal to the number of p-values to be adjusted
@returns {ProbabilityArray} array containing the corrected p-values

@example
var pvalues = [ 0.008, 0.03, 0.123, 0.6, 0.2 ];
var out = padjust( pvalues, 'bonferroni' );
// returns [ 0.04, 0.15, ..., 1, 1 ]

@example
var pvalues = [ 0.008, 0.03, 0.123, 0.6, 0.2 ];
var out = padjust( pvalues, 'by' );
// returns [ ~0.091, ~0.171, ..., 1, ~0.571 ]

@example
var pvalues = [ 0.008, 0.03, 0.123, 0.6, 0.2 ];
var out = padjust( pvalues, 'bh' );
// returns [ 0.04, 0.075, ..., 0.6, 0.25 ]

@example
var pvalues = [ 0.008, 0.03, 0.123, 0.6, 0.2 ];
var out = padjust( pvalues, 'holm' );
// returns [ 0.04, 0.12, ..., 0.6, 0.4 ]

@example
var pvalues = [ 0.008, 0.03, 0.123, 0.6, 0.2 ];
var out = padjust( pvalues, 'hommel' );
// returns [ 0.032, 0.12, ..., 0.6, 0.4 ]