function mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {
	var xget;
	var yget;
	var zset;

	if ( isAccessorArray( x ) ) {
		xget = accessorGetter( dtype( x ) );
	}
	if ( isAccessorArray( y ) ) {
		yget = accessorGetter( dtype( y ) );
	}
	if ( isAccessorArray( z ) ) {
		zset = accessorSetter( dtype( z ) );
	}
	if ( xget || yget || zset ) {
		xget = xget || getter( dtype( x ) );
		yget = yget || getter( dtype( y ) );
		zset = zset || setter( dtype( z ) );
		return accessors( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len
	}
	return strided( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg );
}
Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.

@private
@param {NonNegativeInteger} N - number of indexed elements
@param {Collection} x - input array/collection
@param {integer} strideX - `x` stride length
@param {Collection} y - input array/collection
@param {integer} strideY - `y` stride length
@param {Collection} z - destination array/collection
@param {integer} strideZ - `z` stride length
@param {Function} fcn - binary function to apply to callback return values
@param {Callback} clbk - callback function which returns an array-like object containing two values
@param {*} [thisArg] - callback execution context
@returns {Collection} `z`

@example
var add = require( '@stdlib/number/float64/base/add' );

function accessor( values ) {
    values[ 0 ] *= 2.0;
    values[ 1 ] *= 2.0;
    return values;
}

var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];
var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];
var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];

mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );

console.log( z );
// => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]