function zlaswp( order, N, A, LDA, k1, k2, IPIV, incx ) {
	var tmp;
	var inc;
	var sa1;
	var sa2;
	var io;
	if ( !isLayout( order ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );
	}
	if ( isRowMajor( order ) && LDA < max( 1, N ) ) {
		throw new RangeError( format( 'invalid argument. Fourth argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDA ) );
	}
	if ( incx > 0 ) {
		inc = 1;
		io = k1;
	} else if ( incx < 0 ) {
		inc = -1;
		io = k1 + ( (k1-k2) * incx );
		tmp = k1;
		k1 = k2;
		k2 = tmp;
	} else {
		return A;
	}
	if ( isColumnMajor( order ) ) {
		sa1 = 1;
		sa2 = LDA;
	} else { // order === 'row-major'
		sa1 = LDA;
		sa2 = 1;
	}
	return base( N, A, sa1, sa2, 0, k1, k2, inc, IPIV, incx, io );
}
Performs a series of row interchanges on a matrix `A` using pivot indices stored in `IPIV`.

@param {string} order - storage layout
@param {PositiveInteger} N - number of columns in `A`
@param {Complex128Array} A - input matrix
@param {PositiveInteger} LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`)
@param {NonNegativeInteger} k1 - index of first row to interchange
@param {NonNegativeInteger} k2 - index of last row to interchange
@param {Int32Array} IPIV - vector of pivot indices
@param {integer} incx - increment between successive values of `IPIV`
@throws {TypeError} first argument must be a valid order
@throws {RangeError} fourth argument must be greater than or equal to max(1,N)
@returns {Complex128Array} permuted matrix `A`

@example
var Int32Array = require( '@stdlib/array/int32' );
var Complex128Array = require( '@stdlib/array/complex128' );

var IPIV = new Int32Array( [ 2, 0, 1 ] );
var A = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );

zlaswp( 'row-major', 2, A, 2, 0, 2, IPIV, 1 );
// A => <Complex128Array>[ 5.0, 6.0, 7.0, 8.0, 1.0, 2.0, 3.0, 4.0, 9.0, 10.0, 11.0, 12.0 ]