Loading...
Searching...
No Matches
symmetrize: Symmetrize matrix
Batched LA » MAGMA BLAS and Auxiliary » Level 2: matrix-vector operations, O(n^2) work

\(\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.
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.
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.
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.

## Detailed Description

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

## Function Documentation

## magmablas_csymmetrize_tiles()

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.

## magmablas_dsymmetrize_tiles()

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.

## magmablas_ssymmetrize_tiles()

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.

## magmablas_zsymmetrize_tiles()

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.