diff --git a/lib/node_modules/@stdlib/blas/base/dcopy/lib/dcopy.js b/lib/node_modules/@stdlib/blas/base/dcopy/lib/dcopy.js index 929ea3767fa..0e3c85c2dde 100644 --- a/lib/node_modules/@stdlib/blas/base/dcopy/lib/dcopy.js +++ b/lib/node_modules/@stdlib/blas/base/dcopy/lib/dcopy.js @@ -18,9 +18,9 @@ 'use strict'; -// VARIABLES // +// MODULES // -var M = 8; +var ndarray = require( './ndarray.js' ); // MAIN // @@ -47,52 +47,20 @@ var M = 8; function dcopy( N, x, strideX, y, strideY ) { var ix; var iy; - var m; - var i; if ( N <= 0 ) { return y; } - // Use unrolled loops if both strides are equal to `1`... - if ( strideX === 1 && strideY === 1 ) { - m = N % M; - - // If we have a remainder, run a clean-up loop... - if ( m > 0 ) { - for ( i = 0; i < m; i++ ) { - y[ i ] = x[ i ]; - } - } - if ( N < M ) { - return y; - } - for ( i = m; i < N; i += M ) { - y[ i ] = x[ i ]; - y[ i+1 ] = x[ i+1 ]; - y[ i+2 ] = x[ i+2 ]; - y[ i+3 ] = x[ i+3 ]; - y[ i+4 ] = x[ i+4 ]; - y[ i+5 ] = x[ i+5 ]; - y[ i+6 ] = x[ i+6 ]; - y[ i+7 ] = x[ i+7 ]; - } - return y; - } if ( strideX < 0 ) { - ix = (1-N) * strideX; + ix = ( 1 - N ) * strideX; } else { ix = 0; } if ( strideY < 0 ) { - iy = (1-N) * strideY; + iy = ( 1 - N ) * strideY; } else { iy = 0; } - for ( i = 0; i < N; i++ ) { - y[ iy ] = x[ ix ]; - ix += strideX; - iy += strideY; - } - return y; + return ndarray( N, x, strideX, ix, y, strideY, iy ); }