void CORE_zlanhe(int norm, int uplo, int N, PLASMA_Complex64_t *A, int LDA, double *work, double *normA) { *normA = LAPACKE_zlanhe_work( LAPACK_COL_MAJOR, lapack_const(norm), lapack_const(uplo), N, A, LDA, work); }
void CORE_zlanhe_quark(Quark *quark) { double *normA; int norm; int uplo; int N; PLASMA_Complex64_t *A; int LDA; double *work; quark_unpack_args_7(quark, normA, norm, uplo, N, A, LDA, work); *normA = LAPACKE_zlanhe_work( LAPACK_COL_MAJOR, lapack_const(norm), lapack_const(uplo), N, A, LDA, work); }
double LAPACKE_zlanhe( int matrix_order, char norm, char uplo, lapack_int n, const lapack_complex_double* a, lapack_int lda ) { lapack_int info = 0; double res = 0.; double* work = NULL; if( matrix_order != LAPACK_COL_MAJOR && matrix_order != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_zlanhe", -1 ); return -1; } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ if( LAPACKE_zhe_nancheck( matrix_order, uplo, n, a, lda ) ) { return -5; } #endif /* Allocate memory for working array(s) */ if( LAPACKE_lsame( norm, 'i' ) || LAPACKE_lsame( norm, '1' ) || LAPACKE_lsame( norm, '0' ) ) { 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 */ res = LAPACKE_zlanhe_work( matrix_order, norm, uplo, n, a, lda, work ); /* Release memory and exit */ if( LAPACKE_lsame( norm, 'i' ) || LAPACKE_lsame( norm, '1' ) || LAPACKE_lsame( norm, '0' ) ) { LAPACKE_free( work ); } exit_level_0: if( info == LAPACK_WORK_MEMORY_ERROR ) { LAPACKE_xerbla( "LAPACKE_zlanhe", info ); } return res; }