function mskmin( N, x, strideX, offsetX, mask, strideMask, offsetMask ) {
	var xbuf;
	var mbuf;
	var xget;
	var mget;
	var min;
	var ix;
	var im;
	var v;
	var i;

	// Cache references to array data:
	xbuf = x.data;
	mbuf = mask.data;

	// Cache references to element accessors:
	xget = x.accessors[ 0 ];
	mget = mask.accessors[ 0 ];

	ix = offsetX;
	im = offsetMask;
	for ( i = 0; i < N; i++ ) {
		if ( mget( mbuf, im ) === 0 ) {
			break;
		}
		ix += strideX;
		im += strideMask;
	}
	if ( i === N ) {
		return NaN;
	}
	min = xget( xbuf, ix );
	if ( isnan( min ) ) {
		return min;
	}
	i += 1;
	for ( i; i < N; i++ ) {
		ix += strideX;
		im += strideMask;
		if ( mget( mbuf, im ) ) {
			continue;
		}
		v = xget( xbuf, ix );
		if ( isnan( v ) ) {
			return v;
		}
		if ( v < min || ( v === min && isNegativeZero( v ) ) ) {
			min = v;
		}
	}
	return min;
}
Computes the minimum value of a strided array according to a mask.

@private
@param {PositiveInteger} N - number of indexed elements
@param {Object} x - input array object
@param {Collection} x.data - input array data
@param {Array<Function>} x.accessors - array element accessors
@param {integer} strideX - stride length for `x`
@param {NonNegativeInteger} offsetX - starting index for `x`
@param {Object} mask - mask array object
@param {Collection} mask.data - mask array data
@param {Array<Function>} mask.accessors - mask element accessors
@param {integer} strideMask - stride length for `mask`
@param {NonNegativeInteger} offsetMask - starting index for `mask`
@returns {number} minimum value

@example
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );

var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, -5.0, -6.0 ];
var mask = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 ];

var v = mskmin( 5, arraylike2object( toAccessorArray( x ) ), 2, 1, arraylike2object( toAccessorArray( mask ) ), 2, 1 );
// returns -2.0