function binary( arrays, shape, strides, fcn ) {
	var xget;
	var yget;
	var zset;
	var x;
	var y;
	var z;

	x = arrays[ 0 ];
	if ( isAccessorArray( x ) ) {
		xget = accessorGetter( dtype( x ) );
	}
	y = arrays[ 1 ];
	if ( isAccessorArray( y ) ) {
		yget = accessorGetter( dtype( y ) );
	}
	z = arrays[ 2 ];
	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( arrays, shape, strides, [ xget, yget, zset ], fcn );
	}
	return strided( arrays, shape, strides, fcn );
}
Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.

@param {ArrayLikeObject<Collection>} arrays - array-like object containing two input arrays and one output array
@param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements
@param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays
@param {Callback} fcn - binary callback
@returns {void}

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

var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
var z = new Float64Array( x.length );

var shape = [ x.length ];
var strides = [ 1, 1, 1 ];

binary( [ x, y, z ], shape, strides, add );

console.log( z );
// => <Float64Array>[ 2.0, 4.0, 6.0, 8.0, 10.0 ]