Loading...
Searching...
No Matches
sy/hetrf: symmetric/Hermitian indefinite factorization (Aasen)
Dense LA » Linear system solvers » Symmetric/Hermitian indefinite

## Functions

magma_int_t | magma_chetrf_aasen (magma_uplo_t uplo, magma_int_t cpu_panel, magma_int_t n, magmaFloatComplex *A, magma_int_t lda, magma_int_t *ipiv, magma_int_t *info)
| CHETRF_AASEN computes the factorization of a complex Hermitian matrix A based on a communication-avoiding variant of the Aasen's algorithm .
magma_int_t | magma_dsytrf_aasen (magma_uplo_t uplo, magma_int_t cpu_panel, magma_int_t n, double *A, magma_int_t lda, magma_int_t *ipiv, magma_int_t *info)
| DSYTRF_AASEN computes the factorization of a real symmetric matrix A based on a communication-avoiding variant of the Aasen's algorithm .
magma_int_t | magma_ssytrf_aasen (magma_uplo_t uplo, magma_int_t cpu_panel, magma_int_t n, float *A, magma_int_t lda, magma_int_t *ipiv, magma_int_t *info)
| SSYTRF_AASEN computes the factorization of a real symmetric matrix A based on a communication-avoiding variant of the Aasen's algorithm .
magma_int_t | magma_zhetrf_aasen (magma_uplo_t uplo, magma_int_t cpu_panel, magma_int_t n, magmaDoubleComplex *A, magma_int_t lda, magma_int_t *ipiv, magma_int_t *info)
| ZHETRF_AASEN computes the factorization of a complex Hermitian matrix A based on a communication-avoiding variant of the Aasen's algorithm .

## Detailed Description

## Function Documentation

## magma_chetrf_aasen()

magma_int_t magma_chetrf_aasen | ( | magma_uplo_t | uplo,
|  | magma_int_t | cpu_panel,
|  | magma_int_t | n,
|  | magmaFloatComplex * | A,
|  | magma_int_t | lda,
|  | magma_int_t * | ipiv,
|  | magma_int_t * | info )

CHETRF_AASEN computes the factorization of a complex Hermitian matrix A based on a communication-avoiding variant of the Aasen's algorithm .

The form of the factorization is

A = U*D*U**H or A = L*D*L**H

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is Hermitian and banded matrix of the band width equal to the block size.

Parameters

  [in]

  uplo

  magma_uplo_t
  - = MagmaUpper: Upper triangle of A is stored;
  - = MagmaLower: Lower triangle of A is stored.

  [in] | cpu_panel | INTEGER If cpu_panel =0, panel factorization is done on GPU.
  [in] | n | INTEGER The order of the matrix A. N >= 0.

  [in,out]

  A

  COMPLEX array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
  On exit, the banded matrix D and the triangular factor U or L.

  [in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,N).
  [out] | ipiv | INTEGER array, dimension (N) Details of the interchanges.

  [out]

  info

  INTEGER
  - = 0: successful exit
  - < 0: if INFO = -i, the i-th argument had an illegal value
  - > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, and division by zero will occur if it is used to solve a system of equations.

## magma_dsytrf_aasen()

magma_int_t magma_dsytrf_aasen | ( | magma_uplo_t | uplo,
|  | magma_int_t | cpu_panel,
|  | magma_int_t | n,
|  | double * | A,
|  | magma_int_t | lda,
|  | magma_int_t * | ipiv,
|  | magma_int_t * | info )

DSYTRF_AASEN computes the factorization of a real symmetric matrix A based on a communication-avoiding variant of the Aasen's algorithm .

The form of the factorization is

A = U*D*U**H or A = L*D*L**H

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is symmetric and banded matrix of the band width equal to the block size.

Parameters

  [in]

  uplo

  magma_uplo_t
  - = MagmaUpper: Upper triangle of A is stored;
  - = MagmaLower: Lower triangle of A is stored.

  [in] | cpu_panel | INTEGER If cpu_panel =0, panel factorization is done on GPU.
  [in] | n | INTEGER The order of the matrix A. N >= 0.

  [in,out]

  A

  DOUBLE PRECISION array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
  On exit, the banded matrix D and the triangular factor U or L.

  [in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,N).
  [out] | ipiv | INTEGER array, dimension (N) Details of the interchanges.

  [out]

  info

  INTEGER
  - = 0: successful exit
  - < 0: if INFO = -i, the i-th argument had an illegal value
  - > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, and division by zero will occur if it is used to solve a system of equations.

## magma_ssytrf_aasen()

magma_int_t magma_ssytrf_aasen | ( | magma_uplo_t | uplo,
|  | magma_int_t | cpu_panel,
|  | magma_int_t | n,
|  | float * | A,
|  | magma_int_t | lda,
|  | magma_int_t * | ipiv,
|  | magma_int_t * | info )

SSYTRF_AASEN computes the factorization of a real symmetric matrix A based on a communication-avoiding variant of the Aasen's algorithm .

The form of the factorization is

A = U*D*U**H or A = L*D*L**H

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is symmetric and banded matrix of the band width equal to the block size.

Parameters

  [in]

  uplo

  magma_uplo_t
  - = MagmaUpper: Upper triangle of A is stored;
  - = MagmaLower: Lower triangle of A is stored.

  [in] | cpu_panel | INTEGER If cpu_panel =0, panel factorization is done on GPU.
  [in] | n | INTEGER The order of the matrix A. N >= 0.

  [in,out]

  A

  REAL array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
  On exit, the banded matrix D and the triangular factor U or L.

  [in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,N).
  [out] | ipiv | INTEGER array, dimension (N) Details of the interchanges.

  [out]

  info

  INTEGER
  - = 0: successful exit
  - < 0: if INFO = -i, the i-th argument had an illegal value
  - > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, and division by zero will occur if it is used to solve a system of equations.

## magma_zhetrf_aasen()

magma_int_t magma_zhetrf_aasen | ( | magma_uplo_t | uplo,
|  | magma_int_t | cpu_panel,
|  | magma_int_t | n,
|  | magmaDoubleComplex * | A,
|  | magma_int_t | lda,
|  | magma_int_t * | ipiv,
|  | magma_int_t * | info )

ZHETRF_AASEN computes the factorization of a complex Hermitian matrix A based on a communication-avoiding variant of the Aasen's algorithm .

The form of the factorization is

A = U*D*U**H or A = L*D*L**H

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is Hermitian and banded matrix of the band width equal to the block size.

Parameters

  [in]

  uplo

  magma_uplo_t
  - = MagmaUpper: Upper triangle of A is stored;
  - = MagmaLower: Lower triangle of A is stored.

  [in] | cpu_panel | INTEGER If cpu_panel =0, panel factorization is done on GPU.
  [in] | n | INTEGER The order of the matrix A. N >= 0.

  [in,out]

  A

  COMPLEX*16 array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
  On exit, the banded matrix D and the triangular factor U or L.

  [in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,N).
  [out] | ipiv | INTEGER array, dimension (N) Details of the interchanges.

  [out]

  info

  INTEGER
  - = 0: successful exit
  - < 0: if INFO = -i, the i-th argument had an illegal value
  - > 0: if INFO = i, D(i,i) is exactly zero. The factorization has been completed, but the block diagonal matrix D is exactly singular, and division by zero will occur if it is used to solve a system of equations.