function mskmax( x, mask ) {
	var dt;
	if ( !isCollection( x ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', x ) );
	}
	dt = dtype( x ) || GENERIC_DTYPE;
	if ( !contains( IDTYPES, dt ) ) {
		throw new TypeError( format( 'invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.', join( IDTYPES, '", "' ), dt ) );
	}
	if ( !isCollection( mask ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', mask ) );
	}
	dt = dtype( mask ) || GENERIC_DTYPE;
	if ( !contains( IDTYPES, dt ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must have one of the following data types: "%s". Data type: `%s`.', join( IDTYPES, '", "' ), dt ) );
	}
	if ( x.length !== mask.length ) {
		throw new RangeError( format( 'invalid arguments. First and second arguments must have the same length.' ) );
	}
	return strided( x.length, x, 1, 0, mask, 1, 0 );
}
Computes the maximum value of an array according to a mask.

@param {NumericArray} x - input array
@param {NumericArray} mask - mask array
@throws {TypeError} first argument must be an array-like object
@throws {TypeError} first argument must have a supported data type
@throws {TypeError} second argument must be an array-like object
@throws {TypeError} second argument must have a supported data type
@throws {RangeError} first and second arguments must have the same length
@returns {number} maximum value

@example
var x = [ 1.0, -2.0, 4.0, 2.0 ];
var mask = [ 0, 0, 1, 0 ];

var v = mskmax( x, mask );
// returns 2.0