function quaternary( arrays, shape, strides, fcn ) {
	var offsets;
	var N;

	N = shape[ 0 ];
	offsets = [
		stride2offset( N, strides[ 0 ] ),
		stride2offset( N, strides[ 1 ] ),
		stride2offset( N, strides[ 2 ] ),
		stride2offset( N, strides[ 3 ] ),
		stride2offset( N, strides[ 4 ] )
	];
	return ndarray( arrays, shape, strides, offsets, fcn );
}
Applies a quaternary callback to strided input array elements and assigns results to elements in a strided output array.

@param {ArrayLikeObject<Collection>} arrays - array-like object containing four 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 - quaternary callback
@returns {void}

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

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( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
var u = new Float64Array( x.length );

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

quaternary( [ x, y, z, w, u ], shape, strides, add );

console.log( u );
// => <Float64Array>[ 4.0, 8.0, 12.0, 16.0, 20.0 ]