function validate( a, b, c ) {
	if ( !isNumber( a ) || isnan( a ) ) {
		return new TypeError( format( 'invalid argument. First argument must be a number and not NaN. Value: `%s`.', a ) );
	}
	if ( !isNumber( b ) || isnan( b ) ) {
		return new TypeError( format( 'invalid argument. Second argument must be a number and not NaN. Value: `%s`.', b ) );
	}
	if ( !isNumber( c ) || isnan( c ) ) {
		return new TypeError( format( 'invalid argument. Third argument must be a number and not NaN. Value: `%s`.', c ) );
	}
	if ( !(a <= c && c <= b) ) {
		return new RangeError( format( 'invalid arguments. Parameters must satisfy the following condition: %s. a: `%f`. b: `%f`. c: `%f`.', 'a <= c <= b', a, b, c ) );
	}
	return null;
}
Validates parameters.

@private
@param {number} a - minimum support
@param {number} b - maximum support
@param {number} c - mode
@returns {(Error|null)} error or null

@example
var err = validate( 1.0, 2.0, 1.3 );
if ( err ) {
    throw err;
}