dlacpy
Copy all or part of a matrix
A
to another matrixB
.
Usage
var dlacpy = require( '@stdlib/lapack/base/dlacpy' );
dlacpy( order, uplo, M, N, A, LDA, B, LDB )
Copies all or part of a matrix A
to another matrix B
.
var Float64Array = require( '@stdlib/array/float64' );
var A = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float64Array( 4 );
dlacpy( 'row-major', 'all', 2, 2, A, 2, B, 2 );
// B => <Float64Array>[ 1.0, 2.0, 3.0, 4.0 ]
The function has the following parameters:
- order: storage layout.
- uplo: specifies whether to copy the upper or lower triangular/trapezoidal part of a matrix
A
. - M: number of rows in
A
. - N: number of columns in
A
. - A: input
Float64Array
. - LDA: stride of the first dimension of
A
(a.k.a., leading dimension of the matrixA
). - B: output
Float64Array
. - LDB: stride of the first dimension of
B
(a.k.a., leading dimension of the matrixB
).
Note that indexing is relative to the first index. To introduce an offset, use typed array
views.
var Float64Array = require( '@stdlib/array/float64' );
// Initial arrays...
var A0 = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
var B0 = new Float64Array( 5 );
// Create offset views...
var A1 = new Float64Array( A0.buffer, A0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
var B1 = new Float64Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
dlacpy( 'row-major', 'all', 2, 2, A1, 2, B1, 2 );
// B0 => <Float64Array>[ 0.0, 2.0, 3.0, 4.0, 5.0 ]
dlacpy.ndarray( uplo, M, N, A, sa1, sa2, oa, B, sb1, sb2, ob )
Copies all or part of a matrix A
to another matrix B
using alternative indexing semantics.
var Float64Array = require( '@stdlib/array/float64' );
var A = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] );
dlacpy.ndarray( 'all', 2, 2, A, 2, 1, 0, B, 2, 1, 0 );
// B => <Float64Array>[ 1.0, 2.0, 3.0, 4.0 ]
The function has the following parameters:
- uplo: specifies whether to copy the upper or lower triangular/trapezoidal part of a matrix
A
. - M: number of rows in
A
. - N: number of columns in
A
. - A: input
Float64Array
. - sa1: stride of the first dimension of
A
. - sa2: stride of the second dimension of
A
. - oa: starting index for
A
. - B: output
Float64Array
. - sb1: stride of the first dimension of
B
. - sb2: stride of the second dimension of
B
. - ob: starting index for
B
.
While typed array
views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example,
var Float64Array = require( '@stdlib/array/float64' );
var A = new Float64Array( [ 0.0, 1.0, 2.0, 3.0, 4.0 ] );
var B = new Float64Array( [ 0.0, 0.0, 11.0, 312.0, 53.0, 412.0 ] );
dlacpy.ndarray( 'all', 2, 2, A, 2, 1, 1, B, 2, 1, 2 );
// B => <Float64Array>[ 0.0, 0.0, 1.0, 2.0, 3.0, 4.0 ]
Notes
Examples
var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
var uniform = require( '@stdlib/random/array/discrete-uniform' );
var numel = require( '@stdlib/ndarray/base/numel' );
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
var dlacpy = require( '@stdlib/lapack/base/dlacpy' );
var shape = [ 5, 8 ];
var order = 'row-major';
var strides = shape2strides( shape, order );
var N = numel( shape );
var A = uniform( N, -10, 10, {
'dtype': 'float64'
});
console.log( ndarray2array( A, shape, strides, 0, order ) );
var B = uniform( N, -10, 10, {
'dtype': 'float64'
});
console.log( ndarray2array( B, shape, strides, 0, order ) );
dlacpy( order, 'all', shape[ 0 ], shape[ 1 ], A, strides[ 0 ], B, strides[ 0 ] );
console.log( ndarray2array( B, shape, strides, 0, order ) );
C APIs
Usage
TODO
TODO
TODO.
TODO
TODO
TODO
Examples
TODO