### LAPACK_?syconv interface problem

Posted:

**Thu Jul 09, 2015 12:41 am**FORTRAN interface

SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )

has argument WORK which contains some useful information on exit:

DSYCONV convert A given by TRF into L and D and vice-versa.

Get Non-diag elements of D (returned in workspace) and

apply or reverse permutation done in TRF.

Look at

lapack_int LAPACKE_dsyconv( int matrix_layout, char uplo, char way, lapack_int n,

double* a, lapack_int lda, const lapack_int* ipiv )

The argument work is omitted and there is no way to get non-diag elements of D.

This is a bug because work array is used to pass off-diagonal elements of matrix D:

SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )

has argument WORK which contains some useful information on exit:

DSYCONV convert A given by TRF into L and D and vice-versa.

Get Non-diag elements of D (returned in workspace) and

apply or reverse permutation done in TRF.

Look at

lapack_int LAPACKE_dsyconv( int matrix_layout, char uplo, char way, lapack_int n,

double* a, lapack_int lda, const lapack_int* ipiv )

The argument work is omitted and there is no way to get non-diag elements of D.

This is a bug because work array is used to pass off-diagonal elements of matrix D: