MAGMA  2.3.0 Matrix Algebra for GPU and Multicore Architectures

$$\text{upper}(A) = \text{lower}(A)^T$$ or $$\text{lower}(A) = \text{upper}(A)^T$$ More...

## Functions

void magmablas_csymmetrize_tiles (magma_uplo_t uplo, magma_int_t m, magmaFloatComplex_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue)
CSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block. More...

void magmablas_dsymmetrize_tiles (magma_uplo_t uplo, magma_int_t m, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue)
DSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block. More...

void magmablas_ssymmetrize_tiles (magma_uplo_t uplo, magma_int_t m, magmaFloat_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue)
SSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block. More...

void magmablas_zsymmetrize_tiles (magma_uplo_t uplo, magma_int_t m, magmaDoubleComplex_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue)
ZSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block. More...

## Detailed Description

$$\text{upper}(A) = \text{lower}(A)^T$$ or $$\text{lower}(A) = \text{upper}(A)^T$$

## Function Documentation

 void magmablas_csymmetrize_tiles ( magma_uplo_t uplo, magma_int_t m, magmaFloatComplex_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue )

CSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block.

In Complex, it sets the diagonal to be Real.

This processes NTILE blocks, typically the diagonal blocks. Each block is offset by mstride rows and nstride columns from the previous block.

Parameters
 [in] uplo magma_uplo_t Specifies the part of the matrix dA that is valid on input. = MagmaUpper: Upper triangular part = MagmaLower: Lower triangular part [in] m INTEGER The number of rows & columns of each square block of dA. M >= 0. [in,out] dA COMPLEX array, dimension (LDDA,N) The matrix dA. N = m + nstride*(ntile-1). [in] ldda INTEGER The leading dimension of the array dA. LDDA >= max(1, m + mstride*(ntile-1)). [in] ntile INTEGER Number of blocks to symmetrize. ntile >= 0. [in] mstride INTEGER Row offset from start of one block to start of next block. mstride >= 0. Either (mstride >= m) or (nstride >= m), to prevent m-by-m tiles from overlapping. [in] nstride INTEGER Column offset from start of one block to start of next block. nstride >= 0. [in] queue magma_queue_t Queue to execute in.
 void magmablas_dsymmetrize_tiles ( magma_uplo_t uplo, magma_int_t m, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue )

DSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block.

In Complex, it sets the diagonal to be Real.

This processes NTILE blocks, typically the diagonal blocks. Each block is offset by mstride rows and nstride columns from the previous block.

Parameters
 [in] uplo magma_uplo_t Specifies the part of the matrix dA that is valid on input. = MagmaUpper: Upper triangular part = MagmaLower: Lower triangular part [in] m INTEGER The number of rows & columns of each square block of dA. M >= 0. [in,out] dA DOUBLE PRECISION array, dimension (LDDA,N) The matrix dA. N = m + nstride*(ntile-1). [in] ldda INTEGER The leading dimension of the array dA. LDDA >= max(1, m + mstride*(ntile-1)). [in] ntile INTEGER Number of blocks to symmetrize. ntile >= 0. [in] mstride INTEGER Row offset from start of one block to start of next block. mstride >= 0. Either (mstride >= m) or (nstride >= m), to prevent m-by-m tiles from overlapping. [in] nstride INTEGER Column offset from start of one block to start of next block. nstride >= 0. [in] queue magma_queue_t Queue to execute in.
 void magmablas_ssymmetrize_tiles ( magma_uplo_t uplo, magma_int_t m, magmaFloat_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue )

SSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block.

In Complex, it sets the diagonal to be Real.

This processes NTILE blocks, typically the diagonal blocks. Each block is offset by mstride rows and nstride columns from the previous block.

Parameters
 [in] uplo magma_uplo_t Specifies the part of the matrix dA that is valid on input. = MagmaUpper: Upper triangular part = MagmaLower: Lower triangular part [in] m INTEGER The number of rows & columns of each square block of dA. M >= 0. [in,out] dA REAL array, dimension (LDDA,N) The matrix dA. N = m + nstride*(ntile-1). [in] ldda INTEGER The leading dimension of the array dA. LDDA >= max(1, m + mstride*(ntile-1)). [in] ntile INTEGER Number of blocks to symmetrize. ntile >= 0. [in] mstride INTEGER Row offset from start of one block to start of next block. mstride >= 0. Either (mstride >= m) or (nstride >= m), to prevent m-by-m tiles from overlapping. [in] nstride INTEGER Column offset from start of one block to start of next block. nstride >= 0. [in] queue magma_queue_t Queue to execute in.
 void magmablas_zsymmetrize_tiles ( magma_uplo_t uplo, magma_int_t m, magmaDoubleComplex_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride, magma_queue_t queue )

ZSYMMETRIZE_TILES copies lower triangle to upper triangle, or vice-versa, to make some blocks of dA into general representations of a symmetric block.

In Complex, it sets the diagonal to be Real.

This processes NTILE blocks, typically the diagonal blocks. Each block is offset by mstride rows and nstride columns from the previous block.

Parameters
 [in] uplo magma_uplo_t Specifies the part of the matrix dA that is valid on input. = MagmaUpper: Upper triangular part = MagmaLower: Lower triangular part [in] m INTEGER The number of rows & columns of each square block of dA. M >= 0. [in,out] dA COMPLEX_16 array, dimension (LDDA,N) The matrix dA. N = m + nstride*(ntile-1). [in] ldda INTEGER The leading dimension of the array dA. LDDA >= max(1, m + mstride*(ntile-1)). [in] ntile INTEGER Number of blocks to symmetrize. ntile >= 0. [in] mstride INTEGER Row offset from start of one block to start of next block. mstride >= 0. Either (mstride >= m) or (nstride >= m), to prevent m-by-m tiles from overlapping. [in] nstride INTEGER Column offset from start of one block to start of next block. nstride >= 0. [in] queue magma_queue_t Queue to execute in.