-
PRUVOST Florent authoredPRUVOST Florent authored
morse_zf77.c 59.66 KiB
/**
*
* @copyright (c) 2009-2014 The University of Tennessee and The University
* of Tennessee Research Foundation.
* All rights reserved.
* @copyright (c) 2012-2014 Inria. All rights reserved.
* @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
*
**/
/**
*
* @file morse_zf77.c
*
* MORSE computational routines
* MORSE is a software package provided by Univ. of Tennessee,
* Univ. of California Berkeley and Univ. of Colorado Denver
* This file is automatically generated by tools/genf77interface.pl
*
* @version 2.5.0
* @comment This file has been automatically generated
* from Plasma 2.5.0 for MORSE 1.0.0
* @author Bilel Hadri
* @author Mathieu Faverge
* @author Emmanuel Agullo
* @author Cedric Castagnede
* @date 2010-11-15
* @precisions normal z -> c d s
*
**/
#include <stdlib.h>
#include "control/common.h"
#undef REAL
#define COMPLEX
/***************************************************************************//**
* FORTRAN API - math functions (simple interface)
**/
#define MORSE_ZLAPACK_TO_TILE MORSE_FNAME(zlapack_to_tile, ZLAPACK_TO_TILE)
#define MORSE_ZLAPACK_TO_TILE_ASYNC MORSE_FNAME(zlapack_to_tile_async, ZLAPACK_TO_TILE_ASYNC)
#define MORSE_ZTILE_TO_LAPACK MORSE_FNAME(ztile_to_lapack, ZTILE_TO_LAPACK)
#define MORSE_ZTILE_TO_LAPACK_ASYNC MORSE_FNAME(ztile_to_lapack_async, ZTILE_TO_LAPACK_ASYNC)
//#define MORSE_ZGEBRD MORSE_FNAME(zgebrd , ZGEBRD )
//#define MORSE_ZGECFI MORSE_FNAME(zgecfi , ZGECFI )
//#define MORSE_ZGECFI_ASYNC MORSE_FNAME(zgecfi_async , ZGECFI_ASYNC )
#define MORSE_ZGELQF MORSE_FNAME(zgelqf , ZGELQF )
#define MORSE_ZGELQS MORSE_FNAME(zgelqs , ZGELQS )
#define MORSE_ZGELS MORSE_FNAME(zgels , ZGELS )
#define MORSE_ZGEMM MORSE_FNAME(zgemm , ZGEMM )
#define MORSE_ZGEQRF MORSE_FNAME(zgeqrf , ZGEQRF )
#define MORSE_ZGEQRS MORSE_FNAME(zgeqrs , ZGEQRS )
//#define MORSE_ZGESV MORSE_FNAME(zgesv , ZGESV )
#define MORSE_ZGESV_INCPIV MORSE_FNAME(zgesv_incpiv , ZGESV_INCPIV )
#define MORSE_ZGESV_NOPIV MORSE_FNAME(zgesv_nopiv , ZGESV_NOPIV )
//#define MORSE_ZGESVD MORSE_FNAME(zgesvd , ZGESVD )
//#define MORSE_ZGETMI MORSE_FNAME(zgetmi , ZGETMI )
//#define MORSE_ZGETMI_ASYNC MORSE_FNAME(zgetmi_async , ZGETMI_ASYNC )
//#define MORSE_ZGETRF MORSE_FNAME(zgetrf , ZGETRF )
#define MORSE_ZGETRF_INCPIV MORSE_FNAME(zgetrf_incpiv, ZGETRF_INCPIV)
#define MORSE_ZGETRF_NOPIV MORSE_FNAME(zgetrf_nopiv , ZGETRF_NOPIV)
//#define MORSE_ZGETRI MORSE_FNAME(zgetri , ZGETRI )
//#define MORSE_ZGETRS MORSE_FNAME(zgetrs , ZGETRS )
#define MORSE_ZGETRS_INCPIV MORSE_FNAME(zgetrs_incpiv, ZGETRS_INCPIV)
#define MORSE_ZGETRS_NOPIV MORSE_FNAME(zgetrs_nopiv , ZGETRS_NOPIV)
//#define MORSE_ZHEEV MORSE_FNAME(zheev , ZHEEV )
//#define MORSE_ZHEEVD MORSE_FNAME(zheevd , ZHEEVD )
//#define MORSE_ZHEGST MORSE_FNAME(zhegst , ZHEGST )
//#define MORSE_ZHEGV MORSE_FNAME(zhegv , ZHEGV )
//#define MORSE_ZHEGVD MORSE_FNAME(zhegvd , ZHEGVD )
#ifdef COMPLEX
#define MORSE_ZHEMM MORSE_FNAME(zhemm , ZHEMM )
#endif
#ifdef COMPLEX
#define MORSE_ZHER2K MORSE_FNAME(zher2k , ZHER2K )
#endif
#ifdef COMPLEX
#define MORSE_ZHERK MORSE_FNAME(zherk , ZHERK )
#endif
//#define MORSE_ZHETRD MORSE_FNAME(zhetrd , ZHETRD )
#define MORSE_ZLACPY MORSE_FNAME(zlacpy , ZLACPY )
#define MORSE_ZLANGE MORSE_FNAME(zlange , ZLANGE )
#ifdef COMPLEX
#define MORSE_ZLANHE MORSE_FNAME(zlanhe , ZLANHE )
#endif
#define MORSE_ZLANSY MORSE_FNAME(zlansy , ZLANSY )
#define MORSE_ZLANTR MORSE_FNAME(zlantr , ZLANTR )
#define MORSE_ZLASET MORSE_FNAME(zlaset , ZLASET )
//#define MORSE_ZLASWP MORSE_FNAME(zlaswp , ZLASWP )
//#define MORSE_ZLASWPC MORSE_FNAME(zlaswpc , ZLASWPC )
#define MORSE_ZLAUUM MORSE_FNAME(zlauum , ZLAUUM )
#ifdef COMPLEX
#define MORSE_ZPLGHE MORSE_FNAME(zplghe , ZPLGHE )
#endif
#define MORSE_ZPLGSY MORSE_FNAME(zplgsy , ZPLGSY )
#define MORSE_ZPLRNT MORSE_FNAME(zplrnt , ZPLRNT )
#define MORSE_ZPOSV MORSE_FNAME(zposv , ZPOSV )
#define MORSE_ZPOTRF MORSE_FNAME(zpotrf , ZPOTRF )
#define MORSE_ZPOTRI MORSE_FNAME(zpotri , ZPOTRI )
#define MORSE_ZPOTRS MORSE_FNAME(zpotrs , ZPOTRS )
#if defined (PRECISION_c) || defined(PRECISION_z)
#define MORSE_ZSYSV MORSE_FNAME(zsysv , ZSYSV )
#define MORSE_ZSYTRF MORSE_FNAME(zsytrf , ZSYTRF )
#define MORSE_ZSYTRS MORSE_FNAME(zsytrs , ZSYTRS )
#endif
#define MORSE_ZSYMM MORSE_FNAME(zsymm , ZSYMM )
#define MORSE_ZSYR2K MORSE_FNAME(zsyr2k , ZSYR2K )
#define MORSE_ZSYRK MORSE_FNAME(zsyrk , ZSYRK )
#define MORSE_ZTRMM MORSE_FNAME(ztrmm , ZTRMM )
#define MORSE_ZTRSM MORSE_FNAME(ztrsm , ZTRSM )
#define MORSE_ZTRSMPL MORSE_FNAME(ztrsmpl , ZTRSMPL )
//#define MORSE_ZTRSMRV MORSE_FNAME(ztrsmrv , ZTRSMRV )
#define MORSE_ZTRTRI MORSE_FNAME(ztrtri , ZTRTRI )
#define MORSE_ZUNGLQ MORSE_FNAME(zunglq , ZUNGLQ )
#define MORSE_ZUNGQR MORSE_FNAME(zungqr , ZUNGQR )
#define MORSE_ZUNMLQ MORSE_FNAME(zunmlq , ZUNMLQ )
#define MORSE_ZUNMQR MORSE_FNAME(zunmqr , ZUNMQR )
/***************************************************************************//**
* FORTRAN API - math functions (native interface)
**/
//#define MORSE_ZGEBRD_TILE MORSE_TILE_FNAME(zgebrd , ZGEBRD )
#define MORSE_ZGELQF_TILE MORSE_TILE_FNAME(zgelqf , ZGELQF )
#define MORSE_ZGELQS_TILE MORSE_TILE_FNAME(zgelqs , ZGELQS )
#define MORSE_ZGELS_TILE MORSE_TILE_FNAME(zgels , ZGELS )
#define MORSE_ZGEMM_TILE MORSE_TILE_FNAME(zgemm , ZGEMM )
#define MORSE_ZGEQRF_TILE MORSE_TILE_FNAME(zgeqrf , ZGEQRF )
#define MORSE_ZGEQRS_TILE MORSE_TILE_FNAME(zgeqrs , ZGEQRS )
//#define MORSE_ZGESV_TILE MORSE_TILE_FNAME(zgesv , ZGESV )
#define MORSE_ZGESV_INCPIV_TILE MORSE_TILE_FNAME(zgesv_incpiv , ZGESV_INCPIV )
#define MORSE_ZGESV_NOPIV_TILE MORSE_TILE_FNAME(zgesv_nopiv , ZGESV_NOPIV )
//#define MORSE_ZGESVD_TILE MORSE_TILE_FNAME(zgesvd , ZGESVD )
//#define MORSE_ZGETRF_TILE MORSE_TILE_FNAME(zgetrf , ZGETRF )
#define MORSE_ZGETRF_INCPIV_TILE MORSE_TILE_FNAME(zgetrf_incpiv, ZGETRF_INCPIV)
#define MORSE_ZGETRF_NOPIV_TILE MORSE_TILE_FNAME(zgetrf_nopiv , ZGETRF_NOPIV )
//#define MORSE_ZGETRI_TILE MORSE_TILE_FNAME(zgetri , ZGETRI )
//#define MORSE_ZGETRS_TILE MORSE_TILE_FNAME(zgetrs , ZGETRS )
#define MORSE_ZGETRS_INCPIV_TILE MORSE_TILE_FNAME(zgetrs_incpiv, ZGETRS_INCPIV)
#define MORSE_ZGETRS_NOPIV_TILE MORSE_TILE_FNAME(zgetrs_nopiv , ZGETRS_NOPIV )
//#define MORSE_ZHEEV_TILE MORSE_TILE_FNAME(zheev , ZHEEV )
//#define MORSE_ZHEEVD_TILE MORSE_TILE_FNAME(zheevd , ZHEEVD )
//#define MORSE_ZHEGST_TILE MORSE_TILE_FNAME(zhegst , ZHEGST )
//#define MORSE_ZHEGV_TILE MORSE_TILE_FNAME(zhegv , ZHEGV )
//#define MORSE_ZHEGVD_TILE MORSE_TILE_FNAME(zhegvd , ZHEGVD )
#ifdef COMPLEX
#define MORSE_ZHEMM_TILE MORSE_TILE_FNAME(zhemm , ZHEMM )
#endif
#ifdef COMPLEX
#define MORSE_ZHER2K_TILE MORSE_TILE_FNAME(zher2k , ZHER2K )
#endif
#ifdef COMPLEX
#define MORSE_ZHERK_TILE MORSE_TILE_FNAME(zherk , ZHERK )
#endif
//#define MORSE_ZHETRD_TILE MORSE_TILE_FNAME(zhetrd , ZHETRD )
#define MORSE_ZLACPY_TILE MORSE_TILE_FNAME(zlacpy , ZLACPY )
#define MORSE_ZLANGE_TILE MORSE_TILE_FNAME(zlange , ZLANGE )
#ifdef COMPLEX
#define MORSE_ZLANHE_TILE MORSE_TILE_FNAME(zlanhe , ZLANHE )
#endif
#define MORSE_ZLANSY_TILE MORSE_TILE_FNAME(zlansy , ZLANSY )
#define MORSE_ZLASET_TILE MORSE_TILE_FNAME(zlaset , ZLASET )
//#define MORSE_ZLASWP_TILE MORSE_TILE_FNAME(zlaswp , ZLASWP )
//#define MORSE_ZLASWPC_TILE MORSE_TILE_FNAME(zlaswpc , ZLASWPC )
#define MORSE_ZLAUUM_TILE MORSE_TILE_FNAME(zlauum , ZLAUUM )
#ifdef COMPLEX
#define MORSE_ZPLGHE_TILE MORSE_TILE_FNAME(zplghe , ZPLGHE )
#endif
#define MORSE_ZPLGSY_TILE MORSE_TILE_FNAME(zplgsy , ZPLGSY )
#define MORSE_ZPLRNT_TILE MORSE_TILE_FNAME(zplrnt , ZPLRNT )
#define MORSE_ZPOSV_TILE MORSE_TILE_FNAME(zposv , ZPOSV )
#define MORSE_ZPOTRF_TILE MORSE_TILE_FNAME(zpotrf , ZPOTRF )
#define MORSE_ZPOTRI_TILE MORSE_TILE_FNAME(zpotri , ZPOTRI )
#define MORSE_ZPOTRS_TILE MORSE_TILE_FNAME(zpotrs , ZPOTRS )
#if defined (PRECISION_c) || defined(PRECISION_z)
#define MORSE_ZSYSV_TILE MORSE_TILE_FNAME(zsysv , ZSYSV )
#define MORSE_ZSYTRF_TILE MORSE_TILE_FNAME(zsytrf , ZSYTRF )
#define MORSE_ZSYTRS_TILE MORSE_TILE_FNAME(zsytrs , ZSYTRS )
#endif
#define MORSE_ZSYMM_TILE MORSE_TILE_FNAME(zsymm , ZSYMM )
#define MORSE_ZSYR2K_TILE MORSE_TILE_FNAME(zsyr2k , ZSYR2K )
#define MORSE_ZSYRK_TILE MORSE_TILE_FNAME(zsyrk , ZSYRK )
#define MORSE_ZTRMM_TILE MORSE_TILE_FNAME(ztrmm , ZTRMM )
#define MORSE_ZTRSM_TILE MORSE_TILE_FNAME(ztrsm , ZTRSM )
#define MORSE_ZTRSMPL_TILE MORSE_TILE_FNAME(ztrsmpl , ZTRSMPL )
//#define MORSE_ZTRSMRV_TILE MORSE_TILE_FNAME(ztrsmrv , ZTRSMRV )
#define MORSE_ZTRTRI_TILE MORSE_TILE_FNAME(ztrtri , ZTRTRI )
#define MORSE_ZUNGLQ_TILE MORSE_TILE_FNAME(zunglq , ZUNGLQ )
#define MORSE_ZUNGQR_TILE MORSE_TILE_FNAME(zungqr , ZUNGQR )
#define MORSE_ZUNMLQ_TILE MORSE_TILE_FNAME(zunmlq , ZUNMLQ )
#define MORSE_ZUNMQR_TILE MORSE_TILE_FNAME(zunmqr , ZUNMQR )
/***************************************************************************//**
* FORTRAN API - math functions (asynchronous interface)
**/
//#define MORSE_ZGEBRD_TILE_ASYNC MORSE_ASYNC_FNAME(zgebrd , ZGEBRD )
#define MORSE_ZGELQF_TILE_ASYNC MORSE_ASYNC_FNAME(zgelqf , ZGELQF )
#define MORSE_ZGELQS_TILE_ASYNC MORSE_ASYNC_FNAME(zgelqs , ZGELQS )
#define MORSE_ZGELS_TILE_ASYNC MORSE_ASYNC_FNAME(zgels , ZGELS )
#define MORSE_ZGEMM_TILE_ASYNC MORSE_ASYNC_FNAME(zgemm , ZGEMM )
#define MORSE_ZGEQRF_TILE_ASYNC MORSE_ASYNC_FNAME(zgeqrf , ZGEQRF )
#define MORSE_ZGEQRS_TILE_ASYNC MORSE_ASYNC_FNAME(zgeqrs , ZGEQRS )
//#define MORSE_ZGESV_TILE_ASYNC MORSE_ASYNC_FNAME(zgesv , ZGESV )
#define MORSE_ZGESV_INCPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgesv_incpiv , ZGESV_INCPIV )
#define MORSE_ZGESV_NOPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgesv_nopiv , ZGESV_NOPIV )
//#define MORSE_ZGESVD_TILE_ASYNC MORSE_ASYNC_FNAME(zgesvd , ZGESVD )
//#define MORSE_ZGETRF_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrf , ZGETRF )
#define MORSE_ZGETRF_INCPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrf_incpiv, ZGETRF_INCPIV)
#define MORSE_ZGETRF_NOPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrf_nopiv , ZGETRF_NOPIV )
//#define MORSE_ZGETRI_TILE_ASYNC MORSE_ASYNC_FNAME(zgetri , ZGETRI )
//#define MORSE_ZGETRS_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrs , ZGETRS )
#define MORSE_ZGETRS_INCPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrs_incpiv, ZGETRS_INCPIV)
#define MORSE_ZGETRS_NOPIV_TILE_ASYNC MORSE_ASYNC_FNAME(zgetrs_nopiv , ZGETRS_NOPIV )
//#define MORSE_ZHEEV_TILE_ASYNC MORSE_ASYNC_FNAME(zheev , ZHEEV )
//#define MORSE_ZHEEVD_TILE_ASYNC MORSE_ASYNC_FNAME(zheevd , ZHEEVD )
//#define MORSE_ZHEGST_TILE_ASYNC MORSE_ASYNC_FNAME(zhegst , ZHEGST )
//#define MORSE_ZHEGV_TILE_ASYNC MORSE_ASYNC_FNAME(zhegv , ZHEGV )
//#define MORSE_ZHEGVD_TILE_ASYNC MORSE_ASYNC_FNAME(zhegvd , ZHEGVD )
#ifdef COMPLEX
#define MORSE_ZHEMM_TILE_ASYNC MORSE_ASYNC_FNAME(zhemm , ZHEMM )
#define MORSE_ZHER2K_TILE_ASYNC MORSE_ASYNC_FNAME(zher2k , ZHER2K )
#define MORSE_ZHERK_TILE_ASYNC MORSE_ASYNC_FNAME(zherk , ZHERK )
#endif
//#define MORSE_ZHETRD_TILE_ASYNC MORSE_ASYNC_FNAME(zhetrd , ZHETRD )
#define MORSE_ZLACPY_TILE_ASYNC MORSE_ASYNC_FNAME(zlacpy , ZLACPY )
#define MORSE_ZLANGE_TILE_ASYNC MORSE_ASYNC_FNAME(zlange , ZLANGE )
#ifdef COMPLEX
#define MORSE_ZLANHE_TILE_ASYNC MORSE_ASYNC_FNAME(zlanhe , ZLANHE )
#endif
#define MORSE_ZLANSY_TILE_ASYNC MORSE_ASYNC_FNAME(zlansy , ZLANSY )
#define MORSE_ZLANTR_TILE_ASYNC MORSE_ASYNC_FNAME(zlantr , ZLANTR )
#define MORSE_ZLASET_TILE_ASYNC MORSE_ASYNC_FNAME(zlaset , ZLASET )
//#define MORSE_ZLASWP_TILE_ASYNC MORSE_ASYNC_FNAME(zlaswp , ZLASWP )
//#define MORSE_ZLASWPC_TILE_ASYNC MORSE_ASYNC_FNAME(zlaswpc , ZLASWPC )
#define MORSE_ZLAUUM_TILE_ASYNC MORSE_ASYNC_FNAME(zlauum , ZLAUUM )
#ifdef COMPLEX
#define MORSE_ZPLGHE_TILE_ASYNC MORSE_ASYNC_FNAME(zplghe , ZPLGHE )
#endif
#define MORSE_ZPLGSY_TILE_ASYNC MORSE_ASYNC_FNAME(zplgsy , ZPLGSY )
#define MORSE_ZPLRNT_TILE_ASYNC MORSE_ASYNC_FNAME(zplrnt , ZPLRNT )
#define MORSE_ZPOSV_TILE_ASYNC MORSE_ASYNC_FNAME(zposv , ZPOSV )
#define MORSE_ZPOTRF_TILE_ASYNC MORSE_ASYNC_FNAME(zpotrf , ZPOTRF )
#define MORSE_ZPOTRI_TILE_ASYNC MORSE_ASYNC_FNAME(zpotri , ZPOTRI )
#define MORSE_ZPOTRS_TILE_ASYNC MORSE_ASYNC_FNAME(zpotrs , ZPOTRS )
#if defined (PRECISION_c) || defined(PRECISION_z)
#define MORSE_ZSYSV_TILE_ASYNC MORSE_ASYNC_FNAME(zsysv , ZSYSV )
#define MORSE_ZSYTRF_TILE_ASYNC MORSE_ASYNC_FNAME(zsytrf , ZSYTRF )
#define MORSE_ZSYTRS_TILE_ASYNC MORSE_ASYNC_FNAME(zsytrs , ZSYTRS )
#endif
#define MORSE_ZSYMM_TILE_ASYNC MORSE_ASYNC_FNAME(zsymm , ZSYMM )
#define MORSE_ZSYR2K_TILE_ASYNC MORSE_ASYNC_FNAME(zsyr2k , ZSYR2K )
#define MORSE_ZSYRK_TILE_ASYNC MORSE_ASYNC_FNAME(zsyrk , ZSYRK )
#define MORSE_ZTRMM_TILE_ASYNC MORSE_ASYNC_FNAME(ztrmm , ZTRMM )
#define MORSE_ZTRSM_TILE_ASYNC MORSE_ASYNC_FNAME(ztrsm , ZTRSM )
#define MORSE_ZTRSMPL_TILE_ASYNC MORSE_ASYNC_FNAME(ztrsmpl , ZTRSMPL )
//#define MORSE_ZTRSMRV_TILE_ASYNC MORSE_ASYNC_FNAME(ztrsmrv , ZTRSMRV )
#define MORSE_ZTRTRI_TILE_ASYNC MORSE_ASYNC_FNAME(ztrtri , ZTRTRI )
#define MORSE_ZUNGLQ_TILE_ASYNC MORSE_ASYNC_FNAME(zunglq , ZUNGLQ )
#define MORSE_ZUNGQR_TILE_ASYNC MORSE_ASYNC_FNAME(zungqr , ZUNGQR )
#define MORSE_ZUNMLQ_TILE_ASYNC MORSE_ASYNC_FNAME(zunmlq , ZUNMLQ )
#define MORSE_ZUNMQR_TILE_ASYNC MORSE_ASYNC_FNAME(zunmqr , ZUNMQR )
/***************************************************************************//**
* FORTRAN API - workspace allocation
**/
//#define MORSE_ALLOC_WORKSPACE_ZGEBRD MORSE_WS_FNAME(zgebrd , ZGEBRD )
//#define MORSE_ALLOC_WORKSPACE_ZGEEV MORSE_WS_FNAME(zgeev , ZGEEV )
//#define MORSE_ALLOC_WORKSPACE_ZGEHRD MORSE_WS_FNAME(zgehrd , ZGEHRD )
#define MORSE_ALLOC_WORKSPACE_ZGELQF MORSE_WS_FNAME(zgelqf , ZGELQF )
#define MORSE_ALLOC_WORKSPACE_ZGELQF_TILE MORSE_WS_FNAME(zgelqf_tile , ZGELQF_TILE )
#define MORSE_ALLOC_WORKSPACE_ZGELS MORSE_WS_FNAME(zgels , ZGELS )
#define MORSE_ALLOC_WORKSPACE_ZGELS_TILE MORSE_WS_FNAME(zgels_tile , ZGELS_TILE )
#define MORSE_ALLOC_WORKSPACE_ZGEQRF MORSE_WS_FNAME(zgeqrf , ZGEQRF )
#define MORSE_ALLOC_WORKSPACE_ZGEQRF_TILE MORSE_WS_FNAME(zgeqrf_tile , ZGEQRF_TILE )
#define MORSE_ALLOC_WORKSPACE_ZGESV_INCPIV MORSE_WS_FNAME(zgesv_incpiv , ZGESV_INCPIV )
#define MORSE_ALLOC_WORKSPACE_ZGESV_INCPIV_TILE MORSE_WS_FNAME(zgesv_incpiv_tile , ZGESV_INCPIV_TILE )
//#define MORSE_ALLOC_WORKSPACE_ZGESVD MORSE_WS_FNAME(zgesvd , ZGESVD )
#define MORSE_ALLOC_WORKSPACE_ZGETRF_INCPIV MORSE_WS_FNAME(zgetrf_incpiv , ZGETRF_INCPIV )
#define MORSE_ALLOC_WORKSPACE_ZGETRF_INCPIV_TILE MORSE_WS_FNAME(zgetrf_incpiv_tile, ZGETRF_INCPIV_TILE)
//#define MORSE_ALLOC_WORKSPACE_ZGETRI_TILE_ASYNC MORSE_WS_FNAME(zgetri_tile_async , ZGETRI_TILE_ASYNC )
//#define MORSE_ALLOC_WORKSPACE_ZHEEV MORSE_WS_FNAME(zheev , ZHEEV )
//#define MORSE_ALLOC_WORKSPACE_ZHEEVD MORSE_WS_FNAME(zheevd , ZHEEVD )
//#define MORSE_ALLOC_WORKSPACE_ZHEGV MORSE_WS_FNAME(zhegv , ZHEGV )
//#define MORSE_ALLOC_WORKSPACE_ZHEGVD MORSE_WS_FNAME(zhegvd , ZHEGVD )
//#define MORSE_ALLOC_WORKSPACE_ZHETRD MORSE_WS_FNAME(zhetrd , ZHETRD )
/***************************************************************************//**
* FORTRAN API - math functions (simple interface)
**/
void MORSE_ZLAPACK_TO_TILE(MORSE_Complex64_t *Af77, int *LDA, MORSE_desc_t *A, int *info)
{ *info = MORSE_zLapack_to_Tile(Af77, *LDA, A); }
void MORSE_ZLAPACK_TO_TILE_ASYNC(MORSE_Complex64_t *Af77, int *LDA, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zLapack_to_Tile_Async(Af77, *LDA, A, sequence, request); }
void MORSE_ZTILE_TO_LAPACK(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int *LDA, int *info)
{ *info = MORSE_zTile_to_Lapack(A, Af77, *LDA); }
void MORSE_ZTILE_TO_LAPACK_ASYNC(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int *LDA, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zTile_to_Lapack_Async(A, Af77, *LDA, sequence, request); }
//void MORSE_ZGEBRD(int *M, int *N, MORSE_Complex64_t *A, int *LDA, double *D, double *E, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_zgebrd(*M, *N, A, *LDA, D, E, *descT); }
//
//void MORSE_ZGECFI(int *m, int *n, MORSE_Complex64_t *A, MORSE_enum *fin, int *imb, int *inb, MORSE_enum *fout, int *omb, int *onb, int *info)
//{ *info = MORSE_zgecfi(*m, *n, A, *fin, *imb, *inb, *fout, *omb, *onb); }
//
//void MORSE_ZGECFI_ASYNC(int *m, int *n, MORSE_Complex64_t *A, MORSE_enum *f_in, int *imb, int *inb, MORSE_enum *f_out, int *omb, int *onb, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgecfi_Async(*m, *n, A, *f_in, *imb, *inb, *f_out, *omb, *onb, sequence, request); }
void MORSE_ZGELQF(int *M, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, int *info)
{ *info = MORSE_zgelqf(*M, *N, A, *LDA, *descT); }
void MORSE_ZGELQS(int *M, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgelqs(*M, *N, *NRHS, A, *LDA, *descT, B, *LDB); }
void MORSE_ZGELS(MORSE_enum *trans, int *M, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgels(*trans, *M, *N, *NRHS, A, *LDA, *descT, B, *LDB); }
void MORSE_ZGEMM(MORSE_enum *transA, MORSE_enum *transB, int *M, int *N, int *K, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, MORSE_Complex64_t *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zgemm(*transA, *transB, *M, *N, *K, *alpha, A, *LDA, B, *LDB, *beta, C, *LDC); }
void MORSE_ZGEQRF(int *M, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, int *info)
{ *info = MORSE_zgeqrf(*M, *N, A, *LDA, *descT); }
void MORSE_ZGEQRS(int *M, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgeqrs(*M, *N, *NRHS, A, *LDA, *descT, B, *LDB); }
//void MORSE_ZGESV(int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, int *IPIV, MORSE_Complex64_t *B, int *LDB, int *info)
//{ *info = MORSE_zgesv(*N, *NRHS, A, *LDA, IPIV, B, *LDB); }
void MORSE_ZGESV_INCPIV(int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descL, int *IPIV, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgesv_incpiv(*N, *NRHS, A, *LDA, *descL, IPIV, B, *LDB); }
void MORSE_ZGESV_NOPIV(int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgesv_nopiv(*N, *NRHS, A, *LDA, B, *LDB); }
//void MORSE_ZGESVD(MORSE_enum *jobu, MORSE_enum *jobvt, int *M, int *N, MORSE_Complex64_t *A, int *LDA, double *S, MORSE_Complex64_t *U, int *LDU, MORSE_Complex64_t *VT, int *LDVT, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_zgesvd(*jobu, *jobvt, *M, *N, A, *LDA, S, U, *LDU, VT, *LDVT, *descT); }
//void MORSE_ZGETMI(int *m, int *n, MORSE_Complex64_t *A, MORSE_enum *fin, int *mb, int *nb, int *info)
//{ *info = MORSE_zgetmi(*m, *n, A, *fin, *mb, *nb); }
//
//void MORSE_ZGETMI_ASYNC(int *m, int *n, MORSE_Complex64_t *A, MORSE_enum *f_in, int *mb, int *inb, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgetmi_Async(*m, *n, A, *f_in, *mb, *inb, sequence, request); }
//
//void MORSE_ZGETRF(int *M, int *N, MORSE_Complex64_t *A, int *LDA, int *IPIV, int *info)
//{ *info = MORSE_zgetrf(*M, *N, A, *LDA, IPIV); }
void MORSE_ZGETRF_INCPIV(int *M, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descL, int *IPIV, int *info)
{ *info = MORSE_zgetrf_incpiv(*M, *N, A, *LDA, *descL, IPIV); }
void MORSE_ZGETRF_NOPIV(int *M, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zgetrf_nopiv(*M, *N, A, *LDA); }
//void MORSE_ZGETRI(int *N, MORSE_Complex64_t *A, int *LDA, int *IPIV, int *info)
//{ *info = MORSE_zgetri(*N, A, *LDA, IPIV); }
//
//void MORSE_ZGETRS(MORSE_enum *trans, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, int *IPIV, MORSE_Complex64_t *B, int *LDB, int *info)
//{ *info = MORSE_zgetrs(*trans, *N, *NRHS, A, *LDA, IPIV, B, *LDB); }
void MORSE_ZGETRS_INCPIV(MORSE_enum *trans, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descL, int *IPIV, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgetrs_incpiv(*trans, *N, *NRHS, A, *LDA, *descL, IPIV, B, *LDB); }
void MORSE_ZGETRS_NOPIV(MORSE_enum *trans, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zgetrs_nopiv(*trans, *N, *NRHS, A, *LDA, B, *LDB); }
//void MORSE_ZHEEV(MORSE_enum *jobz, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, double *W, MORSE_desc_t **descT, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zheev(*jobz, *uplo, *N, A, *LDA, W, *descT, Q, *LDQ); }
//
//void MORSE_ZHEEVD(MORSE_enum *jobz, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, double *W, MORSE_desc_t **descT, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zheevd(*jobz, *uplo, *N, A, *LDA, W, *descT, Q, *LDQ); }
//
//void MORSE_ZHEGST(MORSE_enum *itype, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
//{ *info = MORSE_zhegst(*itype, *uplo, *N, A, *LDA, B, *LDB); }
//
//void MORSE_ZHEGV(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, double *W, MORSE_desc_t **descT, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zhegv(*itype, *jobz, *uplo, *N, A, *LDA, B, *LDB, W, *descT, Q, *LDQ); }
//
//void MORSE_ZHEGVD(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, double *W, MORSE_desc_t **descT, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zhegvd(*itype, *jobz, *uplo, *N, A, *LDA, B, *LDB, W, *descT, Q, *LDQ); }
#ifdef COMPLEX
void MORSE_ZHEMM(MORSE_enum *side, MORSE_enum *uplo, int *M, int *N, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, MORSE_Complex64_t *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zhemm(*side, *uplo, *M, *N, *alpha, A, *LDA, B, *LDB, *beta, C, *LDC); }
#endif
#ifdef COMPLEX
void MORSE_ZHER2K(MORSE_enum *uplo, MORSE_enum *trans, int *N, int *K, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, double *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zher2k(*uplo, *trans, *N, *K, *alpha, A, *LDA, B, *LDB, *beta, C, *LDC); }
#endif
#ifdef COMPLEX
void MORSE_ZHERK(MORSE_enum *uplo, MORSE_enum *trans, int *N, int *K, double *alpha, MORSE_Complex64_t *A, int *LDA, double *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zherk(*uplo, *trans, *N, *K, *alpha, A, *LDA, *beta, C, *LDC); }
#endif
//void MORSE_ZHETRD(MORSE_enum *jobz, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, double *D, double *E, MORSE_desc_t **descT, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zhetrd(*jobz, *uplo, *N, A, *LDA, D, E, *descT, Q, *LDQ); }
void MORSE_ZLACPY(MORSE_enum *uplo, int *M, int *N, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zlacpy(*uplo, *M, *N, A, *LDA, B, *LDB); }
void MORSE_ZLANGE(MORSE_enum *norm, int *M, int *N, MORSE_Complex64_t *A, int *LDA, double *result)
{ *result = MORSE_zlange(*norm, *M, *N, A, *LDA); }
#ifdef COMPLEX
void MORSE_ZLANHE(MORSE_enum *norm, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, double *result)
{ *result = MORSE_zlanhe(*norm, *uplo, *N, A, *LDA); }
#endif
void MORSE_ZLANSY(MORSE_enum *norm, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, double *result)
{ *result = MORSE_zlansy(*norm, *uplo, *N, A, *LDA); }
void MORSE_ZLANTR(MORSE_enum *norm, MORSE_enum *uplo, MORSE_enum *diag, int *M, int *N, MORSE_Complex64_t *A, int *LDA, double *result)
{ *result = MORSE_zlantr(*norm, *uplo, *diag, *M, *N, A, *LDA); }
void MORSE_ZLASET(MORSE_enum *uplo, int *M, int *N, MORSE_Complex64_t *alpha, MORSE_Complex64_t *beta, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zlaset(*uplo, *M, *N, *alpha, *beta, A, *LDA); }
//void MORSE_ZLASWP(int *N, MORSE_Complex64_t *A, int *LDA, int *K1, int *K2, int *IPIV, int *INCX, int *info)
//{ *info = MORSE_zlaswp(*N, A, *LDA, *K1, *K2, IPIV, *INCX); }
//
//void MORSE_ZLASWPC(int *N, MORSE_Complex64_t *A, int *LDA, int *K1, int *K2, int *IPIV, int *INCX, int *info)
//{ *info = MORSE_zlaswpc(*N, A, *LDA, *K1, *K2, IPIV, *INCX); }
void MORSE_ZLAUUM(MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zlauum(*uplo, *N, A, *LDA); }
#ifdef COMPLEX
void MORSE_ZPLGHE(double *bump, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info)
{ *info = MORSE_zplghe(*bump, *N, A, *LDA, *seed); }
#endif
void MORSE_ZPLGSY(MORSE_Complex64_t *bump, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info)
{ *info = MORSE_zplgsy(*bump, *N, A, *LDA, *seed); }
void MORSE_ZPLRNT(int *M, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info)
{ *info = MORSE_zplrnt(*M, *N, A, *LDA, *seed); }
void MORSE_ZPOSV(MORSE_enum *uplo, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zposv(*uplo, *N, *NRHS, A, *LDA, B, *LDB); }
void MORSE_ZPOTRF(MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zpotrf(*uplo, *N, A, *LDA); }
void MORSE_ZPOTRI(MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zpotri(*uplo, *N, A, *LDA); }
void MORSE_ZPOTRS(MORSE_enum *uplo, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zpotrs(*uplo, *N, *NRHS, A, *LDA, B, *LDB); }
#if defined (PRECISION_c) || defined(PRECISION_z)
void MORSE_ZSYSV(MORSE_enum *uplo, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zsysv(*uplo, *N, *NRHS, A, *LDA, B, *LDB); }
void MORSE_ZSYTRF(MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_zsytrf(*uplo, *N, A, *LDA); }
void MORSE_ZSYTRS(MORSE_enum *uplo, int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zsytrs(*uplo, *N, *NRHS, A, *LDA, B, *LDB); }
#endif
void MORSE_ZSYMM(MORSE_enum *side, MORSE_enum *uplo, int *M, int *N, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, MORSE_Complex64_t *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zsymm(*side, *uplo, *M, *N, *alpha, A, *LDA, B, *LDB, *beta, C, *LDC); }
void MORSE_ZSYR2K(MORSE_enum *uplo, MORSE_enum *trans, int *N, int *K, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, MORSE_Complex64_t *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zsyr2k(*uplo, *trans, *N, *K, *alpha, A, *LDA, B, *LDB, *beta, C, *LDC); }
void MORSE_ZSYRK(MORSE_enum *uplo, MORSE_enum *trans, int *N, int *K, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *beta, MORSE_Complex64_t *C, int *LDC, int *info)
{ *info = MORSE_zsyrk(*uplo, *trans, *N, *K, *alpha, A, *LDA, *beta, C, *LDC); }
void MORSE_ZTRMM(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, int *N, int *NRHS, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_ztrmm(*side, *uplo, *transA, *diag, *N, *NRHS, *alpha, A, *LDA, B, *LDB); }
void MORSE_ZTRSM(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, int *N, int *NRHS, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_ztrsm(*side, *uplo, *transA, *diag, *N, *NRHS, *alpha, A, *LDA, B, *LDB); }
void MORSE_ZTRSMPL(int *N, int *NRHS, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descL, int *IPIV, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_ztrsmpl(*N, *NRHS, A, *LDA, *descL, IPIV, B, *LDB); }
//void MORSE_ZTRSMRV(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, int *N, int *NRHS, MORSE_Complex64_t *alpha, MORSE_Complex64_t *A, int *LDA, MORSE_Complex64_t *B, int *LDB, int *info)
//{ *info = MORSE_ztrsmrv(*side, *uplo, *transA, *diag, *N, *NRHS, *alpha, A, *LDA, B, *LDB); }
void MORSE_ZTRTRI(MORSE_enum *uplo, MORSE_enum *diag, int *N, MORSE_Complex64_t *A, int *LDA, int *info)
{ *info = MORSE_ztrtri(*uplo, *diag, *N, A, *LDA); }
void MORSE_ZUNGLQ(int *M, int *N, int *K, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zunglq(*M, *N, *K, A, *LDA, *descT, B, *LDB); }
void MORSE_ZUNGQR(int *M, int *N, int *K, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zungqr(*M, *N, *K, A, *LDA, *descT, B, *LDB); }
void MORSE_ZUNMLQ(MORSE_enum *side, MORSE_enum *trans, int *M, int *N, int *K, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zunmlq(*side, *trans, *M, *N, *K, A, *LDA, *descT, B, *LDB); }
void MORSE_ZUNMQR(MORSE_enum *side, MORSE_enum *trans, int *M, int *N, int *K, MORSE_Complex64_t *A, int *LDA, MORSE_desc_t **descT, MORSE_Complex64_t *B, int *LDB, int *info)
{ *info = MORSE_zunmqr(*side, *trans, *M, *N, *K, A, *LDA, *descT, B, *LDB); }
/***************************************************************************//**
* FORTRAN API - math functions (native interface)
**/
//void MORSE_ZGEBRD_TILE(MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, int *info)
//{ *info = MORSE_zgebrd_Tile(A, D, E, T); }
void MORSE_ZGELQF_TILE(MORSE_desc_t *A, MORSE_desc_t *T, int *info)
{ *info = MORSE_zgelqf_Tile(A, T); }
void MORSE_ZGELQS_TILE(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgelqs_Tile(A, T, B); }
void MORSE_ZGELS_TILE(MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgels_Tile(*trans, A, T, B); }
void MORSE_ZGEMM_TILE(MORSE_enum *transA, MORSE_enum *transB, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zgemm_Tile(*transA, *transB, *alpha, A, B, *beta, C); }
void MORSE_ZGEQRF_TILE(MORSE_desc_t *A, MORSE_desc_t *T, int *info)
{ *info = MORSE_zgeqrf_Tile(A, T); }
void MORSE_ZGEQRS_TILE(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgeqrs_Tile(A, T, B); }
//void MORSE_ZGESV_TILE(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, int *info)
//{ *info = MORSE_zgesv_Tile(A, IPIV, B); }
void MORSE_ZGESV_INCPIV_TILE(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgesv_incpiv_Tile(A, L, IPIV, B); }
void MORSE_ZGESV_NOPIV_TILE(MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgesv_nopiv_Tile(A, B); }
//void MORSE_ZGESVD_TILE(MORSE_enum *jobu, MORSE_enum *jobvt, MORSE_desc_t *A, double *S, MORSE_desc_t *U, MORSE_desc_t *VT, MORSE_desc_t *T, int *info)
//{ *info = MORSE_zgesvd_Tile(*jobu, *jobvt, A, S, U, VT, T); }
//void MORSE_ZGETRF_TILE(MORSE_desc_t *A, int *IPIV, int *info)
//{ *info = MORSE_zgetrf_Tile(A, IPIV); }
void MORSE_ZGETRF_INCPIV_TILE(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, int *info)
{ *info = MORSE_zgetrf_incpiv_Tile(A, L, IPIV); }
void MORSE_ZGETRF_NOPIV_TILE(MORSE_desc_t *A, int *info)
{ *info = MORSE_zgetrf_nopiv_Tile(A); }
//void MORSE_ZGETRI_TILE(MORSE_desc_t *A, int *IPIV, int *info)
//{ *info = MORSE_zgetri_Tile(A, IPIV); }
//
//void MORSE_ZGETRS_TILE(MORSE_enum *trans, MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, int *info)
//{ *info = MORSE_zgetrs_Tile(*trans, A, IPIV, B); }
void MORSE_ZGETRS_INCPIV_TILE(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgetrs_incpiv_Tile(A, L, IPIV, B); }
void MORSE_ZGETRS_NOPIV_TILE(MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zgetrs_nopiv_Tile(A, B); }
//void MORSE_ZHEEV_TILE(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zheev_Tile(*jobz, *uplo, A, W, T, Q, *LDQ); }
//
//void MORSE_ZHEEVD_TILE(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zheevd_Tile(*jobz, *uplo, A, W, T, Q, *LDQ); }
//
//void MORSE_ZHEGST_TILE(MORSE_enum *itype, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
//{ *info = MORSE_zhegst_Tile(*itype, *uplo, A, B); }
//
//void MORSE_ZHEGV_TILE(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, int *info)
//{ *info = MORSE_zhegv_Tile(*itype, *jobz, *uplo, A, B, W, T, Q); }
//
//void MORSE_ZHEGVD_TILE(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, int *info)
//{ *info = MORSE_zhegvd_Tile(*itype, *jobz, *uplo, A, B, W, T, Q); }
#ifdef COMPLEX
void MORSE_ZHEMM_TILE(MORSE_enum *side, MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zhemm_Tile(*side, *uplo, *alpha, A, B, *beta, C); }
#endif
#ifdef COMPLEX
void MORSE_ZHER2K_TILE(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, double *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zher2k_Tile(*uplo, *trans, *alpha, A, B, *beta, C); }
#endif
#ifdef COMPLEX
void MORSE_ZHERK_TILE(MORSE_enum *uplo, MORSE_enum *trans, double *alpha, MORSE_desc_t *A, double *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zherk_Tile(*uplo, *trans, *alpha, A, *beta, C); }
#endif
//void MORSE_ZHETRD_TILE(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, int *info)
//{ *info = MORSE_zhetrd_Tile(*jobz, *uplo, A, D, E, T, Q, *LDQ); }
void MORSE_ZLACPY_TILE(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zlacpy_Tile(*uplo, A, B); }
void MORSE_ZLANGE_TILE(MORSE_enum *norm, MORSE_desc_t *A, double *result)
{ *result = MORSE_zlange_Tile(*norm, A); }
#ifdef COMPLEX
void MORSE_ZLANHE_TILE(MORSE_enum *norm, MORSE_enum *uplo, MORSE_desc_t *A, double *result)
{ *result = MORSE_zlanhe_Tile(*norm, *uplo, A); }
#endif
void MORSE_ZLANSY_TILE(MORSE_enum *norm, MORSE_enum *uplo, MORSE_desc_t *A, double *result)
{ *result = MORSE_zlansy_Tile(*norm, *uplo, A); }
void MORSE_ZLANTR_TILE(MORSE_enum *norm, MORSE_enum *uplo, MORSE_enum *diag, MORSE_desc_t *A, double *result)
{ *result = MORSE_zlantr_Tile(*norm, *uplo, *diag, A); }
void MORSE_ZLASET_TILE(MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_Complex64_t *beta, MORSE_desc_t *A, int *info)
{ *info = MORSE_zlaset_Tile(*uplo, *alpha, *beta, A); }
//void MORSE_ZLASWP_TILE(MORSE_desc_t *A, int *K1, int *K2, int *IPIV, int *INCX, int *info)
//{ *info = MORSE_zlaswp_Tile(A, *K1, *K2, IPIV, *INCX); }
//
//void MORSE_ZLASWPC_TILE(MORSE_desc_t *A, int *K1, int *K2, int *IPIV, int *INCX, int *info)
//{ *info = MORSE_zlaswpc_Tile(A, *K1, *K2, IPIV, *INCX); }
void MORSE_ZLAUUM_TILE(MORSE_enum *uplo, MORSE_desc_t *A, int *info)
{ *info = MORSE_zlauum_Tile(*uplo, A); }
#ifdef COMPLEX
void MORSE_ZPLGHE_TILE(double *bump, MORSE_desc_t *A, unsigned long long int *seed, int *info)
{ *info = MORSE_zplghe_Tile(*bump, A, *seed); }
#endif
void MORSE_ZPLGSY_TILE(MORSE_Complex64_t *bump, MORSE_desc_t *A, unsigned long long int *seed, int *info)
{ *info = MORSE_zplgsy_Tile(*bump, A, *seed); }
void MORSE_ZPLRNT_TILE(MORSE_desc_t *A, unsigned long long int *seed, int *info)
{ *info = MORSE_zplrnt_Tile(A, *seed); }
void MORSE_ZPOSV_TILE(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zposv_Tile(*uplo, A, B); }
void MORSE_ZPOTRF_TILE(MORSE_enum *uplo, MORSE_desc_t *A, int *info)
{ *info = MORSE_zpotrf_Tile(*uplo, A); }
void MORSE_ZPOTRI_TILE(MORSE_enum *uplo, MORSE_desc_t *A, int *info)
{ *info = MORSE_zpotri_Tile(*uplo, A); }
void MORSE_ZPOTRS_TILE(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zpotrs_Tile(*uplo, A, B); }
#if defined (PRECISION_c) || defined(PRECISION_z)
void MORSE_ZSYSV_TILE(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zsysv_Tile(*uplo, A, B); }
void MORSE_ZSYTRF_TILE(MORSE_enum *uplo, MORSE_desc_t *A, int *info)
{ *info = MORSE_zsytrf_Tile(*uplo, A); }
void MORSE_ZSYTRS_TILE(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_zsytrs_Tile(*uplo, A, B); }
#endif
void MORSE_ZSYMM_TILE(MORSE_enum *side, MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zsymm_Tile(*side, *uplo, *alpha, A, B, *beta, C); }
void MORSE_ZSYR2K_TILE(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zsyr2k_Tile(*uplo, *trans, *alpha, A, B, *beta, C); }
void MORSE_ZSYRK_TILE(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_Complex64_t *beta, MORSE_desc_t *C, int *info)
{ *info = MORSE_zsyrk_Tile(*uplo, *trans, *alpha, A, *beta, C); }
void MORSE_ZTRMM_TILE(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_ztrmm_Tile(*side, *uplo, *transA, *diag, *alpha, A, B); }
void MORSE_ZTRSM_TILE(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
{ *info = MORSE_ztrsm_Tile(*side, *uplo, *transA, *diag, *alpha, A, B); }
void MORSE_ZTRSMPL_TILE(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, int *info)
{ *info = MORSE_ztrsmpl_Tile(A, L, IPIV, B); }
//void MORSE_ZTRSMRV_TILE(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, int *info)
//{ *info = MORSE_ztrsmrv_Tile(*side, *uplo, *transA, *diag, *alpha, A, B); }
void MORSE_ZTRTRI_TILE(MORSE_enum *uplo, MORSE_enum *diag, MORSE_desc_t *A, int *info)
{ *info = MORSE_ztrtri_Tile(*uplo, *diag, A); }
void MORSE_ZUNGLQ_TILE(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zunglq_Tile(A, T, B); }
void MORSE_ZUNGQR_TILE(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zungqr_Tile(A, T, B); }
void MORSE_ZUNMLQ_TILE(MORSE_enum *side, MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zunmlq_Tile(*side, *trans, A, T, B); }
void MORSE_ZUNMQR_TILE(MORSE_enum *side, MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, int *info)
{ *info = MORSE_zunmqr_Tile(*side, *trans, A, T, B); }
/***************************************************************************//**
* FORTRAN API - math functions (asynchronous interface)
**/
//void MORSE_ZGEBRD_TILE_ASYNC(MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgebrd_Tile_Async(A, D, E, T, sequence, request); }
void MORSE_ZGELQF_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgelqf_Tile_Async(A, T, sequence, request); }
void MORSE_ZGELQS_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgelqs_Tile_Async(A, T, B, sequence, request); }
void MORSE_ZGELS_TILE_ASYNC(MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgels_Tile_Async(*trans, A, T, B, sequence, request); }
void MORSE_ZGEMM_TILE_ASYNC(MORSE_enum *transA, MORSE_enum *transB, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgemm_Tile_Async(*transA, *transB, *alpha, A, B, *beta, C, sequence, request); }
void MORSE_ZGEQRF_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgeqrf_Tile_Async(A, T, sequence, request); }
void MORSE_ZGEQRS_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgeqrs_Tile_Async(A, T, B, sequence, request); }
//void MORSE_ZGESV_TILE_ASYNC(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgesv_Tile_Async(A, IPIV, B, sequence, request); }
void MORSE_ZGESV_INCPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgesv_incpiv_Tile_Async(A, L, IPIV, B, sequence, request); }
//void MORSE_ZGESV_NOPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgesv_nopiv_Tile_Async(A, B, sequence, request); }
//
//void MORSE_ZGESVD_TILE_ASYNC(MORSE_enum *jobu, MORSE_enum *jobvt, MORSE_desc_t *A, double *S, MORSE_desc_t *U, MORSE_desc_t *VT, MORSE_desc_t *T, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgesvd_Tile_Async(*jobu, *jobvt, A, S, U, VT, T, sequence, request); }
//void MORSE_ZGETRF_TILE_ASYNC(MORSE_desc_t *A, int *IPIV, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgetrf_Tile_Async(A, IPIV, sequence, request); }
void MORSE_ZGETRF_INCPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgetrf_incpiv_Tile_Async(A, L, IPIV, sequence, request); }
void MORSE_ZGETRF_NOPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgetrf_nopiv_Tile_Async(A, sequence, request); }
//void MORSE_ZGETRI_TILE_ASYNC(MORSE_desc_t *A, int *IPIV, MORSE_desc_t *W, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgetri_Tile_Async(A, IPIV, W, sequence, request); }
//
//void MORSE_ZGETRS_TILE_ASYNC(MORSE_enum *trans, MORSE_desc_t *A, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zgetrs_Tile_Async(*trans, A, IPIV, B, sequence, request); }
void MORSE_ZGETRS_INCPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgetrs_incpiv_Tile_Async(A, L, IPIV, B, sequence, request); }
void MORSE_ZGETRS_NOPIV_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zgetrs_nopiv_Tile_Async(A, B, sequence, request); }
//void MORSE_ZHEEV_TILE_ASYNC(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zheev_Tile_Async(*jobz, *uplo, A, W, T, Q, *LDQ, sequence, request); }
//
//void MORSE_ZHEEVD_TILE_ASYNC(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *W, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zheevd_Tile_Async(*jobz, *uplo, A, W, T, Q, *LDQ, sequence, request); }
//
//void MORSE_ZHEGST_TILE_ASYNC(MORSE_enum *itype, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zhegst_Tile_Async(*itype, *uplo, A, B, sequence, request); }
//
//void MORSE_ZHEGV_TILE_ASYNC(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zhegv_Tile_Async(*itype, *jobz, *uplo, A, B, W, T, Q, sequence, request); }
//
//void MORSE_ZHEGVD_TILE_ASYNC(MORSE_enum *itype, MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, double *W, MORSE_desc_t *T, MORSE_desc_t *Q, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zhegvd_Tile_Async(*itype, *jobz, *uplo, A, B, W, T, Q, sequence, request); }
#ifdef COMPLEX
void MORSE_ZHEMM_TILE_ASYNC(MORSE_enum *side, MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zhemm_Tile_Async(*side, *uplo, *alpha, A, B, *beta, C, sequence, request); }
#endif
#ifdef COMPLEX
void MORSE_ZHER2K_TILE_ASYNC(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, double *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zher2k_Tile_Async(*uplo, *trans, *alpha, A, B, *beta, C, sequence, request); }
#endif
#ifdef COMPLEX
void MORSE_ZHERK_TILE_ASYNC(MORSE_enum *uplo, MORSE_enum *trans, double *alpha, MORSE_desc_t *A, double *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zherk_Tile_Async(*uplo, *trans, *alpha, A, *beta, C, sequence, request); }
#endif
//void MORSE_ZHETRD_TILE_ASYNC(MORSE_enum *jobz, MORSE_enum *uplo, MORSE_desc_t *A, double *D, double *E, MORSE_desc_t *T, MORSE_Complex64_t *Q, int *LDQ, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zhetrd_Tile_Async(*jobz, *uplo, A, D, E, T, Q, *LDQ, sequence, request); }
void MORSE_ZLACPY_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlacpy_Tile_Async(*uplo, A, B, sequence, request); }
void MORSE_ZLANGE_TILE_ASYNC(MORSE_enum *norm, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlange_Tile_Async(*norm, A, value, sequence, request); }
#ifdef COMPLEX
void MORSE_ZLANHE_TILE_ASYNC(MORSE_enum *norm, MORSE_enum *uplo, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlanhe_Tile_Async(*norm, *uplo, A, value, sequence, request); }
#endif
void MORSE_ZLANSY_TILE_ASYNC(MORSE_enum *norm, MORSE_enum *uplo, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlansy_Tile_Async(*norm, *uplo, A, value, sequence, request); }
void MORSE_ZLANTR_TILE_ASYNC(MORSE_enum *norm, MORSE_enum *uplo, MORSE_enum *diag, MORSE_desc_t *A, double *value, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlantr_Tile_Async(*norm, *uplo, *diag, A, value, sequence, request); }
void MORSE_ZLASET_TILE_ASYNC(MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_Complex64_t *beta, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlaset_Tile_Async(*uplo, *alpha, *beta, A, sequence, request); }
//void MORSE_ZLASWP_TILE_ASYNC(MORSE_desc_t *A, int *K1, int *K2, int *IPIV, int *INCX, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zlaswp_Tile_Async(A, *K1, *K2, IPIV, *INCX, sequence, request); }
//
//void MORSE_ZLASWPC_TILE_ASYNC(MORSE_desc_t *A, int *K1, int *K2, int *IPIV, int *INCX, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_zlaswpc_Tile_Async(A, *K1, *K2, IPIV, *INCX, sequence, request); }
void MORSE_ZLAUUM_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zlauum_Tile_Async(*uplo, A, sequence, request); }
#ifdef COMPLEX
void MORSE_ZPLGHE_TILE_ASYNC(double *bump, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info)
{ *info = MORSE_zplghe_Tile_Async(*bump, A, *seed, sequence, *request); }
#endif
void MORSE_ZPLGSY_TILE_ASYNC(MORSE_Complex64_t *bump, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info)
{ *info = MORSE_zplgsy_Tile_Async(*bump, A, *seed, sequence, *request); }
void MORSE_ZPLRNT_TILE_ASYNC(MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info)
{ *info = MORSE_zplrnt_Tile_Async(A, *seed, sequence, *request); }
void MORSE_ZPOSV_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zposv_Tile_Async(*uplo, A, B, sequence, request); }
void MORSE_ZPOTRF_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zpotrf_Tile_Async(*uplo, A, sequence, request); }
void MORSE_ZPOTRI_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zpotri_Tile_Async(*uplo, A, sequence, request); }
void MORSE_ZPOTRS_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zpotrs_Tile_Async(*uplo, A, B, sequence, request); }
#if defined (PRECISION_c) || defined(PRECISION_z)
void MORSE_ZSYSV_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsysv_Tile_Async(*uplo, A, B, sequence, request); }
void MORSE_ZSYTRF_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsytrf_Tile_Async(*uplo, A, sequence, request); }
void MORSE_ZSYTRS_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsytrs_Tile_Async(*uplo, A, B, sequence, request); }
#endif
void MORSE_ZSYMM_TILE_ASYNC(MORSE_enum *side, MORSE_enum *uplo, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsymm_Tile_Async(*side, *uplo, *alpha, A, B, *beta, C, sequence, request); }
void MORSE_ZSYR2K_TILE_ASYNC(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_Complex64_t *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsyr2k_Tile_Async(*uplo, *trans, *alpha, A, B, *beta, C, sequence, request); }
void MORSE_ZSYRK_TILE_ASYNC(MORSE_enum *uplo, MORSE_enum *trans, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_Complex64_t *beta, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zsyrk_Tile_Async(*uplo, *trans, *alpha, A, *beta, C, sequence, request); }
void MORSE_ZTRMM_TILE_ASYNC(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_ztrmm_Tile_Async(*side, *uplo, *transA, *diag, *alpha, A, B, sequence, request); }
void MORSE_ZTRSM_TILE_ASYNC(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_ztrsm_Tile_Async(*side, *uplo, *transA, *diag, *alpha, A, B, sequence, request); }
void MORSE_ZTRSMPL_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_ztrsmpl_Tile_Async(A, L, IPIV, B, sequence, request); }
//void MORSE_ZTRSMRV_TILE_ASYNC(MORSE_enum *side, MORSE_enum *uplo, MORSE_enum *transA, MORSE_enum *diag, MORSE_Complex64_t *alpha, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
//{ *info = MORSE_ztrsmrv_Tile_Async(*side, *uplo, *transA, *diag, *alpha, A, B, sequence, request); }
void MORSE_ZTRTRI_TILE_ASYNC(MORSE_enum *uplo, MORSE_enum *diag, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_ztrtri_Tile_Async(*uplo, *diag, A, sequence, request); }
void MORSE_ZUNGLQ_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zunglq_Tile_Async(A, T, B, sequence, request); }
void MORSE_ZUNGQR_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zungqr_Tile_Async(A, T, B, sequence, request); }
void MORSE_ZUNMLQ_TILE_ASYNC(MORSE_enum *side, MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zunmlq_Tile_Async(*side, *trans, A, T, B, sequence, request); }
void MORSE_ZUNMQR_TILE_ASYNC(MORSE_enum *side, MORSE_enum *trans, MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request, int *info)
{ *info = MORSE_zunmqr_Tile_Async(*side, *trans, A, T, B, sequence, request); }
/***************************************************************************//**
* FORTRAN API - workspace allocation
**/
//void MORSE_ALLOC_WORKSPACE_ZGEBRD(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zgebrd(*M, *N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZGEEV(int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zgeev(*N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZGEHRD(int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zgehrd(*N, descT); }
void MORSE_ALLOC_WORKSPACE_ZGELQF(int *M, int *N, MORSE_desc_t **T, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgelqf(*M, *N, T, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGELQF_TILE(int *M, int *N, MORSE_desc_t **descT, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgelqf_Tile(*M, *N, descT, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGELS(int *M, int *N, MORSE_desc_t **T, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgels(*M, *N, T, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGELS_TILE(int *M, int *N, MORSE_desc_t **descT, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgels_Tile(*M, *N, descT, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGEQRF(int *M, int *N, MORSE_desc_t **T, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgeqrf(*M, *N, T, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGEQRF_TILE(int *M, int *N, MORSE_desc_t **descT, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgeqrf_Tile(*M, *N, descT, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGESV_INCPIV(int *N, MORSE_desc_t **descL, int **IPIV, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgesv_incpiv(*N, descL, IPIV, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGESV_INCPIV_TILE (int *N, MORSE_desc_t **descL, int **IPIV, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgesv_incpiv_Tile (*N, descL, IPIV, *p, *q); }
//void MORSE_ALLOC_WORKSPACE_ZGESVD(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zgesvd(*M, *N, descT); }
void MORSE_ALLOC_WORKSPACE_ZGETRF_INCPIV(int *M, int *N, MORSE_desc_t **descL, int **IPIV, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgetrf_incpiv(*M, *N, descL, IPIV, *p, *q); }
void MORSE_ALLOC_WORKSPACE_ZGETRF_INCPIV_TILE(int *N, MORSE_desc_t **descL, int **IPIV, int *p, int *q, int *info)
{ *info = MORSE_Alloc_Workspace_zgetrf_incpiv_Tile(*N, descL, IPIV, *p, *q); }
//void MORSE_ALLOC_WORKSPACE_ZGETRI_TILE_ASYNC(MORSE_desc_t *A, MORSE_desc_t *W, int *info)
//{ *info = MORSE_Alloc_Workspace_zgetri_Tile_Async(A, W); }
//void MORSE_ALLOC_WORKSPACE_ZHEEV(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zheev(*M, *N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZHEEVD(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zheevd(*M, *N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZHEGV(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zhegv(*M, *N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZHEGVD(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zhegvd(*M, *N, descT); }
//
//void MORSE_ALLOC_WORKSPACE_ZHETRD(int *M, int *N, MORSE_desc_t **descT, int *info)
//{ *info = MORSE_Alloc_Workspace_zhetrd(*M, *N, descT); }