lapack_complex_float* work );
lapack_int LAPACKE_csyconv( int matrix_layout, char uplo, char way, lapack_int n,
lapack_complex_float* a, lapack_int lda,
- const lapack_int* ipiv );
+ const lapack_int* ipiv, lapack_complex_float* work );
lapack_int LAPACKE_csyconv_work( int matrix_layout, char uplo, char way,
lapack_int n, lapack_complex_float* a,
lapack_int lda, const lapack_int* ipiv,
double* work, lapack_int lwork,
lapack_int* iwork );
lapack_int LAPACKE_dsyconv( int matrix_layout, char uplo, char way, lapack_int n,
- double* a, lapack_int lda, const lapack_int* ipiv );
+ double* a, lapack_int lda, const lapack_int* ipiv, double* work);
lapack_int LAPACKE_dsyconv_work( int matrix_layout, char uplo, char way,
lapack_int n, double* a, lapack_int lda,
const lapack_int* ipiv, double* work );
float* work, lapack_int lwork,
lapack_int* iwork );
lapack_int LAPACKE_ssyconv( int matrix_layout, char uplo, char way, lapack_int n,
- float* a, lapack_int lda, const lapack_int* ipiv );
+ float* a, lapack_int lda, const lapack_int* ipiv, float* work );
lapack_int LAPACKE_ssyconv_work( int matrix_layout, char uplo, char way,
lapack_int n, float* a, lapack_int lda,
const lapack_int* ipiv, float* work );
lapack_complex_double* work );
lapack_int LAPACKE_zsyconv( int matrix_layout, char uplo, char way, lapack_int n,
lapack_complex_double* a, lapack_int lda,
- const lapack_int* ipiv );
+ const lapack_int* ipiv, lapack_complex_double* work );
lapack_int LAPACKE_zsyconv_work( int matrix_layout, char uplo, char way,
lapack_int n, lapack_complex_double* a,
lapack_int lda, const lapack_int* ipiv,
lapack_int LAPACKE_csyconv( int matrix_layout, char uplo, char way, lapack_int n,
lapack_complex_float* a, lapack_int lda,
- const lapack_int* ipiv )
+ const lapack_int* ipiv,
+ lapack_complex_float* work )
{
lapack_int info = 0;
- lapack_complex_float* work = NULL;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_csyconv", -1 );
return -1;
return -5;
}
#endif
- /* Allocate memory for working array(s) */
- work = (lapack_complex_float*)
- LAPACKE_malloc( sizeof(lapack_complex_float) * MAX(1,n) );
- if( work == NULL ) {
- info = LAPACK_WORK_MEMORY_ERROR;
- goto exit_level_0;
- }
/* Call middle-level interface */
info = LAPACKE_csyconv_work( matrix_layout, uplo, way, n, a, lda, ipiv,
work );
- /* Release memory and exit */
- LAPACKE_free( work );
exit_level_0:
if( info == LAPACK_WORK_MEMORY_ERROR ) {
LAPACKE_xerbla( "LAPACKE_csyconv", info );
#include "lapacke_utils.h"
lapack_int LAPACKE_dsyconv( int matrix_layout, char uplo, char way, lapack_int n,
- double* a, lapack_int lda, const lapack_int* ipiv )
+ double* a, lapack_int lda, const lapack_int* ipiv, double* work )
{
lapack_int info = 0;
- double* work = NULL;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_dsyconv", -1 );
return -1;
return -5;
}
#endif
- /* Allocate memory for working array(s) */
- work = (double*)LAPACKE_malloc( sizeof(double) * MAX(1,n) );
- if( work == NULL ) {
- info = LAPACK_WORK_MEMORY_ERROR;
- goto exit_level_0;
- }
+
/* Call middle-level interface */
info = LAPACKE_dsyconv_work( matrix_layout, uplo, way, n, a, lda, ipiv,
work );
- /* Release memory and exit */
- LAPACKE_free( work );
exit_level_0:
if( info == LAPACK_WORK_MEMORY_ERROR ) {
LAPACKE_xerbla( "LAPACKE_dsyconv", info );
#include "lapacke_utils.h"
lapack_int LAPACKE_ssyconv( int matrix_layout, char uplo, char way, lapack_int n,
- float* a, lapack_int lda, const lapack_int* ipiv )
+ float* a, lapack_int lda, const lapack_int* ipiv, float* work )
{
lapack_int info = 0;
- float* work = NULL;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_ssyconv", -1 );
return -1;
return -5;
}
#endif
- /* Allocate memory for working array(s) */
- work = (float*)LAPACKE_malloc( sizeof(float) * MAX(1,n) );
- if( work == NULL ) {
- info = LAPACK_WORK_MEMORY_ERROR;
- goto exit_level_0;
- }
+
/* Call middle-level interface */
info = LAPACKE_ssyconv_work( matrix_layout, uplo, way, n, a, lda, ipiv,
work );
- /* Release memory and exit */
- LAPACKE_free( work );
exit_level_0:
if( info == LAPACK_WORK_MEMORY_ERROR ) {
LAPACKE_xerbla( "LAPACKE_ssyconv", info );
lapack_int LAPACKE_zsyconv( int matrix_layout, char uplo, char way, lapack_int n,
lapack_complex_double* a, lapack_int lda,
- const lapack_int* ipiv )
+ const lapack_int* ipiv,
+ lapack_complex_double* work )
{
lapack_int info = 0;
- lapack_complex_double* work = NULL;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zsyconv", -1 );
return -1;
return -5;
}
#endif
- /* Allocate memory for working array(s) */
- work = (lapack_complex_double*)
- LAPACKE_malloc( sizeof(lapack_complex_double) * MAX(1,n) );
- if( work == NULL ) {
- info = LAPACK_WORK_MEMORY_ERROR;
- goto exit_level_0;
- }
/* Call middle-level interface */
info = LAPACKE_zsyconv_work( matrix_layout, uplo, way, n, a, lda, ipiv,
work );
- /* Release memory and exit */
- LAPACKE_free( work );
+
exit_level_0:
if( info == LAPACK_WORK_MEMORY_ERROR ) {
LAPACKE_xerbla( "LAPACKE_zsyconv", info );