# Name

HPL_dlatcpy B := A^T

# Synopsis

`#include "hpl.h"`

`void` `HPL_dlatcpy(` `const int` `M`, `const int` `N`, `const double *` `A`, `const int` `LDA`, `double *` `B`, `const int` `LDB` `);`

# Description

HPL_dlatcpy copies the transpose of an array A into an array B.

# Arguments

```M       (local input)                 const int
On entry,  M specifies the number of  rows of the array B and
the number of columns of A. M must be at least zero.
```
```N       (local input)                 const int
On entry,  N specifies the number of  rows of the array A and
the number of columns of B. N must be at least zero.
```
```A       (local input)                 const double *
On entry, A points to an array of dimension (LDA,M).
```
```LDA     (local input)                 const int
On entry, LDA specifies the leading dimension of the array A.
LDA must be at least MAX(1,N).
```
```B       (local output)                double *
On entry, B points to an array of dimension (LDB,N). On exit,
B is overwritten with the transpose of A.
```
```LDB     (local input)                 const int
On entry, LDB specifies the leading dimension of the array B.
LDB must be at least MAX(1,M).
```

# Example

`#include "hpl.h"`

```int main(int argc, char *argv[])
{
double a[2*2], b[2*2];
a = 1.0; a = 3.0; a = 2.0; a = 4.0;
HPL_dlacpy( 2, 2, a, 2, b, 2 );
printf("  [%f,%f]\n", b, b);
printf("b=[%f,%f]\n", b, b);
exit(0); return(0);
}
```