function setAll( M, N, areal, aimag, breal, bimag, A, strideA1, strideA2, offsetA ) { // eslint-disable-line max-len
	var da0;
	var da1;
	var sh;
	var S0;
	var S1;
	var sa;
	var ia;
	var i0;
	var i1;
	var o;

	// Resolve the loop interchange order:
	o = loopOrder( [ M, N ], [ strideA1, strideA2 ] );
	sh = o.sh;
	sa = o.sx;

	// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...
	S0 = sh[ 0 ];
	S1 = sh[ 1 ];
	da0 = sa[ 0 ];
	da1 = sa[ 1 ] - ( S0*sa[0] );

	// Set the pointer to the first indexed element:
	ia = offsetA;

	// Fill the array with a scalar value...
	for ( i1 = 0; i1 < S1; i1++ ) {
		for ( i0 = 0; i0 < S0; i0++ ) {
			A[ ia ] = areal;
			A[ ia+1 ] = aimag;
			ia += da0;
		}
		ia += da1;
	}
	// Replace the diagonal:
	setDiagonal( M, N, breal, bimag, A, strideA1, strideA2, offsetA );

	return A;
}
Sets all elements of a single-precision complex floating-point matrix `A` to specified values.

@private
@param {NonNegativeInteger} M - number of rows in matrix `A`
@param {NonNegativeInteger} N - number of columns in matrix `A`
@param {number} areal - real component of the value to assign to off-diagonal elements
@param {number} aimag - imaginary component of the value to assign to off-diagonal elements
@param {number} breal - real component of the value to assign to diagonal elements
@param {number} bimag - imaginary component of the value to assign to diagonal elements
@param {Float32Array} A - input matrix view
@param {integer} strideA1 - stride of the first dimension of `A`
@param {integer} strideA2 - stride of the second dimension of `A`
@param {NonNegativeInteger} offsetA - starting index for `A`
@returns {Float32Array} `A`

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, 4, 2, 0 );
// A => <Float32Array>[ 3.0, 4.0, 1.0, 2.0, 1.0, 2.0, 3.0, 4.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, 4, -2, 2 );
// A => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 3.0, 4.0, 1.0, 2.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, -4, 2, 4 );
// A => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 3.0, 4.0, 1.0, 2.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, -4, -2, 6 );
// A => <Float32Array>[ 3.0, 4.0, 1.0, 2.0, 1.0, 2.0, 3.0, 4.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, 2, 4, 0 );
// A => <Float32Array>[ 3.0, 4.0, 1.0, 2.0, 1.0, 2.0, 3.0, 4.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, -2, 4, 2 );
// A => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 3.0, 4.0, 1.0, 2.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, 2, -4, 4 );
// A => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 3.0, 4.0, 1.0, 2.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( 8 );
// returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

setAll( 2, 2, 1.0, 2.0, 3.0, 4.0, A, -2, -4, 6 );
// A => <Float32Array>[ 3.0, 4.0, 1.0, 2.0, 1.0, 2.0, 3.0, 4.0 ]