function slacpy( uplo, M, N, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) {
	if ( uplo === 'upper' ) {
		return copyUpper( M, N, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB );
	}
	if ( uplo === 'lower' ) {
		return copyLower( M, N, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB );
	}
	return copyAll( M, N, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB );
}
Copies all or part of a matrix `A` to another matrix `B`.

@private
@param {string} uplo - specifies whether to copy the upper or lower triangular/trapezoidal part of matrix `A`
@param {NonNegativeInteger} M - number of rows in matrix `A`
@param {NonNegativeInteger} N - number of columns in matrix `A`
@param {Float32Array} A - input matrix
@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`
@param {Float32Array} B - output matrix
@param {integer} strideB1 - stride of the first dimension of `B`
@param {integer} strideB2 - stride of the second dimension of `B`
@param {NonNegativeInteger} offsetB - starting index for `B`
@returns {Float32Array} `B`

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

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float32Array( 4 );

slacpy( 'all', 2, 2, A, 2, 1, 0, B, 2, 1, 0 );
// B => <Float32Array>[ 1.0, 2.0, 3.0, 4.0 ]

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

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float32Array( 4 );

slacpy( 'upper', 2, 2, A, 2, 1, 0, B, 2, 1, 0 );
// B => <Float32Array>[ 1.0, 2.0, 0.0, 4.0 ]

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

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float32Array( 4 );

slacpy( 'lower', 2, 2, A, 2, 1, 0, B, 2, 1, 0 );
// B => <Float32Array>[ 1.0, 0.0, 3.0, 4.0 ]