function dispatcher( N, dtypeX, x, strideX, offsetX ) {
		var viewX;

		// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...
		if ( !isTypedArrayLike( x ) ) {
			fallback( N, dtypeX, x, strideX, offsetX );
			return x;
		}
		dtypeX = resolve( dtypeX );
		if ( dtypeX === null ) {
			throw new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );
		}
		if ( !isNonNegativeInteger( offsetX ) ) {
			throw new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', offsetX ) );
		}
		offsetX = minViewBufferIndex( N, strideX, offsetX );
		if ( dtypeX === COMPLEX64 ) {
			viewX = reinterpretComplex64( x, offsetX );
		} else if ( dtypeX === COMPLEX128 ) {
			viewX = reinterpretComplex128( x, offsetX );
		} else if ( dtypeX === BOOLEAN ) {
			viewX = reinterpretBoolean( x, offsetX );
		} else {
			viewX = offsetView( x, offsetX );
		}
		addon( N, dtypeX, viewX, strideX );
		return x;
	}
Dispatches to a native add-on.

@private
@param {integer} N - number of indexed elements
@param {*} dtypeX - `x` data type
@param {Collection} x - output array
@param {integer} strideX - `x` stride length
@param {NonNegativeInteger} offsetX - starting `x` index
@throws {TypeError} fifth argument must be a nonnegative integer
@throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types
@returns {Collection} `x`