function complex( dtype, N, x, strideX, offsetX, view, strideView, offsetView, littleEndian ) {
	var nbytes;
	var data;
	var ix;
	var iv;
	var m;
	var i;

	m = METHOD_TABLE[ dtype ];
	nbytes = bytesPerElement( dtype );

	data = x.data;

	// Adjust meta data to account for interleaved real and imaginary components:
	strideX *= 2;
	offsetX *= 2;

	ix = offsetX;
	iv = offsetView;
	for ( i = 0; i < N; i++ ) {
		view[ m ]( iv, data[ ix ], littleEndian );
		view[ m ]( iv+nbytes, data[ ix+1 ], littleEndian );
		ix += strideX;
		iv += strideView;
	}
	return view;
}
Copies elements from an input strided complex array to elements in a strided DataView.

@private
@param {string} dtype - input array data type
@param {NonNegativeInteger} N - number of indexed elements
@param {Collection} x - input array object
@param {integer} strideX - `x` stride length
@param {NonNegativeInteger} offsetX - starting `x` index
@param {DataView} view - output DataView
@param {integer} strideView - `view` stride length (in bytes)
@param {NonNegativeInteger} offsetView - starting `view` index (in bytes)
@param {boolean} littleEndian - boolean indicating whether to store the data in little-endian format
@returns {DataView} output DataView

@example
var Float64Array = require( '@stdlib/array/float64' );
var ArrayBuffer = require( '@stdlib/array/buffer' );
var DataView = require( '@stdlib/array/dataview' );
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );

var x = new Float64Array( [ 1.0, 0.0, 1.0, 0.0 ] );

var buf = new ArrayBuffer( 32 );
var view = new DataView( buf );

var out = complex( 'float64', 2, arraylike2object( x ), 1, 0, view, 8, 0, true );
// returns <DataView>

var bool = ( out === view );
// returns true

var v = view.getFloat64( 0, true );
// returns 1.0