/*
    -- clMAGMA (version 0.1) --
       Univ. of Tennessee, Knoxville
       Univ. of California, Berkeley
       Univ. of Colorado, Denver
       April 2012
*/

#ifndef MAGMA_AUXILIARY_H
#define MAGMA_AUXILIARY_H

#include "magma_types.h"

#ifdef __cplusplus
extern "C" {
#endif

int magma_get_spotrf_nb(int m);
int magma_get_sgeqrf_nb(int m);
int magma_get_sgeqlf_nb(int m);
int magma_get_sgetrf_nb(int m);
int magma_get_sgetri_nb(int m);
int magma_get_sgehrd_nb(int m);
int magma_get_ssytrd_nb(int m);
int magma_get_sgelqf_nb(int m);
int magma_get_sgebrd_nb(int m);
int magma_get_ssygst_nb(int m);
int magma_get_sgesvd_nb(int m);

int magma_get_dpotrf_nb(int m);
int magma_get_dgeqrf_nb(int m);
int magma_get_dgeqlf_nb(int m);
int magma_get_dgetrf_nb(int m);
int magma_get_dgetri_nb(int m);
int magma_get_dgehrd_nb(int m);
int magma_get_dsytrd_nb(int m);
int magma_get_dgelqf_nb(int m);
int magma_get_dgebrd_nb(int m);
int magma_get_dsygst_nb(int m);
int magma_get_dgesvd_nb(int m);

int magma_get_cpotrf_nb(int m);
int magma_get_cgetrf_nb(int m);
int magma_get_cgetri_nb(int m);
int magma_get_cgeqrf_nb(int m);
int magma_get_cgeqlf_nb(int m);
int magma_get_cgehrd_nb(int m);
int magma_get_chetrd_nb(int m);
int magma_get_cgelqf_nb(int m);
int magma_get_cgebrd_nb(int m);
int magma_get_chegst_nb(int m);
int magma_get_cgesvd_nb(int m);

int magma_get_zpotrf_nb(int m);
int magma_get_zgetrf_nb(int m);
int magma_get_zgetri_nb(int m);
int magma_get_zgeqrf_nb(int m);
int magma_get_zgeqlf_nb(int m);
int magma_get_zgehrd_nb(int m);
int magma_get_zhetrd_nb(int m);
int magma_get_zgelqf_nb(int m);
int magma_get_zgebrd_nb(int m);
int magma_get_zhegst_nb(int m);
int magma_get_zgesvd_nb(int m);

int magma_get_smlsize_divideconquer();

void printout_devices();

void swp2pswp   (int trans, int n, int *ipiv, int *newipiv);

double magma_wtime( void );
double magma_sync_wtime( magma_queue_t queue );


#ifdef __cplusplus
}
#endif

#endif  // MAGMA_AUXILIARY_H
