From 551537ddfe59272898a9dcea4531814336346b48 Mon Sep 17 00:00:00 2001 From: sgsokol Date: Tue, 7 Oct 2014 18:17:31 +0200 Subject: [PATCH 1/3] v1.5.0-1 --- src/include/cblas.h | 579 --------------------- src/include/gnu/stubs-32.h | 24 - src/include/magma.h | 336 ------------ src/include/magma_bulge.h | 40 -- src/include/magma_c.h | 514 ------------------ src/include/magma_cbulge.h | 35 -- src/include/magma_cbulgeinc.h | 141 ----- src/include/magma_clapack.h | 953 ---------------------------------- src/include/magma_d.h | 514 ------------------ src/include/magma_dbulge.h | 35 -- src/include/magma_dbulgeinc.h | 141 ----- src/include/magma_dlapack.h | 953 ---------------------------------- src/include/magma_ds.h | 53 -- src/include/magma_lapack.h | 113 ---- src/include/magma_s.h | 514 ------------------ src/include/magma_sbulge.h | 35 -- src/include/magma_sbulgeinc.h | 141 ----- src/include/magma_slapack.h | 953 ---------------------------------- src/include/magma_z.h | 514 ------------------ src/include/magma_zbulge.h | 35 -- src/include/magma_zbulgeinc.h | 141 ----- src/include/magma_zc.h | 53 -- src/include/magma_zlapack.h | 953 ---------------------------------- src/include/magmablas.h | 63 --- src/include/magmablas_c.h | 617 ---------------------- src/include/magmablas_d.h | 617 ---------------------- src/include/magmablas_ds.h | 55 -- src/include/magmablas_s.h | 617 ---------------------- src/include/magmablas_z.h | 617 ---------------------- src/include/magmablas_zc.h | 55 -- 30 files changed, 10411 deletions(-) delete mode 100644 src/include/cblas.h delete mode 100644 src/include/gnu/stubs-32.h delete mode 100644 src/include/magma.h delete mode 100644 src/include/magma_bulge.h delete mode 100644 src/include/magma_c.h delete mode 100644 src/include/magma_cbulge.h delete mode 100644 src/include/magma_cbulgeinc.h delete mode 100644 src/include/magma_clapack.h delete mode 100644 src/include/magma_d.h delete mode 100644 src/include/magma_dbulge.h delete mode 100644 src/include/magma_dbulgeinc.h delete mode 100644 src/include/magma_dlapack.h delete mode 100644 src/include/magma_ds.h delete mode 100644 src/include/magma_lapack.h delete mode 100644 src/include/magma_s.h delete mode 100644 src/include/magma_sbulge.h delete mode 100644 src/include/magma_sbulgeinc.h delete mode 100644 src/include/magma_slapack.h delete mode 100644 src/include/magma_z.h delete mode 100644 src/include/magma_zbulge.h delete mode 100644 src/include/magma_zbulgeinc.h delete mode 100644 src/include/magma_zc.h delete mode 100644 src/include/magma_zlapack.h delete mode 100644 src/include/magmablas.h delete mode 100644 src/include/magmablas_c.h delete mode 100644 src/include/magmablas_d.h delete mode 100644 src/include/magmablas_ds.h delete mode 100644 src/include/magmablas_s.h delete mode 100644 src/include/magmablas_z.h delete mode 100644 src/include/magmablas_zc.h diff --git a/src/include/cblas.h b/src/include/cblas.h deleted file mode 100644 index b748819..0000000 --- a/src/include/cblas.h +++ /dev/null @@ -1,579 +0,0 @@ -#ifndef CBLAS_H -#define CBLAS_H -#include - -/* - * Enumerated and derived types - */ -#define CBLAS_INDEX size_t /* this may vary between platforms */ - -enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102}; -enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113}; -enum CBLAS_UPLO {CblasUpper=121, CblasLower=122}; -enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132}; -enum CBLAS_SIDE {CblasLeft=141, CblasRight=142}; - -/* - * =========================================================================== - * Prototypes for level 1 BLAS functions (complex are recast as routines) - * =========================================================================== - */ - -#ifdef __cplusplus -extern "C" { -#endif - -float cblas_sdsdot(const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY); -double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, - const int incY); -float cblas_sdot(const int N, const float *X, const int incX, - const float *Y, const int incY); -double cblas_ddot(const int N, const double *X, const int incX, - const double *Y, const int incY); - -/* - * Functions having prefixes Z and C only - */ -void cblas_cdotu_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotu); -void cblas_cdotc_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotc); - -void cblas_zdotu_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotu); -void cblas_zdotc_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotc); - - -/* - * Functions having prefixes S D SC DZ - */ -float cblas_snrm2(const int N, const float *X, const int incX); -float cblas_sasum(const int N, const float *X, const int incX); - -double cblas_dnrm2(const int N, const double *X, const int incX); -double cblas_dasum(const int N, const double *X, const int incX); - -float cblas_scnrm2(const int N, const void *X, const int incX); -float cblas_scasum(const int N, const void *X, const int incX); - -double cblas_dznrm2(const int N, const void *X, const int incX); -double cblas_dzasum(const int N, const void *X, const int incX); - - -/* - * Functions having standard 4 prefixes (S D C Z) - */ -CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX); -CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX); -CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX); -CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX); - -/* - * =========================================================================== - * Prototypes for level 1 BLAS routines - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (s, d, c, z) - */ -void cblas_sswap(const int N, float *X, const int incX, - float *Y, const int incY); -void cblas_scopy(const int N, const float *X, const int incX, - float *Y, const int incY); -void cblas_saxpy(const int N, const float alpha, const float *X, - const int incX, float *Y, const int incY); - -void cblas_dswap(const int N, double *X, const int incX, - double *Y, const int incY); -void cblas_dcopy(const int N, const double *X, const int incX, - double *Y, const int incY); -void cblas_daxpy(const int N, const double alpha, const double *X, - const int incX, double *Y, const int incY); - -void cblas_cswap(const int N, void *X, const int incX, - void *Y, const int incY); -void cblas_ccopy(const int N, const void *X, const int incX, - void *Y, const int incY); -void cblas_caxpy(const int N, const void *alpha, const void *X, - const int incX, void *Y, const int incY); - -void cblas_zswap(const int N, void *X, const int incX, - void *Y, const int incY); -void cblas_zcopy(const int N, const void *X, const int incX, - void *Y, const int incY); -void cblas_zaxpy(const int N, const void *alpha, const void *X, - const int incX, void *Y, const int incY); - - -/* - * Routines with S and D prefix only - */ -void cblas_srotg(float *a, float *b, float *c, float *s); -void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P); -void cblas_srot(const int N, float *X, const int incX, - float *Y, const int incY, const float c, const float s); -void cblas_srotm(const int N, float *X, const int incX, - float *Y, const int incY, const float *P); - -void cblas_drotg(double *a, double *b, double *c, double *s); -void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P); -void cblas_drot(const int N, double *X, const int incX, - double *Y, const int incY, const double c, const double s); -void cblas_drotm(const int N, double *X, const int incX, - double *Y, const int incY, const double *P); - - -/* - * Routines with S D C Z CS and ZD prefixes - */ -void cblas_sscal(const int N, const float alpha, float *X, const int incX); -void cblas_dscal(const int N, const double alpha, double *X, const int incX); -void cblas_cscal(const int N, const void *alpha, void *X, const int incX); -void cblas_zscal(const int N, const void *alpha, void *X, const int incX); -void cblas_csscal(const int N, const float alpha, void *X, const int incX); -void cblas_zdscal(const int N, const double alpha, void *X, const int incX); - -/* - * =========================================================================== - * Prototypes for level 2 BLAS - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (S, D, C, Z) - */ -void cblas_sgemv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const float alpha, const float *A, const int lda, - const float *X, const int incX, const float beta, - float *Y, const int incY); -void cblas_sgbmv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const float alpha, - const float *A, const int lda, const float *X, - const int incX, const float beta, float *Y, const int incY); -void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *A, const int lda, - float *X, const int incX); -void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const float *A, const int lda, - float *X, const int incX); -void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *Ap, float *X, const int incX); -void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *A, const int lda, float *X, - const int incX); -void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const float *A, const int lda, - float *X, const int incX); -void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *Ap, float *X, const int incX); - -void cblas_dgemv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const double alpha, const double *A, const int lda, - const double *X, const int incX, const double beta, - double *Y, const int incY); -void cblas_dgbmv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const double alpha, - const double *A, const int lda, const double *X, - const int incX, const double beta, double *Y, const int incY); -void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *A, const int lda, - double *X, const int incX); -void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const double *A, const int lda, - double *X, const int incX); -void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *Ap, double *X, const int incX); -void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *A, const int lda, double *X, - const int incX); -void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const double *A, const int lda, - double *X, const int incX); -void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *Ap, double *X, const int incX); - -void cblas_cgemv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *X, const int incX, const void *beta, - void *Y, const int incY); -void cblas_cgbmv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const void *alpha, - const void *A, const int lda, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, - void *X, const int incX); -void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); -void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, void *X, - const int incX); -void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); - -void cblas_zgemv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *X, const int incX, const void *beta, - void *Y, const int incY); -void cblas_zgbmv(const enum CBLAS_ORDER order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const void *alpha, - const void *A, const int lda, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, - void *X, const int incX); -void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); -void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, void *X, - const int incX); -void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); - - -/* - * Routines with S and D prefixes only - */ -void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *A, - const int lda, const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const float alpha, const float *A, - const int lda, const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *Ap, - const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N, - const float alpha, const float *X, const int incX, - const float *Y, const int incY, float *A, const int lda); -void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, float *A, const int lda); -void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, float *Ap); -void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY, float *A, - const int lda); -void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY, float *A); - -void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *A, - const int lda, const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const double alpha, const double *A, - const int lda, const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *Ap, - const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N, - const double alpha, const double *X, const int incX, - const double *Y, const int incY, double *A, const int lda); -void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, double *A, const int lda); -void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, double *Ap); -void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, const double *Y, const int incY, double *A, - const int lda); -void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, const double *Y, const int incY, double *A); - - -/* - * Routines with C and Z prefixes only - */ -void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *Ap, - const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const void *X, const int incX, - void *A, const int lda); -void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const void *X, - const int incX, void *A); -void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *Ap); - -void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *Ap, - const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const void *X, const int incX, - void *A, const int lda); -void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const void *X, - const int incX, void *A); -void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *Ap); - -/* - * =========================================================================== - * Prototypes for level 3 BLAS - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (S, D, C, Z) - */ -void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const float alpha, const float *A, - const int lda, const float *B, const int ldb, - const float beta, float *C, const int ldc); -void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const float alpha, const float *A, const int lda, - const float *B, const int ldb, const float beta, - float *C, const int ldc); -void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const float *A, const int lda, - const float beta, float *C, const int ldc); -void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const float *A, const int lda, - const float *B, const int ldb, const float beta, - float *C, const int ldc); -void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const float alpha, const float *A, const int lda, - float *B, const int ldb); -void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const float alpha, const float *A, const int lda, - float *B, const int ldb); - -void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const double alpha, const double *A, - const int lda, const double *B, const int ldb, - const double beta, double *C, const int ldc); -void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const double alpha, const double *A, const int lda, - const double *B, const int ldb, const double beta, - double *C, const int ldc); -void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const double *A, const int lda, - const double beta, double *C, const int ldc); -void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const double *A, const int lda, - const double *B, const int ldb, const double beta, - double *C, const int ldc); -void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const double alpha, const double *A, const int lda, - double *B, const int ldb); -void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const double alpha, const double *A, const int lda, - double *B, const int ldb); - -void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const void *alpha, const void *A, - const int lda, const void *B, const int ldb, - const void *beta, void *C, const int ldc); -void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *beta, void *C, const int ldc); -void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); -void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); - -void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const void *alpha, const void *A, - const int lda, const void *B, const int ldb, - const void *beta, void *C, const int ldc); -void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *beta, void *C, const int ldc); -void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); -void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); - - -/* - * Routines with prefixes C and Z only - */ -void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const void *A, const int lda, - const float beta, void *C, const int ldc); -void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const float beta, - void *C, const int ldc); - -void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const void *A, const int lda, - const double beta, void *C, const int ldc); -void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const double beta, - void *C, const int ldc); - -void cblas_xerbla(int p, const char *rout, const char *form, ...); - - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/src/include/gnu/stubs-32.h b/src/include/gnu/stubs-32.h deleted file mode 100644 index 1404dcd..0000000 --- a/src/include/gnu/stubs-32.h +++ /dev/null @@ -1,24 +0,0 @@ -/* This file is automatically generated. - It defines a symbol `__stub_FUNCTION' for each function - in the C library which is a stub, meaning it will fail - every time called, usually setting errno to ENOSYS. */ - -#ifdef _LIBC - #error Applications may not define the macro _LIBC -#endif - -#define __stub___kernel_cosl -#define __stub___kernel_sinl -#define __stub___kernel_tanl -#define __stub_chflags -#define __stub_fattach -#define __stub_fchflags -#define __stub_fdetach -#define __stub_gtty -#define __stub_lchmod -#define __stub_lutimes -#define __stub_revoke -#define __stub_setlogin -#define __stub_sigreturn -#define __stub_sstk -#define __stub_stty diff --git a/src/include/magma.h b/src/include/magma.h deleted file mode 100644 index be63567..0000000 --- a/src/include/magma.h +++ /dev/null @@ -1,336 +0,0 @@ -/* - -- MAGMA (version 1.3.0) -- - Univ. of Tennessee, Knoxville - Univ. of California, Berkeley - Univ. of Colorado, Denver - November 2012 -*/ - -/*#include */ - -#ifndef _MAGMA_ -#define _MAGMA_ - -/* ------------------------------------------------------------ - * MAGMA Blas Functions - * --------------------------------------------------------- */ -#include "magmablas.h" - -/* ------------------------------------------------------------ - * MAGMA functions - * --------------------------------------------------------- */ -#include "magma_z.h" -#include "magma_c.h" -#include "magma_d.h" -#include "magma_s.h" -#include "magma_zc.h" -#include "magma_ds.h" - -/* ------------------------------------------------------------ - * MAGMA constants - * --------------------------------------------------------- */ -#define MAGMA_VERSION_MAJOR 1 -#define MAGMA_VERSION_MINOR 3 -#define MAGMA_VERSION_MICRO 0 - -#define MagmaNoTrans 'N' -#define MagmaTrans 'T' -#define MagmaConjTrans 'C' - -#define MagmaUpper 'U' -#define MagmaLower 'L' -#define MagmaUpperLower 'A' - -#define MagmaNonUnit 'N' -#define MagmaUnit 'U' - -#define MagmaLeft 'L' -#define MagmaRight 'R' - -#define MagmaForward 'F' -#define MagmaBackward 'B' - -#define MagmaColumnwise 'C' -#define MagmaRowwise 'R' - -#define MagmaNoVectors 'N' -#define MagmaVectors 'V' - -#define MagmaNoTransStr "NonTrans" -#define MagmaTransStr "Trans" -#define MagmaConjTransStr "Conj" - -#define MagmaUpperStr "Upper" -#define MagmaLowerStr "Lower" -#define MagmaUpperLowerStr "All" - -#define MagmaNonUnitStr "NonUnit" -#define MagmaUnitStr "Unit" - -#define MagmaLeftStr "Left" -#define MagmaRightStr "Right" - -#define MagmaForwardStr "Forward" -#define MagmaBackwardStr "Backward" - -#define MagmaColumnwiseStr "Columnwise" -#define MagmaRowwiseStr "Rowwise" - -#define MagmaNoVectorsStr "NoVectors" -#define MagmaVectorsStr "Vectors" - -/* ------------------------------------------------------------ - * Return codes - * LAPACK argument errors are < 0 but > MAGMA_ERR. - * MAGMA errors are < MAGMA_ERR. - * --------------------------------------------------------- */ -#define MAGMA_SUCCESS 0 -#define MAGMA_ERR -100 -#define MAGMA_ERR_NOT_INITIALIZED -101 -#define MAGMA_ERR_REINITIALIZED -102 -#define MAGMA_ERR_NOT_SUPPORTED -103 -#define MAGMA_ERR_ILLEGAL_VALUE -104 -#define MAGMA_ERR_NOT_FOUND -105 -#define MAGMA_ERR_OUT_OF_RESOURCES -106 -#define MAGMA_ERR_ALLOCATION -106 -#define MAGMA_ERR_INTERNAL_LIMIT -107 -#define MAGMA_ERR_UNALLOCATED -108 -#define MAGMA_ERR_FILESYSTEM -109 -#define MAGMA_ERR_UNEXPECTED -110 -#define MAGMA_ERR_SEQUENCE_FLUSHED -111 -#define MAGMA_ERR_HOST_ALLOC -112 -#define MAGMA_ERR_DEVICE_ALLOC -113 -#define MAGMA_ERR_CUDASTREAM -114 -#define MAGMA_ERR_INVALID_PTR -115 - -/* ------------------------------------------------------------ - * Define new type that will not be changed by the generator - * --------------------------------------------------------- */ -typedef double real_Double_t; - -/* ------------------------------------------------------------ - * Macros to deal with cuda complex - * --------------------------------------------------------- */ -#define MAGMA_Z_SET2REAL(v, t) {(v).x = (t); (v).y = 0.0;} -#define MAGMA_Z_EQUAL(u,v) (((u).x == (v).x) && ((u).y == (v).y)) -#define MAGMA_Z_DSCALE(v, t, s) {(v).x = (t).x/(s); (v).y = (t).y/(s);} -#define MAGMA_Z_MAKE(r, i) make_cuDoubleComplex((r), (i)) -#define MAGMA_Z_REAL(a) cuCreal(a) -#define MAGMA_Z_IMAG(a) cuCimag(a) -#define MAGMA_Z_ADD(a, b) cuCadd((a), (b)) -#define MAGMA_Z_SUB(a, b) cuCsub((a), (b)) -#define MAGMA_Z_MUL(a, b) cuCmul((a), (b)) -#define MAGMA_Z_DIV(a, b) cuCdiv((a), (b)) -#define MAGMA_Z_ABS(a) cuCabs((a)) -#define MAGMA_Z_CNJG(a) cuConj(a) -#define MAGMA_Z_NEGATE(a) make_cuDoubleComplex( -(a).x, -(a).y ) -#define MAGMA_Z_ZERO make_cuDoubleComplex(0.0, 0.0) -#define MAGMA_Z_ONE make_cuDoubleComplex(1.0, 0.0) -#define MAGMA_Z_HALF make_cuDoubleComplex(0.5, 0.0) -#define MAGMA_Z_NEG_ONE make_cuDoubleComplex(-1.0, 0.0) -#define MAGMA_Z_NEG_HALF make_cuDoubleComplex(-0.5, 0.0) - -#define MAGMA_C_SET2REAL(v, t) {(v).x = (t); (v).y = 0.0;} -#define MAGMA_C_EQUAL(u,v) (((u).x == (v).x) && ((u).y == (v).y)) -#define MAGMA_C_SSCALE(v, t, s) {(v).x = (t).x/(s); (v).y = (t).y/(s);} -#define MAGMA_C_MAKE(r, i) make_cuFloatComplex((r), (i)) -#define MAGMA_C_REAL(a) cuCrealf(a) -#define MAGMA_C_IMAG(a) cuCimagf(a) -#define MAGMA_C_ADD(a, b) cuCaddf((a), (b)) -#define MAGMA_C_SUB(a, b) cuCsubf((a), (b)) -#define MAGMA_C_MUL(a, b) cuCmulf((a), (b)) -#define MAGMA_C_DIV(a, b) cuCdivf((a), (b)) -#define MAGMA_C_ABS(a) cuCabsf((a)) -#define MAGMA_C_CNJG(a) cuConjf(a) -#define MAGMA_C_NEGATE(a) make_cuFloatComplex( -(a).x, -(a).y ) -#define MAGMA_C_ZERO make_cuFloatComplex(0.0, 0.0) -#define MAGMA_C_ONE make_cuFloatComplex(1.0, 0.0) -#define MAGMA_C_HALF make_cuFloatComplex(0.5, 0.0) -#define MAGMA_C_NEG_ONE make_cuFloatComplex(-1.0, 0.0) -#define MAGMA_C_NEG_HALF make_cuFloatComplex(-0.5, 0.0) - -#define MAGMA_D_SET2REAL(v, t) (v) = (t) -#define MAGMA_D_OP_NEG_ASGN(t, z) (t) = -(z) -#define MAGMA_D_EQUAL(u,v) ((u) == (v)) -#define MAGMA_D_DSCALE(v, t, s) (v) = (t)/(s) -#define MAGMA_D_MAKE(r, i) (r) -#define MAGMA_D_REAL(a) (a) -#define MAGMA_D_IMAG(a) (a) -#define MAGMA_D_ADD(a, b) ( (a) + (b) ) -#define MAGMA_D_SUB(a, b) ( (a) - (b) ) -#define MAGMA_D_MUL(a, b) ( (a) * (b) ) -#define MAGMA_D_DIV(a, b) ( (a) / (b) ) -#define MAGMA_D_ABS(a) ((a)>0?(a):-(a)) -#define MAGMA_D_CNJG(a) (a) -#define MAGMA_D_NEGATE(a) (-(a)) -#define MAGMA_D_ZERO (0.0) -#define MAGMA_D_ONE (1.0) -#define MAGMA_D_HALF (0.5) -#define MAGMA_D_NEG_ONE (-1.0) -#define MAGMA_D_NEG_HALF (-0.5) - -#define MAGMA_S_SET2REAL(v, t) (v) = (t) -#define MAGMA_S_OP_NEG_ASGN(t, z) (t) = -(z) -#define MAGMA_S_EQUAL(u,v) ((u) == (v)) -#define MAGMA_S_SSCALE(v, t, s) (v) = (t)/(s) -#define MAGMA_S_MAKE(r, i) (r) -#define MAGMA_S_REAL(a) (a) -#define MAGMA_S_IMAG(a) (a) -#define MAGMA_S_ADD(a, b) ( (a) + (b) ) -#define MAGMA_S_SUB(a, b) ( (a) - (b) ) -#define MAGMA_S_MUL(a, b) ( (a) * (b) ) -#define MAGMA_S_DIV(a, b) ( (a) / (b) ) -#define MAGMA_S_ABS(a) ((a)>0?(a):-(a)) -#define MAGMA_S_CNJG(a) (a) -#define MAGMA_S_NEGATE(a) (-(a)) -#define MAGMA_S_ZERO (0.0) -#define MAGMA_S_ONE (1.0) -#define MAGMA_S_HALF (0.5) -#define MAGMA_S_NEG_ONE (-1.0) -#define MAGMA_S_NEG_HALF (-0.5) - -#ifndef CBLAS_SADDR -#define CBLAS_SADDR(a) &(a) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------------------------------------------------ - * -- MAGMA function definitions - * --------------------------------------------------------- */ - -// ======================================== -// initialization -void magma_init( void ); -void magma_finalize( void ); -void magma_version( int* major, int* minor, int* micro ); - -// ======================================== -// memory allocation -magma_err_t magma_malloc( magma_devptr *ptrPtr, size_t bytes ); -magma_err_t magma_free ( magma_devptr ptr ); - -magma_err_t magma_malloc_cpu( void **ptrPtr, size_t bytes ); -magma_err_t magma_free_cpu ( void *ptr ); - -magma_err_t magma_malloc_pinned( void **ptrPtr, size_t bytes ); -magma_err_t magma_free_pinned ( void *ptr ); - -// type-safe convenience functions to avoid using (void**) cast and sizeof(...) -// here n is the number of elements (floats, doubles, etc.) not the number of bytes. -static inline magma_err_t magma_smalloc( float **ptrPtr, size_t n ) { return magma_malloc( (void**) ptrPtr, n*sizeof(float) ); } -static inline magma_err_t magma_dmalloc( double **ptrPtr, size_t n ) { return magma_malloc( (void**) ptrPtr, n*sizeof(double) ); } -static inline magma_err_t magma_cmalloc( cuFloatComplex **ptrPtr, size_t n ) { return magma_malloc( (void**) ptrPtr, n*sizeof(cuFloatComplex) ); } -static inline magma_err_t magma_zmalloc( cuDoubleComplex **ptrPtr, size_t n ) { return magma_malloc( (void**) ptrPtr, n*sizeof(cuDoubleComplex) ); } - -static inline magma_err_t magma_smalloc_cpu( float **ptrPtr, size_t n ) { return magma_malloc_cpu( (void**) ptrPtr, n*sizeof(float) ); } -static inline magma_err_t magma_dmalloc_cpu( double **ptrPtr, size_t n ) { return magma_malloc_cpu( (void**) ptrPtr, n*sizeof(double) ); } -static inline magma_err_t magma_cmalloc_cpu( cuFloatComplex **ptrPtr, size_t n ) { return magma_malloc_cpu( (void**) ptrPtr, n*sizeof(cuFloatComplex) ); } -static inline magma_err_t magma_zmalloc_cpu( cuDoubleComplex **ptrPtr, size_t n ) { return magma_malloc_cpu( (void**) ptrPtr, n*sizeof(cuDoubleComplex) ); } - -static inline magma_err_t magma_smalloc_pinned( float **ptrPtr, size_t n ) { return magma_malloc_pinned( (void**) ptrPtr, n*sizeof(float) ); } -static inline magma_err_t magma_dmalloc_pinned( double **ptrPtr, size_t n ) { return magma_malloc_pinned( (void**) ptrPtr, n*sizeof(double) ); } -static inline magma_err_t magma_cmalloc_pinned( cuFloatComplex **ptrPtr, size_t n ) { return magma_malloc_pinned( (void**) ptrPtr, n*sizeof(cuFloatComplex) ); } -static inline magma_err_t magma_zmalloc_pinned( cuDoubleComplex **ptrPtr, size_t n ) { return magma_malloc_pinned( (void**) ptrPtr, n*sizeof(cuDoubleComplex) ); } - - -// ======================================== -// device & queue support -void magma_getdevices( - magma_device_t* devices, - magma_int_t size, - magma_int_t* numPtr ); - -void magma_getdevice( magma_device_t* dev ); - -void magma_setdevice( magma_device_t dev ); - -void magma_device_sync(); - - -// ======================================== -// queue support -void magma_queue_create( /*magma_device_t device,*/ magma_queue_t* queuePtr ); - -void magma_queue_destroy( magma_queue_t queue ); - -void magma_queue_sync( magma_queue_t queue ); - - -// ======================================== -// event support -void magma_event_create( magma_event_t* eventPtr ); - -void magma_event_destroy( magma_event_t event ); - -void magma_event_record( magma_event_t event, magma_queue_t queue ); - -// blocks CPU until event occurs -void magma_event_sync( magma_event_t event ); - -// blocks queue (but not CPU) until event occurs -void magma_queue_wait_event( magma_queue_t queue, magma_event_t event ); - -// magma GPU-complex connection -int magma_buildconnection_mgpu( magma_int_t gnode[MagmaMaxGPUs+2][MagmaMaxGPUs+2], magma_int_t *nbcmplx, magma_int_t ngpu); - - - -// ======================================== -// generic, type-independent routines to copy data. -// type-safe versions which avoid the user needing sizeof(...) are in [sdcz]set_get.cpp -void magma_setvector( - magma_int_t n, size_t elemSize, - void const *hx_src, magma_int_t incx, - void *dy_dst, magma_int_t incy ); - -void magma_getvector( - magma_int_t n, size_t elemSize, - void const *dx_src, magma_int_t incx, - void *hy_dst, magma_int_t incy ); - -void magma_setvector_async( - magma_int_t n, size_t elemSize, - void const *hx_src, magma_int_t incx, - void *dy_dst, magma_int_t incy, - magma_stream_t stream ); - -void magma_getvector_async( - magma_int_t n, size_t elemSize, - void const *dx_src, magma_int_t incx, - void *hy_dst, magma_int_t incy, - magma_stream_t stream ); - - -// ======================================== -// error handler -void magma_xerbla( const char *name, magma_int_t info ); - -/* ------------------------------------------------------------ - * -- MAGMA Auxiliary structures and functions - * --------------------------------------------------------- */ -typedef struct magma_timestr_s -{ - unsigned int sec; - unsigned int usec; -} magma_timestr_t; - -magma_timestr_t get_current_time(void); -double GetTimerValue(magma_timestr_t time_1, magma_timestr_t time_2); -void printout_devices(); -void swp2pswp(char trans, magma_int_t n, magma_int_t *ipiv, magma_int_t *newipiv); -float getv(float *da); - -double magma_wtime( void ); -double magma_sync_wtime( magma_queue_t queue ); -size_t magma_strlcpy(char *dst, const char *src, size_t siz); -int magma_num_gpus( void ); -int magma_is_devptr( const void* A ); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/include/magma_bulge.h b/src/include/magma_bulge.h deleted file mode 100644 index 0fbbb1c..0000000 --- a/src/include/magma_bulge.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - -- MAGMA (version 1.3.0) -- - Univ. of Tennessee, Knoxville - Univ. of California, Berkeley - Univ. of Colorado, Denver - November 2012 -*/ - -#ifndef _MAGMA_BULGE_H_ -#define _MAGMA_BULGE_H_ - -#ifdef __cplusplus -extern "C"{ -#endif - - inline magma_int_t magma_ceildiv(magma_int_t a, magma_int_t b) - { - return (a+b-1)/b; - } - - magma_int_t magma_bulge_get_nb(magma_int_t n); - - void cmp_vals(int n, double *wr1, double *wr2, double *nrmI, double *nrm1, double *nrm2); - - void magma_bulge_findVTAUpos(magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t ldv, - magma_int_t *Vpos, magma_int_t *TAUpos); - - void magma_bulge_findVTpos(magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t ldv, magma_int_t ldt, - magma_int_t *Vpos, magma_int_t *Tpos); - - void magma_bulge_findVTAUTpos(magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t ldv, magma_int_t ldt, - magma_int_t *Vpos, magma_int_t *TAUpos, magma_int_t *Tpos, magma_int_t *blkid); - - magma_int_t magma_bulge_get_blkcnt(magma_int_t n, magma_int_t nb, magma_int_t Vblksiz); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/include/magma_c.h b/src/include/magma_c.h deleted file mode 100644 index 5a114fc..0000000 --- a/src/include/magma_c.h +++ /dev/null @@ -1,514 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated c Wed Nov 14 22:52:26 2012 - */ - -#ifndef _MAGMA_C_H_ -#define _MAGMA_C_H_ -#define PRECISION_c - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA Auxiliary functions to get the NB used -*/ -int magma_get_cpotrf_nb(int m); -int magma_get_cgetrf_nb(int m); -int magma_get_cgetri_nb(int m); -int magma_get_cgeqp3_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); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on CPU -*/ -magma_int_t magma_cgebrd( magma_int_t m, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, float *d, float *e, - cuFloatComplex *tauq, cuFloatComplex *taup, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgehrd2(magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuFloatComplex *A, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info); -magma_int_t magma_cgehrd( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuFloatComplex *A, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, - cuFloatComplex *d_T, magma_int_t *info); -magma_int_t magma_cgelqf( magma_int_t m, magma_int_t n, - cuFloatComplex *A, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgeqlf( magma_int_t m, magma_int_t n, - cuFloatComplex *A, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgeqrf( magma_int_t m, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, cuFloatComplex *tau, cuFloatComplex *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgeqr2( magma_int_t *m, magma_int_t *n, cuFloatComplex *a, - magma_int_t *lda, cuFloatComplex *tau, cuFloatComplex *work, - magma_int_t *info); -magma_int_t magma_cgeqrf4(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info ); -magma_int_t magma_cgeqrf_ooc( magma_int_t m, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, cuFloatComplex *tau, cuFloatComplex *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgesv ( magma_int_t n, magma_int_t nrhs, - cuFloatComplex *A, magma_int_t lda, magma_int_t *ipiv, - cuFloatComplex *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_cgetrf( magma_int_t m, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, magma_int_t *ipiv, - magma_int_t *info); -magma_int_t magma_cgetrf2(magma_int_t m, magma_int_t n, cuFloatComplex *a, - magma_int_t lda, magma_int_t *ipiv, magma_int_t *info); - -magma_int_t magma_claqps( magma_int_t m, magma_int_t n, magma_int_t offset, - magma_int_t nb, magma_int_t *kb, - cuFloatComplex *A, magma_int_t lda, - cuFloatComplex *dA, magma_int_t ldda, - magma_int_t *jpvt, cuFloatComplex *tau, float *vn1, float *vn2, - cuFloatComplex *auxv, - cuFloatComplex *F, magma_int_t ldf, - cuFloatComplex *dF, magma_int_t lddf ); -magma_int_t magma_clarf( char *side, magma_int_t *m, magma_int_t *n, - cuFloatComplex *v, magma_int_t *incv, cuFloatComplex *tau, - cuFloatComplex *c__, magma_int_t *ldc, cuFloatComplex *work); -magma_int_t magma_clarfg( magma_int_t *n, cuFloatComplex *alpha, cuFloatComplex *x, - magma_int_t *incx, cuFloatComplex *tau); -magma_int_t magma_clatrd( char uplo, magma_int_t n, magma_int_t nb, cuFloatComplex *a, - magma_int_t lda, float *e, cuFloatComplex *tau, - cuFloatComplex *w, magma_int_t ldw, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *dw, magma_int_t lddw); -magma_int_t magma_clatrd2(char uplo, magma_int_t n, magma_int_t nb, - cuFloatComplex *a, magma_int_t lda, - float *e, cuFloatComplex *tau, - cuFloatComplex *w, magma_int_t ldw, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *dw, magma_int_t lddw, - cuFloatComplex *dwork, magma_int_t ldwork); -magma_int_t magma_clahr2( magma_int_t m, magma_int_t n, magma_int_t nb, - cuFloatComplex *da, cuFloatComplex *dv, cuFloatComplex *a, - magma_int_t lda, cuFloatComplex *tau, cuFloatComplex *t, - magma_int_t ldt, cuFloatComplex *y, magma_int_t ldy); -magma_int_t magma_clahru( magma_int_t n, magma_int_t ihi, magma_int_t k, magma_int_t nb, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *da, cuFloatComplex *y, - cuFloatComplex *v, cuFloatComplex *t, - cuFloatComplex *dwork); -magma_int_t magma_cposv ( char uplo, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *A, magma_int_t lda, - cuFloatComplex *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_cpotrf( char uplo, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_cpotri( char uplo, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_clauum( char uplo, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_ctrtri( char uplo, char diag, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_chetrd( char uplo, magma_int_t n, cuFloatComplex *A, - magma_int_t lda, float *d, float *e, - cuFloatComplex *tau, cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cungqr( magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *tau, cuFloatComplex *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_cunmql( const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *tau, - cuFloatComplex *c, magma_int_t ldc, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cunmqr( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *a, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *c, magma_int_t ldc, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cunmtr( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *tau, - cuFloatComplex *c, magma_int_t ldc, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cunghr( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *tau, - cuFloatComplex *dT, magma_int_t nb, - magma_int_t *info); -magma_int_t magma_cheev( char jobz, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float *w, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_cheevx(char jobz, char range, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, cuFloatComplex *z, magma_int_t ldz, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_cgeev( char jobvl, char jobvr, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *w, - cuFloatComplex *vl, magma_int_t ldvl, - cuFloatComplex *vr, magma_int_t ldvr, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_cgeqp3( magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - magma_int_t *jpvt, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_cgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float *s, - cuFloatComplex *u, magma_int_t ldu, - cuFloatComplex *vt, magma_int_t ldvt, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *info ); -magma_int_t magma_cheevd( char jobz, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float *w, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_cheevr( char jobz, char range, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, cuFloatComplex *z, magma_int_t ldz, - magma_int_t *isuppz, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_chegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, - float *w, cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_chegvdx(magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - magma_int_t *m, float *w, cuFloatComplex *work, - magma_int_t lwork, float *rwork, - magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_chegvx( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, float *w, - cuFloatComplex *z, magma_int_t ldz, - cuFloatComplex *work, magma_int_t lwork, float *rwork, - magma_int_t *iwork, magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_chegvr( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, float *w, - cuFloatComplex *z, magma_int_t ldz, - magma_int_t *isuppz, cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_cstedx( char range, magma_int_t n, float vl, float vu, - magma_int_t il, magma_int_t iu, float *D, float *E, - cuFloatComplex *Z, magma_int_t ldz, - float *rwork, magma_int_t ldrwork, magma_int_t *iwork, - magma_int_t liwork, float* dwork, magma_int_t *info); -#else -magma_int_t magma_cgeev( char jobvl, char jobvr, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *wr, cuFloatComplex *wi, - cuFloatComplex *vl, magma_int_t ldvl, - cuFloatComplex *vr, magma_int_t ldvr, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cgeqp3( magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - magma_int_t *jpvt, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float *s, - cuFloatComplex *u, magma_int_t ldu, - cuFloatComplex *vt, magma_int_t ldvt, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info ); -magma_int_t magma_cheevd( char jobz, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, float *w, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_chegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, - float *w, cuFloatComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_cstedx( char range, magma_int_t n, float vl, float vu, - magma_int_t il, magma_int_t iu, float* d, float* e, - float* z, magma_int_t ldz, - float* work, magma_int_t lwork, - magma_int_t* iwork, magma_int_t liwork, - float* dwork, magma_int_t* info); -magma_int_t magma_claex0( magma_int_t n, float* d, float* e, float* q, magma_int_t ldq, - float* work, magma_int_t* iwork, float* dwork, - char range, float vl, float vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_claex1( magma_int_t n, float* d, float* q, magma_int_t ldq, - magma_int_t* indxq, float rho, magma_int_t cutpnt, - float* work, magma_int_t* iwork, float* dwork, - char range, float vl, float vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_claex3( magma_int_t k, magma_int_t n, magma_int_t n1, float* d, - float* q, magma_int_t ldq, float rho, - float* dlamda, float* q2, magma_int_t* indx, - magma_int_t* ctot, float* w, float* s, magma_int_t* indxq, - float* dwork, - char range, float vl, float vu, magma_int_t il, magma_int_t iu, - magma_int_t* info ); -#endif - -magma_int_t magma_chegst( magma_int_t itype, char uplo, magma_int_t n, - cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *b, magma_int_t ldb, magma_int_t *info); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on GPU -*/ -magma_int_t magma_cgels_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cgels3_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_cgelqf_gpu( magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, cuFloatComplex *tau, - cuFloatComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgeqrf_gpu( magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *tau, cuFloatComplex *dT, - magma_int_t *info); -magma_int_t magma_cgeqrf2_gpu(magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *tau, magma_int_t *info); -magma_int_t magma_cgeqrf2_mgpu(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - cuFloatComplex **dlA, magma_int_t ldda, - cuFloatComplex *tau, magma_int_t *info ); -magma_int_t magma_cgeqrf3_gpu(magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *tau, cuFloatComplex *dT, - magma_int_t *info); -magma_int_t magma_cgeqrs_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *tau, cuFloatComplex *dT, - cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_cgeqrs3_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *tau, cuFloatComplex *dT, - cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_cgessm_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t k, magma_int_t ib, - magma_int_t *ipiv, - cuFloatComplex *dL1, magma_int_t lddl1, - cuFloatComplex *dL, magma_int_t lddl, - cuFloatComplex *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_cgesv_gpu( magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuFloatComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_cgetrf_incpiv_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, - cuFloatComplex *hA, magma_int_t ldha, cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *hL, magma_int_t ldhl, cuFloatComplex *dL, magma_int_t lddl, - magma_int_t *ipiv, - cuFloatComplex *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_cgetrf_gpu( magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t *info); -magma_int_t -magma_cgetrf_nopiv_gpu ( magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_cgetri_gpu( magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuFloatComplex *dwork, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_cgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuFloatComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_clabrd_gpu( magma_int_t m, magma_int_t n, magma_int_t nb, - cuFloatComplex *a, magma_int_t lda, cuFloatComplex *da, magma_int_t ldda, - float *d, float *e, cuFloatComplex *tauq, cuFloatComplex *taup, - cuFloatComplex *x, magma_int_t ldx, cuFloatComplex *dx, magma_int_t lddx, - cuFloatComplex *y, magma_int_t ldy, cuFloatComplex *dy, magma_int_t lddy); -magma_int_t magma_clarfb_gpu( char side, char trans, char direct, char storev, - magma_int_t m, magma_int_t n, magma_int_t k, - const cuFloatComplex *dv, magma_int_t ldv, - const cuFloatComplex *dt, magma_int_t ldt, - cuFloatComplex *dc, magma_int_t ldc, - cuFloatComplex *dwork, magma_int_t ldwork ); -magma_int_t magma_cposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_cpotrf_gpu( char uplo, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_cpotri_gpu( char uplo, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_clauum_gpu( char uplo, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_ctrtri_gpu( char uplo, char diag, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_chetrd_gpu( char uplo, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - float *d, float *e, cuFloatComplex *tau, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_chetrd2_gpu(char uplo, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - float *d, float *e, cuFloatComplex *tau, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *work, magma_int_t lwork, - cuFloatComplex *dwork, magma_int_t ldwork, - magma_int_t *info); -magma_int_t magma_cpotrs_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_cssssm_gpu( char storev, magma_int_t m1, magma_int_t n1, - magma_int_t m2, magma_int_t n2, magma_int_t k, magma_int_t ib, - cuFloatComplex *dA1, magma_int_t ldda1, - cuFloatComplex *dA2, magma_int_t ldda2, - cuFloatComplex *dL1, magma_int_t lddl1, - cuFloatComplex *dL2, magma_int_t lddl2, - magma_int_t *IPIV, magma_int_t *info); -magma_int_t magma_ctstrf_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, magma_int_t nb, - cuFloatComplex *hU, magma_int_t ldhu, cuFloatComplex *dU, magma_int_t lddu, - cuFloatComplex *hA, magma_int_t ldha, cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *hL, magma_int_t ldhl, cuFloatComplex *dL, magma_int_t lddl, - magma_int_t *ipiv, - cuFloatComplex *hwork, magma_int_t ldhwork, - cuFloatComplex *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_cungqr_gpu( magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *tau, cuFloatComplex *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_cunmql2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *tau, - cuFloatComplex *dc, magma_int_t lddc, - cuFloatComplex *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_cunmqr_gpu( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *a, magma_int_t lda, cuFloatComplex *tau, - cuFloatComplex *c, magma_int_t ldc, - cuFloatComplex *work, magma_int_t lwork, - cuFloatComplex *td, magma_int_t nb, magma_int_t *info); -magma_int_t magma_cunmqr2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *tau, - cuFloatComplex *dc, magma_int_t lddc, - cuFloatComplex *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_cunmtr_gpu( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *tau, - cuFloatComplex *dc, magma_int_t lddc, - cuFloatComplex *wa, magma_int_t ldwa, - magma_int_t *info); - -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_cheevd_gpu( char jobz, char uplo, - magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - float *w, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_cheevdx_gpu(char jobz, char range, char uplo, - magma_int_t n, cuFloatComplex *da, - magma_int_t ldda, float vl, float vu, - magma_int_t il, magma_int_t iu, - magma_int_t *m, float *w, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_cheevr_gpu( char jobz, char range, char uplo, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, cuFloatComplex *dz, magma_int_t lddz, - magma_int_t *isuppz, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *wz, magma_int_t ldwz, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -#else -magma_int_t magma_cheevd_gpu( char jobz, char uplo, - magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *w, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -#endif - -magma_int_t magma_cheevx_gpu( char jobz, char range, char uplo, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, float vl, - float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, - float *w, cuFloatComplex *dz, magma_int_t lddz, - cuFloatComplex *wa, magma_int_t ldwa, - cuFloatComplex *wz, magma_int_t ldwz, - cuFloatComplex *work, magma_int_t lwork, - float *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_chegst_gpu(magma_int_t itype, char uplo, magma_int_t n, - cuFloatComplex *da, magma_int_t ldda, - cuFloatComplex *db, magma_int_t lddb, magma_int_t *info); - - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA utility function definitions -*/ - -void magma_cprint ( magma_int_t m, magma_int_t n, const cuFloatComplex *A, magma_int_t lda ); -void magma_cprint_gpu( magma_int_t m, magma_int_t n, const cuFloatComplex *dA, magma_int_t ldda ); - -void cpanel_to_q( char uplo, magma_int_t ib, cuFloatComplex *A, magma_int_t lda, cuFloatComplex *work ); -void cq_to_panel( char uplo, magma_int_t ib, cuFloatComplex *A, magma_int_t lda, cuFloatComplex *work ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_c -#endif /* _MAGMA_C_H_ */ diff --git a/src/include/magma_cbulge.h b/src/include/magma_cbulge.h deleted file mode 100644 index 2c4d808..0000000 --- a/src/include/magma_cbulge.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated c Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_CBULGEINC_H -#define MAGMA_CBULGEINC_H - -#define PRECISION_c - -extern "C" { - magma_int_t magma_chetrd_he2hb(char uplo, magma_int_t n, magma_int_t NB, cuFloatComplex *a, magma_int_t lda, - cuFloatComplex *tau, cuFloatComplex *work, magma_int_t lwork, cuFloatComplex *dT, magma_int_t threads, magma_int_t *info); - - magma_int_t magma_chetrd_hb2st(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, - cuFloatComplex *A, magma_int_t lda, float *D, float *E, - cuFloatComplex *V, magma_int_t ldv, cuFloatComplex *TAU, magma_int_t compT, cuFloatComplex *T, magma_int_t ldt); - - magma_int_t magma_cbulge_back(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t ne, magma_int_t Vblksiz, - cuFloatComplex *Z, magma_int_t ldz, cuFloatComplex *dZ, magma_int_t lddz, - cuFloatComplex *V, magma_int_t ldv, cuFloatComplex *TAU, cuFloatComplex *T, magma_int_t ldt, magma_int_t* info); - - magma_int_t magma_cunmqr_gpu_2stages(char side, char trans, magma_int_t m, magma_int_t n, magma_int_t k, cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dC, magma_int_t lddc, cuFloatComplex *dT, magma_int_t nb, magma_int_t *info); - - magma_int_t magma_cbulge_get_lq2(magma_int_t n); - - magma_int_t magma_cbulge_get_Vblksiz(magma_int_t n, magma_int_t nb); -} -#endif diff --git a/src/include/magma_cbulgeinc.h b/src/include/magma_cbulgeinc.h deleted file mode 100644 index c5a8165..0000000 --- a/src/include/magma_cbulgeinc.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated c Wed Nov 14 22:52:28 2012 - */ - -#ifndef MAGMA_CBULGEINC_H -#define MAGMA_CBULGEINC_H - -#define PRECISION_c - -#ifdef __cplusplus -extern "C" { -#endif - - -/***************************************************************************//** - * Configuration - **/ - - // maximum contexts -#define MAX_THREADS_BLG 256 - -void findVTpos(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t *Vpos, magma_int_t *TAUpos, magma_int_t *Tpos, magma_int_t *myblkid); -void findVTsiz(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t *blkcnt, magma_int_t *LDV); -magma_int_t plasma_ceildiv(magma_int_t a, magma_int_t b); - - -/* -extern volatile magma_int_t barrier_in[MAX_THREADS_BLG]; -extern volatile magma_int_t barrier_out[MAX_THREADS_BLG]; -extern volatile magma_int_t *ss_prog; -*/ - - /***************************************************************************//** - * Static scheduler - **/ -/* -#define ssched_init(nbtiles) \ -{ \ - volatile int prog_ol[2*nbtiles+10];\ - int iamdone[MAX_THREADS_BLG]; \ - int thread_num[MAX_THREADS_BLG];\ - pthread_t thread_id[MAX_THREADS_BLG];\ - pthread_attr_t thread_attr;\ -} -*/ -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - - struct gbstrct_blg { - cuFloatComplex *dQ1; - cuFloatComplex *dT1; - cuFloatComplex *dT2; - cuFloatComplex *dV2; - cuFloatComplex *dE; - cuFloatComplex *T; - cuFloatComplex *A; - cuFloatComplex *V; - cuFloatComplex *TAU; - cuFloatComplex *E; - cuFloatComplex *E_CPU; - int cores_num; - int locores_num; - int overlapQ1; - int usemulticpu; - int NB; - int NBTILES; - int N; - int NE; - int N_CPU; - int N_GPU; - int LDA; - int LDE; - int BAND; - int grsiz; - int Vblksiz; - int WANTZ; - char SIDE; - real_Double_t *timeblg; - real_Double_t *timeaplQ; - volatile int *ss_prog; -} ; - -// declare globals here; defined in chetrd_bhe2trc.cpp -extern struct gbstrct_blg core_in_all; - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////////////// -#define MAX_EVENTSBLG 163840 -//#define MAX_EVENTSBLG 1048576 - -// If we're not using GNU C, elide __attribute__ -#ifndef __GNUC__ -#define __attribute__(x) /*NOTHING*/ -#endif - -// declare globals here; defined in chetrd_bhe2trc.cpp -extern int event_numblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_start_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_end_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_logblg [MAX_THREADS_BLG][MAX_EVENTSBLG] __attribute__ ((aligned (128))); -extern int log_eventsblg; - -#ifndef __GNUC__ -#undef __attribute__ -#endif - -#define core_event_startblg(my_core_id)\ - event_start_timeblg[my_core_id] = magma_wtime(); - -#define core_event_endblg(my_core_id)\ - event_end_timeblg[my_core_id] = magma_wtime(); - -#define core_log_eventblg(event, my_core_id)\ - event_logblg[my_core_id][event_numblg[my_core_id]+0] = my_core_id;\ - event_logblg[my_core_id][event_numblg[my_core_id]+1] = event_start_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+2] = event_end_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+3] = (event);\ - event_numblg[my_core_id] += (log_eventsblg << 2);\ - event_numblg[my_core_id] &= (MAX_EVENTSBLG-1); - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_c - -#endif /* MAGMA_CBULGEINC_H */ diff --git a/src/include/magma_clapack.h b/src/include/magma_clapack.h deleted file mode 100644 index 02cd46b..0000000 --- a/src/include/magma_clapack.h +++ /dev/null @@ -1,953 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated c Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_CLAPACK_H -#define MAGMA_CLAPACK_H - -#define PRECISION_c - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- BLAS and LAPACK functions (alphabetical order) -*/ -#define blasf77_icamax FORTRAN_NAME( icamax, ICAMAX ) -#define blasf77_caxpy FORTRAN_NAME( caxpy, CAXPY ) -#define blasf77_ccopy FORTRAN_NAME( ccopy, CCOPY ) -#define blasf77_cgemm FORTRAN_NAME( cgemm, CGEMM ) -#define blasf77_cgemv FORTRAN_NAME( cgemv, CGEMV ) -#define blasf77_cgerc FORTRAN_NAME( cgerc, CGERC ) -#define blasf77_cgeru FORTRAN_NAME( cgeru, CGERU ) -#define blasf77_chemm FORTRAN_NAME( chemm, CHEMM ) -#define blasf77_chemv FORTRAN_NAME( chemv, CHEMV ) -#define blasf77_cher2 FORTRAN_NAME( cher2, CHER2 ) -#define blasf77_cher2k FORTRAN_NAME( cher2k, CHER2K ) -#define blasf77_cherk FORTRAN_NAME( cherk, CHERK ) -#define blasf77_cscal FORTRAN_NAME( cscal, CSCAL ) -#define blasf77_csscal FORTRAN_NAME( csscal, CSSCAL ) -#define blasf77_cswap FORTRAN_NAME( cswap, CSWAP ) -#define blasf77_csymm FORTRAN_NAME( csymm, CSYMM ) -#define blasf77_csyr2k FORTRAN_NAME( csyr2k, CSYR2K ) -#define blasf77_csyrk FORTRAN_NAME( csyrk, CSYRK ) -#define blasf77_ctrmm FORTRAN_NAME( ctrmm, CTRMM ) -#define blasf77_ctrmv FORTRAN_NAME( ctrmv, CTRMV ) -#define blasf77_ctrsm FORTRAN_NAME( ctrsm, CTRSM ) -#define blasf77_ctrsv FORTRAN_NAME( ctrsv, CTRSV ) - -#define lapackf77_slaed4 FORTRAN_NAME( slaed4, SLAED4 ) -#define lapackf77_slamc3 FORTRAN_NAME( slamc3, SLAMC3 ) -#define lapackf77_slamrg FORTRAN_NAME( slamrg, SLAMRG ) -#define lapackf77_sstebz FORTRAN_NAME( sstebz, SSTEBZ ) - -#define lapackf77_cbdsqr FORTRAN_NAME( cbdsqr, CBDSQR ) -#define lapackf77_cgebak FORTRAN_NAME( cgebak, CGEBAK ) -#define lapackf77_cgebal FORTRAN_NAME( cgebal, CGEBAL ) -#define lapackf77_cgebd2 FORTRAN_NAME( cgebd2, CGEBD2 ) -#define lapackf77_cgebrd FORTRAN_NAME( cgebrd, CGEBRD ) -#define lapackf77_cgeev FORTRAN_NAME( cgeev, CGEEV ) -#define lapackf77_cgehd2 FORTRAN_NAME( cgehd2, CGEHD2 ) -#define lapackf77_cgehrd FORTRAN_NAME( cgehrd, CGEHRD ) -#define lapackf77_cgelqf FORTRAN_NAME( cgelqf, CGELQF ) -#define lapackf77_cgels FORTRAN_NAME( cgels, CGELS ) -#define lapackf77_cgeqlf FORTRAN_NAME( cgeqlf, CGEQLF ) -#define lapackf77_cgeqp3 FORTRAN_NAME( cgeqp3, CGEQP3 ) -#define lapackf77_cgeqrf FORTRAN_NAME( cgeqrf, CGEQRF ) -#define lapackf77_cgesvd FORTRAN_NAME( cgesvd, CGESVD ) -#define lapackf77_cgetrf FORTRAN_NAME( cgetrf, CGETRF ) -#define lapackf77_cgetri FORTRAN_NAME( cgetri, CGETRI ) -#define lapackf77_cgetrs FORTRAN_NAME( cgetrs, CGETRS ) -#define lapackf77_chbtrd FORTRAN_NAME( chbtrd, CHBTRD ) -#define lapackf77_cheev FORTRAN_NAME( cheev, CHEEV ) -#define lapackf77_cheevd FORTRAN_NAME( cheevd, CHEEVD ) -#define lapackf77_chegs2 FORTRAN_NAME( chegs2, CHEGS2 ) -#define lapackf77_chegvd FORTRAN_NAME( chegvd, CHEGVD ) -#define lapackf77_chetd2 FORTRAN_NAME( chetd2, CHETD2 ) -#define lapackf77_chetrd FORTRAN_NAME( chetrd, CHETRD ) -#define lapackf77_chetrf FORTRAN_NAME( chetrf, CHETRF ) -#define lapackf77_chseqr FORTRAN_NAME( chseqr, CHSEQR ) -#define lapackf77_clabrd FORTRAN_NAME( clabrd, CLABRD ) -#define lapackf77_cladiv FORTRAN_NAME( cladiv, ZLADIV ) -#define lapackf77_clacgv FORTRAN_NAME( clacgv, CLACGV ) -#define lapackf77_clacpy FORTRAN_NAME( clacpy, CLACPY ) -#define lapackf77_clahef FORTRAN_NAME( clahef, CLAHEF ) -#define lapackf77_clange FORTRAN_NAME( clange, CLANGE ) -#define lapackf77_clanhe FORTRAN_NAME( clanhe, CLANHE ) -#define lapackf77_clanht FORTRAN_NAME( clanht, CLANHT ) -#define lapackf77_clansy FORTRAN_NAME( clansy, CLANSY ) -#define lapackf77_slapy3 FORTRAN_NAME( slapy3, DLAPY3 ) -#define lapackf77_claqp2 FORTRAN_NAME( claqp2, CLAQP2 ) -#define lapackf77_clarf FORTRAN_NAME( clarf, ZLARF ) -#define lapackf77_clarfb FORTRAN_NAME( clarfb, CLARFB ) -#define lapackf77_clarfg FORTRAN_NAME( clarfg, CLARFG ) -#define lapackf77_clarft FORTRAN_NAME( clarft, CLARFT ) -#define lapackf77_clarnv FORTRAN_NAME( clarnv, CLARNV ) -#define lapackf77_clartg FORTRAN_NAME( clartg, CLARTG ) -#define lapackf77_clascl FORTRAN_NAME( clascl, CLASCL ) -#define lapackf77_claset FORTRAN_NAME( claset, CLASET ) -#define lapackf77_claswp FORTRAN_NAME( claswp, CLASWP ) -#define lapackf77_clatrd FORTRAN_NAME( clatrd, CLATRD ) -#define lapackf77_clauum FORTRAN_NAME( clauum, CLAUUM ) -#define lapackf77_clavhe FORTRAN_NAME( clavhe, CLAVHE ) -#define lapackf77_cpotrf FORTRAN_NAME( cpotrf, CPOTRF ) -#define lapackf77_cpotri FORTRAN_NAME( cpotri, CPOTRI ) -#define lapackf77_cpotrs FORTRAN_NAME( cpotrs, CPOTRS ) -#define lapackf77_cstedc FORTRAN_NAME( cstedc, CSTEDC ) -#define lapackf77_cstein FORTRAN_NAME( cstein, CSTEIN ) -#define lapackf77_cstemr FORTRAN_NAME( cstemr, CSTEMR ) -#define lapackf77_csteqr FORTRAN_NAME( csteqr, CSTEQR ) -#define lapackf77_csymv FORTRAN_NAME( csymv, CSYMV ) -#define lapackf77_ctrevc FORTRAN_NAME( ctrevc, CTREVC ) -#define lapackf77_ctrtri FORTRAN_NAME( ctrtri, CTRTRI ) -#define lapackf77_cung2r FORTRAN_NAME( cung2r, CUNG2R ) -#define lapackf77_cungbr FORTRAN_NAME( cungbr, CUNGBR ) -#define lapackf77_cunghr FORTRAN_NAME( cunghr, CUNGHR ) -#define lapackf77_cunglq FORTRAN_NAME( cunglq, CUNGLQ ) -#define lapackf77_cungql FORTRAN_NAME( cungql, CUNGQL ) -#define lapackf77_cungqr FORTRAN_NAME( cungqr, CUNGQR ) -#define lapackf77_cungtr FORTRAN_NAME( cungtr, CUNGTR ) -#define lapackf77_cunm2r FORTRAN_NAME( cunm2r, CUNM2R ) -#define lapackf77_cunmbr FORTRAN_NAME( cunmbr, CUNMBR ) -#define lapackf77_cunmlq FORTRAN_NAME( cunmlq, CUNMLQ ) -#define lapackf77_cunmql FORTRAN_NAME( cunmql, CUNMQL ) -#define lapackf77_cunmqr FORTRAN_NAME( cunmqr, CUNMQR ) -#define lapackf77_cunmtr FORTRAN_NAME( cunmtr, CUNMTR ) - -/* testing functions */ -#define lapackf77_cbdt01 FORTRAN_NAME( cbdt01, CBDT01 ) -#define lapackf77_cget22 FORTRAN_NAME( cget22, CGET22 ) -#define lapackf77_cqpt01 FORTRAN_NAME( cqpt01, CQPT01 ) -#define lapackf77_chet21 FORTRAN_NAME( chet21, CHET21 ) -#define lapackf77_chst01 FORTRAN_NAME( chst01, CHST01 ) -#define lapackf77_cqrt02 FORTRAN_NAME( cqrt02, CQRT02 ) -#define lapackf77_cunt01 FORTRAN_NAME( cunt01, CUNT01 ) -#define lapackf77_clarfy FORTRAN_NAME( clarfy, CLARFY ) -#define lapackf77_clarfx FORTRAN_NAME( clarfx, CLARFX ) -#define lapackf77_cstt21 FORTRAN_NAME( cstt21, CSTT21 ) - -// macros to handle differences in arguments between complex and real versions of routines. -#if defined(PRECISION_z) || defined(PRECISION_c) -#define DWORKFORZ float *rwork, -#define DWORKFORZ_AND_LD float *rwork, const magma_int_t *ldrwork, -#define WSPLIT cuFloatComplex *w -#else -#define DWORKFORZ -#define DWORKFORZ_AND_LD -#define WSPLIT float *wr, float *wi -#endif - -/* - * BLAS functions (alphabetical order) - */ -magma_int_t blasf77_icamax( - const magma_int_t *n, - const cuFloatComplex *x, const magma_int_t *incx); - -void blasf77_caxpy( const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *x, const magma_int_t *incx, - cuFloatComplex *y, const magma_int_t *incy ); - -void blasf77_ccopy( const magma_int_t *n, - const cuFloatComplex *x, const magma_int_t *incx, - cuFloatComplex *y, const magma_int_t *incy ); - -void blasf77_cgemm( const char *transa, const char *transb, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *B, const magma_int_t *ldb, - const cuFloatComplex *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_cgemv( const char *transa, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *beta, - cuFloatComplex *y, const magma_int_t *incy ); - -void blasf77_cgerc( const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *y, const magma_int_t *incy, - cuFloatComplex *A, const magma_int_t *lda ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_cgeru( const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *y, const magma_int_t *incy, - cuFloatComplex *A, const magma_int_t *lda ); -#endif - -void blasf77_chemm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *B, const magma_int_t *ldb, - const cuFloatComplex *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_chemv( const char *uplo, - const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *beta, - cuFloatComplex *y, const magma_int_t *incy ); - -void blasf77_cher2( const char *uplo, - const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *y, const magma_int_t *incy, - cuFloatComplex *A, const magma_int_t *lda ); - -void blasf77_cher2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *B, const magma_int_t *ldb, - const float *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_cherk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const float *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_cscal( const magma_int_t *n, - const cuFloatComplex *alpha, - cuFloatComplex *x, const magma_int_t *incx ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_csscal( const magma_int_t *n, - const float *alpha, - cuFloatComplex *x, const magma_int_t *incx ); -#endif - -void blasf77_cswap( const magma_int_t *n, - cuFloatComplex *x, const magma_int_t *incx, - cuFloatComplex *y, const magma_int_t *incy ); - -void blasf77_csymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *B, const magma_int_t *ldb, - const cuFloatComplex *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_csyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *B, const magma_int_t *ldb, - const cuFloatComplex *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_csyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *beta, - cuFloatComplex *C, const magma_int_t *ldc ); - -void blasf77_ctrmm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb ); - -void blasf77_ctrmv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *x, const magma_int_t *incx ); - -void blasf77_ctrsm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb ); - -void blasf77_ctrsv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *x, const magma_int_t *incx ); - -/* - * LAPACK functions (alphabetical order) - */ -void lapackf77_cbdsqr( const char *uplo, - const magma_int_t *n, const magma_int_t *ncvt, const magma_int_t *nru, const magma_int_t *ncc, - float *d, float *e, - cuFloatComplex *Vt, const magma_int_t *ldvt, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *C, const magma_int_t *ldc, - float *work, - magma_int_t *info ); - -void lapackf77_cgebak( const char *job, const char *side, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - const float *scale, const magma_int_t *m, - cuFloatComplex *V, const magma_int_t *ldv, - magma_int_t *info ); - -void lapackf77_cgebal( const char *job, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *ilo, magma_int_t *ihi, - float *scale, - magma_int_t *info ); - -void lapackf77_cgebd2( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *tauq, - cuFloatComplex *taup, - cuFloatComplex *work, - magma_int_t *info ); - -void lapackf77_cgebrd( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *tauq, - cuFloatComplex *taup, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgeev( const char *jobvl, const char *jobvr, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - WSPLIT, - cuFloatComplex *Vl, const magma_int_t *ldvl, - cuFloatComplex *Vr, const magma_int_t *ldvr, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_cgehd2( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, - magma_int_t *info ); - -void lapackf77_cgehrd( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgelqf( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgels( const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *nrhs, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgeqlf( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgeqp3( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *jpvt, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_cgeqrf( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgesvd( const char *jobu, const char *jobvt, - const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *s, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *Vt, const magma_int_t *ldvt, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_cgetrf( const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *ipiv, - magma_int_t *info ); - -void lapackf77_cgetri( const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - const magma_int_t *ipiv, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cgetrs( const char* trans, - const magma_int_t *n, const magma_int_t *nrhs, - const cuFloatComplex *A, const magma_int_t *lda, - const magma_int_t *ipiv, - cuFloatComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_chbtrd( const char *vect, const char *uplo, - const magma_int_t *n, const magma_int_t *kd, - cuFloatComplex *Ab, const magma_int_t *ldab, - float *d, float *e, - cuFloatComplex *Q, const magma_int_t *ldq, - cuFloatComplex *work, - magma_int_t *info ); - -void lapackf77_cheev( const char *jobz, const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *w, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_cheevd( const char *jobz, const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *w, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_chegs2( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_chegvd( const magma_int_t *itype, const char *jobz, const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb, - float *w, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_chetd2( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *tau, - magma_int_t *info ); - -void lapackf77_chetrd( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_chetrf( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *ipiv, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_chseqr( const char *job, const char *compz, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *H, const magma_int_t *ldh, - WSPLIT, - cuFloatComplex *Z, const magma_int_t *ldz, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_clabrd( const magma_int_t *m, const magma_int_t *n, const magma_int_t *nb, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *tauq, - cuFloatComplex *taup, - cuFloatComplex *X, const magma_int_t *ldx, - cuFloatComplex *Y, const magma_int_t *ldy ); - -void lapackf77_cladiv( cuFloatComplex *ret_val, cuFloatComplex *x, - cuFloatComplex *y ); - -void lapackf77_clacgv( const magma_int_t *n, - cuFloatComplex *x, const magma_int_t *incx ); - -void lapackf77_clacpy( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb ); - -void lapackf77_clahef( const char *uplo, - const magma_int_t *n, const magma_int_t *kn, - magma_int_t *kb, - cuFloatComplex *A, const magma_int_t lda, - magma_int_t *ipiv, - cuFloatComplex *work, const magma_int_t *ldwork, - magma_int_t *info ); - -float lapackf77_clange( const char *norm, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - float *work ); - -float lapackf77_clanhe( const char *norm, const char *uplo, - const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - float * work ); - -float lapackf77_clanht( const char* norm, const magma_int_t* n, - const float* d, const cuFloatComplex* e ); - -float lapackf77_clansy( const char *norm, const char *uplo, - const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - float * work ); - -void lapackf77_claqp2 ( magma_int_t *m, magma_int_t *n, magma_int_t *offset, - cuFloatComplex *a, magma_int_t *lda, magma_int_t *jpvt, - cuFloatComplex *tau, - float *vn1, float *vn2, cuFloatComplex *work); - -void lapackf77_clarf ( char *, magma_int_t *, magma_int_t *, - cuFloatComplex *, magma_int_t *, cuFloatComplex *, cuFloatComplex *, - magma_int_t *, cuFloatComplex *); - -void lapackf77_clarfb( const char *side, const char *trans, const char *direct, const char *storev, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *V, const magma_int_t *ldv, - const cuFloatComplex *T, const magma_int_t *ldt, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *ldwork ); - -void lapackf77_clarfg( const magma_int_t *n, - cuFloatComplex *alpha, - cuFloatComplex *x, const magma_int_t *incx, - cuFloatComplex *tau ); - -void lapackf77_clarft( const char *direct, const char *storev, - const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *V, const magma_int_t *ldv, - const cuFloatComplex *tau, - cuFloatComplex *T, const magma_int_t *ldt ); - -void lapackf77_clarnv( const magma_int_t *idist, magma_int_t *iseed, const magma_int_t *n, - cuFloatComplex *x ); - -void lapackf77_clartg( cuFloatComplex *F, - cuFloatComplex *G, - float *cs, - cuFloatComplex *SN, - cuFloatComplex *R ); - -void lapackf77_clascl( const char *type, - const magma_int_t *kl, const magma_int_t *ku, - float *cfrom, - float *cto, - const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_claset( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *beta, - cuFloatComplex *A, const magma_int_t *lda ); - -void lapackf77_claswp( const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - const magma_int_t *k1, const magma_int_t *k2, - magma_int_t *ipiv, - const magma_int_t *incx ); - -void lapackf77_clatrd( const char *uplo, - const magma_int_t *n, const magma_int_t *nb, - cuFloatComplex *A, const magma_int_t *lda, - float *e, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *ldwork ); - -void lapackf77_clauum( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_clavhe( const char *uplo, const char *trans, const char *diag, - magma_int_t *n, magma_int_t *nrhs, - cuFloatComplex *A, magma_int_t *lda, - magma_int_t *ipiv, - cuFloatComplex *B, magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_cpotrf( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_cpotri( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_cpotrs( const char *uplo, - const magma_int_t *n, const magma_int_t *nrhs, - const cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_cstedc( const char *compz, - const magma_int_t *n, - float *d, float *e, - cuFloatComplex *Z, const magma_int_t *ldz, - cuFloatComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_cstein( const magma_int_t *n, - const float *d, const float *e, - const magma_int_t *m, - const float *w, - const magma_int_t *iblock, - const magma_int_t *isplit, - cuFloatComplex *Z, const magma_int_t *ldz, - float *work, magma_int_t *iwork, magma_int_t *ifailv, - magma_int_t *info ); - -void lapackf77_cstemr( const char *jobz, const char *range, - const magma_int_t *n, - float *d, float *e, - const float *vl, const float *vu, - const magma_int_t *il, const magma_int_t *iu, - magma_int_t *m, - float *w, - cuFloatComplex *Z, const magma_int_t *ldz, - const magma_int_t *nzc, magma_int_t *isuppz, magma_int_t *tryrac, - float *work, const magma_int_t *lwork, - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_csteqr( const char *compz, - const magma_int_t *n, - float *d, float *e, - cuFloatComplex *Z, const magma_int_t *ldz, - float *work, - magma_int_t *info ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_csymv( const char *uplo, - const magma_int_t *n, - const cuFloatComplex *alpha, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *x, const magma_int_t *incx, - const cuFloatComplex *beta, - cuFloatComplex *y, const magma_int_t *incy ); -#endif - -void lapackf77_ctrevc( const char *side, const char *howmny, - magma_int_t *select, const magma_int_t *n, - cuFloatComplex *T, const magma_int_t *ldt, - cuFloatComplex *Vl, const magma_int_t *ldvl, - cuFloatComplex *Vr, const magma_int_t *ldvr, - const magma_int_t *mm, magma_int_t *m, - cuFloatComplex *work, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_ctrtri( const char *uplo, const char *diag, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_cung2r( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, - magma_int_t *info ); - -void lapackf77_cungbr( const char *vect, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunghr( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunglq( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cungql( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cungqr( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cungtr( const char *uplo, - const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunm2r( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, - magma_int_t *info ); - -void lapackf77_cunmbr( const char *vect, const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunmlq( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunmql( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunmqr( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_cunmtr( const char *side, const char *uplo, const char *trans, - const magma_int_t *m, const magma_int_t *n, - const cuFloatComplex *A, const magma_int_t *lda, - const cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -/* - * Real precision extras - */ -void lapackf77_sstebz( const char *range, const char *order, - const magma_int_t *n, - float *vl, float *vu, - magma_int_t *il, magma_int_t *iu, - float *abstol, - float *d, float *e, - const magma_int_t *m, const magma_int_t *nsplit, - float *w, - magma_int_t *iblock, magma_int_t *isplit, - float *work, - magma_int_t *iwork, - magma_int_t *info ); - -float lapackf77_slamc3( float* a, float* b ); - -void lapackf77_slamrg( magma_int_t* n1, magma_int_t* n2, - float* a, - magma_int_t* dtrd1, magma_int_t* dtrd2, magma_int_t* index ); - -float lapackf77_slapy3(float *, float *, float *); - -void lapackf77_slaed4( magma_int_t* n, magma_int_t* i, - float* d, - float* z, - float* delta, - float* rho, - float* dlam, magma_int_t* info ); - -/* - * Testing functions - */ -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_cbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *Q, const magma_int_t *ldq, - float *d, float *e, - cuFloatComplex *Pt, const magma_int_t *ldpt, - cuFloatComplex *work, - float *rwork, - float *resid ); - -void lapackf77_cget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *E, const magma_int_t *lde, - cuFloatComplex *w, - cuFloatComplex *work, - float *rwork, - float *result ); - -void lapackf77_chet21( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, const magma_int_t *kband, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *V, const magma_int_t *ldv, - cuFloatComplex *tau, - cuFloatComplex *work, - float *rwork, - float *result ); - -void lapackf77_chst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *H, const magma_int_t *ldh, - cuFloatComplex *Q, const magma_int_t *ldq, - cuFloatComplex *work, const magma_int_t *lwork, - float *rwork, - float *result ); - -void lapackf77_cstt21( const magma_int_t *n, const magma_int_t *kband, - float *AD, - float *AE, - float *SD, - float *SE, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *work, - float *rwork, - float *result ); - -void lapackf77_cunt01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *work, const magma_int_t *lwork, - float *rwork, - float *resid ); -#else -void lapackf77_cbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *Q, const magma_int_t *ldq, - float *d, float *e, - cuFloatComplex *Pt, const magma_int_t *ldpt, - cuFloatComplex *work, - float *resid ); - -void lapackf77_cget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *E, const magma_int_t *lde, - cuFloatComplex *wr, - cuFloatComplex *wi, - float *work, - float *result ); - -void lapackf77_chet21( magma_int_t *itype, const char *uplo, const magma_int_t *n, const magma_int_t *kband, - cuFloatComplex *A, const magma_int_t *lda, - float *d, float *e, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *V, const magma_int_t *ldv, - cuFloatComplex *tau, - cuFloatComplex *work, - float *result ); - -void lapackf77_chst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - cuFloatComplex *A, const magma_int_t *lda, - cuFloatComplex *H, const magma_int_t *ldh, - cuFloatComplex *Q, const magma_int_t *ldq, - cuFloatComplex *work, const magma_int_t *lwork, - float *result ); - -void lapackf77_cstt21( const magma_int_t *n, const magma_int_t *kband, - float *AD, - float *AE, - float *SD, - float *SE, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *work, - float *result ); - -void lapackf77_cunt01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *U, const magma_int_t *ldu, - cuFloatComplex *work, const magma_int_t *lwork, - float *resid ); -#endif - -void lapackf77_clarfy( const char *uplo, const magma_int_t *n, - cuFloatComplex *V, const magma_int_t *incv, - cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work ); - -void lapackf77_clarfx( const char *side, const magma_int_t *m, const magma_int_t *n, - cuFloatComplex *V, - cuFloatComplex *tau, - cuFloatComplex *C, const magma_int_t *ldc, - cuFloatComplex *work ); - -float lapackf77_cqpt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, - cuFloatComplex *Af, const magma_int_t *lda, - cuFloatComplex *tau, magma_int_t *jpvt, - cuFloatComplex *work, const magma_int_t *lwork ); - -void lapackf77_cqrt02( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuFloatComplex *A, - cuFloatComplex *AF, - cuFloatComplex *Q, - cuFloatComplex *R, const magma_int_t *lda, - cuFloatComplex *tau, - cuFloatComplex *work, const magma_int_t *lwork, - float *rwork, - float *result ); - -#ifdef __cplusplus -} -#endif - -#undef DWORKFORZ -#undef DWORKFORZ_AND_LD -#undef WSPLIT -#undef PRECISION_c - -#endif /* MAGMA_CLAPACK_H */ diff --git a/src/include/magma_d.h b/src/include/magma_d.h deleted file mode 100644 index 83e6675..0000000 --- a/src/include/magma_d.h +++ /dev/null @@ -1,514 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated d Wed Nov 14 22:52:26 2012 - */ - -#ifndef _MAGMA_D_H_ -#define _MAGMA_D_H_ -#define PRECISION_d - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA Auxiliary functions to get the NB used -*/ -int magma_get_dpotrf_nb(int m); -int magma_get_dgetrf_nb(int m); -int magma_get_dgetri_nb(int m); -int magma_get_dgeqp3_nb(int m); -int magma_get_dgeqrf_nb(int m); -int magma_get_dgeqlf_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); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on CPU -*/ -magma_int_t magma_dgebrd( magma_int_t m, magma_int_t n, double *A, - magma_int_t lda, double *d, double *e, - double *tauq, double *taup, - double *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgehrd2(magma_int_t n, magma_int_t ilo, magma_int_t ihi, - double *A, magma_int_t lda, double *tau, - double *work, magma_int_t *lwork, magma_int_t *info); -magma_int_t magma_dgehrd( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - double *A, magma_int_t lda, double *tau, - double *work, magma_int_t lwork, - double *d_T, magma_int_t *info); -magma_int_t magma_dgelqf( magma_int_t m, magma_int_t n, - double *A, magma_int_t lda, double *tau, - double *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgeqlf( magma_int_t m, magma_int_t n, - double *A, magma_int_t lda, double *tau, - double *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgeqrf( magma_int_t m, magma_int_t n, double *A, - magma_int_t lda, double *tau, double *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgeqr2( magma_int_t *m, magma_int_t *n, double *a, - magma_int_t *lda, double *tau, double *work, - magma_int_t *info); -magma_int_t magma_dgeqrf4(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, double *tau, - double *work, magma_int_t lwork, magma_int_t *info ); -magma_int_t magma_dgeqrf_ooc( magma_int_t m, magma_int_t n, double *A, - magma_int_t lda, double *tau, double *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgesv ( magma_int_t n, magma_int_t nrhs, - double *A, magma_int_t lda, magma_int_t *ipiv, - double *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_dgetrf( magma_int_t m, magma_int_t n, double *A, - magma_int_t lda, magma_int_t *ipiv, - magma_int_t *info); -magma_int_t magma_dgetrf2(magma_int_t m, magma_int_t n, double *a, - magma_int_t lda, magma_int_t *ipiv, magma_int_t *info); - -magma_int_t magma_dlaqps( magma_int_t m, magma_int_t n, magma_int_t offset, - magma_int_t nb, magma_int_t *kb, - double *A, magma_int_t lda, - double *dA, magma_int_t ldda, - magma_int_t *jpvt, double *tau, double *vn1, double *vn2, - double *auxv, - double *F, magma_int_t ldf, - double *dF, magma_int_t lddf ); -magma_int_t magma_dlarf( char *side, magma_int_t *m, magma_int_t *n, - double *v, magma_int_t *incv, double *tau, - double *c__, magma_int_t *ldc, double *work); -magma_int_t magma_dlarfg( magma_int_t *n, double *alpha, double *x, - magma_int_t *incx, double *tau); -magma_int_t magma_dlatrd( char uplo, magma_int_t n, magma_int_t nb, double *a, - magma_int_t lda, double *e, double *tau, - double *w, magma_int_t ldw, - double *da, magma_int_t ldda, - double *dw, magma_int_t lddw); -magma_int_t magma_dlatrd2(char uplo, magma_int_t n, magma_int_t nb, - double *a, magma_int_t lda, - double *e, double *tau, - double *w, magma_int_t ldw, - double *da, magma_int_t ldda, - double *dw, magma_int_t lddw, - double *dwork, magma_int_t ldwork); -magma_int_t magma_dlahr2( magma_int_t m, magma_int_t n, magma_int_t nb, - double *da, double *dv, double *a, - magma_int_t lda, double *tau, double *t, - magma_int_t ldt, double *y, magma_int_t ldy); -magma_int_t magma_dlahru( magma_int_t n, magma_int_t ihi, magma_int_t k, magma_int_t nb, - double *a, magma_int_t lda, - double *da, double *y, - double *v, double *t, - double *dwork); -magma_int_t magma_dposv ( char uplo, magma_int_t n, magma_int_t nrhs, - double *A, magma_int_t lda, - double *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_dpotrf( char uplo, magma_int_t n, double *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_dpotri( char uplo, magma_int_t n, double *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_dlauum( char uplo, magma_int_t n, double *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_dtrtri( char uplo, char diag, magma_int_t n, double *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_dsytrd( char uplo, magma_int_t n, double *A, - magma_int_t lda, double *d, double *e, - double *tau, double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dorgqr( magma_int_t m, magma_int_t n, magma_int_t k, - double *a, magma_int_t lda, - double *tau, double *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_dormql( const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - double *a, magma_int_t lda, - double *tau, - double *c, magma_int_t ldc, - double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dormqr( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - double *a, magma_int_t lda, double *tau, - double *c, magma_int_t ldc, - double *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dormtr( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, - double *tau, - double *c, magma_int_t ldc, - double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dorghr( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - double *a, magma_int_t lda, - double *tau, - double *dT, magma_int_t nb, - magma_int_t *info); -magma_int_t magma_dsyev( char jobz, char uplo, magma_int_t n, - double *a, magma_int_t lda, double *w, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_dsyevx(char jobz, char range, char uplo, magma_int_t n, - double *a, magma_int_t lda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, double *z, magma_int_t ldz, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_dgeev( char jobvl, char jobvr, magma_int_t n, - double *a, magma_int_t lda, - double *w, - double *vl, magma_int_t ldvl, - double *vr, magma_int_t ldvr, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_dgeqp3( magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, - magma_int_t *jpvt, double *tau, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_dgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, double *s, - double *u, magma_int_t ldu, - double *vt, magma_int_t ldvt, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *info ); -magma_int_t magma_dsyevd( char jobz, char uplo, magma_int_t n, - double *a, magma_int_t lda, double *w, - double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dsyevr( char jobz, char range, char uplo, magma_int_t n, - double *a, magma_int_t lda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, double *z, magma_int_t ldz, - magma_int_t *isuppz, - double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dsygvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - double *a, magma_int_t lda, - double *b, magma_int_t ldb, - double *w, double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dsygvdx(magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, double *a, magma_int_t lda, - double *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - magma_int_t *m, double *w, double *work, - magma_int_t lwork, double *rwork, - magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dsygvx( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, double *a, magma_int_t lda, - double *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, double *w, - double *z, magma_int_t ldz, - double *work, magma_int_t lwork, double *rwork, - magma_int_t *iwork, magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_dsygvr( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, double *a, magma_int_t lda, - double *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, double *w, - double *z, magma_int_t ldz, - magma_int_t *isuppz, double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dstedx( char range, magma_int_t n, double vl, double vu, - magma_int_t il, magma_int_t iu, double *D, double *E, - double *Z, magma_int_t ldz, - double *rwork, magma_int_t ldrwork, magma_int_t *iwork, - magma_int_t liwork, double* dwork, magma_int_t *info); -#else -magma_int_t magma_dgeev( char jobvl, char jobvr, magma_int_t n, - double *a, magma_int_t lda, - double *wr, double *wi, - double *vl, magma_int_t ldvl, - double *vr, magma_int_t ldvr, - double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dgeqp3( magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, - magma_int_t *jpvt, double *tau, - double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - double *a, magma_int_t lda, double *s, - double *u, magma_int_t ldu, - double *vt, magma_int_t ldvt, - double *work, magma_int_t lwork, - magma_int_t *info ); -magma_int_t magma_dsyevd( char jobz, char uplo, magma_int_t n, - double *a, magma_int_t lda, double *w, - double *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dsygvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - double *a, magma_int_t lda, - double *b, magma_int_t ldb, - double *w, double *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_dstedx( char range, magma_int_t n, double vl, double vu, - magma_int_t il, magma_int_t iu, double* d, double* e, - double* z, magma_int_t ldz, - double* work, magma_int_t lwork, - magma_int_t* iwork, magma_int_t liwork, - double* dwork, magma_int_t* info); -magma_int_t magma_dlaex0( magma_int_t n, double* d, double* e, double* q, magma_int_t ldq, - double* work, magma_int_t* iwork, double* dwork, - char range, double vl, double vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_dlaex1( magma_int_t n, double* d, double* q, magma_int_t ldq, - magma_int_t* indxq, double rho, magma_int_t cutpnt, - double* work, magma_int_t* iwork, double* dwork, - char range, double vl, double vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_dlaex3( magma_int_t k, magma_int_t n, magma_int_t n1, double* d, - double* q, magma_int_t ldq, double rho, - double* dlamda, double* q2, magma_int_t* indx, - magma_int_t* ctot, double* w, double* s, magma_int_t* indxq, - double* dwork, - char range, double vl, double vu, magma_int_t il, magma_int_t iu, - magma_int_t* info ); -#endif - -magma_int_t magma_dsygst( magma_int_t itype, char uplo, magma_int_t n, - double *a, magma_int_t lda, - double *b, magma_int_t ldb, magma_int_t *info); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on GPU -*/ -magma_int_t magma_dgels_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, - double *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dgels3_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, - double *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dgelqf_gpu( magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, double *tau, - double *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgeqrf_gpu( magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, - double *tau, double *dT, - magma_int_t *info); -magma_int_t magma_dgeqrf2_gpu(magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, - double *tau, magma_int_t *info); -magma_int_t magma_dgeqrf2_mgpu(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - double **dlA, magma_int_t ldda, - double *tau, magma_int_t *info ); -magma_int_t magma_dgeqrf3_gpu(magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, - double *tau, double *dT, - magma_int_t *info); -magma_int_t magma_dgeqrs_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *tau, double *dT, - double *dB, magma_int_t lddb, - double *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_dgeqrs3_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *tau, double *dT, - double *dB, magma_int_t lddb, - double *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_dgessm_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t k, magma_int_t ib, - magma_int_t *ipiv, - double *dL1, magma_int_t lddl1, - double *dL, magma_int_t lddl, - double *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_dgesv_gpu( magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, magma_int_t *ipiv, - double *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_dgetrf_incpiv_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, - double *hA, magma_int_t ldha, double *dA, magma_int_t ldda, - double *hL, magma_int_t ldhl, double *dL, magma_int_t lddl, - magma_int_t *ipiv, - double *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_dgetrf_gpu( magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t *info); -magma_int_t -magma_dgetrf_nopiv_gpu ( magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_dgetri_gpu( magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *ipiv, - double *dwork, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_dgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, magma_int_t *ipiv, - double *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_dlabrd_gpu( magma_int_t m, magma_int_t n, magma_int_t nb, - double *a, magma_int_t lda, double *da, magma_int_t ldda, - double *d, double *e, double *tauq, double *taup, - double *x, magma_int_t ldx, double *dx, magma_int_t lddx, - double *y, magma_int_t ldy, double *dy, magma_int_t lddy); -magma_int_t magma_dlarfb_gpu( char side, char trans, char direct, char storev, - magma_int_t m, magma_int_t n, magma_int_t k, - const double *dv, magma_int_t ldv, - const double *dt, magma_int_t ldt, - double *dc, magma_int_t ldc, - double *dwork, magma_int_t ldwork ); -magma_int_t magma_dposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_dpotrf_gpu( char uplo, magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_dpotri_gpu( char uplo, magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_dlauum_gpu( char uplo, magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_dtrtri_gpu( char uplo, char diag, magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_dsytrd_gpu( char uplo, magma_int_t n, - double *da, magma_int_t ldda, - double *d, double *e, double *tau, - double *wa, magma_int_t ldwa, - double *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_dsytrd2_gpu(char uplo, magma_int_t n, - double *da, magma_int_t ldda, - double *d, double *e, double *tau, - double *wa, magma_int_t ldwa, - double *work, magma_int_t lwork, - double *dwork, magma_int_t ldwork, - magma_int_t *info); -magma_int_t magma_dpotrs_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_dssssm_gpu( char storev, magma_int_t m1, magma_int_t n1, - magma_int_t m2, magma_int_t n2, magma_int_t k, magma_int_t ib, - double *dA1, magma_int_t ldda1, - double *dA2, magma_int_t ldda2, - double *dL1, magma_int_t lddl1, - double *dL2, magma_int_t lddl2, - magma_int_t *IPIV, magma_int_t *info); -magma_int_t magma_dtstrf_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, magma_int_t nb, - double *hU, magma_int_t ldhu, double *dU, magma_int_t lddu, - double *hA, magma_int_t ldha, double *dA, magma_int_t ldda, - double *hL, magma_int_t ldhl, double *dL, magma_int_t lddl, - magma_int_t *ipiv, - double *hwork, magma_int_t ldhwork, - double *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_dorgqr_gpu( magma_int_t m, magma_int_t n, magma_int_t k, - double *da, magma_int_t ldda, - double *tau, double *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_dormql2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - double *da, magma_int_t ldda, - double *tau, - double *dc, magma_int_t lddc, - double *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_dormqr_gpu( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - double *a, magma_int_t lda, double *tau, - double *c, magma_int_t ldc, - double *work, magma_int_t lwork, - double *td, magma_int_t nb, magma_int_t *info); -magma_int_t magma_dormqr2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - double *da, magma_int_t ldda, - double *tau, - double *dc, magma_int_t lddc, - double *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_dormtr_gpu( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - double *da, magma_int_t ldda, - double *tau, - double *dc, magma_int_t lddc, - double *wa, magma_int_t ldwa, - magma_int_t *info); - -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_dsyevd_gpu( char jobz, char uplo, - magma_int_t n, - double *da, magma_int_t ldda, - double *w, - double *wa, magma_int_t ldwa, - double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_dsyevdx_gpu(char jobz, char range, char uplo, - magma_int_t n, double *da, - magma_int_t ldda, double vl, double vu, - magma_int_t il, magma_int_t iu, - magma_int_t *m, double *w, - double *wa, magma_int_t ldwa, - double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_dsyevr_gpu( char jobz, char range, char uplo, magma_int_t n, - double *da, magma_int_t ldda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, double *dz, magma_int_t lddz, - magma_int_t *isuppz, - double *wa, magma_int_t ldwa, - double *wz, magma_int_t ldwz, - double *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -#else -magma_int_t magma_dsyevd_gpu( char jobz, char uplo, - magma_int_t n, - double *da, magma_int_t ldda, - double *w, - double *wa, magma_int_t ldwa, - double *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -#endif - -magma_int_t magma_dsyevx_gpu( char jobz, char range, char uplo, magma_int_t n, - double *da, magma_int_t ldda, double vl, - double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, - double *w, double *dz, magma_int_t lddz, - double *wa, magma_int_t ldwa, - double *wz, magma_int_t ldwz, - double *work, magma_int_t lwork, - double *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_dsygst_gpu(magma_int_t itype, char uplo, magma_int_t n, - double *da, magma_int_t ldda, - double *db, magma_int_t lddb, magma_int_t *info); - - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA utility function definitions -*/ - -void magma_dprint ( magma_int_t m, magma_int_t n, const double *A, magma_int_t lda ); -void magma_dprint_gpu( magma_int_t m, magma_int_t n, const double *dA, magma_int_t ldda ); - -void dpanel_to_q( char uplo, magma_int_t ib, double *A, magma_int_t lda, double *work ); -void dq_to_panel( char uplo, magma_int_t ib, double *A, magma_int_t lda, double *work ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_d -#endif /* _MAGMA_D_H_ */ diff --git a/src/include/magma_dbulge.h b/src/include/magma_dbulge.h deleted file mode 100644 index 049079e..0000000 --- a/src/include/magma_dbulge.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated d Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_DBULGEINC_H -#define MAGMA_DBULGEINC_H - -#define PRECISION_d - -extern "C" { - magma_int_t magma_dsytrd_sy2sb(char uplo, magma_int_t n, magma_int_t NB, double *a, magma_int_t lda, - double *tau, double *work, magma_int_t lwork, double *dT, magma_int_t threads, magma_int_t *info); - - magma_int_t magma_dsytrd_hb2st(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, - double *A, magma_int_t lda, double *D, double *E, - double *V, magma_int_t ldv, double *TAU, magma_int_t compT, double *T, magma_int_t ldt); - - magma_int_t magma_dbulge_back(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t ne, magma_int_t Vblksiz, - double *Z, magma_int_t ldz, double *dZ, magma_int_t lddz, - double *V, magma_int_t ldv, double *TAU, double *T, magma_int_t ldt, magma_int_t* info); - - magma_int_t magma_dormqr_gpu_2stages(char side, char trans, magma_int_t m, magma_int_t n, magma_int_t k, double *dA, magma_int_t ldda, - double *dC, magma_int_t lddc, double *dT, magma_int_t nb, magma_int_t *info); - - magma_int_t magma_dbulge_get_lq2(magma_int_t n); - - magma_int_t magma_dbulge_get_Vblksiz(magma_int_t n, magma_int_t nb); -} -#endif diff --git a/src/include/magma_dbulgeinc.h b/src/include/magma_dbulgeinc.h deleted file mode 100644 index aeb4aef..0000000 --- a/src/include/magma_dbulgeinc.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated d Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_DBULGEINC_H -#define MAGMA_DBULGEINC_H - -#define PRECISION_d - -#ifdef __cplusplus -extern "C" { -#endif - - -/***************************************************************************//** - * Configuration - **/ - - // maximum contexts -#define MAX_THREADS_BLG 256 - -void findVTpos(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t *Vpos, magma_int_t *TAUpos, magma_int_t *Tpos, magma_int_t *myblkid); -void findVTsiz(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t *blkcnt, magma_int_t *LDV); -magma_int_t plasma_ceildiv(magma_int_t a, magma_int_t b); - - -/* -extern volatile magma_int_t barrier_in[MAX_THREADS_BLG]; -extern volatile magma_int_t barrier_out[MAX_THREADS_BLG]; -extern volatile magma_int_t *ss_prog; -*/ - - /***************************************************************************//** - * Static scheduler - **/ -/* -#define ssched_init(nbtiles) \ -{ \ - volatile int prog_ol[2*nbtiles+10];\ - int iamdone[MAX_THREADS_BLG]; \ - int thread_num[MAX_THREADS_BLG];\ - pthread_t thread_id[MAX_THREADS_BLG];\ - pthread_attr_t thread_attr;\ -} -*/ -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - - struct gbstrct_blg { - double *dQ1; - double *dT1; - double *dT2; - double *dV2; - double *dE; - double *T; - double *A; - double *V; - double *TAU; - double *E; - double *E_CPU; - int cores_num; - int locores_num; - int overlapQ1; - int usemulticpu; - int NB; - int NBTILES; - int N; - int NE; - int N_CPU; - int N_GPU; - int LDA; - int LDE; - int BAND; - int grsiz; - int Vblksiz; - int WANTZ; - char SIDE; - real_Double_t *timeblg; - real_Double_t *timeaplQ; - volatile int *ss_prog; -} ; - -// declare globals here; defined in dsytrd_bsy2trc.cpp -extern struct gbstrct_blg core_in_all; - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////////////// -#define MAX_EVENTSBLG 163840 -//#define MAX_EVENTSBLG 1048576 - -// If we're not using GNU C, elide __attribute__ -#ifndef __GNUC__ -#define __attribute__(x) /*NOTHING*/ -#endif - -// declare globals here; defined in dsytrd_bsy2trc.cpp -extern int event_numblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_start_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_end_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_logblg [MAX_THREADS_BLG][MAX_EVENTSBLG] __attribute__ ((aligned (128))); -extern int log_eventsblg; - -#ifndef __GNUC__ -#undef __attribute__ -#endif - -#define core_event_startblg(my_core_id)\ - event_start_timeblg[my_core_id] = magma_wtime(); - -#define core_event_endblg(my_core_id)\ - event_end_timeblg[my_core_id] = magma_wtime(); - -#define core_log_eventblg(event, my_core_id)\ - event_logblg[my_core_id][event_numblg[my_core_id]+0] = my_core_id;\ - event_logblg[my_core_id][event_numblg[my_core_id]+1] = event_start_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+2] = event_end_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+3] = (event);\ - event_numblg[my_core_id] += (log_eventsblg << 2);\ - event_numblg[my_core_id] &= (MAX_EVENTSBLG-1); - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_d - -#endif /* MAGMA_DBULGEINC_H */ diff --git a/src/include/magma_dlapack.h b/src/include/magma_dlapack.h deleted file mode 100644 index 02e2d3f..0000000 --- a/src/include/magma_dlapack.h +++ /dev/null @@ -1,953 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated d Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_DLAPACK_H -#define MAGMA_DLAPACK_H - -#define PRECISION_d - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- BLAS and LAPACK functions (alphabetical order) -*/ -#define blasf77_idamax FORTRAN_NAME( idamax, IDAMAX ) -#define blasf77_daxpy FORTRAN_NAME( daxpy, DAXPY ) -#define blasf77_dcopy FORTRAN_NAME( dcopy, DCOPY ) -#define blasf77_dgemm FORTRAN_NAME( dgemm, DGEMM ) -#define blasf77_dgemv FORTRAN_NAME( dgemv, DGEMV ) -#define blasf77_dger FORTRAN_NAME( dger, DGER ) -#define blasf77_dger FORTRAN_NAME( dger, DGER ) -#define blasf77_dsymm FORTRAN_NAME( dsymm, DSYMM ) -#define blasf77_dsymv FORTRAN_NAME( dsymv, DSYMV ) -#define blasf77_dsyr2 FORTRAN_NAME( dsyr2, DSYR2 ) -#define blasf77_dsyr2k FORTRAN_NAME( dsyr2k, DSYR2K ) -#define blasf77_dsyrk FORTRAN_NAME( dsyrk, DSYRK ) -#define blasf77_dscal FORTRAN_NAME( dscal, DSCAL ) -#define blasf77_ddscal FORTRAN_NAME( dscal, DSCAL ) -#define blasf77_dswap FORTRAN_NAME( dswap, DSWAP ) -#define blasf77_dsymm FORTRAN_NAME( dsymm, DSYMM ) -#define blasf77_dsyr2k FORTRAN_NAME( dsyr2k, DSYR2K ) -#define blasf77_dsyrk FORTRAN_NAME( dsyrk, DSYRK ) -#define blasf77_dtrmm FORTRAN_NAME( dtrmm, DTRMM ) -#define blasf77_dtrmv FORTRAN_NAME( dtrmv, DTRMV ) -#define blasf77_dtrsm FORTRAN_NAME( dtrsm, DTRSM ) -#define blasf77_dtrsv FORTRAN_NAME( dtrsv, DTRSV ) - -#define lapackf77_dlaed4 FORTRAN_NAME( dlaed4, DLAED4 ) -#define lapackf77_dlamc3 FORTRAN_NAME( dlamc3, DLAMC3 ) -#define lapackf77_dlamrg FORTRAN_NAME( dlamrg, DLAMRG ) -#define lapackf77_dstebz FORTRAN_NAME( dstebz, DSTEBZ ) - -#define lapackf77_dbdsqr FORTRAN_NAME( dbdsqr, DBDSQR ) -#define lapackf77_dgebak FORTRAN_NAME( dgebak, DGEBAK ) -#define lapackf77_dgebal FORTRAN_NAME( dgebal, DGEBAL ) -#define lapackf77_dgebd2 FORTRAN_NAME( dgebd2, DGEBD2 ) -#define lapackf77_dgebrd FORTRAN_NAME( dgebrd, DGEBRD ) -#define lapackf77_dgeev FORTRAN_NAME( dgeev, DGEEV ) -#define lapackf77_dgehd2 FORTRAN_NAME( dgehd2, DGEHD2 ) -#define lapackf77_dgehrd FORTRAN_NAME( dgehrd, DGEHRD ) -#define lapackf77_dgelqf FORTRAN_NAME( dgelqf, DGELQF ) -#define lapackf77_dgels FORTRAN_NAME( dgels, DGELS ) -#define lapackf77_dgeqlf FORTRAN_NAME( dgeqlf, DGEQLF ) -#define lapackf77_dgeqp3 FORTRAN_NAME( dgeqp3, DGEQP3 ) -#define lapackf77_dgeqrf FORTRAN_NAME( dgeqrf, DGEQRF ) -#define lapackf77_dgesvd FORTRAN_NAME( dgesvd, DGESVD ) -#define lapackf77_dgetrf FORTRAN_NAME( dgetrf, DGETRF ) -#define lapackf77_dgetri FORTRAN_NAME( dgetri, DGETRI ) -#define lapackf77_dgetrs FORTRAN_NAME( dgetrs, DGETRS ) -#define lapackf77_dsbtrd FORTRAN_NAME( dsbtrd, DSBTRD ) -#define lapackf77_dsyev FORTRAN_NAME( dsyev, DSYEV ) -#define lapackf77_dsyevd FORTRAN_NAME( dsyevd, DSYEVD ) -#define lapackf77_dsygs2 FORTRAN_NAME( dsygs2, DSYGS2 ) -#define lapackf77_dsygvd FORTRAN_NAME( dsygvd, DSYGVD ) -#define lapackf77_dsytd2 FORTRAN_NAME( dsytd2, DSYTD2 ) -#define lapackf77_dsytrd FORTRAN_NAME( dsytrd, DSYTRD ) -#define lapackf77_dsytrf FORTRAN_NAME( dsytrf, DSYTRF ) -#define lapackf77_dhseqr FORTRAN_NAME( dhseqr, DHSEQR ) -#define lapackf77_dlabrd FORTRAN_NAME( dlabrd, DLABRD ) -#define lapackf77_dladiv FORTRAN_NAME( dladiv, ZLADIV ) -#define lapackf77_dlacgv FORTRAN_NAME( dlacgv, DLACGV ) -#define lapackf77_dlacpy FORTRAN_NAME( dlacpy, DLACPY ) -#define lapackf77_dlasyf FORTRAN_NAME( dlasyf, DLASYF ) -#define lapackf77_dlange FORTRAN_NAME( dlange, DLANGE ) -#define lapackf77_dlansy FORTRAN_NAME( dlansy, DLANSY ) -#define lapackf77_dlanst FORTRAN_NAME( dlanst, DLANST ) -#define lapackf77_dlansy FORTRAN_NAME( dlansy, DLANSY ) -#define lapackf77_dlapy3 FORTRAN_NAME( dlapy3, DLAPY3 ) -#define lapackf77_dlaqp2 FORTRAN_NAME( dlaqp2, DLAQP2 ) -#define lapackf77_dlarf FORTRAN_NAME( dlarf, ZLARF ) -#define lapackf77_dlarfb FORTRAN_NAME( dlarfb, DLARFB ) -#define lapackf77_dlarfg FORTRAN_NAME( dlarfg, DLARFG ) -#define lapackf77_dlarft FORTRAN_NAME( dlarft, DLARFT ) -#define lapackf77_dlarnv FORTRAN_NAME( dlarnv, DLARNV ) -#define lapackf77_dlartg FORTRAN_NAME( dlartg, DLARTG ) -#define lapackf77_dlascl FORTRAN_NAME( dlascl, DLASCL ) -#define lapackf77_dlaset FORTRAN_NAME( dlaset, DLASET ) -#define lapackf77_dlaswp FORTRAN_NAME( dlaswp, DLASWP ) -#define lapackf77_dlatrd FORTRAN_NAME( dlatrd, DLATRD ) -#define lapackf77_dlauum FORTRAN_NAME( dlauum, DLAUUM ) -#define lapackf77_dlavsy FORTRAN_NAME( dlavsy, DLAVSY ) -#define lapackf77_dpotrf FORTRAN_NAME( dpotrf, DPOTRF ) -#define lapackf77_dpotri FORTRAN_NAME( dpotri, DPOTRI ) -#define lapackf77_dpotrs FORTRAN_NAME( dpotrs, DPOTRS ) -#define lapackf77_dstedc FORTRAN_NAME( dstedc, DSTEDC ) -#define lapackf77_dstein FORTRAN_NAME( dstein, DSTEIN ) -#define lapackf77_dstemr FORTRAN_NAME( dstemr, DSTEMR ) -#define lapackf77_dsteqr FORTRAN_NAME( dsteqr, DSTEQR ) -#define lapackf77_dsymv FORTRAN_NAME( dsymv, DSYMV ) -#define lapackf77_dtrevc FORTRAN_NAME( dtrevc, DTREVC ) -#define lapackf77_dtrtri FORTRAN_NAME( dtrtri, DTRTRI ) -#define lapackf77_dorg2r FORTRAN_NAME( dorg2r, DORG2R ) -#define lapackf77_dorgbr FORTRAN_NAME( dorgbr, DORGBR ) -#define lapackf77_dorghr FORTRAN_NAME( dorghr, DORGHR ) -#define lapackf77_dorglq FORTRAN_NAME( dorglq, DORGLQ ) -#define lapackf77_dorgql FORTRAN_NAME( dorgql, DORGQL ) -#define lapackf77_dorgqr FORTRAN_NAME( dorgqr, DORGQR ) -#define lapackf77_dorgtr FORTRAN_NAME( dorgtr, DORGTR ) -#define lapackf77_dorm2r FORTRAN_NAME( dorm2r, DORM2R ) -#define lapackf77_dormbr FORTRAN_NAME( dormbr, DORMBR ) -#define lapackf77_dormlq FORTRAN_NAME( dormlq, DORMLQ ) -#define lapackf77_dormql FORTRAN_NAME( dormql, DORMQL ) -#define lapackf77_dormqr FORTRAN_NAME( dormqr, DORMQR ) -#define lapackf77_dormtr FORTRAN_NAME( dormtr, DORMTR ) - -/* testing functions */ -#define lapackf77_dbdt01 FORTRAN_NAME( dbdt01, DBDT01 ) -#define lapackf77_dget22 FORTRAN_NAME( dget22, DGET22 ) -#define lapackf77_dqpt01 FORTRAN_NAME( dqpt01, DQPT01 ) -#define lapackf77_dsyt21 FORTRAN_NAME( dsyt21, DSYT21 ) -#define lapackf77_dhst01 FORTRAN_NAME( dhst01, DHST01 ) -#define lapackf77_dqrt02 FORTRAN_NAME( dqrt02, DQRT02 ) -#define lapackf77_dort01 FORTRAN_NAME( dort01, DORT01 ) -#define lapackf77_dlarfy FORTRAN_NAME( dlarfy, DLARFY ) -#define lapackf77_dlarfx FORTRAN_NAME( dlarfx, DLARFX ) -#define lapackf77_dstt21 FORTRAN_NAME( dstt21, DSTT21 ) - -// macros to handle differences in arguments between real and real versions of routines. -#if defined(PRECISION_z) || defined(PRECISION_c) -#define DWORKFORZ double *rwork, -#define DWORKFORZ_AND_LD double *rwork, const magma_int_t *ldrwork, -#define WSPLIT double *w -#else -#define DWORKFORZ -#define DWORKFORZ_AND_LD -#define WSPLIT double *wr, double *wi -#endif - -/* - * BLAS functions (alphabetical order) - */ -magma_int_t blasf77_idamax( - const magma_int_t *n, - const double *x, const magma_int_t *incx); - -void blasf77_daxpy( const magma_int_t *n, - const double *alpha, - const double *x, const magma_int_t *incx, - double *y, const magma_int_t *incy ); - -void blasf77_dcopy( const magma_int_t *n, - const double *x, const magma_int_t *incx, - double *y, const magma_int_t *incy ); - -void blasf77_dgemm( const char *transa, const char *transb, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *B, const magma_int_t *ldb, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dgemv( const char *transa, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *x, const magma_int_t *incx, - const double *beta, - double *y, const magma_int_t *incy ); - -void blasf77_dger( const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *x, const magma_int_t *incx, - const double *y, const magma_int_t *incy, - double *A, const magma_int_t *lda ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_dger( const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *x, const magma_int_t *incx, - const double *y, const magma_int_t *incy, - double *A, const magma_int_t *lda ); -#endif - -void blasf77_dsymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *B, const magma_int_t *ldb, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dsymv( const char *uplo, - const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *x, const magma_int_t *incx, - const double *beta, - double *y, const magma_int_t *incy ); - -void blasf77_dsyr2( const char *uplo, - const magma_int_t *n, - const double *alpha, - const double *x, const magma_int_t *incx, - const double *y, const magma_int_t *incy, - double *A, const magma_int_t *lda ); - -void blasf77_dsyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *B, const magma_int_t *ldb, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dsyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dscal( const magma_int_t *n, - const double *alpha, - double *x, const magma_int_t *incx ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_ddscal( const magma_int_t *n, - const double *alpha, - double *x, const magma_int_t *incx ); -#endif - -void blasf77_dswap( const magma_int_t *n, - double *x, const magma_int_t *incx, - double *y, const magma_int_t *incy ); - -void blasf77_dsymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *B, const magma_int_t *ldb, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dsyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *B, const magma_int_t *ldb, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dsyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *beta, - double *C, const magma_int_t *ldc ); - -void blasf77_dtrmm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb ); - -void blasf77_dtrmv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const double *A, const magma_int_t *lda, - double *x, const magma_int_t *incx ); - -void blasf77_dtrsm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb ); - -void blasf77_dtrsv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const double *A, const magma_int_t *lda, - double *x, const magma_int_t *incx ); - -/* - * LAPACK functions (alphabetical order) - */ -void lapackf77_dbdsqr( const char *uplo, - const magma_int_t *n, const magma_int_t *ncvt, const magma_int_t *nru, const magma_int_t *ncc, - double *d, double *e, - double *Vt, const magma_int_t *ldvt, - double *U, const magma_int_t *ldu, - double *C, const magma_int_t *ldc, - double *work, - magma_int_t *info ); - -void lapackf77_dgebak( const char *job, const char *side, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - const double *scale, const magma_int_t *m, - double *V, const magma_int_t *ldv, - magma_int_t *info ); - -void lapackf77_dgebal( const char *job, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *ilo, magma_int_t *ihi, - double *scale, - magma_int_t *info ); - -void lapackf77_dgebd2( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *d, double *e, - double *tauq, - double *taup, - double *work, - magma_int_t *info ); - -void lapackf77_dgebrd( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *d, double *e, - double *tauq, - double *taup, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgeev( const char *jobvl, const char *jobvr, - const magma_int_t *n, - double *A, const magma_int_t *lda, - WSPLIT, - double *Vl, const magma_int_t *ldvl, - double *Vr, const magma_int_t *ldvr, - double *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_dgehd2( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - double *A, const magma_int_t *lda, - double *tau, - double *work, - magma_int_t *info ); - -void lapackf77_dgehrd( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - double *A, const magma_int_t *lda, - double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgelqf( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgels( const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *nrhs, - double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgeqlf( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgeqp3( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *jpvt, - double *tau, - double *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_dgeqrf( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgesvd( const char *jobu, const char *jobvt, - const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *s, - double *U, const magma_int_t *ldu, - double *Vt, const magma_int_t *ldvt, - double *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_dgetrf( const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *ipiv, - magma_int_t *info ); - -void lapackf77_dgetri( const magma_int_t *n, - double *A, const magma_int_t *lda, - const magma_int_t *ipiv, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dgetrs( const char* trans, - const magma_int_t *n, const magma_int_t *nrhs, - const double *A, const magma_int_t *lda, - const magma_int_t *ipiv, - double *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_dsbtrd( const char *vect, const char *uplo, - const magma_int_t *n, const magma_int_t *kd, - double *Ab, const magma_int_t *ldab, - double *d, double *e, - double *Q, const magma_int_t *ldq, - double *work, - magma_int_t *info ); - -void lapackf77_dsyev( const char *jobz, const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *w, - double *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_dsyevd( const char *jobz, const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *w, - double *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_dsygs2( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_dsygvd( const magma_int_t *itype, const char *jobz, const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb, - double *w, - double *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_dsytd2( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *d, double *e, - double *tau, - magma_int_t *info ); - -void lapackf77_dsytrd( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - double *d, double *e, - double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dsytrf( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *ipiv, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dhseqr( const char *job, const char *compz, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - double *H, const magma_int_t *ldh, - WSPLIT, - double *Z, const magma_int_t *ldz, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dlabrd( const magma_int_t *m, const magma_int_t *n, const magma_int_t *nb, - double *A, const magma_int_t *lda, - double *d, double *e, - double *tauq, - double *taup, - double *X, const magma_int_t *ldx, - double *Y, const magma_int_t *ldy ); - -void lapackf77_dladiv( double *ret_val, double *x, - double *y ); - -void lapackf77_dlacgv( const magma_int_t *n, - double *x, const magma_int_t *incx ); - -void lapackf77_dlacpy( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb ); - -void lapackf77_dlasyf( const char *uplo, - const magma_int_t *n, const magma_int_t *kn, - magma_int_t *kb, - double *A, const magma_int_t lda, - magma_int_t *ipiv, - double *work, const magma_int_t *ldwork, - magma_int_t *info ); - -double lapackf77_dlange( const char *norm, - const magma_int_t *m, const magma_int_t *n, - const double *A, const magma_int_t *lda, - double *work ); - -double lapackf77_dlansy( const char *norm, const char *uplo, - const magma_int_t *n, - const double *A, const magma_int_t *lda, - double * work ); - -double lapackf77_dlanst( const char* norm, const magma_int_t* n, - const double* d, const double* e ); - -double lapackf77_dlansy( const char *norm, const char *uplo, - const magma_int_t *n, - const double *A, const magma_int_t *lda, - double * work ); - -void lapackf77_dlaqp2 ( magma_int_t *m, magma_int_t *n, magma_int_t *offset, - double *a, magma_int_t *lda, magma_int_t *jpvt, - double *tau, - double *vn1, double *vn2, double *work); - -void lapackf77_dlarf ( char *, magma_int_t *, magma_int_t *, - double *, magma_int_t *, double *, double *, - magma_int_t *, double *); - -void lapackf77_dlarfb( const char *side, const char *trans, const char *direct, const char *storev, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *V, const magma_int_t *ldv, - const double *T, const magma_int_t *ldt, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *ldwork ); - -void lapackf77_dlarfg( const magma_int_t *n, - double *alpha, - double *x, const magma_int_t *incx, - double *tau ); - -void lapackf77_dlarft( const char *direct, const char *storev, - const magma_int_t *n, const magma_int_t *k, - double *V, const magma_int_t *ldv, - const double *tau, - double *T, const magma_int_t *ldt ); - -void lapackf77_dlarnv( const magma_int_t *idist, magma_int_t *iseed, const magma_int_t *n, - double *x ); - -void lapackf77_dlartg( double *F, - double *G, - double *cs, - double *SN, - double *R ); - -void lapackf77_dlascl( const char *type, - const magma_int_t *kl, const magma_int_t *ku, - double *cfrom, - double *cto, - const magma_int_t *m, const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dlaset( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const double *alpha, - const double *beta, - double *A, const magma_int_t *lda ); - -void lapackf77_dlaswp( const magma_int_t *n, - double *A, const magma_int_t *lda, - const magma_int_t *k1, const magma_int_t *k2, - magma_int_t *ipiv, - const magma_int_t *incx ); - -void lapackf77_dlatrd( const char *uplo, - const magma_int_t *n, const magma_int_t *nb, - double *A, const magma_int_t *lda, - double *e, - double *tau, - double *work, const magma_int_t *ldwork ); - -void lapackf77_dlauum( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dlavsy( const char *uplo, const char *trans, const char *diag, - magma_int_t *n, magma_int_t *nrhs, - double *A, magma_int_t *lda, - magma_int_t *ipiv, - double *B, magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_dpotrf( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dpotri( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dpotrs( const char *uplo, - const magma_int_t *n, const magma_int_t *nrhs, - const double *A, const magma_int_t *lda, - double *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_dstedc( const char *compz, - const magma_int_t *n, - double *d, double *e, - double *Z, const magma_int_t *ldz, - double *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_dstein( const magma_int_t *n, - const double *d, const double *e, - const magma_int_t *m, - const double *w, - const magma_int_t *iblock, - const magma_int_t *isplit, - double *Z, const magma_int_t *ldz, - double *work, magma_int_t *iwork, magma_int_t *ifailv, - magma_int_t *info ); - -void lapackf77_dstemr( const char *jobz, const char *range, - const magma_int_t *n, - double *d, double *e, - const double *vl, const double *vu, - const magma_int_t *il, const magma_int_t *iu, - magma_int_t *m, - double *w, - double *Z, const magma_int_t *ldz, - const magma_int_t *nzc, magma_int_t *isuppz, magma_int_t *tryrac, - double *work, const magma_int_t *lwork, - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_dsteqr( const char *compz, - const magma_int_t *n, - double *d, double *e, - double *Z, const magma_int_t *ldz, - double *work, - magma_int_t *info ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_dsymv( const char *uplo, - const magma_int_t *n, - const double *alpha, - const double *A, const magma_int_t *lda, - const double *x, const magma_int_t *incx, - const double *beta, - double *y, const magma_int_t *incy ); -#endif - -void lapackf77_dtrevc( const char *side, const char *howmny, - magma_int_t *select, const magma_int_t *n, - double *T, const magma_int_t *ldt, - double *Vl, const magma_int_t *ldvl, - double *Vr, const magma_int_t *ldvr, - const magma_int_t *mm, magma_int_t *m, - double *work, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_dtrtri( const char *uplo, const char *diag, - const magma_int_t *n, - double *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dorg2r( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, const magma_int_t *lda, - const double *tau, - double *work, - magma_int_t *info ); - -void lapackf77_dorgbr( const char *vect, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorghr( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorglq( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorgql( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorgqr( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorgtr( const char *uplo, - const magma_int_t *n, - double *A, const magma_int_t *lda, - const double *tau, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dorm2r( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, - magma_int_t *info ); - -void lapackf77_dormbr( const char *vect, const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dormlq( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dormql( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dormqr( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_dormtr( const char *side, const char *uplo, const char *trans, - const magma_int_t *m, const magma_int_t *n, - const double *A, const magma_int_t *lda, - const double *tau, - double *C, const magma_int_t *ldc, - double *work, const magma_int_t *lwork, - magma_int_t *info ); - -/* - * Real precision extras - */ -void lapackf77_dstebz( const char *range, const char *order, - const magma_int_t *n, - double *vl, double *vu, - magma_int_t *il, magma_int_t *iu, - double *abstol, - double *d, double *e, - const magma_int_t *m, const magma_int_t *nsplit, - double *w, - magma_int_t *iblock, magma_int_t *isplit, - double *work, - magma_int_t *iwork, - magma_int_t *info ); - -double lapackf77_dlamc3( double* a, double* b ); - -void lapackf77_dlamrg( magma_int_t* n1, magma_int_t* n2, - double* a, - magma_int_t* dtrd1, magma_int_t* dtrd2, magma_int_t* index ); - -double lapackf77_dlapy3(double *, double *, double *); - -void lapackf77_dlaed4( magma_int_t* n, magma_int_t* i, - double* d, - double* z, - double* delta, - double* rho, - double* dlam, magma_int_t* info ); - -/* - * Testing functions - */ -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_dbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - double *A, const magma_int_t *lda, - double *Q, const magma_int_t *ldq, - double *d, double *e, - double *Pt, const magma_int_t *ldpt, - double *work, - double *rwork, - double *resid ); - -void lapackf77_dget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *E, const magma_int_t *lde, - double *w, - double *work, - double *rwork, - double *result ); - -void lapackf77_dsyt21( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, const magma_int_t *kband, - double *A, const magma_int_t *lda, - double *d, double *e, - double *U, const magma_int_t *ldu, - double *V, const magma_int_t *ldv, - double *tau, - double *work, - double *rwork, - double *result ); - -void lapackf77_dhst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - double *A, const magma_int_t *lda, - double *H, const magma_int_t *ldh, - double *Q, const magma_int_t *ldq, - double *work, const magma_int_t *lwork, - double *rwork, - double *result ); - -void lapackf77_dstt21( const magma_int_t *n, const magma_int_t *kband, - double *AD, - double *AE, - double *SD, - double *SE, - double *U, const magma_int_t *ldu, - double *work, - double *rwork, - double *result ); - -void lapackf77_dort01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - double *U, const magma_int_t *ldu, - double *work, const magma_int_t *lwork, - double *rwork, - double *resid ); -#else -void lapackf77_dbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - double *A, const magma_int_t *lda, - double *Q, const magma_int_t *ldq, - double *d, double *e, - double *Pt, const magma_int_t *ldpt, - double *work, - double *resid ); - -void lapackf77_dget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - double *A, const magma_int_t *lda, - double *E, const magma_int_t *lde, - double *wr, - double *wi, - double *work, - double *result ); - -void lapackf77_dsyt21( magma_int_t *itype, const char *uplo, const magma_int_t *n, const magma_int_t *kband, - double *A, const magma_int_t *lda, - double *d, double *e, - double *U, const magma_int_t *ldu, - double *V, const magma_int_t *ldv, - double *tau, - double *work, - double *result ); - -void lapackf77_dhst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - double *A, const magma_int_t *lda, - double *H, const magma_int_t *ldh, - double *Q, const magma_int_t *ldq, - double *work, const magma_int_t *lwork, - double *result ); - -void lapackf77_dstt21( const magma_int_t *n, const magma_int_t *kband, - double *AD, - double *AE, - double *SD, - double *SE, - double *U, const magma_int_t *ldu, - double *work, - double *result ); - -void lapackf77_dort01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - double *U, const magma_int_t *ldu, - double *work, const magma_int_t *lwork, - double *resid ); -#endif - -void lapackf77_dlarfy( const char *uplo, const magma_int_t *n, - double *V, const magma_int_t *incv, - double *tau, - double *C, const magma_int_t *ldc, - double *work ); - -void lapackf77_dlarfx( const char *side, const magma_int_t *m, const magma_int_t *n, - double *V, - double *tau, - double *C, const magma_int_t *ldc, - double *work ); - -double lapackf77_dqpt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, - double *Af, const magma_int_t *lda, - double *tau, magma_int_t *jpvt, - double *work, const magma_int_t *lwork ); - -void lapackf77_dqrt02( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - double *A, - double *AF, - double *Q, - double *R, const magma_int_t *lda, - double *tau, - double *work, const magma_int_t *lwork, - double *rwork, - double *result ); - -#ifdef __cplusplus -} -#endif - -#undef DWORKFORZ -#undef DWORKFORZ_AND_LD -#undef WSPLIT -#undef PRECISION_d - -#endif /* MAGMA_DLAPACK_H */ diff --git a/src/include/magma_ds.h b/src/include/magma_ds.h deleted file mode 100644 index ce57163..0000000 --- a/src/include/magma_ds.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated ds Wed Nov 14 22:52:26 2012 - */ - -#ifndef _MAGMA_DS_H_ -#define _MAGMA_DS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Mixed precision */ -magma_int_t magma_dsgesv_gpu( char trans, magma_int_t N, magma_int_t NRHS, - double *dA, magma_int_t ldda, - magma_int_t *IPIV, magma_int_t *dIPIV, - double *dB, magma_int_t lddb, - double *dX, magma_int_t lddx, - double *dworkd, float *dworks, - magma_int_t *iter, magma_int_t *info); - -magma_int_t magma_dsgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - magma_int_t *ipiv, - double *dB, magma_int_t lddb, - double *dX, magma_int_t lddx, - float *dSX, - magma_int_t *info ); - -magma_int_t magma_dsposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, - double *dX, magma_int_t lddx, - double *dworkd, float *dworks, - magma_int_t *iter, magma_int_t *info); - -magma_int_t magma_dsgeqrsv_gpu(magma_int_t M, magma_int_t N, magma_int_t NRHS, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, - double *dX, magma_int_t lddx, - magma_int_t *iter, magma_int_t *info); - - -#ifdef __cplusplus -} -#endif - -#endif /* _MAGMA_D_H_ */ diff --git a/src/include/magma_lapack.h b/src/include/magma_lapack.h deleted file mode 100644 index e168b2d..0000000 --- a/src/include/magma_lapack.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef MAGMA_LAPACK_H -#define MAGMA_LAPACK_H - -#ifndef FORTRAN_NAME -#if defined(ADD_) -#define FORTRAN_NAME(lcname, UCNAME) lcname##_ -#elif defined(NOCHANGE) -#define FORTRAN_NAME(lcname, UCNAME) lcname -#elif defined(UPCASE) -#define FORTRAN_NAME(lcname, UCNAME) UCNAME -#else -#error Define one of ADD_, NOCHANGE, or UPCASE for how Fortran functions are name mangled. -#endif -#endif - -#include "magma_zlapack.h" -#include "magma_clapack.h" -#include "magma_dlapack.h" -#include "magma_slapack.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define lapackf77_ieeeck FORTRAN_NAME( ieeeck, IEEECK ) -#define lapackf77_lsame FORTRAN_NAME( lsame, LSAME ) -#define lapackf77_xerbla FORTRAN_NAME( xerbla, XERBLA ) - -#define lapackf77_slamch FORTRAN_NAME( slamch, SLAMCH ) -#define lapackf77_dlamch FORTRAN_NAME( dlamch, DLAMCH ) -#define lapackf77_slabad FORTRAN_NAME( slabad, SLABAD ) -#define lapackf77_dlabad FORTRAN_NAME( dlabad, DLABAD ) -#define lapackf77_zcgesv FORTRAN_NAME( zcgesv, ZCGESV ) -#define lapackf77_dsgesv FORTRAN_NAME( dsgesv, DSGESV ) - -#define lapackf77_dsterf FORTRAN_NAME( dsterf, DSTERF ) -#define lapackf77_ssterf FORTRAN_NAME( ssterf, SSTERF ) - -#define lapackf77_zlag2c FORTRAN_NAME( zlag2c, ZLAG2C ) -#define lapackf77_clag2z FORTRAN_NAME( clag2z, CLAG2Z ) -#define lapackf77_dlag2s FORTRAN_NAME( dlag2s, DLAG2S ) -#define lapackf77_slag2d FORTRAN_NAME( slag2d, SLAG2D ) - -#define lapackf77_dlapy2 FORTRAN_NAME( dlapy2, DLAPY2 ) -#define lapackf77_slapy2 FORTRAN_NAME( slapy2, SLAPY2 ) - -magma_int_t lapackf77_ieeeck( magma_int_t* ispec, float* zero, float* one ); - -long lapackf77_lsame( const char *ca, const char *cb ); - -void lapackf77_xerbla( const char *name, magma_int_t *info, magma_int_t name_len ); - -float lapackf77_slamch( const char *cmach ); -double lapackf77_dlamch( const char *cmach ); - -// "small" (lowercase) defined as char on Windows (reported by MathWorks) -void lapackf77_slabad( float *Small, float *large ); -void lapackf77_dlabad( double *Small, double *large ); - -void lapackf77_zcgesv( const magma_int_t *n, const magma_int_t *nrhs, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *ipiv, - const cuDoubleComplex *B, const magma_int_t *ldb, - cuDoubleComplex *X, const magma_int_t *ldx, - cuDoubleComplex *work, cuFloatComplex *swork, double *rwork, - magma_int_t *iter, - magma_int_t *info ); - -void lapackf77_dsgesv( const magma_int_t *n, const magma_int_t *nrhs, - double *A, const magma_int_t *lda, - magma_int_t *ipiv, - const double *B, const magma_int_t *ldb, - double *X, const magma_int_t *ldx, - double *work, float *swork, - magma_int_t *iter, - magma_int_t *info ); - -void lapackf77_dsterf( const magma_int_t *n, - double *d, double *e, - magma_int_t *info ); - -void lapackf77_ssterf( const magma_int_t *n, - float *d, float *e, - magma_int_t *info ); - -void lapackf77_zlag2c( magma_int_t *m, magma_int_t *n, - const cuDoubleComplex *A, magma_int_t *lda, - cuFloatComplex *SA, magma_int_t *ldsa, - magma_int_t *info ); - -void lapackf77_clag2z( magma_int_t *m, magma_int_t *n, - const cuFloatComplex *SA, magma_int_t *ldsa, - cuDoubleComplex *A, magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_dlag2s( magma_int_t *m, magma_int_t *n, - const double *A, magma_int_t *lda, - float *SA, magma_int_t *ldsa, - magma_int_t *info ); - -void lapackf77_slag2d( magma_int_t *m, magma_int_t *n, - const float *SA, magma_int_t *ldsa, - double *A, magma_int_t *lda, - magma_int_t *info ); - -double lapackf77_dlapy2( const double *x, const double *y ); -float lapackf77_slapy2( const float *x, const float *y ); - -#ifdef __cplusplus -} -#endif - -#endif /* MAGMA LAPACK */ diff --git a/src/include/magma_s.h b/src/include/magma_s.h deleted file mode 100644 index ae14f01..0000000 --- a/src/include/magma_s.h +++ /dev/null @@ -1,514 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated s Wed Nov 14 22:52:26 2012 - */ - -#ifndef _MAGMA_S_H_ -#define _MAGMA_S_H_ -#define PRECISION_s - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA Auxiliary functions to get the NB used -*/ -int magma_get_spotrf_nb(int m); -int magma_get_sgetrf_nb(int m); -int magma_get_sgetri_nb(int m); -int magma_get_sgeqp3_nb(int m); -int magma_get_sgeqrf_nb(int m); -int magma_get_sgeqlf_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); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on CPU -*/ -magma_int_t magma_sgebrd( magma_int_t m, magma_int_t n, float *A, - magma_int_t lda, float *d, float *e, - float *tauq, float *taup, - float *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgehrd2(magma_int_t n, magma_int_t ilo, magma_int_t ihi, - float *A, magma_int_t lda, float *tau, - float *work, magma_int_t *lwork, magma_int_t *info); -magma_int_t magma_sgehrd( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - float *A, magma_int_t lda, float *tau, - float *work, magma_int_t lwork, - float *d_T, magma_int_t *info); -magma_int_t magma_sgelqf( magma_int_t m, magma_int_t n, - float *A, magma_int_t lda, float *tau, - float *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgeqlf( magma_int_t m, magma_int_t n, - float *A, magma_int_t lda, float *tau, - float *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgeqrf( magma_int_t m, magma_int_t n, float *A, - magma_int_t lda, float *tau, float *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgeqr2( magma_int_t *m, magma_int_t *n, float *a, - magma_int_t *lda, float *tau, float *work, - magma_int_t *info); -magma_int_t magma_sgeqrf4(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, float *tau, - float *work, magma_int_t lwork, magma_int_t *info ); -magma_int_t magma_sgeqrf_ooc( magma_int_t m, magma_int_t n, float *A, - magma_int_t lda, float *tau, float *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgesv ( magma_int_t n, magma_int_t nrhs, - float *A, magma_int_t lda, magma_int_t *ipiv, - float *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_sgetrf( magma_int_t m, magma_int_t n, float *A, - magma_int_t lda, magma_int_t *ipiv, - magma_int_t *info); -magma_int_t magma_sgetrf2(magma_int_t m, magma_int_t n, float *a, - magma_int_t lda, magma_int_t *ipiv, magma_int_t *info); - -magma_int_t magma_slaqps( magma_int_t m, magma_int_t n, magma_int_t offset, - magma_int_t nb, magma_int_t *kb, - float *A, magma_int_t lda, - float *dA, magma_int_t ldda, - magma_int_t *jpvt, float *tau, float *vn1, float *vn2, - float *auxv, - float *F, magma_int_t ldf, - float *dF, magma_int_t lddf ); -magma_int_t magma_slarf( char *side, magma_int_t *m, magma_int_t *n, - float *v, magma_int_t *incv, float *tau, - float *c__, magma_int_t *ldc, float *work); -magma_int_t magma_slarfg( magma_int_t *n, float *alpha, float *x, - magma_int_t *incx, float *tau); -magma_int_t magma_slatrd( char uplo, magma_int_t n, magma_int_t nb, float *a, - magma_int_t lda, float *e, float *tau, - float *w, magma_int_t ldw, - float *da, magma_int_t ldda, - float *dw, magma_int_t lddw); -magma_int_t magma_slatrd2(char uplo, magma_int_t n, magma_int_t nb, - float *a, magma_int_t lda, - float *e, float *tau, - float *w, magma_int_t ldw, - float *da, magma_int_t ldda, - float *dw, magma_int_t lddw, - float *dwork, magma_int_t ldwork); -magma_int_t magma_slahr2( magma_int_t m, magma_int_t n, magma_int_t nb, - float *da, float *dv, float *a, - magma_int_t lda, float *tau, float *t, - magma_int_t ldt, float *y, magma_int_t ldy); -magma_int_t magma_slahru( magma_int_t n, magma_int_t ihi, magma_int_t k, magma_int_t nb, - float *a, magma_int_t lda, - float *da, float *y, - float *v, float *t, - float *dwork); -magma_int_t magma_sposv ( char uplo, magma_int_t n, magma_int_t nrhs, - float *A, magma_int_t lda, - float *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_spotrf( char uplo, magma_int_t n, float *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_spotri( char uplo, magma_int_t n, float *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_slauum( char uplo, magma_int_t n, float *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_strtri( char uplo, char diag, magma_int_t n, float *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_ssytrd( char uplo, magma_int_t n, float *A, - magma_int_t lda, float *d, float *e, - float *tau, float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sorgqr( magma_int_t m, magma_int_t n, magma_int_t k, - float *a, magma_int_t lda, - float *tau, float *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_sormql( const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - float *a, magma_int_t lda, - float *tau, - float *c, magma_int_t ldc, - float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sormqr( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - float *a, magma_int_t lda, float *tau, - float *c, magma_int_t ldc, - float *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sormtr( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, - float *tau, - float *c, magma_int_t ldc, - float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sorghr( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - float *a, magma_int_t lda, - float *tau, - float *dT, magma_int_t nb, - magma_int_t *info); -magma_int_t magma_ssyev( char jobz, char uplo, magma_int_t n, - float *a, magma_int_t lda, float *w, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_ssyevx(char jobz, char range, char uplo, magma_int_t n, - float *a, magma_int_t lda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, float *z, magma_int_t ldz, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_sgeev( char jobvl, char jobvr, magma_int_t n, - float *a, magma_int_t lda, - float *w, - float *vl, magma_int_t ldvl, - float *vr, magma_int_t ldvr, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_sgeqp3( magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, - magma_int_t *jpvt, float *tau, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *info); -magma_int_t magma_sgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, float *s, - float *u, magma_int_t ldu, - float *vt, magma_int_t ldvt, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *info ); -magma_int_t magma_ssyevd( char jobz, char uplo, magma_int_t n, - float *a, magma_int_t lda, float *w, - float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_ssyevr( char jobz, char range, char uplo, magma_int_t n, - float *a, magma_int_t lda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, float *z, magma_int_t ldz, - magma_int_t *isuppz, - float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_ssygvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - float *a, magma_int_t lda, - float *b, magma_int_t ldb, - float *w, float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_ssygvdx(magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, float *a, magma_int_t lda, - float *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - magma_int_t *m, float *w, float *work, - magma_int_t lwork, float *rwork, - magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_ssygvx( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, float *a, magma_int_t lda, - float *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, float *w, - float *z, magma_int_t ldz, - float *work, magma_int_t lwork, float *rwork, - magma_int_t *iwork, magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_ssygvr( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, float *a, magma_int_t lda, - float *b, magma_int_t ldb, - float vl, float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, float *w, - float *z, magma_int_t ldz, - magma_int_t *isuppz, float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_sstedx( char range, magma_int_t n, float vl, float vu, - magma_int_t il, magma_int_t iu, float *D, float *E, - float *Z, magma_int_t ldz, - float *rwork, magma_int_t ldrwork, magma_int_t *iwork, - magma_int_t liwork, float* dwork, magma_int_t *info); -#else -magma_int_t magma_sgeev( char jobvl, char jobvr, magma_int_t n, - float *a, magma_int_t lda, - float *wr, float *wi, - float *vl, magma_int_t ldvl, - float *vr, magma_int_t ldvr, - float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sgeqp3( magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, - magma_int_t *jpvt, float *tau, - float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - float *a, magma_int_t lda, float *s, - float *u, magma_int_t ldu, - float *vt, magma_int_t ldvt, - float *work, magma_int_t lwork, - magma_int_t *info ); -magma_int_t magma_ssyevd( char jobz, char uplo, magma_int_t n, - float *a, magma_int_t lda, float *w, - float *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_ssygvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - float *a, magma_int_t lda, - float *b, magma_int_t ldb, - float *w, float *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_sstedx( char range, magma_int_t n, float vl, float vu, - magma_int_t il, magma_int_t iu, float* d, float* e, - float* z, magma_int_t ldz, - float* work, magma_int_t lwork, - magma_int_t* iwork, magma_int_t liwork, - float* dwork, magma_int_t* info); -magma_int_t magma_slaex0( magma_int_t n, float* d, float* e, float* q, magma_int_t ldq, - float* work, magma_int_t* iwork, float* dwork, - char range, float vl, float vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_slaex1( magma_int_t n, float* d, float* q, magma_int_t ldq, - magma_int_t* indxq, float rho, magma_int_t cutpnt, - float* work, magma_int_t* iwork, float* dwork, - char range, float vl, float vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_slaex3( magma_int_t k, magma_int_t n, magma_int_t n1, float* d, - float* q, magma_int_t ldq, float rho, - float* dlamda, float* q2, magma_int_t* indx, - magma_int_t* ctot, float* w, float* s, magma_int_t* indxq, - float* dwork, - char range, float vl, float vu, magma_int_t il, magma_int_t iu, - magma_int_t* info ); -#endif - -magma_int_t magma_ssygst( magma_int_t itype, char uplo, magma_int_t n, - float *a, magma_int_t lda, - float *b, magma_int_t ldb, magma_int_t *info); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on GPU -*/ -magma_int_t magma_sgels_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb, - float *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sgels3_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb, - float *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_sgelqf_gpu( magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, float *tau, - float *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgeqrf_gpu( magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, - float *tau, float *dT, - magma_int_t *info); -magma_int_t magma_sgeqrf2_gpu(magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, - float *tau, magma_int_t *info); -magma_int_t magma_sgeqrf2_mgpu(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - float **dlA, magma_int_t ldda, - float *tau, magma_int_t *info ); -magma_int_t magma_sgeqrf3_gpu(magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, - float *tau, float *dT, - magma_int_t *info); -magma_int_t magma_sgeqrs_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *tau, float *dT, - float *dB, magma_int_t lddb, - float *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_sgeqrs3_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *tau, float *dT, - float *dB, magma_int_t lddb, - float *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_sgessm_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t k, magma_int_t ib, - magma_int_t *ipiv, - float *dL1, magma_int_t lddl1, - float *dL, magma_int_t lddl, - float *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_sgesv_gpu( magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, magma_int_t *ipiv, - float *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_sgetrf_incpiv_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, - float *hA, magma_int_t ldha, float *dA, magma_int_t ldda, - float *hL, magma_int_t ldhl, float *dL, magma_int_t lddl, - magma_int_t *ipiv, - float *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_sgetrf_gpu( magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t *info); -magma_int_t -magma_sgetrf_nopiv_gpu ( magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_sgetri_gpu( magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *ipiv, - float *dwork, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_sgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, magma_int_t *ipiv, - float *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_slabrd_gpu( magma_int_t m, magma_int_t n, magma_int_t nb, - float *a, magma_int_t lda, float *da, magma_int_t ldda, - float *d, float *e, float *tauq, float *taup, - float *x, magma_int_t ldx, float *dx, magma_int_t lddx, - float *y, magma_int_t ldy, float *dy, magma_int_t lddy); -magma_int_t magma_slarfb_gpu( char side, char trans, char direct, char storev, - magma_int_t m, magma_int_t n, magma_int_t k, - const float *dv, magma_int_t ldv, - const float *dt, magma_int_t ldt, - float *dc, magma_int_t ldc, - float *dwork, magma_int_t ldwork ); -magma_int_t magma_sposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_spotrf_gpu( char uplo, magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_spotri_gpu( char uplo, magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_slauum_gpu( char uplo, magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_strtri_gpu( char uplo, char diag, magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_ssytrd_gpu( char uplo, magma_int_t n, - float *da, magma_int_t ldda, - float *d, float *e, float *tau, - float *wa, magma_int_t ldwa, - float *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_ssytrd2_gpu(char uplo, magma_int_t n, - float *da, magma_int_t ldda, - float *d, float *e, float *tau, - float *wa, magma_int_t ldwa, - float *work, magma_int_t lwork, - float *dwork, magma_int_t ldwork, - magma_int_t *info); -magma_int_t magma_spotrs_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_sssssm_gpu( char storev, magma_int_t m1, magma_int_t n1, - magma_int_t m2, magma_int_t n2, magma_int_t k, magma_int_t ib, - float *dA1, magma_int_t ldda1, - float *dA2, magma_int_t ldda2, - float *dL1, magma_int_t lddl1, - float *dL2, magma_int_t lddl2, - magma_int_t *IPIV, magma_int_t *info); -magma_int_t magma_ststrf_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, magma_int_t nb, - float *hU, magma_int_t ldhu, float *dU, magma_int_t lddu, - float *hA, magma_int_t ldha, float *dA, magma_int_t ldda, - float *hL, magma_int_t ldhl, float *dL, magma_int_t lddl, - magma_int_t *ipiv, - float *hwork, magma_int_t ldhwork, - float *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_sorgqr_gpu( magma_int_t m, magma_int_t n, magma_int_t k, - float *da, magma_int_t ldda, - float *tau, float *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_sormql2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - float *da, magma_int_t ldda, - float *tau, - float *dc, magma_int_t lddc, - float *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_sormqr_gpu( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - float *a, magma_int_t lda, float *tau, - float *c, magma_int_t ldc, - float *work, magma_int_t lwork, - float *td, magma_int_t nb, magma_int_t *info); -magma_int_t magma_sormqr2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - float *da, magma_int_t ldda, - float *tau, - float *dc, magma_int_t lddc, - float *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_sormtr_gpu( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - float *da, magma_int_t ldda, - float *tau, - float *dc, magma_int_t lddc, - float *wa, magma_int_t ldwa, - magma_int_t *info); - -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_ssyevd_gpu( char jobz, char uplo, - magma_int_t n, - float *da, magma_int_t ldda, - float *w, - float *wa, magma_int_t ldwa, - float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_ssyevdx_gpu(char jobz, char range, char uplo, - magma_int_t n, float *da, - magma_int_t ldda, float vl, float vu, - magma_int_t il, magma_int_t iu, - magma_int_t *m, float *w, - float *wa, magma_int_t ldwa, - float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_ssyevr_gpu( char jobz, char range, char uplo, magma_int_t n, - float *da, magma_int_t ldda, float vl, float vu, - magma_int_t il, magma_int_t iu, float abstol, magma_int_t *m, - float *w, float *dz, magma_int_t lddz, - magma_int_t *isuppz, - float *wa, magma_int_t ldwa, - float *wz, magma_int_t ldwz, - float *work, magma_int_t lwork, - float *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -#else -magma_int_t magma_ssyevd_gpu( char jobz, char uplo, - magma_int_t n, - float *da, magma_int_t ldda, - float *w, - float *wa, magma_int_t ldwa, - float *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -#endif - -magma_int_t magma_ssyevx_gpu( char jobz, char range, char uplo, magma_int_t n, - float *da, magma_int_t ldda, float vl, - float vu, magma_int_t il, magma_int_t iu, - float abstol, magma_int_t *m, - float *w, float *dz, magma_int_t lddz, - float *wa, magma_int_t ldwa, - float *wz, magma_int_t ldwz, - float *work, magma_int_t lwork, - float *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_ssygst_gpu(magma_int_t itype, char uplo, magma_int_t n, - float *da, magma_int_t ldda, - float *db, magma_int_t lddb, magma_int_t *info); - - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA utility function definitions -*/ - -void magma_sprint ( magma_int_t m, magma_int_t n, const float *A, magma_int_t lda ); -void magma_sprint_gpu( magma_int_t m, magma_int_t n, const float *dA, magma_int_t ldda ); - -void spanel_to_q( char uplo, magma_int_t ib, float *A, magma_int_t lda, float *work ); -void sq_to_panel( char uplo, magma_int_t ib, float *A, magma_int_t lda, float *work ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_s -#endif /* _MAGMA_S_H_ */ diff --git a/src/include/magma_sbulge.h b/src/include/magma_sbulge.h deleted file mode 100644 index 9e519c2..0000000 --- a/src/include/magma_sbulge.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated s Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_SBULGEINC_H -#define MAGMA_SBULGEINC_H - -#define PRECISION_s - -extern "C" { - magma_int_t magma_ssytrd_sy2sb(char uplo, magma_int_t n, magma_int_t NB, float *a, magma_int_t lda, - float *tau, float *work, magma_int_t lwork, float *dT, magma_int_t threads, magma_int_t *info); - - magma_int_t magma_ssytrd_hb2st(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, - float *A, magma_int_t lda, float *D, float *E, - float *V, magma_int_t ldv, float *TAU, magma_int_t compT, float *T, magma_int_t ldt); - - magma_int_t magma_sbulge_back(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t ne, magma_int_t Vblksiz, - float *Z, magma_int_t ldz, float *dZ, magma_int_t lddz, - float *V, magma_int_t ldv, float *TAU, float *T, magma_int_t ldt, magma_int_t* info); - - magma_int_t magma_sormqr_gpu_2stages(char side, char trans, magma_int_t m, magma_int_t n, magma_int_t k, float *dA, magma_int_t ldda, - float *dC, magma_int_t lddc, float *dT, magma_int_t nb, magma_int_t *info); - - magma_int_t magma_sbulge_get_lq2(magma_int_t n); - - magma_int_t magma_sbulge_get_Vblksiz(magma_int_t n, magma_int_t nb); -} -#endif diff --git a/src/include/magma_sbulgeinc.h b/src/include/magma_sbulgeinc.h deleted file mode 100644 index dc73b93..0000000 --- a/src/include/magma_sbulgeinc.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated s Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_SBULGEINC_H -#define MAGMA_SBULGEINC_H - -#define PRECISION_s - -#ifdef __cplusplus -extern "C" { -#endif - - -/***************************************************************************//** - * Configuration - **/ - - // maximum contexts -#define MAX_THREADS_BLG 256 - -void findVTpos(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t *Vpos, magma_int_t *TAUpos, magma_int_t *Tpos, magma_int_t *myblkid); -void findVTsiz(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t *blkcnt, magma_int_t *LDV); -magma_int_t plasma_ceildiv(magma_int_t a, magma_int_t b); - - -/* -extern volatile magma_int_t barrier_in[MAX_THREADS_BLG]; -extern volatile magma_int_t barrier_out[MAX_THREADS_BLG]; -extern volatile magma_int_t *ss_prog; -*/ - - /***************************************************************************//** - * Static scheduler - **/ -/* -#define ssched_init(nbtiles) \ -{ \ - volatile int prog_ol[2*nbtiles+10];\ - int iamdone[MAX_THREADS_BLG]; \ - int thread_num[MAX_THREADS_BLG];\ - pthread_t thread_id[MAX_THREADS_BLG];\ - pthread_attr_t thread_attr;\ -} -*/ -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - - struct gbstrct_blg { - float *dQ1; - float *dT1; - float *dT2; - float *dV2; - float *dE; - float *T; - float *A; - float *V; - float *TAU; - float *E; - float *E_CPU; - int cores_num; - int locores_num; - int overlapQ1; - int usemulticpu; - int NB; - int NBTILES; - int N; - int NE; - int N_CPU; - int N_GPU; - int LDA; - int LDE; - int BAND; - int grsiz; - int Vblksiz; - int WANTZ; - char SIDE; - real_Double_t *timeblg; - real_Double_t *timeaplQ; - volatile int *ss_prog; -} ; - -// declare globals here; defined in ssytrd_bsy2trc.cpp -extern struct gbstrct_blg core_in_all; - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////////////// -#define MAX_EVENTSBLG 163840 -//#define MAX_EVENTSBLG 1048576 - -// If we're not using GNU C, elide __attribute__ -#ifndef __GNUC__ -#define __attribute__(x) /*NOTHING*/ -#endif - -// declare globals here; defined in ssytrd_bsy2trc.cpp -extern int event_numblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_start_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_end_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_logblg [MAX_THREADS_BLG][MAX_EVENTSBLG] __attribute__ ((aligned (128))); -extern int log_eventsblg; - -#ifndef __GNUC__ -#undef __attribute__ -#endif - -#define core_event_startblg(my_core_id)\ - event_start_timeblg[my_core_id] = magma_wtime(); - -#define core_event_endblg(my_core_id)\ - event_end_timeblg[my_core_id] = magma_wtime(); - -#define core_log_eventblg(event, my_core_id)\ - event_logblg[my_core_id][event_numblg[my_core_id]+0] = my_core_id;\ - event_logblg[my_core_id][event_numblg[my_core_id]+1] = event_start_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+2] = event_end_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+3] = (event);\ - event_numblg[my_core_id] += (log_eventsblg << 2);\ - event_numblg[my_core_id] &= (MAX_EVENTSBLG-1); - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_s - -#endif /* MAGMA_SBULGEINC_H */ diff --git a/src/include/magma_slapack.h b/src/include/magma_slapack.h deleted file mode 100644 index 95c1f97..0000000 --- a/src/include/magma_slapack.h +++ /dev/null @@ -1,953 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated s Wed Nov 14 22:52:27 2012 - */ - -#ifndef MAGMA_SLAPACK_H -#define MAGMA_SLAPACK_H - -#define PRECISION_s - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- BLAS and LAPACK functions (alphabetical order) -*/ -#define blasf77_isamax FORTRAN_NAME( isamax, ISAMAX ) -#define blasf77_saxpy FORTRAN_NAME( saxpy, SAXPY ) -#define blasf77_scopy FORTRAN_NAME( scopy, SCOPY ) -#define blasf77_sgemm FORTRAN_NAME( sgemm, SGEMM ) -#define blasf77_sgemv FORTRAN_NAME( sgemv, SGEMV ) -#define blasf77_sger FORTRAN_NAME( sger, SGER ) -#define blasf77_sger FORTRAN_NAME( sger, SGER ) -#define blasf77_ssymm FORTRAN_NAME( ssymm, SSYMM ) -#define blasf77_ssymv FORTRAN_NAME( ssymv, SSYMV ) -#define blasf77_ssyr2 FORTRAN_NAME( ssyr2, SSYR2 ) -#define blasf77_ssyr2k FORTRAN_NAME( ssyr2k, SSYR2K ) -#define blasf77_ssyrk FORTRAN_NAME( ssyrk, SSYRK ) -#define blasf77_sscal FORTRAN_NAME( sscal, SSCAL ) -#define blasf77_ssscal FORTRAN_NAME( sscal, SSCAL ) -#define blasf77_sswap FORTRAN_NAME( sswap, SSWAP ) -#define blasf77_ssymm FORTRAN_NAME( ssymm, SSYMM ) -#define blasf77_ssyr2k FORTRAN_NAME( ssyr2k, SSYR2K ) -#define blasf77_ssyrk FORTRAN_NAME( ssyrk, SSYRK ) -#define blasf77_strmm FORTRAN_NAME( strmm, STRMM ) -#define blasf77_strmv FORTRAN_NAME( strmv, STRMV ) -#define blasf77_strsm FORTRAN_NAME( strsm, STRSM ) -#define blasf77_strsv FORTRAN_NAME( strsv, STRSV ) - -#define lapackf77_slaed4 FORTRAN_NAME( slaed4, SLAED4 ) -#define lapackf77_slamc3 FORTRAN_NAME( slamc3, SLAMC3 ) -#define lapackf77_slamrg FORTRAN_NAME( slamrg, SLAMRG ) -#define lapackf77_sstebz FORTRAN_NAME( sstebz, SSTEBZ ) - -#define lapackf77_sbdsqr FORTRAN_NAME( sbdsqr, SBDSQR ) -#define lapackf77_sgebak FORTRAN_NAME( sgebak, SGEBAK ) -#define lapackf77_sgebal FORTRAN_NAME( sgebal, SGEBAL ) -#define lapackf77_sgebd2 FORTRAN_NAME( sgebd2, SGEBD2 ) -#define lapackf77_sgebrd FORTRAN_NAME( sgebrd, SGEBRD ) -#define lapackf77_sgeev FORTRAN_NAME( sgeev, SGEEV ) -#define lapackf77_sgehd2 FORTRAN_NAME( sgehd2, SGEHD2 ) -#define lapackf77_sgehrd FORTRAN_NAME( sgehrd, SGEHRD ) -#define lapackf77_sgelqf FORTRAN_NAME( sgelqf, SGELQF ) -#define lapackf77_sgels FORTRAN_NAME( sgels, SGELS ) -#define lapackf77_sgeqlf FORTRAN_NAME( sgeqlf, SGEQLF ) -#define lapackf77_sgeqp3 FORTRAN_NAME( sgeqp3, SGEQP3 ) -#define lapackf77_sgeqrf FORTRAN_NAME( sgeqrf, SGEQRF ) -#define lapackf77_sgesvd FORTRAN_NAME( sgesvd, SGESVD ) -#define lapackf77_sgetrf FORTRAN_NAME( sgetrf, SGETRF ) -#define lapackf77_sgetri FORTRAN_NAME( sgetri, SGETRI ) -#define lapackf77_sgetrs FORTRAN_NAME( sgetrs, SGETRS ) -#define lapackf77_ssbtrd FORTRAN_NAME( ssbtrd, SSBTRD ) -#define lapackf77_ssyev FORTRAN_NAME( ssyev, SSYEV ) -#define lapackf77_ssyevd FORTRAN_NAME( ssyevd, SSYEVD ) -#define lapackf77_ssygs2 FORTRAN_NAME( ssygs2, SSYGS2 ) -#define lapackf77_ssygvd FORTRAN_NAME( ssygvd, SSYGVD ) -#define lapackf77_ssytd2 FORTRAN_NAME( ssytd2, SSYTD2 ) -#define lapackf77_ssytrd FORTRAN_NAME( ssytrd, SSYTRD ) -#define lapackf77_ssytrf FORTRAN_NAME( ssytrf, SSYTRF ) -#define lapackf77_shseqr FORTRAN_NAME( shseqr, SHSEQR ) -#define lapackf77_slabrd FORTRAN_NAME( slabrd, SLABRD ) -#define lapackf77_sladiv FORTRAN_NAME( sladiv, ZLADIV ) -#define lapackf77_slacgv FORTRAN_NAME( slacgv, SLACGV ) -#define lapackf77_slacpy FORTRAN_NAME( slacpy, SLACPY ) -#define lapackf77_slasyf FORTRAN_NAME( slasyf, SLASYF ) -#define lapackf77_slange FORTRAN_NAME( slange, SLANGE ) -#define lapackf77_slansy FORTRAN_NAME( slansy, SLANSY ) -#define lapackf77_slanst FORTRAN_NAME( slanst, SLANST ) -#define lapackf77_slansy FORTRAN_NAME( slansy, SLANSY ) -#define lapackf77_slapy3 FORTRAN_NAME( slapy3, DLAPY3 ) -#define lapackf77_slaqp2 FORTRAN_NAME( slaqp2, SLAQP2 ) -#define lapackf77_slarf FORTRAN_NAME( slarf, ZLARF ) -#define lapackf77_slarfb FORTRAN_NAME( slarfb, SLARFB ) -#define lapackf77_slarfg FORTRAN_NAME( slarfg, SLARFG ) -#define lapackf77_slarft FORTRAN_NAME( slarft, SLARFT ) -#define lapackf77_slarnv FORTRAN_NAME( slarnv, SLARNV ) -#define lapackf77_slartg FORTRAN_NAME( slartg, SLARTG ) -#define lapackf77_slascl FORTRAN_NAME( slascl, SLASCL ) -#define lapackf77_slaset FORTRAN_NAME( slaset, SLASET ) -#define lapackf77_slaswp FORTRAN_NAME( slaswp, SLASWP ) -#define lapackf77_slatrd FORTRAN_NAME( slatrd, SLATRD ) -#define lapackf77_slauum FORTRAN_NAME( slauum, SLAUUM ) -#define lapackf77_slavsy FORTRAN_NAME( slavsy, SLAVSY ) -#define lapackf77_spotrf FORTRAN_NAME( spotrf, SPOTRF ) -#define lapackf77_spotri FORTRAN_NAME( spotri, SPOTRI ) -#define lapackf77_spotrs FORTRAN_NAME( spotrs, SPOTRS ) -#define lapackf77_sstedc FORTRAN_NAME( sstedc, SSTEDC ) -#define lapackf77_sstein FORTRAN_NAME( sstein, SSTEIN ) -#define lapackf77_sstemr FORTRAN_NAME( sstemr, SSTEMR ) -#define lapackf77_ssteqr FORTRAN_NAME( ssteqr, SSTEQR ) -#define lapackf77_ssymv FORTRAN_NAME( ssymv, SSYMV ) -#define lapackf77_strevc FORTRAN_NAME( strevc, STREVC ) -#define lapackf77_strtri FORTRAN_NAME( strtri, STRTRI ) -#define lapackf77_sorg2r FORTRAN_NAME( sorg2r, SORG2R ) -#define lapackf77_sorgbr FORTRAN_NAME( sorgbr, SORGBR ) -#define lapackf77_sorghr FORTRAN_NAME( sorghr, SORGHR ) -#define lapackf77_sorglq FORTRAN_NAME( sorglq, SORGLQ ) -#define lapackf77_sorgql FORTRAN_NAME( sorgql, SORGQL ) -#define lapackf77_sorgqr FORTRAN_NAME( sorgqr, SORGQR ) -#define lapackf77_sorgtr FORTRAN_NAME( sorgtr, SORGTR ) -#define lapackf77_sorm2r FORTRAN_NAME( sorm2r, SORM2R ) -#define lapackf77_sormbr FORTRAN_NAME( sormbr, SORMBR ) -#define lapackf77_sormlq FORTRAN_NAME( sormlq, SORMLQ ) -#define lapackf77_sormql FORTRAN_NAME( sormql, SORMQL ) -#define lapackf77_sormqr FORTRAN_NAME( sormqr, SORMQR ) -#define lapackf77_sormtr FORTRAN_NAME( sormtr, SORMTR ) - -/* testing functions */ -#define lapackf77_sbdt01 FORTRAN_NAME( sbdt01, SBDT01 ) -#define lapackf77_sget22 FORTRAN_NAME( sget22, SGET22 ) -#define lapackf77_sqpt01 FORTRAN_NAME( sqpt01, SQPT01 ) -#define lapackf77_ssyt21 FORTRAN_NAME( ssyt21, SSYT21 ) -#define lapackf77_shst01 FORTRAN_NAME( shst01, SHST01 ) -#define lapackf77_sqrt02 FORTRAN_NAME( sqrt02, SQRT02 ) -#define lapackf77_sort01 FORTRAN_NAME( sort01, SORT01 ) -#define lapackf77_slarfy FORTRAN_NAME( slarfy, SLARFY ) -#define lapackf77_slarfx FORTRAN_NAME( slarfx, SLARFX ) -#define lapackf77_sstt21 FORTRAN_NAME( sstt21, SSTT21 ) - -// macros to handle differences in arguments between real and real versions of routines. -#if defined(PRECISION_z) || defined(PRECISION_c) -#define DWORKFORZ float *rwork, -#define DWORKFORZ_AND_LD float *rwork, const magma_int_t *ldrwork, -#define WSPLIT float *w -#else -#define DWORKFORZ -#define DWORKFORZ_AND_LD -#define WSPLIT float *wr, float *wi -#endif - -/* - * BLAS functions (alphabetical order) - */ -magma_int_t blasf77_isamax( - const magma_int_t *n, - const float *x, const magma_int_t *incx); - -void blasf77_saxpy( const magma_int_t *n, - const float *alpha, - const float *x, const magma_int_t *incx, - float *y, const magma_int_t *incy ); - -void blasf77_scopy( const magma_int_t *n, - const float *x, const magma_int_t *incx, - float *y, const magma_int_t *incy ); - -void blasf77_sgemm( const char *transa, const char *transb, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *B, const magma_int_t *ldb, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_sgemv( const char *transa, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *x, const magma_int_t *incx, - const float *beta, - float *y, const magma_int_t *incy ); - -void blasf77_sger( const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *x, const magma_int_t *incx, - const float *y, const magma_int_t *incy, - float *A, const magma_int_t *lda ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_sger( const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *x, const magma_int_t *incx, - const float *y, const magma_int_t *incy, - float *A, const magma_int_t *lda ); -#endif - -void blasf77_ssymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *B, const magma_int_t *ldb, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_ssymv( const char *uplo, - const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *x, const magma_int_t *incx, - const float *beta, - float *y, const magma_int_t *incy ); - -void blasf77_ssyr2( const char *uplo, - const magma_int_t *n, - const float *alpha, - const float *x, const magma_int_t *incx, - const float *y, const magma_int_t *incy, - float *A, const magma_int_t *lda ); - -void blasf77_ssyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *B, const magma_int_t *ldb, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_ssyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_sscal( const magma_int_t *n, - const float *alpha, - float *x, const magma_int_t *incx ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_ssscal( const magma_int_t *n, - const float *alpha, - float *x, const magma_int_t *incx ); -#endif - -void blasf77_sswap( const magma_int_t *n, - float *x, const magma_int_t *incx, - float *y, const magma_int_t *incy ); - -void blasf77_ssymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *B, const magma_int_t *ldb, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_ssyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *B, const magma_int_t *ldb, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_ssyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *beta, - float *C, const magma_int_t *ldc ); - -void blasf77_strmm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb ); - -void blasf77_strmv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const float *A, const magma_int_t *lda, - float *x, const magma_int_t *incx ); - -void blasf77_strsm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb ); - -void blasf77_strsv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const float *A, const magma_int_t *lda, - float *x, const magma_int_t *incx ); - -/* - * LAPACK functions (alphabetical order) - */ -void lapackf77_sbdsqr( const char *uplo, - const magma_int_t *n, const magma_int_t *ncvt, const magma_int_t *nru, const magma_int_t *ncc, - float *d, float *e, - float *Vt, const magma_int_t *ldvt, - float *U, const magma_int_t *ldu, - float *C, const magma_int_t *ldc, - float *work, - magma_int_t *info ); - -void lapackf77_sgebak( const char *job, const char *side, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - const float *scale, const magma_int_t *m, - float *V, const magma_int_t *ldv, - magma_int_t *info ); - -void lapackf77_sgebal( const char *job, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *ilo, magma_int_t *ihi, - float *scale, - magma_int_t *info ); - -void lapackf77_sgebd2( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *d, float *e, - float *tauq, - float *taup, - float *work, - magma_int_t *info ); - -void lapackf77_sgebrd( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *d, float *e, - float *tauq, - float *taup, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgeev( const char *jobvl, const char *jobvr, - const magma_int_t *n, - float *A, const magma_int_t *lda, - WSPLIT, - float *Vl, const magma_int_t *ldvl, - float *Vr, const magma_int_t *ldvr, - float *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_sgehd2( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - float *A, const magma_int_t *lda, - float *tau, - float *work, - magma_int_t *info ); - -void lapackf77_sgehrd( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - float *A, const magma_int_t *lda, - float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgelqf( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgels( const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *nrhs, - float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgeqlf( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgeqp3( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *jpvt, - float *tau, - float *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_sgeqrf( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgesvd( const char *jobu, const char *jobvt, - const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *s, - float *U, const magma_int_t *ldu, - float *Vt, const magma_int_t *ldvt, - float *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_sgetrf( const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *ipiv, - magma_int_t *info ); - -void lapackf77_sgetri( const magma_int_t *n, - float *A, const magma_int_t *lda, - const magma_int_t *ipiv, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sgetrs( const char* trans, - const magma_int_t *n, const magma_int_t *nrhs, - const float *A, const magma_int_t *lda, - const magma_int_t *ipiv, - float *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_ssbtrd( const char *vect, const char *uplo, - const magma_int_t *n, const magma_int_t *kd, - float *Ab, const magma_int_t *ldab, - float *d, float *e, - float *Q, const magma_int_t *ldq, - float *work, - magma_int_t *info ); - -void lapackf77_ssyev( const char *jobz, const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *w, - float *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_ssyevd( const char *jobz, const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *w, - float *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_ssygs2( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_ssygvd( const magma_int_t *itype, const char *jobz, const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb, - float *w, - float *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_ssytd2( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *d, float *e, - float *tau, - magma_int_t *info ); - -void lapackf77_ssytrd( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - float *d, float *e, - float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_ssytrf( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *ipiv, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_shseqr( const char *job, const char *compz, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - float *H, const magma_int_t *ldh, - WSPLIT, - float *Z, const magma_int_t *ldz, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_slabrd( const magma_int_t *m, const magma_int_t *n, const magma_int_t *nb, - float *A, const magma_int_t *lda, - float *d, float *e, - float *tauq, - float *taup, - float *X, const magma_int_t *ldx, - float *Y, const magma_int_t *ldy ); - -void lapackf77_sladiv( float *ret_val, float *x, - float *y ); - -void lapackf77_slacgv( const magma_int_t *n, - float *x, const magma_int_t *incx ); - -void lapackf77_slacpy( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb ); - -void lapackf77_slasyf( const char *uplo, - const magma_int_t *n, const magma_int_t *kn, - magma_int_t *kb, - float *A, const magma_int_t lda, - magma_int_t *ipiv, - float *work, const magma_int_t *ldwork, - magma_int_t *info ); - -float lapackf77_slange( const char *norm, - const magma_int_t *m, const magma_int_t *n, - const float *A, const magma_int_t *lda, - float *work ); - -float lapackf77_slansy( const char *norm, const char *uplo, - const magma_int_t *n, - const float *A, const magma_int_t *lda, - float * work ); - -float lapackf77_slanst( const char* norm, const magma_int_t* n, - const float* d, const float* e ); - -float lapackf77_slansy( const char *norm, const char *uplo, - const magma_int_t *n, - const float *A, const magma_int_t *lda, - float * work ); - -void lapackf77_slaqp2 ( magma_int_t *m, magma_int_t *n, magma_int_t *offset, - float *a, magma_int_t *lda, magma_int_t *jpvt, - float *tau, - float *vn1, float *vn2, float *work); - -void lapackf77_slarf ( char *, magma_int_t *, magma_int_t *, - float *, magma_int_t *, float *, float *, - magma_int_t *, float *); - -void lapackf77_slarfb( const char *side, const char *trans, const char *direct, const char *storev, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *V, const magma_int_t *ldv, - const float *T, const magma_int_t *ldt, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *ldwork ); - -void lapackf77_slarfg( const magma_int_t *n, - float *alpha, - float *x, const magma_int_t *incx, - float *tau ); - -void lapackf77_slarft( const char *direct, const char *storev, - const magma_int_t *n, const magma_int_t *k, - float *V, const magma_int_t *ldv, - const float *tau, - float *T, const magma_int_t *ldt ); - -void lapackf77_slarnv( const magma_int_t *idist, magma_int_t *iseed, const magma_int_t *n, - float *x ); - -void lapackf77_slartg( float *F, - float *G, - float *cs, - float *SN, - float *R ); - -void lapackf77_slascl( const char *type, - const magma_int_t *kl, const magma_int_t *ku, - float *cfrom, - float *cto, - const magma_int_t *m, const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_slaset( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const float *alpha, - const float *beta, - float *A, const magma_int_t *lda ); - -void lapackf77_slaswp( const magma_int_t *n, - float *A, const magma_int_t *lda, - const magma_int_t *k1, const magma_int_t *k2, - magma_int_t *ipiv, - const magma_int_t *incx ); - -void lapackf77_slatrd( const char *uplo, - const magma_int_t *n, const magma_int_t *nb, - float *A, const magma_int_t *lda, - float *e, - float *tau, - float *work, const magma_int_t *ldwork ); - -void lapackf77_slauum( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_slavsy( const char *uplo, const char *trans, const char *diag, - magma_int_t *n, magma_int_t *nrhs, - float *A, magma_int_t *lda, - magma_int_t *ipiv, - float *B, magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_spotrf( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_spotri( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_spotrs( const char *uplo, - const magma_int_t *n, const magma_int_t *nrhs, - const float *A, const magma_int_t *lda, - float *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_sstedc( const char *compz, - const magma_int_t *n, - float *d, float *e, - float *Z, const magma_int_t *ldz, - float *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_sstein( const magma_int_t *n, - const float *d, const float *e, - const magma_int_t *m, - const float *w, - const magma_int_t *iblock, - const magma_int_t *isplit, - float *Z, const magma_int_t *ldz, - float *work, magma_int_t *iwork, magma_int_t *ifailv, - magma_int_t *info ); - -void lapackf77_sstemr( const char *jobz, const char *range, - const magma_int_t *n, - float *d, float *e, - const float *vl, const float *vu, - const magma_int_t *il, const magma_int_t *iu, - magma_int_t *m, - float *w, - float *Z, const magma_int_t *ldz, - const magma_int_t *nzc, magma_int_t *isuppz, magma_int_t *tryrac, - float *work, const magma_int_t *lwork, - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_ssteqr( const char *compz, - const magma_int_t *n, - float *d, float *e, - float *Z, const magma_int_t *ldz, - float *work, - magma_int_t *info ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_ssymv( const char *uplo, - const magma_int_t *n, - const float *alpha, - const float *A, const magma_int_t *lda, - const float *x, const magma_int_t *incx, - const float *beta, - float *y, const magma_int_t *incy ); -#endif - -void lapackf77_strevc( const char *side, const char *howmny, - magma_int_t *select, const magma_int_t *n, - float *T, const magma_int_t *ldt, - float *Vl, const magma_int_t *ldvl, - float *Vr, const magma_int_t *ldvr, - const magma_int_t *mm, magma_int_t *m, - float *work, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_strtri( const char *uplo, const char *diag, - const magma_int_t *n, - float *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_sorg2r( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, const magma_int_t *lda, - const float *tau, - float *work, - magma_int_t *info ); - -void lapackf77_sorgbr( const char *vect, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorghr( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorglq( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorgql( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorgqr( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorgtr( const char *uplo, - const magma_int_t *n, - float *A, const magma_int_t *lda, - const float *tau, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sorm2r( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, - magma_int_t *info ); - -void lapackf77_sormbr( const char *vect, const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sormlq( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sormql( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sormqr( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_sormtr( const char *side, const char *uplo, const char *trans, - const magma_int_t *m, const magma_int_t *n, - const float *A, const magma_int_t *lda, - const float *tau, - float *C, const magma_int_t *ldc, - float *work, const magma_int_t *lwork, - magma_int_t *info ); - -/* - * Real precision extras - */ -void lapackf77_sstebz( const char *range, const char *order, - const magma_int_t *n, - float *vl, float *vu, - magma_int_t *il, magma_int_t *iu, - float *abstol, - float *d, float *e, - const magma_int_t *m, const magma_int_t *nsplit, - float *w, - magma_int_t *iblock, magma_int_t *isplit, - float *work, - magma_int_t *iwork, - magma_int_t *info ); - -float lapackf77_slamc3( float* a, float* b ); - -void lapackf77_slamrg( magma_int_t* n1, magma_int_t* n2, - float* a, - magma_int_t* dtrd1, magma_int_t* dtrd2, magma_int_t* index ); - -float lapackf77_slapy3(float *, float *, float *); - -void lapackf77_slaed4( magma_int_t* n, magma_int_t* i, - float* d, - float* z, - float* delta, - float* rho, - float* dlam, magma_int_t* info ); - -/* - * Testing functions - */ -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_sbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - float *A, const magma_int_t *lda, - float *Q, const magma_int_t *ldq, - float *d, float *e, - float *Pt, const magma_int_t *ldpt, - float *work, - float *rwork, - float *resid ); - -void lapackf77_sget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *E, const magma_int_t *lde, - float *w, - float *work, - float *rwork, - float *result ); - -void lapackf77_ssyt21( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, const magma_int_t *kband, - float *A, const magma_int_t *lda, - float *d, float *e, - float *U, const magma_int_t *ldu, - float *V, const magma_int_t *ldv, - float *tau, - float *work, - float *rwork, - float *result ); - -void lapackf77_shst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - float *A, const magma_int_t *lda, - float *H, const magma_int_t *ldh, - float *Q, const magma_int_t *ldq, - float *work, const magma_int_t *lwork, - float *rwork, - float *result ); - -void lapackf77_sstt21( const magma_int_t *n, const magma_int_t *kband, - float *AD, - float *AE, - float *SD, - float *SE, - float *U, const magma_int_t *ldu, - float *work, - float *rwork, - float *result ); - -void lapackf77_sort01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - float *U, const magma_int_t *ldu, - float *work, const magma_int_t *lwork, - float *rwork, - float *resid ); -#else -void lapackf77_sbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - float *A, const magma_int_t *lda, - float *Q, const magma_int_t *ldq, - float *d, float *e, - float *Pt, const magma_int_t *ldpt, - float *work, - float *resid ); - -void lapackf77_sget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - float *A, const magma_int_t *lda, - float *E, const magma_int_t *lde, - float *wr, - float *wi, - float *work, - float *result ); - -void lapackf77_ssyt21( magma_int_t *itype, const char *uplo, const magma_int_t *n, const magma_int_t *kband, - float *A, const magma_int_t *lda, - float *d, float *e, - float *U, const magma_int_t *ldu, - float *V, const magma_int_t *ldv, - float *tau, - float *work, - float *result ); - -void lapackf77_shst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - float *A, const magma_int_t *lda, - float *H, const magma_int_t *ldh, - float *Q, const magma_int_t *ldq, - float *work, const magma_int_t *lwork, - float *result ); - -void lapackf77_sstt21( const magma_int_t *n, const magma_int_t *kband, - float *AD, - float *AE, - float *SD, - float *SE, - float *U, const magma_int_t *ldu, - float *work, - float *result ); - -void lapackf77_sort01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - float *U, const magma_int_t *ldu, - float *work, const magma_int_t *lwork, - float *resid ); -#endif - -void lapackf77_slarfy( const char *uplo, const magma_int_t *n, - float *V, const magma_int_t *incv, - float *tau, - float *C, const magma_int_t *ldc, - float *work ); - -void lapackf77_slarfx( const char *side, const magma_int_t *m, const magma_int_t *n, - float *V, - float *tau, - float *C, const magma_int_t *ldc, - float *work ); - -float lapackf77_sqpt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, - float *Af, const magma_int_t *lda, - float *tau, magma_int_t *jpvt, - float *work, const magma_int_t *lwork ); - -void lapackf77_sqrt02( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - float *A, - float *AF, - float *Q, - float *R, const magma_int_t *lda, - float *tau, - float *work, const magma_int_t *lwork, - float *rwork, - float *result ); - -#ifdef __cplusplus -} -#endif - -#undef DWORKFORZ -#undef DWORKFORZ_AND_LD -#undef WSPLIT -#undef PRECISION_s - -#endif /* MAGMA_SLAPACK_H */ diff --git a/src/include/magma_z.h b/src/include/magma_z.h deleted file mode 100644 index 7d9465e..0000000 --- a/src/include/magma_z.h +++ /dev/null @@ -1,514 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions normal z -> s d c - */ - -#ifndef _MAGMA_Z_H_ -#define _MAGMA_Z_H_ -#define PRECISION_z - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA Auxiliary functions to get the NB used -*/ -int magma_get_zpotrf_nb(int m); -int magma_get_zgetrf_nb(int m); -int magma_get_zgetri_nb(int m); -int magma_get_zgeqp3_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); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on CPU -*/ -magma_int_t magma_zgebrd( magma_int_t m, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, double *d, double *e, - cuDoubleComplex *tauq, cuDoubleComplex *taup, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgehrd2(magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info); -magma_int_t magma_zgehrd( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, - cuDoubleComplex *d_T, magma_int_t *info); -magma_int_t magma_zgelqf( magma_int_t m, magma_int_t n, - cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgeqlf( magma_int_t m, magma_int_t n, - cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgeqrf( magma_int_t m, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgeqr2( magma_int_t *m, magma_int_t *n, cuDoubleComplex *a, - magma_int_t *lda, cuDoubleComplex *tau, cuDoubleComplex *work, - magma_int_t *info); -magma_int_t magma_zgeqrf4(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info ); -magma_int_t magma_zgeqrf_ooc( magma_int_t m, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *work, - magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgesv ( magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *A, magma_int_t lda, magma_int_t *ipiv, - cuDoubleComplex *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_zgetrf( magma_int_t m, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, magma_int_t *ipiv, - magma_int_t *info); -magma_int_t magma_zgetrf2(magma_int_t m, magma_int_t n, cuDoubleComplex *a, - magma_int_t lda, magma_int_t *ipiv, magma_int_t *info); - -magma_int_t magma_zlaqps( magma_int_t m, magma_int_t n, magma_int_t offset, - magma_int_t nb, magma_int_t *kb, - cuDoubleComplex *A, magma_int_t lda, - cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t *jpvt, cuDoubleComplex *tau, double *vn1, double *vn2, - cuDoubleComplex *auxv, - cuDoubleComplex *F, magma_int_t ldf, - cuDoubleComplex *dF, magma_int_t lddf ); -magma_int_t magma_zlarf( char *side, magma_int_t *m, magma_int_t *n, - cuDoubleComplex *v, magma_int_t *incv, cuDoubleComplex *tau, - cuDoubleComplex *c__, magma_int_t *ldc, cuDoubleComplex *work); -magma_int_t magma_zlarfg( magma_int_t *n, cuDoubleComplex *alpha, cuDoubleComplex *x, - magma_int_t *incx, cuDoubleComplex *tau); -magma_int_t magma_zlatrd( char uplo, magma_int_t n, magma_int_t nb, cuDoubleComplex *a, - magma_int_t lda, double *e, cuDoubleComplex *tau, - cuDoubleComplex *w, magma_int_t ldw, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *dw, magma_int_t lddw); -magma_int_t magma_zlatrd2(char uplo, magma_int_t n, magma_int_t nb, - cuDoubleComplex *a, magma_int_t lda, - double *e, cuDoubleComplex *tau, - cuDoubleComplex *w, magma_int_t ldw, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *dw, magma_int_t lddw, - cuDoubleComplex *dwork, magma_int_t ldwork); -magma_int_t magma_zlahr2( magma_int_t m, magma_int_t n, magma_int_t nb, - cuDoubleComplex *da, cuDoubleComplex *dv, cuDoubleComplex *a, - magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *t, - magma_int_t ldt, cuDoubleComplex *y, magma_int_t ldy); -magma_int_t magma_zlahru( magma_int_t n, magma_int_t ihi, magma_int_t k, magma_int_t nb, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *da, cuDoubleComplex *y, - cuDoubleComplex *v, cuDoubleComplex *t, - cuDoubleComplex *dwork); -magma_int_t magma_zposv ( char uplo, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *A, magma_int_t lda, - cuDoubleComplex *B, magma_int_t ldb, magma_int_t *info); -magma_int_t magma_zpotrf( char uplo, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_zpotri( char uplo, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_zlauum( char uplo, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_ztrtri( char uplo, char diag, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, magma_int_t *info); -magma_int_t magma_zhetrd( char uplo, magma_int_t n, cuDoubleComplex *A, - magma_int_t lda, double *d, double *e, - cuDoubleComplex *tau, cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zungqr( magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *tau, cuDoubleComplex *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_zunmql( const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *tau, - cuDoubleComplex *c, magma_int_t ldc, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zunmqr( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *c, magma_int_t ldc, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zunmtr( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *tau, - cuDoubleComplex *c, magma_int_t ldc, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zunghr( magma_int_t n, magma_int_t ilo, magma_int_t ihi, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *tau, - cuDoubleComplex *dT, magma_int_t nb, - magma_int_t *info); -magma_int_t magma_zheev( char jobz, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double *w, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_zheevx(char jobz, char range, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, cuDoubleComplex *z, magma_int_t ldz, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_zgeev( char jobvl, char jobvr, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *w, - cuDoubleComplex *vl, magma_int_t ldvl, - cuDoubleComplex *vr, magma_int_t ldvr, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_zgeqp3( magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - magma_int_t *jpvt, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *info); -magma_int_t magma_zgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double *s, - cuDoubleComplex *u, magma_int_t ldu, - cuDoubleComplex *vt, magma_int_t ldvt, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *info ); -magma_int_t magma_zheevd( char jobz, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double *w, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zheevr( char jobz, char range, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, cuDoubleComplex *z, magma_int_t ldz, - magma_int_t *isuppz, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zhegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, - double *w, cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zhegvdx(magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - magma_int_t *m, double *w, cuDoubleComplex *work, - magma_int_t lwork, double *rwork, - magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zhegvx( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, double *w, - cuDoubleComplex *z, magma_int_t ldz, - cuDoubleComplex *work, magma_int_t lwork, double *rwork, - magma_int_t *iwork, magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_zhegvr( magma_int_t itype, char jobz, char range, char uplo, - magma_int_t n, cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, - double vl, double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, double *w, - cuDoubleComplex *z, magma_int_t ldz, - magma_int_t *isuppz, cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zstedx( char range, magma_int_t n, double vl, double vu, - magma_int_t il, magma_int_t iu, double *D, double *E, - cuDoubleComplex *Z, magma_int_t ldz, - double *rwork, magma_int_t ldrwork, magma_int_t *iwork, - magma_int_t liwork, double* dwork, magma_int_t *info); -#else -magma_int_t magma_zgeev( char jobvl, char jobvr, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *wr, cuDoubleComplex *wi, - cuDoubleComplex *vl, magma_int_t ldvl, - cuDoubleComplex *vr, magma_int_t ldvr, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zgeqp3( magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - magma_int_t *jpvt, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double *s, - cuDoubleComplex *u, magma_int_t ldu, - cuDoubleComplex *vt, magma_int_t ldvt, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info ); -magma_int_t magma_zheevd( char jobz, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, double *w, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zhegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, - double *w, cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, magma_int_t *info); -magma_int_t magma_zstedx( char range, magma_int_t n, double vl, double vu, - magma_int_t il, magma_int_t iu, double* d, double* e, - double* z, magma_int_t ldz, - double* work, magma_int_t lwork, - magma_int_t* iwork, magma_int_t liwork, - double* dwork, magma_int_t* info); -magma_int_t magma_zlaex0( magma_int_t n, double* d, double* e, double* q, magma_int_t ldq, - double* work, magma_int_t* iwork, double* dwork, - char range, double vl, double vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_zlaex1( magma_int_t n, double* d, double* q, magma_int_t ldq, - magma_int_t* indxq, double rho, magma_int_t cutpnt, - double* work, magma_int_t* iwork, double* dwork, - char range, double vl, double vu, - magma_int_t il, magma_int_t iu, magma_int_t* info); -magma_int_t magma_zlaex3( magma_int_t k, magma_int_t n, magma_int_t n1, double* d, - double* q, magma_int_t ldq, double rho, - double* dlamda, double* q2, magma_int_t* indx, - magma_int_t* ctot, double* w, double* s, magma_int_t* indxq, - double* dwork, - char range, double vl, double vu, magma_int_t il, magma_int_t iu, - magma_int_t* info ); -#endif - -magma_int_t magma_zhegst( magma_int_t itype, char uplo, magma_int_t n, - cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *b, magma_int_t ldb, magma_int_t *info); - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA function definitions / Data on GPU -*/ -magma_int_t magma_zgels_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zgels3_gpu( char trans, magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *hwork, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zgelqf_gpu( magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, cuDoubleComplex *tau, - cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgeqrf_gpu( magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *tau, cuDoubleComplex *dT, - magma_int_t *info); -magma_int_t magma_zgeqrf2_gpu(magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *tau, magma_int_t *info); -magma_int_t magma_zgeqrf2_mgpu(magma_int_t num_gpus, magma_int_t m, magma_int_t n, - cuDoubleComplex **dlA, magma_int_t ldda, - cuDoubleComplex *tau, magma_int_t *info ); -magma_int_t magma_zgeqrf3_gpu(magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *tau, cuDoubleComplex *dT, - magma_int_t *info); -magma_int_t magma_zgeqrs_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *tau, cuDoubleComplex *dT, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_zgeqrs3_gpu( magma_int_t m, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *tau, cuDoubleComplex *dT, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *hwork, magma_int_t lhwork, - magma_int_t *info); -magma_int_t magma_zgessm_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t k, magma_int_t ib, - magma_int_t *ipiv, - cuDoubleComplex *dL1, magma_int_t lddl1, - cuDoubleComplex *dL, magma_int_t lddl, - cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_zgesv_gpu( magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_zgetrf_incpiv_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, - cuDoubleComplex *hA, magma_int_t ldha, cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *hL, magma_int_t ldhl, cuDoubleComplex *dL, magma_int_t lddl, - magma_int_t *ipiv, - cuDoubleComplex *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_zgetrf_gpu( magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t *info); -magma_int_t -magma_zgetrf_nopiv_gpu ( magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t *info); -magma_int_t magma_zgetri_gpu( magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuDoubleComplex *dwork, magma_int_t lwork, magma_int_t *info); -magma_int_t magma_zgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *ipiv, - cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_zlabrd_gpu( magma_int_t m, magma_int_t n, magma_int_t nb, - cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *da, magma_int_t ldda, - double *d, double *e, cuDoubleComplex *tauq, cuDoubleComplex *taup, - cuDoubleComplex *x, magma_int_t ldx, cuDoubleComplex *dx, magma_int_t lddx, - cuDoubleComplex *y, magma_int_t ldy, cuDoubleComplex *dy, magma_int_t lddy); -magma_int_t magma_zlarfb_gpu( char side, char trans, char direct, char storev, - magma_int_t m, magma_int_t n, magma_int_t k, - const cuDoubleComplex *dv, magma_int_t ldv, - const cuDoubleComplex *dt, magma_int_t ldt, - cuDoubleComplex *dc, magma_int_t ldc, - cuDoubleComplex *dwork, magma_int_t ldwork ); -magma_int_t magma_zposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_zpotrf_gpu( char uplo, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_zpotri_gpu( char uplo, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_zlauum_gpu( char uplo, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_ztrtri_gpu( char uplo, char diag, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info); -magma_int_t magma_zhetrd_gpu( char uplo, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - double *d, double *e, cuDoubleComplex *tau, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *info); -magma_int_t magma_zhetrd2_gpu(char uplo, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - double *d, double *e, cuDoubleComplex *tau, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *work, magma_int_t lwork, - cuDoubleComplex *dwork, magma_int_t ldwork, - magma_int_t *info); -magma_int_t magma_zpotrs_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info); -magma_int_t magma_zssssm_gpu( char storev, magma_int_t m1, magma_int_t n1, - magma_int_t m2, magma_int_t n2, magma_int_t k, magma_int_t ib, - cuDoubleComplex *dA1, magma_int_t ldda1, - cuDoubleComplex *dA2, magma_int_t ldda2, - cuDoubleComplex *dL1, magma_int_t lddl1, - cuDoubleComplex *dL2, magma_int_t lddl2, - magma_int_t *IPIV, magma_int_t *info); -magma_int_t magma_ztstrf_gpu( char storev, magma_int_t m, magma_int_t n, magma_int_t ib, magma_int_t nb, - cuDoubleComplex *hU, magma_int_t ldhu, cuDoubleComplex *dU, magma_int_t lddu, - cuDoubleComplex *hA, magma_int_t ldha, cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *hL, magma_int_t ldhl, cuDoubleComplex *dL, magma_int_t lddl, - magma_int_t *ipiv, - cuDoubleComplex *hwork, magma_int_t ldhwork, - cuDoubleComplex *dwork, magma_int_t lddwork, - magma_int_t *info); -magma_int_t magma_zungqr_gpu( magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *tau, cuDoubleComplex *dwork, - magma_int_t nb, magma_int_t *info ); -magma_int_t magma_zunmql2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *tau, - cuDoubleComplex *dc, magma_int_t lddc, - cuDoubleComplex *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_zunmqr_gpu( char side, char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau, - cuDoubleComplex *c, magma_int_t ldc, - cuDoubleComplex *work, magma_int_t lwork, - cuDoubleComplex *td, magma_int_t nb, magma_int_t *info); -magma_int_t magma_zunmqr2_gpu(const char side, const char trans, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *tau, - cuDoubleComplex *dc, magma_int_t lddc, - cuDoubleComplex *wa, magma_int_t ldwa, - magma_int_t *info); -magma_int_t magma_zunmtr_gpu( char side, char uplo, char trans, - magma_int_t m, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *tau, - cuDoubleComplex *dc, magma_int_t lddc, - cuDoubleComplex *wa, magma_int_t ldwa, - magma_int_t *info); - -#if defined(PRECISION_z) || defined(PRECISION_c) -magma_int_t magma_zheevd_gpu( char jobz, char uplo, - magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - double *w, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_zheevdx_gpu(char jobz, char range, char uplo, - magma_int_t n, cuDoubleComplex *da, - magma_int_t ldda, double vl, double vu, - magma_int_t il, magma_int_t iu, - magma_int_t *m, double *w, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -magma_int_t magma_zheevr_gpu( char jobz, char range, char uplo, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, double vl, double vu, - magma_int_t il, magma_int_t iu, double abstol, magma_int_t *m, - double *w, cuDoubleComplex *dz, magma_int_t lddz, - magma_int_t *isuppz, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *wz, magma_int_t ldwz, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t lrwork, magma_int_t *iwork, - magma_int_t liwork, magma_int_t *info); -#else -magma_int_t magma_zheevd_gpu( char jobz, char uplo, - magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *w, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *work, magma_int_t lwork, - magma_int_t *iwork, magma_int_t liwork, - magma_int_t *info); -#endif - -magma_int_t magma_zheevx_gpu( char jobz, char range, char uplo, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, double vl, - double vu, magma_int_t il, magma_int_t iu, - double abstol, magma_int_t *m, - double *w, cuDoubleComplex *dz, magma_int_t lddz, - cuDoubleComplex *wa, magma_int_t ldwa, - cuDoubleComplex *wz, magma_int_t ldwz, - cuDoubleComplex *work, magma_int_t lwork, - double *rwork, magma_int_t *iwork, - magma_int_t *ifail, magma_int_t *info); -magma_int_t magma_zhegst_gpu(magma_int_t itype, char uplo, magma_int_t n, - cuDoubleComplex *da, magma_int_t ldda, - cuDoubleComplex *db, magma_int_t lddb, magma_int_t *info); - - -/* //////////////////////////////////////////////////////////////////////////// - -- MAGMA utility function definitions -*/ - -void magma_zprint ( magma_int_t m, magma_int_t n, const cuDoubleComplex *A, magma_int_t lda ); -void magma_zprint_gpu( magma_int_t m, magma_int_t n, const cuDoubleComplex *dA, magma_int_t ldda ); - -void zpanel_to_q( char uplo, magma_int_t ib, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *work ); -void zq_to_panel( char uplo, magma_int_t ib, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *work ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_z -#endif /* _MAGMA_Z_H_ */ diff --git a/src/include/magma_zbulge.h b/src/include/magma_zbulge.h deleted file mode 100644 index c4e947b..0000000 --- a/src/include/magma_zbulge.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions normal z -> s d c - */ - -#ifndef MAGMA_ZBULGEINC_H -#define MAGMA_ZBULGEINC_H - -#define PRECISION_z - -extern "C" { - magma_int_t magma_zhetrd_he2hb(char uplo, magma_int_t n, magma_int_t NB, cuDoubleComplex *a, magma_int_t lda, - cuDoubleComplex *tau, cuDoubleComplex *work, magma_int_t lwork, cuDoubleComplex *dT, magma_int_t threads, magma_int_t *info); - - magma_int_t magma_zhetrd_hb2st(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, - cuDoubleComplex *A, magma_int_t lda, double *D, double *E, - cuDoubleComplex *V, magma_int_t ldv, cuDoubleComplex *TAU, magma_int_t compT, cuDoubleComplex *T, magma_int_t ldt); - - magma_int_t magma_zbulge_back(magma_int_t threads, char uplo, magma_int_t n, magma_int_t nb, magma_int_t ne, magma_int_t Vblksiz, - cuDoubleComplex *Z, magma_int_t ldz, cuDoubleComplex *dZ, magma_int_t lddz, - cuDoubleComplex *V, magma_int_t ldv, cuDoubleComplex *TAU, cuDoubleComplex *T, magma_int_t ldt, magma_int_t* info); - - magma_int_t magma_zunmqr_gpu_2stages(char side, char trans, magma_int_t m, magma_int_t n, magma_int_t k, cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dC, magma_int_t lddc, cuDoubleComplex *dT, magma_int_t nb, magma_int_t *info); - - magma_int_t magma_zbulge_get_lq2(magma_int_t n); - - magma_int_t magma_zbulge_get_Vblksiz(magma_int_t n, magma_int_t nb); -} -#endif diff --git a/src/include/magma_zbulgeinc.h b/src/include/magma_zbulgeinc.h deleted file mode 100644 index 94f85f1..0000000 --- a/src/include/magma_zbulgeinc.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions normal z -> s d c - */ - -#ifndef MAGMA_ZBULGEINC_H -#define MAGMA_ZBULGEINC_H - -#define PRECISION_z - -#ifdef __cplusplus -extern "C" { -#endif - - -/***************************************************************************//** - * Configuration - **/ - - // maximum contexts -#define MAX_THREADS_BLG 256 - -void findVTpos(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t sweep, magma_int_t st, magma_int_t *Vpos, magma_int_t *TAUpos, magma_int_t *Tpos, magma_int_t *myblkid); -void findVTsiz(magma_int_t N, magma_int_t NB, magma_int_t Vblksiz, magma_int_t *blkcnt, magma_int_t *LDV); -magma_int_t plasma_ceildiv(magma_int_t a, magma_int_t b); - - -/* -extern volatile magma_int_t barrier_in[MAX_THREADS_BLG]; -extern volatile magma_int_t barrier_out[MAX_THREADS_BLG]; -extern volatile magma_int_t *ss_prog; -*/ - - /***************************************************************************//** - * Static scheduler - **/ -/* -#define ssched_init(nbtiles) \ -{ \ - volatile int prog_ol[2*nbtiles+10];\ - int iamdone[MAX_THREADS_BLG]; \ - int thread_num[MAX_THREADS_BLG];\ - pthread_t thread_id[MAX_THREADS_BLG];\ - pthread_attr_t thread_attr;\ -} -*/ -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - - struct gbstrct_blg { - cuDoubleComplex *dQ1; - cuDoubleComplex *dT1; - cuDoubleComplex *dT2; - cuDoubleComplex *dV2; - cuDoubleComplex *dE; - cuDoubleComplex *T; - cuDoubleComplex *A; - cuDoubleComplex *V; - cuDoubleComplex *TAU; - cuDoubleComplex *E; - cuDoubleComplex *E_CPU; - int cores_num; - int locores_num; - int overlapQ1; - int usemulticpu; - int NB; - int NBTILES; - int N; - int NE; - int N_CPU; - int N_GPU; - int LDA; - int LDE; - int BAND; - int grsiz; - int Vblksiz; - int WANTZ; - char SIDE; - real_Double_t *timeblg; - real_Double_t *timeaplQ; - volatile int *ss_prog; -} ; - -// declare globals here; defined in zhetrd_bhe2trc.cpp -extern struct gbstrct_blg core_in_all; - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////////////// -#define MAX_EVENTSBLG 163840 -//#define MAX_EVENTSBLG 1048576 - -// If we're not using GNU C, elide __attribute__ -#ifndef __GNUC__ -#define __attribute__(x) /*NOTHING*/ -#endif - -// declare globals here; defined in zhetrd_bhe2trc.cpp -extern int event_numblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_start_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_end_timeblg [MAX_THREADS_BLG] __attribute__ ((aligned (128))); -extern real_Double_t event_logblg [MAX_THREADS_BLG][MAX_EVENTSBLG] __attribute__ ((aligned (128))); -extern int log_eventsblg; - -#ifndef __GNUC__ -#undef __attribute__ -#endif - -#define core_event_startblg(my_core_id)\ - event_start_timeblg[my_core_id] = magma_wtime(); - -#define core_event_endblg(my_core_id)\ - event_end_timeblg[my_core_id] = magma_wtime(); - -#define core_log_eventblg(event, my_core_id)\ - event_logblg[my_core_id][event_numblg[my_core_id]+0] = my_core_id;\ - event_logblg[my_core_id][event_numblg[my_core_id]+1] = event_start_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+2] = event_end_timeblg[my_core_id];\ - event_logblg[my_core_id][event_numblg[my_core_id]+3] = (event);\ - event_numblg[my_core_id] += (log_eventsblg << 2);\ - event_numblg[my_core_id] &= (MAX_EVENTSBLG-1); - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_z - -#endif /* MAGMA_ZBULGEINC_H */ diff --git a/src/include/magma_zc.h b/src/include/magma_zc.h deleted file mode 100644 index b34a524..0000000 --- a/src/include/magma_zc.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions mixed zc -> ds - */ - -#ifndef _MAGMA_ZC_H_ -#define _MAGMA_ZC_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Mixed precision */ -magma_int_t magma_zcgesv_gpu( char trans, magma_int_t N, magma_int_t NRHS, - cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t *IPIV, magma_int_t *dIPIV, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *dX, magma_int_t lddx, - cuDoubleComplex *dworkd, cuFloatComplex *dworks, - magma_int_t *iter, magma_int_t *info); - -magma_int_t magma_zcgetrs_gpu( char trans, magma_int_t n, magma_int_t nrhs, - cuFloatComplex *dA, magma_int_t ldda, - magma_int_t *ipiv, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *dX, magma_int_t lddx, - cuFloatComplex *dSX, - magma_int_t *info ); - -magma_int_t magma_zcposv_gpu( char uplo, magma_int_t n, magma_int_t nrhs, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *dX, magma_int_t lddx, - cuDoubleComplex *dworkd, cuFloatComplex *dworks, - magma_int_t *iter, magma_int_t *info); - -magma_int_t magma_zcgeqrsv_gpu(magma_int_t M, magma_int_t N, magma_int_t NRHS, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex *dX, magma_int_t lddx, - magma_int_t *iter, magma_int_t *info); - - -#ifdef __cplusplus -} -#endif - -#endif /* _MAGMA_Z_H_ */ diff --git a/src/include/magma_zlapack.h b/src/include/magma_zlapack.h deleted file mode 100644 index f0a6a38..0000000 --- a/src/include/magma_zlapack.h +++ /dev/null @@ -1,953 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions normal z -> s d c - */ - -#ifndef MAGMA_ZLAPACK_H -#define MAGMA_ZLAPACK_H - -#define PRECISION_z - -#ifdef __cplusplus -extern "C" { -#endif - -/* //////////////////////////////////////////////////////////////////////////// - -- BLAS and LAPACK functions (alphabetical order) -*/ -#define blasf77_izamax FORTRAN_NAME( izamax, IZAMAX ) -#define blasf77_zaxpy FORTRAN_NAME( zaxpy, ZAXPY ) -#define blasf77_zcopy FORTRAN_NAME( zcopy, ZCOPY ) -#define blasf77_zgemm FORTRAN_NAME( zgemm, ZGEMM ) -#define blasf77_zgemv FORTRAN_NAME( zgemv, ZGEMV ) -#define blasf77_zgerc FORTRAN_NAME( zgerc, ZGERC ) -#define blasf77_zgeru FORTRAN_NAME( zgeru, ZGERU ) -#define blasf77_zhemm FORTRAN_NAME( zhemm, ZHEMM ) -#define blasf77_zhemv FORTRAN_NAME( zhemv, ZHEMV ) -#define blasf77_zher2 FORTRAN_NAME( zher2, ZHER2 ) -#define blasf77_zher2k FORTRAN_NAME( zher2k, ZHER2K ) -#define blasf77_zherk FORTRAN_NAME( zherk, ZHERK ) -#define blasf77_zscal FORTRAN_NAME( zscal, ZSCAL ) -#define blasf77_zdscal FORTRAN_NAME( zdscal, ZDSCAL ) -#define blasf77_zswap FORTRAN_NAME( zswap, ZSWAP ) -#define blasf77_zsymm FORTRAN_NAME( zsymm, ZSYMM ) -#define blasf77_zsyr2k FORTRAN_NAME( zsyr2k, ZSYR2K ) -#define blasf77_zsyrk FORTRAN_NAME( zsyrk, ZSYRK ) -#define blasf77_ztrmm FORTRAN_NAME( ztrmm, ZTRMM ) -#define blasf77_ztrmv FORTRAN_NAME( ztrmv, ZTRMV ) -#define blasf77_ztrsm FORTRAN_NAME( ztrsm, ZTRSM ) -#define blasf77_ztrsv FORTRAN_NAME( ztrsv, ZTRSV ) - -#define lapackf77_dlaed4 FORTRAN_NAME( dlaed4, DLAED4 ) -#define lapackf77_dlamc3 FORTRAN_NAME( dlamc3, DLAMC3 ) -#define lapackf77_dlamrg FORTRAN_NAME( dlamrg, DLAMRG ) -#define lapackf77_dstebz FORTRAN_NAME( dstebz, DSTEBZ ) - -#define lapackf77_zbdsqr FORTRAN_NAME( zbdsqr, ZBDSQR ) -#define lapackf77_zgebak FORTRAN_NAME( zgebak, ZGEBAK ) -#define lapackf77_zgebal FORTRAN_NAME( zgebal, ZGEBAL ) -#define lapackf77_zgebd2 FORTRAN_NAME( zgebd2, ZGEBD2 ) -#define lapackf77_zgebrd FORTRAN_NAME( zgebrd, ZGEBRD ) -#define lapackf77_zgeev FORTRAN_NAME( zgeev, ZGEEV ) -#define lapackf77_zgehd2 FORTRAN_NAME( zgehd2, ZGEHD2 ) -#define lapackf77_zgehrd FORTRAN_NAME( zgehrd, ZGEHRD ) -#define lapackf77_zgelqf FORTRAN_NAME( zgelqf, ZGELQF ) -#define lapackf77_zgels FORTRAN_NAME( zgels, ZGELS ) -#define lapackf77_zgeqlf FORTRAN_NAME( zgeqlf, ZGEQLF ) -#define lapackf77_zgeqp3 FORTRAN_NAME( zgeqp3, ZGEQP3 ) -#define lapackf77_zgeqrf FORTRAN_NAME( zgeqrf, ZGEQRF ) -#define lapackf77_zgesvd FORTRAN_NAME( zgesvd, ZGESVD ) -#define lapackf77_zgetrf FORTRAN_NAME( zgetrf, ZGETRF ) -#define lapackf77_zgetri FORTRAN_NAME( zgetri, ZGETRI ) -#define lapackf77_zgetrs FORTRAN_NAME( zgetrs, ZGETRS ) -#define lapackf77_zhbtrd FORTRAN_NAME( zhbtrd, ZHBTRD ) -#define lapackf77_zheev FORTRAN_NAME( zheev, ZHEEV ) -#define lapackf77_zheevd FORTRAN_NAME( zheevd, ZHEEVD ) -#define lapackf77_zhegs2 FORTRAN_NAME( zhegs2, ZHEGS2 ) -#define lapackf77_zhegvd FORTRAN_NAME( zhegvd, ZHEGVD ) -#define lapackf77_zhetd2 FORTRAN_NAME( zhetd2, ZHETD2 ) -#define lapackf77_zhetrd FORTRAN_NAME( zhetrd, ZHETRD ) -#define lapackf77_zhetrf FORTRAN_NAME( zhetrf, ZHETRF ) -#define lapackf77_zhseqr FORTRAN_NAME( zhseqr, ZHSEQR ) -#define lapackf77_zlabrd FORTRAN_NAME( zlabrd, ZLABRD ) -#define lapackf77_zladiv FORTRAN_NAME( zladiv, ZLADIV ) -#define lapackf77_zlacgv FORTRAN_NAME( zlacgv, ZLACGV ) -#define lapackf77_zlacpy FORTRAN_NAME( zlacpy, ZLACPY ) -#define lapackf77_zlahef FORTRAN_NAME( zlahef, ZLAHEF ) -#define lapackf77_zlange FORTRAN_NAME( zlange, ZLANGE ) -#define lapackf77_zlanhe FORTRAN_NAME( zlanhe, ZLANHE ) -#define lapackf77_zlanht FORTRAN_NAME( zlanht, ZLANHT ) -#define lapackf77_zlansy FORTRAN_NAME( zlansy, ZLANSY ) -#define lapackf77_dlapy3 FORTRAN_NAME( dlapy3, DLAPY3 ) -#define lapackf77_zlaqp2 FORTRAN_NAME( zlaqp2, ZLAQP2 ) -#define lapackf77_zlarf FORTRAN_NAME( zlarf, ZLARF ) -#define lapackf77_zlarfb FORTRAN_NAME( zlarfb, ZLARFB ) -#define lapackf77_zlarfg FORTRAN_NAME( zlarfg, ZLARFG ) -#define lapackf77_zlarft FORTRAN_NAME( zlarft, ZLARFT ) -#define lapackf77_zlarnv FORTRAN_NAME( zlarnv, ZLARNV ) -#define lapackf77_zlartg FORTRAN_NAME( zlartg, ZLARTG ) -#define lapackf77_zlascl FORTRAN_NAME( zlascl, ZLASCL ) -#define lapackf77_zlaset FORTRAN_NAME( zlaset, ZLASET ) -#define lapackf77_zlaswp FORTRAN_NAME( zlaswp, ZLASWP ) -#define lapackf77_zlatrd FORTRAN_NAME( zlatrd, ZLATRD ) -#define lapackf77_zlauum FORTRAN_NAME( zlauum, ZLAUUM ) -#define lapackf77_zlavhe FORTRAN_NAME( zlavhe, ZLAVHE ) -#define lapackf77_zpotrf FORTRAN_NAME( zpotrf, ZPOTRF ) -#define lapackf77_zpotri FORTRAN_NAME( zpotri, ZPOTRI ) -#define lapackf77_zpotrs FORTRAN_NAME( zpotrs, ZPOTRS ) -#define lapackf77_zstedc FORTRAN_NAME( zstedc, ZSTEDC ) -#define lapackf77_zstein FORTRAN_NAME( zstein, ZSTEIN ) -#define lapackf77_zstemr FORTRAN_NAME( zstemr, ZSTEMR ) -#define lapackf77_zsteqr FORTRAN_NAME( zsteqr, ZSTEQR ) -#define lapackf77_zsymv FORTRAN_NAME( zsymv, ZSYMV ) -#define lapackf77_ztrevc FORTRAN_NAME( ztrevc, ZTREVC ) -#define lapackf77_ztrtri FORTRAN_NAME( ztrtri, ZTRTRI ) -#define lapackf77_zung2r FORTRAN_NAME( zung2r, ZUNG2R ) -#define lapackf77_zungbr FORTRAN_NAME( zungbr, ZUNGBR ) -#define lapackf77_zunghr FORTRAN_NAME( zunghr, ZUNGHR ) -#define lapackf77_zunglq FORTRAN_NAME( zunglq, ZUNGLQ ) -#define lapackf77_zungql FORTRAN_NAME( zungql, ZUNGQL ) -#define lapackf77_zungqr FORTRAN_NAME( zungqr, ZUNGQR ) -#define lapackf77_zungtr FORTRAN_NAME( zungtr, ZUNGTR ) -#define lapackf77_zunm2r FORTRAN_NAME( zunm2r, ZUNM2R ) -#define lapackf77_zunmbr FORTRAN_NAME( zunmbr, ZUNMBR ) -#define lapackf77_zunmlq FORTRAN_NAME( zunmlq, ZUNMLQ ) -#define lapackf77_zunmql FORTRAN_NAME( zunmql, ZUNMQL ) -#define lapackf77_zunmqr FORTRAN_NAME( zunmqr, ZUNMQR ) -#define lapackf77_zunmtr FORTRAN_NAME( zunmtr, ZUNMTR ) - -/* testing functions */ -#define lapackf77_zbdt01 FORTRAN_NAME( zbdt01, ZBDT01 ) -#define lapackf77_zget22 FORTRAN_NAME( zget22, ZGET22 ) -#define lapackf77_zqpt01 FORTRAN_NAME( zqpt01, ZQPT01 ) -#define lapackf77_zhet21 FORTRAN_NAME( zhet21, ZHET21 ) -#define lapackf77_zhst01 FORTRAN_NAME( zhst01, ZHST01 ) -#define lapackf77_zqrt02 FORTRAN_NAME( zqrt02, ZQRT02 ) -#define lapackf77_zunt01 FORTRAN_NAME( zunt01, ZUNT01 ) -#define lapackf77_zlarfy FORTRAN_NAME( zlarfy, ZLARFY ) -#define lapackf77_zlarfx FORTRAN_NAME( zlarfx, ZLARFX ) -#define lapackf77_zstt21 FORTRAN_NAME( zstt21, ZSTT21 ) - -// macros to handle differences in arguments between complex and real versions of routines. -#if defined(PRECISION_z) || defined(PRECISION_c) -#define DWORKFORZ double *rwork, -#define DWORKFORZ_AND_LD double *rwork, const magma_int_t *ldrwork, -#define WSPLIT cuDoubleComplex *w -#else -#define DWORKFORZ -#define DWORKFORZ_AND_LD -#define WSPLIT double *wr, double *wi -#endif - -/* - * BLAS functions (alphabetical order) - */ -magma_int_t blasf77_izamax( - const magma_int_t *n, - const cuDoubleComplex *x, const magma_int_t *incx); - -void blasf77_zaxpy( const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *x, const magma_int_t *incx, - cuDoubleComplex *y, const magma_int_t *incy ); - -void blasf77_zcopy( const magma_int_t *n, - const cuDoubleComplex *x, const magma_int_t *incx, - cuDoubleComplex *y, const magma_int_t *incy ); - -void blasf77_zgemm( const char *transa, const char *transb, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *B, const magma_int_t *ldb, - const cuDoubleComplex *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zgemv( const char *transa, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *beta, - cuDoubleComplex *y, const magma_int_t *incy ); - -void blasf77_zgerc( const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *y, const magma_int_t *incy, - cuDoubleComplex *A, const magma_int_t *lda ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_zgeru( const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *y, const magma_int_t *incy, - cuDoubleComplex *A, const magma_int_t *lda ); -#endif - -void blasf77_zhemm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *B, const magma_int_t *ldb, - const cuDoubleComplex *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zhemv( const char *uplo, - const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *beta, - cuDoubleComplex *y, const magma_int_t *incy ); - -void blasf77_zher2( const char *uplo, - const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *y, const magma_int_t *incy, - cuDoubleComplex *A, const magma_int_t *lda ); - -void blasf77_zher2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *B, const magma_int_t *ldb, - const double *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zherk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const double *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const double *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zscal( const magma_int_t *n, - const cuDoubleComplex *alpha, - cuDoubleComplex *x, const magma_int_t *incx ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void blasf77_zdscal( const magma_int_t *n, - const double *alpha, - cuDoubleComplex *x, const magma_int_t *incx ); -#endif - -void blasf77_zswap( const magma_int_t *n, - cuDoubleComplex *x, const magma_int_t *incx, - cuDoubleComplex *y, const magma_int_t *incy ); - -void blasf77_zsymm( const char *side, const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *B, const magma_int_t *ldb, - const cuDoubleComplex *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zsyr2k( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *B, const magma_int_t *ldb, - const cuDoubleComplex *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_zsyrk( const char *uplo, const char *trans, - const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *beta, - cuDoubleComplex *C, const magma_int_t *ldc ); - -void blasf77_ztrmm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb ); - -void blasf77_ztrmv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *x, const magma_int_t *incx ); - -void blasf77_ztrsm( const char *side, const char *uplo, const char *transa, const char *diag, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb ); - -void blasf77_ztrsv( const char *uplo, const char *transa, const char *diag, - const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *x, const magma_int_t *incx ); - -/* - * LAPACK functions (alphabetical order) - */ -void lapackf77_zbdsqr( const char *uplo, - const magma_int_t *n, const magma_int_t *ncvt, const magma_int_t *nru, const magma_int_t *ncc, - double *d, double *e, - cuDoubleComplex *Vt, const magma_int_t *ldvt, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *C, const magma_int_t *ldc, - double *work, - magma_int_t *info ); - -void lapackf77_zgebak( const char *job, const char *side, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - const double *scale, const magma_int_t *m, - cuDoubleComplex *V, const magma_int_t *ldv, - magma_int_t *info ); - -void lapackf77_zgebal( const char *job, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *ilo, magma_int_t *ihi, - double *scale, - magma_int_t *info ); - -void lapackf77_zgebd2( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *tauq, - cuDoubleComplex *taup, - cuDoubleComplex *work, - magma_int_t *info ); - -void lapackf77_zgebrd( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *tauq, - cuDoubleComplex *taup, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgeev( const char *jobvl, const char *jobvr, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - WSPLIT, - cuDoubleComplex *Vl, const magma_int_t *ldvl, - cuDoubleComplex *Vr, const magma_int_t *ldvr, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_zgehd2( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, - magma_int_t *info ); - -void lapackf77_zgehrd( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgelqf( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgels( const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *nrhs, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgeqlf( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgeqp3( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *jpvt, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_zgeqrf( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgesvd( const char *jobu, const char *jobvt, - const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *s, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *Vt, const magma_int_t *ldvt, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_zgetrf( const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *ipiv, - magma_int_t *info ); - -void lapackf77_zgetri( const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - const magma_int_t *ipiv, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zgetrs( const char* trans, - const magma_int_t *n, const magma_int_t *nrhs, - const cuDoubleComplex *A, const magma_int_t *lda, - const magma_int_t *ipiv, - cuDoubleComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_zhbtrd( const char *vect, const char *uplo, - const magma_int_t *n, const magma_int_t *kd, - cuDoubleComplex *Ab, const magma_int_t *ldab, - double *d, double *e, - cuDoubleComplex *Q, const magma_int_t *ldq, - cuDoubleComplex *work, - magma_int_t *info ); - -void lapackf77_zheev( const char *jobz, const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *w, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_zheevd( const char *jobz, const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *w, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_zhegs2( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_zhegvd( const magma_int_t *itype, const char *jobz, const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb, - double *w, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_zhetd2( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *tau, - magma_int_t *info ); - -void lapackf77_zhetrd( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zhetrf( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *ipiv, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zhseqr( const char *job, const char *compz, - const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *H, const magma_int_t *ldh, - WSPLIT, - cuDoubleComplex *Z, const magma_int_t *ldz, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zlabrd( const magma_int_t *m, const magma_int_t *n, const magma_int_t *nb, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *tauq, - cuDoubleComplex *taup, - cuDoubleComplex *X, const magma_int_t *ldx, - cuDoubleComplex *Y, const magma_int_t *ldy ); - -void lapackf77_zladiv( cuDoubleComplex *ret_val, cuDoubleComplex *x, - cuDoubleComplex *y ); - -void lapackf77_zlacgv( const magma_int_t *n, - cuDoubleComplex *x, const magma_int_t *incx ); - -void lapackf77_zlacpy( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb ); - -void lapackf77_zlahef( const char *uplo, - const magma_int_t *n, const magma_int_t *kn, - magma_int_t *kb, - cuDoubleComplex *A, const magma_int_t lda, - magma_int_t *ipiv, - cuDoubleComplex *work, const magma_int_t *ldwork, - magma_int_t *info ); - -double lapackf77_zlange( const char *norm, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - double *work ); - -double lapackf77_zlanhe( const char *norm, const char *uplo, - const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - double * work ); - -double lapackf77_zlanht( const char* norm, const magma_int_t* n, - const double* d, const cuDoubleComplex* e ); - -double lapackf77_zlansy( const char *norm, const char *uplo, - const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - double * work ); - -void lapackf77_zlaqp2 ( magma_int_t *m, magma_int_t *n, magma_int_t *offset, - cuDoubleComplex *a, magma_int_t *lda, magma_int_t *jpvt, - cuDoubleComplex *tau, - double *vn1, double *vn2, cuDoubleComplex *work); - -void lapackf77_zlarf ( char *, magma_int_t *, magma_int_t *, - cuDoubleComplex *, magma_int_t *, cuDoubleComplex *, cuDoubleComplex *, - magma_int_t *, cuDoubleComplex *); - -void lapackf77_zlarfb( const char *side, const char *trans, const char *direct, const char *storev, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *V, const magma_int_t *ldv, - const cuDoubleComplex *T, const magma_int_t *ldt, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *ldwork ); - -void lapackf77_zlarfg( const magma_int_t *n, - cuDoubleComplex *alpha, - cuDoubleComplex *x, const magma_int_t *incx, - cuDoubleComplex *tau ); - -void lapackf77_zlarft( const char *direct, const char *storev, - const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *V, const magma_int_t *ldv, - const cuDoubleComplex *tau, - cuDoubleComplex *T, const magma_int_t *ldt ); - -void lapackf77_zlarnv( const magma_int_t *idist, magma_int_t *iseed, const magma_int_t *n, - cuDoubleComplex *x ); - -void lapackf77_zlartg( cuDoubleComplex *F, - cuDoubleComplex *G, - double *cs, - cuDoubleComplex *SN, - cuDoubleComplex *R ); - -void lapackf77_zlascl( const char *type, - const magma_int_t *kl, const magma_int_t *ku, - double *cfrom, - double *cto, - const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_zlaset( const char *uplo, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *beta, - cuDoubleComplex *A, const magma_int_t *lda ); - -void lapackf77_zlaswp( const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - const magma_int_t *k1, const magma_int_t *k2, - magma_int_t *ipiv, - const magma_int_t *incx ); - -void lapackf77_zlatrd( const char *uplo, - const magma_int_t *n, const magma_int_t *nb, - cuDoubleComplex *A, const magma_int_t *lda, - double *e, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *ldwork ); - -void lapackf77_zlauum( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_zlavhe( const char *uplo, const char *trans, const char *diag, - magma_int_t *n, magma_int_t *nrhs, - cuDoubleComplex *A, magma_int_t *lda, - magma_int_t *ipiv, - cuDoubleComplex *B, magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_zpotrf( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_zpotri( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_zpotrs( const char *uplo, - const magma_int_t *n, const magma_int_t *nrhs, - const cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *B, const magma_int_t *ldb, - magma_int_t *info ); - -void lapackf77_zstedc( const char *compz, - const magma_int_t *n, - double *d, double *e, - cuDoubleComplex *Z, const magma_int_t *ldz, - cuDoubleComplex *work, const magma_int_t *lwork, - DWORKFORZ_AND_LD - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_zstein( const magma_int_t *n, - const double *d, const double *e, - const magma_int_t *m, - const double *w, - const magma_int_t *iblock, - const magma_int_t *isplit, - cuDoubleComplex *Z, const magma_int_t *ldz, - double *work, magma_int_t *iwork, magma_int_t *ifailv, - magma_int_t *info ); - -void lapackf77_zstemr( const char *jobz, const char *range, - const magma_int_t *n, - double *d, double *e, - const double *vl, const double *vu, - const magma_int_t *il, const magma_int_t *iu, - magma_int_t *m, - double *w, - cuDoubleComplex *Z, const magma_int_t *ldz, - const magma_int_t *nzc, magma_int_t *isuppz, magma_int_t *tryrac, - double *work, const magma_int_t *lwork, - magma_int_t *iwork, const magma_int_t *liwork, - magma_int_t *info ); - -void lapackf77_zsteqr( const char *compz, - const magma_int_t *n, - double *d, double *e, - cuDoubleComplex *Z, const magma_int_t *ldz, - double *work, - magma_int_t *info ); - -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_zsymv( const char *uplo, - const magma_int_t *n, - const cuDoubleComplex *alpha, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *x, const magma_int_t *incx, - const cuDoubleComplex *beta, - cuDoubleComplex *y, const magma_int_t *incy ); -#endif - -void lapackf77_ztrevc( const char *side, const char *howmny, - magma_int_t *select, const magma_int_t *n, - cuDoubleComplex *T, const magma_int_t *ldt, - cuDoubleComplex *Vl, const magma_int_t *ldvl, - cuDoubleComplex *Vr, const magma_int_t *ldvr, - const magma_int_t *mm, magma_int_t *m, - cuDoubleComplex *work, - DWORKFORZ - magma_int_t *info ); - -void lapackf77_ztrtri( const char *uplo, const char *diag, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - magma_int_t *info ); - -void lapackf77_zung2r( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, - magma_int_t *info ); - -void lapackf77_zungbr( const char *vect, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunghr( const magma_int_t *n, - const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunglq( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zungql( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zungqr( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zungtr( const char *uplo, - const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunm2r( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, - magma_int_t *info ); - -void lapackf77_zunmbr( const char *vect, const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunmlq( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunmql( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunmqr( const char *side, const char *trans, - const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -void lapackf77_zunmtr( const char *side, const char *uplo, const char *trans, - const magma_int_t *m, const magma_int_t *n, - const cuDoubleComplex *A, const magma_int_t *lda, - const cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work, const magma_int_t *lwork, - magma_int_t *info ); - -/* - * Real precision extras - */ -void lapackf77_dstebz( const char *range, const char *order, - const magma_int_t *n, - double *vl, double *vu, - magma_int_t *il, magma_int_t *iu, - double *abstol, - double *d, double *e, - const magma_int_t *m, const magma_int_t *nsplit, - double *w, - magma_int_t *iblock, magma_int_t *isplit, - double *work, - magma_int_t *iwork, - magma_int_t *info ); - -double lapackf77_dlamc3( double* a, double* b ); - -void lapackf77_dlamrg( magma_int_t* n1, magma_int_t* n2, - double* a, - magma_int_t* dtrd1, magma_int_t* dtrd2, magma_int_t* index ); - -double lapackf77_dlapy3(double *, double *, double *); - -void lapackf77_dlaed4( magma_int_t* n, magma_int_t* i, - double* d, - double* z, - double* delta, - double* rho, - double* dlam, magma_int_t* info ); - -/* - * Testing functions - */ -#if defined(PRECISION_z) || defined(PRECISION_c) -void lapackf77_zbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *Q, const magma_int_t *ldq, - double *d, double *e, - cuDoubleComplex *Pt, const magma_int_t *ldpt, - cuDoubleComplex *work, - double *rwork, - double *resid ); - -void lapackf77_zget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *E, const magma_int_t *lde, - cuDoubleComplex *w, - cuDoubleComplex *work, - double *rwork, - double *result ); - -void lapackf77_zhet21( const magma_int_t *itype, const char *uplo, - const magma_int_t *n, const magma_int_t *kband, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *V, const magma_int_t *ldv, - cuDoubleComplex *tau, - cuDoubleComplex *work, - double *rwork, - double *result ); - -void lapackf77_zhst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *H, const magma_int_t *ldh, - cuDoubleComplex *Q, const magma_int_t *ldq, - cuDoubleComplex *work, const magma_int_t *lwork, - double *rwork, - double *result ); - -void lapackf77_zstt21( const magma_int_t *n, const magma_int_t *kband, - double *AD, - double *AE, - double *SD, - double *SE, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *work, - double *rwork, - double *result ); - -void lapackf77_zunt01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *work, const magma_int_t *lwork, - double *rwork, - double *resid ); -#else -void lapackf77_zbdt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *kd, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *Q, const magma_int_t *ldq, - double *d, double *e, - cuDoubleComplex *Pt, const magma_int_t *ldpt, - cuDoubleComplex *work, - double *resid ); - -void lapackf77_zget22( const char *transa, const char *transe, const char *transw, const magma_int_t *n, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *E, const magma_int_t *lde, - cuDoubleComplex *wr, - cuDoubleComplex *wi, - double *work, - double *result ); - -void lapackf77_zhet21( magma_int_t *itype, const char *uplo, const magma_int_t *n, const magma_int_t *kband, - cuDoubleComplex *A, const magma_int_t *lda, - double *d, double *e, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *V, const magma_int_t *ldv, - cuDoubleComplex *tau, - cuDoubleComplex *work, - double *result ); - -void lapackf77_zhst01( const magma_int_t *n, const magma_int_t *ilo, const magma_int_t *ihi, - cuDoubleComplex *A, const magma_int_t *lda, - cuDoubleComplex *H, const magma_int_t *ldh, - cuDoubleComplex *Q, const magma_int_t *ldq, - cuDoubleComplex *work, const magma_int_t *lwork, - double *result ); - -void lapackf77_zstt21( const magma_int_t *n, const magma_int_t *kband, - double *AD, - double *AE, - double *SD, - double *SE, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *work, - double *result ); - -void lapackf77_zunt01( const char *rowcol, const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *U, const magma_int_t *ldu, - cuDoubleComplex *work, const magma_int_t *lwork, - double *resid ); -#endif - -void lapackf77_zlarfy( const char *uplo, const magma_int_t *n, - cuDoubleComplex *V, const magma_int_t *incv, - cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work ); - -void lapackf77_zlarfx( const char *side, const magma_int_t *m, const magma_int_t *n, - cuDoubleComplex *V, - cuDoubleComplex *tau, - cuDoubleComplex *C, const magma_int_t *ldc, - cuDoubleComplex *work ); - -double lapackf77_zqpt01( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, - cuDoubleComplex *Af, const magma_int_t *lda, - cuDoubleComplex *tau, magma_int_t *jpvt, - cuDoubleComplex *work, const magma_int_t *lwork ); - -void lapackf77_zqrt02( const magma_int_t *m, const magma_int_t *n, const magma_int_t *k, - cuDoubleComplex *A, - cuDoubleComplex *AF, - cuDoubleComplex *Q, - cuDoubleComplex *R, const magma_int_t *lda, - cuDoubleComplex *tau, - cuDoubleComplex *work, const magma_int_t *lwork, - double *rwork, - double *result ); - -#ifdef __cplusplus -} -#endif - -#undef DWORKFORZ -#undef DWORKFORZ_AND_LD -#undef WSPLIT -#undef PRECISION_z - -#endif /* MAGMA_ZLAPACK_H */ diff --git a/src/include/magmablas.h b/src/include/magmablas.h deleted file mode 100644 index 4c46851..0000000 --- a/src/include/magmablas.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - -- MAGMA (version 1.3.0) -- - Univ. of Tennessee, Knoxville - Univ. of California, Berkeley - Univ. of Colorado, Denver - November 2012 -*/ - -#ifndef _MAGMABLAS_ -#define _MAGMABLAS_ - -#include - -typedef int magma_int_t; -typedef int magma_err_t; -typedef void* magma_devptr; - -// For now, make these compatible with old cublas v1 prototypes. -// In the future, we will redefine these data types and -// add queues (opencl queues, cublas handles). -typedef char magma_trans_t; -typedef char magma_side_t ; -typedef char magma_uplo_t ; -typedef char magma_diag_t ; - -typedef cudaStream_t magma_stream_t; -typedef cudaStream_t magma_queue_t; -typedef cudaEvent_t magma_event_t; -typedef int magma_device_t; - -// needed by magmablas*.h, but should eventually go in magma_types.h (see clMAGMA) -#define MagmaMaxGPUs 8 - -#include "magmablas_z.h" -#include "magmablas_c.h" -#include "magmablas_d.h" -#include "magmablas_s.h" -#include "magmablas_zc.h" -#include "magmablas_ds.h" - -#if (GPUSHMEM < 200) -#define magmablas_zgemm cublasZgemm -#endif -#define magmablas_cgemm cublasCgemm - -/** **************************************************************************** - * Define magma streams - */ - -extern cudaStream_t magma_stream; - -#ifdef __cplusplus -extern "C" { -#endif - -cublasStatus_t magmablasSetKernelStream( cudaStream_t stream ); -cublasStatus_t magmablasGetKernelStream( cudaStream_t *stream ); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/include/magmablas_c.h b/src/include/magmablas_c.h deleted file mode 100644 index 92f2ef1..0000000 --- a/src/include/magmablas_c.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated c Wed Nov 14 22:52:26 2012 - */ - -#ifndef MAGMABLAS_C_H -#define MAGMABLAS_C_H - -#define PRECISION_c - -#ifdef __cplusplus -extern "C" { -#endif - - /* - * Interface to clean - */ -float cpu_gpu_cdiff( - magma_int_t m, magma_int_t n, - const cuFloatComplex *hA, magma_int_t lda, - const cuFloatComplex *dA, magma_int_t ldda ); - -// see also claset -void czero_32x32_block( - cuFloatComplex *dA, magma_int_t ldda ); - -void czero_nbxnb_block( - magma_int_t nb, cuFloatComplex *dA, magma_int_t ldda ); - -// see also claswp -void magmablas_cpermute_long2( - magma_int_t n, cuFloatComplex *dAT, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - -void magmablas_cpermute_long3( - /*magma_int_t n,*/ cuFloatComplex *dAT, magma_int_t ldda, - const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - - /* - * Transpose functions - */ -void magmablas_cinplace_transpose( - cuFloatComplex *dA, magma_int_t ldda, magma_int_t n ); - -void magmablas_ctranspose( - cuFloatComplex *odata, magma_int_t ldo, - const cuFloatComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_ctranspose2( - cuFloatComplex *odata, magma_int_t ldo, - const cuFloatComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_ctranspose2s( - cuFloatComplex *odata, magma_int_t ldo, - const cuFloatComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n, - cudaStream_t *stream ); - -void magmablas_cgetmatrix_transpose( - magma_int_t m, magma_int_t n, - const cuFloatComplex *dAT, magma_int_t ldda, - cuFloatComplex *hA, magma_int_t lda, - cuFloatComplex *dwork, magma_int_t lddwork, magma_int_t nb ); - -void magmablas_csetmatrix_transpose( - magma_int_t m, magma_int_t n, - const cuFloatComplex *hA, magma_int_t lda, - cuFloatComplex *dAT, magma_int_t ldda, - cuFloatComplex *dwork, magma_int_t lddwork, magma_int_t nb ); - - /* - * Multi-GPU functions - */ -void magmablas_cgetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - cuFloatComplex **dAT, magma_int_t ldda, - cuFloatComplex *hA, magma_int_t lda, - cuFloatComplex **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_csetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - const cuFloatComplex *hA, magma_int_t lda, - cuFloatComplex **dAT, magma_int_t ldda, - cuFloatComplex **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_cgetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - cuFloatComplex *dA[], magma_int_t ldda, - cuFloatComplex *hA, magma_int_t lda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_csetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - const cuFloatComplex *hA, magma_int_t lda, - cuFloatComplex *dA[], magma_int_t ldda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_chemm_1gpu_old( - char side, char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - cuFloatComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuFloatComplex *dB[], magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC[], magma_int_t lddc, - cuFloatComplex *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_chemm_1gpu( - char side, char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - cuFloatComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuFloatComplex *dB[], magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC[], magma_int_t lddc, - cuFloatComplex *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - - -void magmablas_chemm_mgpu( - char side, char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, cuFloatComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuFloatComplex *dB[], magma_int_t lddb, - cuFloatComplex beta, cuFloatComplex *dC[], magma_int_t lddc, - cuFloatComplex *dwork[], magma_int_t lddwork, - cuFloatComplex *C, magma_int_t ldc, - cuFloatComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents ); - -void magmablas_chemm_mgpu_com( - char side, char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, cuFloatComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuFloatComplex *dB[], magma_int_t lddb, - cuFloatComplex beta, cuFloatComplex *dC[], magma_int_t lddc, - cuFloatComplex *dwork[], magma_int_t lddwork, - cuFloatComplex *C, magma_int_t ldc, - cuFloatComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - -void magmablas_chemm_mgpu_spec( - char side, char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, cuFloatComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuFloatComplex *dB[], magma_int_t lddb, - cuFloatComplex beta, cuFloatComplex *dC[], magma_int_t lddc, - cuFloatComplex *dwork[], magma_int_t lddwork, - cuFloatComplex *C, magma_int_t ldc, - cuFloatComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - - - -void magmablas_cher2k_mgpu2( - char uplo, char trans, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - cuFloatComplex *dA[], magma_int_t ldda, magma_int_t aoff, - cuFloatComplex *dB[], magma_int_t lddb, magma_int_t boff, - float beta, - cuFloatComplex *dC[], magma_int_t lddc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_cher2k_mgpu_spec( - char uplo, char trans, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, cuFloatComplex *dA[], magma_int_t lda, magma_int_t aoff, - cuFloatComplex *dB[], magma_int_t ldb, magma_int_t boff, - float beta, cuFloatComplex *dC[], magma_int_t ldc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, cudaStream_t streams[][20], magma_int_t nstream ); - - /* - * LAPACK auxiliary functions - */ -void magmablas_cgeadd( - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -void magmablas_clacpy( - char uplo, - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -float magmablas_clange( - char norm, - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA, magma_int_t ldda, float *dwork ); - -float magmablas_clanhe( - char norm, char uplo, - magma_int_t n, - const cuFloatComplex *dA, magma_int_t ldda, float *dwork ); - -float magmablas_clansy( - char norm, char uplo, - magma_int_t n, - const cuFloatComplex *dA, magma_int_t ldda, float *dwork ); - -void magmablas_clascl( - char type, magma_int_t kl, magma_int_t ku, - float cfrom, float cto, - magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t *info ); - -void magmablas_claset( - char uplo, magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda ); - -void magmablas_claset_identity( - magma_int_t m, magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda ); - -void magmablas_claswp( - magma_int_t n, - cuFloatComplex *dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_claswpx( - magma_int_t n, - cuFloatComplex *dAT, magma_int_t ldx, magma_int_t ldy, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_claswp2( - magma_int_t n, - cuFloatComplex* dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *d_ipiv ); - -void magmablas_csymmetrize( - char uplo, magma_int_t m, cuFloatComplex *dA, magma_int_t ldda ); - -void magmablas_csymmetrize_tiles( - char uplo, magma_int_t m, cuFloatComplex *dA, magma_int_t ldda, - magma_int_t ntile, magma_int_t mstride, magma_int_t nstride ); - - /* - * Level 1 BLAS - */ -void magmablas_cswap( - magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -void magmablas_cswapblk( - char storev, - magma_int_t n, - cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci, - magma_int_t offset ); - -void magmablas_cswapdblk( - magma_int_t n, magma_int_t nb, - cuFloatComplex *dA, magma_int_t ldda, magma_int_t inca, - cuFloatComplex *dB, magma_int_t lddb, magma_int_t incb ); - - /* - * Level 2 BLAS - */ -void magmablas_cgemv( - char t, magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex beta, - cuFloatComplex *dy, magma_int_t incy ); - -#if defined(PRECISION_z ) || defined(PRECISION_c ) -magma_int_t magmablas_chemv( - char u, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex beta, - cuFloatComplex *dy, magma_int_t incy ); -#endif - -magma_int_t magmablas_csymv( - char u, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex beta, - cuFloatComplex *dy, magma_int_t incy ); - - /* - * Level 3 BLAS - */ -void magmablas_cgemm( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_cgemm_fermi80( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_cgemm_fermi64( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_chemm( - char s, char u, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_csymm( - char s, char u, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_csyrk( - char u, char t, - magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_cherk( - char u, char t, - magma_int_t n, magma_int_t k, - float alpha, - const cuFloatComplex *dA, magma_int_t ldda, - float beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_csyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_cher2k( - char u, char t, - magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - float beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magmablas_ctrmm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -void magmablas_ctrsm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - - - /* - * Wrappers for platform independence. - * These wrap CUBLAS or AMD OpenCL BLAS functions. - */ - -// ======================================== -// copying vectors -// set copies host to device -// get copies device to host -// Add the function, file, and line for error-reporting purposes. - -#define magma_csetvector( n, hx_src, incx, dy_dst, incy ) \ - magma_csetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_cgetvector( n, dx_src, incx, hy_dst, incy ) \ - magma_cgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_csetvector_async( n, hx_src, incx, dy_dst, incy, stream ) \ - magma_csetvector_async_internal( n, hx_src, incx, dy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -#define magma_cgetvector_async( n, dx_src, incx, hy_dst, incy, stream ) \ - magma_cgetvector_async_internal( n, dx_src, incx, hy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -void magma_csetvector_internal( - magma_int_t n, - const cuFloatComplex *hx_src, magma_int_t incx, - cuFloatComplex *dy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_cgetvector_internal( - magma_int_t n, - const cuFloatComplex *dx_src, magma_int_t incx, - cuFloatComplex *hy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_csetvector_async_internal( - magma_int_t n, - const cuFloatComplex *hx_src, magma_int_t incx, - cuFloatComplex *dy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_cgetvector_async_internal( - magma_int_t n, - const cuFloatComplex *dx_src, magma_int_t incx, - cuFloatComplex *hy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// copying sub-matrices (contiguous columns ) -// set copies host to device -// get copies device to host -// copy copies device to device -// (with CUDA unified addressing, copy can be between same or different devices ) -// Add the function, file, and line for error-reporting purposes. - -#define magma_csetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \ - magma_csetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_cgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \ - magma_cgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ ) - -#define magma_ccopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \ - magma_ccopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_csetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, stream ) \ - magma_csetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_cgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, stream ) \ - magma_cgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_ccopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, stream ) \ - magma_ccopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -void magma_csetmatrix_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *hA_src, magma_int_t lda, - cuFloatComplex *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_cgetmatrix_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA_src, magma_int_t ldda, - cuFloatComplex *hB_dst, magma_int_t ldb, - const char* func, const char* file, int line ); - -void magma_ccopymatrix_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA_src, magma_int_t ldda, - cuFloatComplex *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_csetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *hA_src, magma_int_t lda, - cuFloatComplex *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_cgetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA_src, magma_int_t ldda, - cuFloatComplex *hB_dst, magma_int_t ldb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_ccopymatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuFloatComplex *dA_src, magma_int_t ldda, - cuFloatComplex *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// Level 1 BLAS - -void magma_cswap( - magma_int_t n, - cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex *dy, magma_int_t incy ); - -magma_int_t magma_icamax( - magma_int_t n, - cuFloatComplex *dx, magma_int_t incx ); - -// ======================================== -// Level 2 BLAS - -void magma_cgemv( - magma_trans_t transA, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex beta, - cuFloatComplex *dy, magma_int_t incy ); - -void magma_chemv( - magma_uplo_t uplo, - magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dx, magma_int_t incx, - cuFloatComplex beta, - cuFloatComplex *dy, magma_int_t incy ); - -void magma_ctrsv( - magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t n, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dx, magma_int_t incx ); - -// ======================================== -// Level 3 BLAS - -void magma_cgemm( - magma_trans_t transA, magma_trans_t transB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magma_chemm( - magma_side_t side, magma_uplo_t uplo, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - cuFloatComplex beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magma_cherk( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - float alpha, - const cuFloatComplex *dA, magma_int_t ldda, - float beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magma_cher2k( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - const cuFloatComplex *dB, magma_int_t lddb, - float beta, - cuFloatComplex *dC, magma_int_t lddc ); - -void magma_ctrmm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -void magma_ctrsm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - cuFloatComplex alpha, - const cuFloatComplex *dA, magma_int_t ldda, - cuFloatComplex *dB, magma_int_t lddb ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_c - -#endif // MAGMABLAS_C_H diff --git a/src/include/magmablas_d.h b/src/include/magmablas_d.h deleted file mode 100644 index f81e6f2..0000000 --- a/src/include/magmablas_d.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated d Wed Nov 14 22:52:26 2012 - */ - -#ifndef MAGMABLAS_D_H -#define MAGMABLAS_D_H - -#define PRECISION_d - -#ifdef __cplusplus -extern "C" { -#endif - - /* - * Interface to clean - */ -double cpu_gpu_ddiff( - magma_int_t m, magma_int_t n, - const double *hA, magma_int_t lda, - const double *dA, magma_int_t ldda ); - -// see also dlaset -void dzero_32x32_block( - double *dA, magma_int_t ldda ); - -void dzero_nbxnb_block( - magma_int_t nb, double *dA, magma_int_t ldda ); - -// see also dlaswp -void magmablas_dpermute_long2( - magma_int_t n, double *dAT, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - -void magmablas_dpermute_long3( - /*magma_int_t n,*/ double *dAT, magma_int_t ldda, - const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - - /* - * Transpose functions - */ -void magmablas_dinplace_transpose( - double *dA, magma_int_t ldda, magma_int_t n ); - -void magmablas_dtranspose( - double *odata, magma_int_t ldo, - const double *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_dtranspose2( - double *odata, magma_int_t ldo, - const double *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_dtranspose2s( - double *odata, magma_int_t ldo, - const double *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n, - cudaStream_t *stream ); - -void magmablas_dgetmatrix_transpose( - magma_int_t m, magma_int_t n, - const double *dAT, magma_int_t ldda, - double *hA, magma_int_t lda, - double *dwork, magma_int_t lddwork, magma_int_t nb ); - -void magmablas_dsetmatrix_transpose( - magma_int_t m, magma_int_t n, - const double *hA, magma_int_t lda, - double *dAT, magma_int_t ldda, - double *dwork, magma_int_t lddwork, magma_int_t nb ); - - /* - * Multi-GPU functions - */ -void magmablas_dgetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - double **dAT, magma_int_t ldda, - double *hA, magma_int_t lda, - double **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_dsetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - const double *hA, magma_int_t lda, - double **dAT, magma_int_t ldda, - double **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_dgetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - double *dA[], magma_int_t ldda, - double *hA, magma_int_t lda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_dsetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - const double *hA, magma_int_t lda, - double *dA[], magma_int_t ldda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_dsymm_1gpu_old( - char side, char uplo, magma_int_t m, magma_int_t n, - double alpha, - double *dA[], magma_int_t ldda, magma_int_t offset, - double *dB[], magma_int_t lddb, - double beta, - double *dC[], magma_int_t lddc, - double *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_dsymm_1gpu( - char side, char uplo, magma_int_t m, magma_int_t n, - double alpha, - double *dA[], magma_int_t ldda, magma_int_t offset, - double *dB[], magma_int_t lddb, - double beta, - double *dC[], magma_int_t lddc, - double *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - - -void magmablas_dsymm_mgpu( - char side, char uplo, magma_int_t m, magma_int_t n, - double alpha, double *dA[], magma_int_t ldda, magma_int_t offset, - double *dB[], magma_int_t lddb, - double beta, double *dC[], magma_int_t lddc, - double *dwork[], magma_int_t lddwork, - double *C, magma_int_t ldc, - double *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents ); - -void magmablas_dsymm_mgpu_com( - char side, char uplo, magma_int_t m, magma_int_t n, - double alpha, double *dA[], magma_int_t ldda, magma_int_t offset, - double *dB[], magma_int_t lddb, - double beta, double *dC[], magma_int_t lddc, - double *dwork[], magma_int_t lddwork, - double *C, magma_int_t ldc, - double *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - -void magmablas_dsymm_mgpu_spec( - char side, char uplo, magma_int_t m, magma_int_t n, - double alpha, double *dA[], magma_int_t ldda, magma_int_t offset, - double *dB[], magma_int_t lddb, - double beta, double *dC[], magma_int_t lddc, - double *dwork[], magma_int_t lddwork, - double *C, magma_int_t ldc, - double *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - - - -void magmablas_dsyr2k_mgpu2( - char uplo, char trans, magma_int_t n, magma_int_t k, - double alpha, - double *dA[], magma_int_t ldda, magma_int_t aoff, - double *dB[], magma_int_t lddb, magma_int_t boff, - double beta, - double *dC[], magma_int_t lddc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_dsyr2k_mgpu_spec( - char uplo, char trans, magma_int_t n, magma_int_t k, - double alpha, double *dA[], magma_int_t lda, magma_int_t aoff, - double *dB[], magma_int_t ldb, magma_int_t boff, - double beta, double *dC[], magma_int_t ldc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, cudaStream_t streams[][20], magma_int_t nstream ); - - /* - * LAPACK auxiliary functions - */ -void magmablas_dgeadd( - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -void magmablas_dlacpy( - char uplo, - magma_int_t m, magma_int_t n, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -double magmablas_dlange( - char norm, - magma_int_t m, magma_int_t n, - const double *dA, magma_int_t ldda, double *dwork ); - -double magmablas_dlansy( - char norm, char uplo, - magma_int_t n, - const double *dA, magma_int_t ldda, double *dwork ); - -double magmablas_dlansy( - char norm, char uplo, - magma_int_t n, - const double *dA, magma_int_t ldda, double *dwork ); - -void magmablas_dlascl( - char type, magma_int_t kl, magma_int_t ku, - double cfrom, double cto, - magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda, magma_int_t *info ); - -void magmablas_dlaset( - char uplo, magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda ); - -void magmablas_dlaset_identity( - magma_int_t m, magma_int_t n, - double *dA, magma_int_t ldda ); - -void magmablas_dlaswp( - magma_int_t n, - double *dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_dlaswpx( - magma_int_t n, - double *dAT, magma_int_t ldx, magma_int_t ldy, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_dlaswp2( - magma_int_t n, - double* dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *d_ipiv ); - -void magmablas_dsymmetrize( - char uplo, magma_int_t m, double *dA, magma_int_t ldda ); - -void magmablas_dsymmetrize_tiles( - char uplo, magma_int_t m, double *dA, magma_int_t ldda, - magma_int_t ntile, magma_int_t mstride, magma_int_t nstride ); - - /* - * Level 1 BLAS - */ -void magmablas_dswap( - magma_int_t n, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -void magmablas_dswapblk( - char storev, - magma_int_t n, - double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci, - magma_int_t offset ); - -void magmablas_dswapdblk( - magma_int_t n, magma_int_t nb, - double *dA, magma_int_t ldda, magma_int_t inca, - double *dB, magma_int_t lddb, magma_int_t incb ); - - /* - * Level 2 BLAS - */ -void magmablas_dgemv( - char t, magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dx, magma_int_t incx, - double beta, - double *dy, magma_int_t incy ); - -#if defined(PRECISION_z ) || defined(PRECISION_c ) -magma_int_t magmablas_dsymv( - char u, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dx, magma_int_t incx, - double beta, - double *dy, magma_int_t incy ); -#endif - -magma_int_t magmablas_dsymv( - char u, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dx, magma_int_t incx, - double beta, - double *dy, magma_int_t incy ); - - /* - * Level 3 BLAS - */ -void magmablas_dgemm( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dgemm_fermi80( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dgemm_fermi64( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsymm( - char s, char u, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsymm( - char s, char u, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsyrk( - char u, char t, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsyrk( - char u, char t, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dsyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magmablas_dtrmm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -void magmablas_dtrsm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - - - /* - * Wrappers for platform independence. - * These wrap CUBLAS or AMD OpenCL BLAS functions. - */ - -// ======================================== -// copying vectors -// set copies host to device -// get copies device to host -// Add the function, file, and line for error-reporting purposes. - -#define magma_dsetvector( n, hx_src, incx, dy_dst, incy ) \ - magma_dsetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_dgetvector( n, dx_src, incx, hy_dst, incy ) \ - magma_dgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_dsetvector_async( n, hx_src, incx, dy_dst, incy, stream ) \ - magma_dsetvector_async_internal( n, hx_src, incx, dy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -#define magma_dgetvector_async( n, dx_src, incx, hy_dst, incy, stream ) \ - magma_dgetvector_async_internal( n, dx_src, incx, hy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -void magma_dsetvector_internal( - magma_int_t n, - const double *hx_src, magma_int_t incx, - double *dy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_dgetvector_internal( - magma_int_t n, - const double *dx_src, magma_int_t incx, - double *hy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_dsetvector_async_internal( - magma_int_t n, - const double *hx_src, magma_int_t incx, - double *dy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_dgetvector_async_internal( - magma_int_t n, - const double *dx_src, magma_int_t incx, - double *hy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// copying sub-matrices (contiguous columns ) -// set copies host to device -// get copies device to host -// copy copies device to device -// (with CUDA unified addressing, copy can be between same or different devices ) -// Add the function, file, and line for error-reporting purposes. - -#define magma_dsetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \ - magma_dsetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_dgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \ - magma_dgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ ) - -#define magma_dcopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \ - magma_dcopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_dsetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, stream ) \ - magma_dsetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_dgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, stream ) \ - magma_dgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_dcopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, stream ) \ - magma_dcopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -void magma_dsetmatrix_internal( - magma_int_t m, magma_int_t n, - const double *hA_src, magma_int_t lda, - double *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_dgetmatrix_internal( - magma_int_t m, magma_int_t n, - const double *dA_src, magma_int_t ldda, - double *hB_dst, magma_int_t ldb, - const char* func, const char* file, int line ); - -void magma_dcopymatrix_internal( - magma_int_t m, magma_int_t n, - const double *dA_src, magma_int_t ldda, - double *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_dsetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const double *hA_src, magma_int_t lda, - double *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_dgetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const double *dA_src, magma_int_t ldda, - double *hB_dst, magma_int_t ldb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_dcopymatrix_async_internal( - magma_int_t m, magma_int_t n, - const double *dA_src, magma_int_t ldda, - double *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// Level 1 BLAS - -void magma_dswap( - magma_int_t n, - double *dx, magma_int_t incx, - double *dy, magma_int_t incy ); - -magma_int_t magma_idamax( - magma_int_t n, - double *dx, magma_int_t incx ); - -// ======================================== -// Level 2 BLAS - -void magma_dgemv( - magma_trans_t transA, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dx, magma_int_t incx, - double beta, - double *dy, magma_int_t incy ); - -void magma_dsymv( - magma_uplo_t uplo, - magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dx, magma_int_t incx, - double beta, - double *dy, magma_int_t incy ); - -void magma_dtrsv( - magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t n, - const double *dA, magma_int_t ldda, - double *dx, magma_int_t incx ); - -// ======================================== -// Level 3 BLAS - -void magma_dgemm( - magma_trans_t transA, magma_trans_t transB, - magma_int_t m, magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magma_dsymm( - magma_side_t side, magma_uplo_t uplo, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magma_dsyrk( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - double beta, - double *dC, magma_int_t lddc ); - -void magma_dsyr2k( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - double alpha, - const double *dA, magma_int_t ldda, - const double *dB, magma_int_t lddb, - double beta, - double *dC, magma_int_t lddc ); - -void magma_dtrmm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -void magma_dtrsm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - double alpha, - const double *dA, magma_int_t ldda, - double *dB, magma_int_t lddb ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_d - -#endif // MAGMABLAS_D_H diff --git a/src/include/magmablas_ds.h b/src/include/magmablas_ds.h deleted file mode 100644 index d96e54a..0000000 --- a/src/include/magmablas_ds.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated ds Wed Nov 14 22:52:26 2012 - */ - -#ifndef MAGMABLAS_DS_H -#define MAGMABLAS_DS_H - -#ifdef __cplusplus -extern "C" { -#endif - - /* Mixed precision */ -void magmablas_dsaxpycp( - float *R, double *X, - magma_int_t m, double *B, double *W ); - -void magmablas_daxpycp( - double *R, double *X, - magma_int_t m, double *B ); - -void magmablas_dslaswp( - magma_int_t n, - double *A, magma_int_t lda, - float *SA, magma_int_t m, - const magma_int_t *ipiv, magma_int_t incx ); - -void magmablas_dlag2s( - magma_int_t m, magma_int_t n, - const double *A, magma_int_t lda, - float *SA, magma_int_t ldsa, - magma_int_t *info ); - -void magmablas_slag2d( - magma_int_t m, magma_int_t n, - const float *SA, magma_int_t ldsa, - double *A, magma_int_t lda, - magma_int_t *info ); - -void magmablas_dlat2s( - char uplo, magma_int_t n, - const double *A, magma_int_t lda, - float *SA, magma_int_t ldsa, - magma_int_t *info ); - -#ifdef __cplusplus -} -#endif - -#endif // MAGMABLAS_DS_H diff --git a/src/include/magmablas_s.h b/src/include/magmablas_s.h deleted file mode 100644 index 47bc5b6..0000000 --- a/src/include/magmablas_s.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @generated s Wed Nov 14 22:52:26 2012 - */ - -#ifndef MAGMABLAS_S_H -#define MAGMABLAS_S_H - -#define PRECISION_s - -#ifdef __cplusplus -extern "C" { -#endif - - /* - * Interface to clean - */ -float cpu_gpu_sdiff( - magma_int_t m, magma_int_t n, - const float *hA, magma_int_t lda, - const float *dA, magma_int_t ldda ); - -// see also slaset -void szero_32x32_block( - float *dA, magma_int_t ldda ); - -void szero_nbxnb_block( - magma_int_t nb, float *dA, magma_int_t ldda ); - -// see also slaswp -void magmablas_spermute_long2( - magma_int_t n, float *dAT, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - -void magmablas_spermute_long3( - /*magma_int_t n,*/ float *dAT, magma_int_t ldda, - const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - - /* - * Transpose functions - */ -void magmablas_sinplace_transpose( - float *dA, magma_int_t ldda, magma_int_t n ); - -void magmablas_stranspose( - float *odata, magma_int_t ldo, - const float *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_stranspose2( - float *odata, magma_int_t ldo, - const float *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_stranspose2s( - float *odata, magma_int_t ldo, - const float *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n, - cudaStream_t *stream ); - -void magmablas_sgetmatrix_transpose( - magma_int_t m, magma_int_t n, - const float *dAT, magma_int_t ldda, - float *hA, magma_int_t lda, - float *dwork, magma_int_t lddwork, magma_int_t nb ); - -void magmablas_ssetmatrix_transpose( - magma_int_t m, magma_int_t n, - const float *hA, magma_int_t lda, - float *dAT, magma_int_t ldda, - float *dwork, magma_int_t lddwork, magma_int_t nb ); - - /* - * Multi-GPU functions - */ -void magmablas_sgetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - float **dAT, magma_int_t ldda, - float *hA, magma_int_t lda, - float **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_ssetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - const float *hA, magma_int_t lda, - float **dAT, magma_int_t ldda, - float **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_sgetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - float *dA[], magma_int_t ldda, - float *hA, magma_int_t lda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_ssetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - const float *hA, magma_int_t lda, - float *dA[], magma_int_t ldda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_ssymm_1gpu_old( - char side, char uplo, magma_int_t m, magma_int_t n, - float alpha, - float *dA[], magma_int_t ldda, magma_int_t offset, - float *dB[], magma_int_t lddb, - float beta, - float *dC[], magma_int_t lddc, - float *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_ssymm_1gpu( - char side, char uplo, magma_int_t m, magma_int_t n, - float alpha, - float *dA[], magma_int_t ldda, magma_int_t offset, - float *dB[], magma_int_t lddb, - float beta, - float *dC[], magma_int_t lddc, - float *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - - -void magmablas_ssymm_mgpu( - char side, char uplo, magma_int_t m, magma_int_t n, - float alpha, float *dA[], magma_int_t ldda, magma_int_t offset, - float *dB[], magma_int_t lddb, - float beta, float *dC[], magma_int_t lddc, - float *dwork[], magma_int_t lddwork, - float *C, magma_int_t ldc, - float *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents ); - -void magmablas_ssymm_mgpu_com( - char side, char uplo, magma_int_t m, magma_int_t n, - float alpha, float *dA[], magma_int_t ldda, magma_int_t offset, - float *dB[], magma_int_t lddb, - float beta, float *dC[], magma_int_t lddc, - float *dwork[], magma_int_t lddwork, - float *C, magma_int_t ldc, - float *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - -void magmablas_ssymm_mgpu_spec( - char side, char uplo, magma_int_t m, magma_int_t n, - float alpha, float *dA[], magma_int_t ldda, magma_int_t offset, - float *dB[], magma_int_t lddb, - float beta, float *dC[], magma_int_t lddc, - float *dwork[], magma_int_t lddwork, - float *C, magma_int_t ldc, - float *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - - - -void magmablas_ssyr2k_mgpu2( - char uplo, char trans, magma_int_t n, magma_int_t k, - float alpha, - float *dA[], magma_int_t ldda, magma_int_t aoff, - float *dB[], magma_int_t lddb, magma_int_t boff, - float beta, - float *dC[], magma_int_t lddc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_ssyr2k_mgpu_spec( - char uplo, char trans, magma_int_t n, magma_int_t k, - float alpha, float *dA[], magma_int_t lda, magma_int_t aoff, - float *dB[], magma_int_t ldb, magma_int_t boff, - float beta, float *dC[], magma_int_t ldc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, cudaStream_t streams[][20], magma_int_t nstream ); - - /* - * LAPACK auxiliary functions - */ -void magmablas_sgeadd( - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -void magmablas_slacpy( - char uplo, - magma_int_t m, magma_int_t n, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -float magmablas_slange( - char norm, - magma_int_t m, magma_int_t n, - const float *dA, magma_int_t ldda, float *dwork ); - -float magmablas_slansy( - char norm, char uplo, - magma_int_t n, - const float *dA, magma_int_t ldda, float *dwork ); - -float magmablas_slansy( - char norm, char uplo, - magma_int_t n, - const float *dA, magma_int_t ldda, float *dwork ); - -void magmablas_slascl( - char type, magma_int_t kl, magma_int_t ku, - float cfrom, float cto, - magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda, magma_int_t *info ); - -void magmablas_slaset( - char uplo, magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda ); - -void magmablas_slaset_identity( - magma_int_t m, magma_int_t n, - float *dA, magma_int_t ldda ); - -void magmablas_slaswp( - magma_int_t n, - float *dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_slaswpx( - magma_int_t n, - float *dAT, magma_int_t ldx, magma_int_t ldy, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_slaswp2( - magma_int_t n, - float* dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *d_ipiv ); - -void magmablas_ssymmetrize( - char uplo, magma_int_t m, float *dA, magma_int_t ldda ); - -void magmablas_ssymmetrize_tiles( - char uplo, magma_int_t m, float *dA, magma_int_t ldda, - magma_int_t ntile, magma_int_t mstride, magma_int_t nstride ); - - /* - * Level 1 BLAS - */ -void magmablas_sswap( - magma_int_t n, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -void magmablas_sswapblk( - char storev, - magma_int_t n, - float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci, - magma_int_t offset ); - -void magmablas_sswapdblk( - magma_int_t n, magma_int_t nb, - float *dA, magma_int_t ldda, magma_int_t inca, - float *dB, magma_int_t lddb, magma_int_t incb ); - - /* - * Level 2 BLAS - */ -void magmablas_sgemv( - char t, magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dx, magma_int_t incx, - float beta, - float *dy, magma_int_t incy ); - -#if defined(PRECISION_z ) || defined(PRECISION_c ) -magma_int_t magmablas_ssymv( - char u, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dx, magma_int_t incx, - float beta, - float *dy, magma_int_t incy ); -#endif - -magma_int_t magmablas_ssymv( - char u, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dx, magma_int_t incx, - float beta, - float *dy, magma_int_t incy ); - - /* - * Level 3 BLAS - */ -void magmablas_sgemm( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_sgemm_fermi80( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_sgemm_fermi64( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssymm( - char s, char u, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssymm( - char s, char u, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssyrk( - char u, char t, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssyrk( - char u, char t, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_ssyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magmablas_strmm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -void magmablas_strsm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - - - /* - * Wrappers for platform independence. - * These wrap CUBLAS or AMD OpenCL BLAS functions. - */ - -// ======================================== -// copying vectors -// set copies host to device -// get copies device to host -// Add the function, file, and line for error-reporting purposes. - -#define magma_ssetvector( n, hx_src, incx, dy_dst, incy ) \ - magma_ssetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_sgetvector( n, dx_src, incx, hy_dst, incy ) \ - magma_sgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_ssetvector_async( n, hx_src, incx, dy_dst, incy, stream ) \ - magma_ssetvector_async_internal( n, hx_src, incx, dy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -#define magma_sgetvector_async( n, dx_src, incx, hy_dst, incy, stream ) \ - magma_sgetvector_async_internal( n, dx_src, incx, hy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -void magma_ssetvector_internal( - magma_int_t n, - const float *hx_src, magma_int_t incx, - float *dy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_sgetvector_internal( - magma_int_t n, - const float *dx_src, magma_int_t incx, - float *hy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_ssetvector_async_internal( - magma_int_t n, - const float *hx_src, magma_int_t incx, - float *dy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_sgetvector_async_internal( - magma_int_t n, - const float *dx_src, magma_int_t incx, - float *hy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// copying sub-matrices (contiguous columns ) -// set copies host to device -// get copies device to host -// copy copies device to device -// (with CUDA unified addressing, copy can be between same or different devices ) -// Add the function, file, and line for error-reporting purposes. - -#define magma_ssetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \ - magma_ssetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_sgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \ - magma_sgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ ) - -#define magma_scopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \ - magma_scopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_ssetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, stream ) \ - magma_ssetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_sgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, stream ) \ - magma_sgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_scopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, stream ) \ - magma_scopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -void magma_ssetmatrix_internal( - magma_int_t m, magma_int_t n, - const float *hA_src, magma_int_t lda, - float *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_sgetmatrix_internal( - magma_int_t m, magma_int_t n, - const float *dA_src, magma_int_t ldda, - float *hB_dst, magma_int_t ldb, - const char* func, const char* file, int line ); - -void magma_scopymatrix_internal( - magma_int_t m, magma_int_t n, - const float *dA_src, magma_int_t ldda, - float *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_ssetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const float *hA_src, magma_int_t lda, - float *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_sgetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const float *dA_src, magma_int_t ldda, - float *hB_dst, magma_int_t ldb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_scopymatrix_async_internal( - magma_int_t m, magma_int_t n, - const float *dA_src, magma_int_t ldda, - float *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// Level 1 BLAS - -void magma_sswap( - magma_int_t n, - float *dx, magma_int_t incx, - float *dy, magma_int_t incy ); - -magma_int_t magma_isamax( - magma_int_t n, - float *dx, magma_int_t incx ); - -// ======================================== -// Level 2 BLAS - -void magma_sgemv( - magma_trans_t transA, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dx, magma_int_t incx, - float beta, - float *dy, magma_int_t incy ); - -void magma_ssymv( - magma_uplo_t uplo, - magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dx, magma_int_t incx, - float beta, - float *dy, magma_int_t incy ); - -void magma_strsv( - magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t n, - const float *dA, magma_int_t ldda, - float *dx, magma_int_t incx ); - -// ======================================== -// Level 3 BLAS - -void magma_sgemm( - magma_trans_t transA, magma_trans_t transB, - magma_int_t m, magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magma_ssymm( - magma_side_t side, magma_uplo_t uplo, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magma_ssyrk( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - float beta, - float *dC, magma_int_t lddc ); - -void magma_ssyr2k( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - float alpha, - const float *dA, magma_int_t ldda, - const float *dB, magma_int_t lddb, - float beta, - float *dC, magma_int_t lddc ); - -void magma_strmm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -void magma_strsm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - float alpha, - const float *dA, magma_int_t ldda, - float *dB, magma_int_t lddb ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_s - -#endif // MAGMABLAS_S_H diff --git a/src/include/magmablas_z.h b/src/include/magmablas_z.h deleted file mode 100644 index 08bbb91..0000000 --- a/src/include/magmablas_z.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions normal z -> s d c - */ - -#ifndef MAGMABLAS_Z_H -#define MAGMABLAS_Z_H - -#define PRECISION_z - -#ifdef __cplusplus -extern "C" { -#endif - - /* - * Interface to clean - */ -double cpu_gpu_zdiff( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *hA, magma_int_t lda, - const cuDoubleComplex *dA, magma_int_t ldda ); - -// see also zlaset -void zzero_32x32_block( - cuDoubleComplex *dA, magma_int_t ldda ); - -void zzero_nbxnb_block( - magma_int_t nb, cuDoubleComplex *dA, magma_int_t ldda ); - -// see also zlaswp -void magmablas_zpermute_long2( - magma_int_t n, cuDoubleComplex *dAT, magma_int_t ldda, - magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - -void magmablas_zpermute_long3( - /*magma_int_t n,*/ cuDoubleComplex *dAT, magma_int_t ldda, - const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind ); - - /* - * Transpose functions - */ -void magmablas_zinplace_transpose( - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t n ); - -void magmablas_ztranspose( - cuDoubleComplex *odata, magma_int_t ldo, - const cuDoubleComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_ztranspose2( - cuDoubleComplex *odata, magma_int_t ldo, - const cuDoubleComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n ); - -void magmablas_ztranspose2s( - cuDoubleComplex *odata, magma_int_t ldo, - const cuDoubleComplex *idata, magma_int_t ldi, - magma_int_t m, magma_int_t n, - cudaStream_t *stream ); - -void magmablas_zgetmatrix_transpose( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dAT, magma_int_t ldda, - cuDoubleComplex *hA, magma_int_t lda, - cuDoubleComplex *dwork, magma_int_t lddwork, magma_int_t nb ); - -void magmablas_zsetmatrix_transpose( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *hA, magma_int_t lda, - cuDoubleComplex *dAT, magma_int_t ldda, - cuDoubleComplex *dwork, magma_int_t lddwork, magma_int_t nb ); - - /* - * Multi-GPU functions - */ -void magmablas_zgetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - cuDoubleComplex **dAT, magma_int_t ldda, - cuDoubleComplex *hA, magma_int_t lda, - cuDoubleComplex **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_zsetmatrix_transpose_mgpu( - magma_int_t ngpu, cudaStream_t stream[][2], - const cuDoubleComplex *hA, magma_int_t lda, - cuDoubleComplex **dAT, magma_int_t ldda, - cuDoubleComplex **dB, magma_int_t lddb, - magma_int_t m, magma_int_t n, magma_int_t nb ); - -void magmablas_zgetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - cuDoubleComplex *dA[], magma_int_t ldda, - cuDoubleComplex *hA, magma_int_t lda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_zsetmatrix_1D_bcyclic( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *hA, magma_int_t lda, - cuDoubleComplex *dA[], magma_int_t ldda, - magma_int_t ngpu, magma_int_t nb ); - -void magmablas_zhemm_1gpu_old( - char side, char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuDoubleComplex *dB[], magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC[], magma_int_t lddc, - cuDoubleComplex *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_zhemm_1gpu( - char side, char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuDoubleComplex *dB[], magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC[], magma_int_t lddc, - cuDoubleComplex *C, magma_int_t ldc, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - - -void magmablas_zhemm_mgpu( - char side, char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuDoubleComplex *dB[], magma_int_t lddb, - cuDoubleComplex beta, cuDoubleComplex *dC[], magma_int_t lddc, - cuDoubleComplex *dwork[], magma_int_t lddwork, - cuDoubleComplex *C, magma_int_t ldc, - cuDoubleComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents ); - -void magmablas_zhemm_mgpu_com( - char side, char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuDoubleComplex *dB[], magma_int_t lddb, - cuDoubleComplex beta, cuDoubleComplex *dC[], magma_int_t lddc, - cuDoubleComplex *dwork[], magma_int_t lddwork, - cuDoubleComplex *C, magma_int_t ldc, - cuDoubleComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][20],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - -void magmablas_zhemm_mgpu_spec( - char side, char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t offset, - cuDoubleComplex *dB[], magma_int_t lddb, - cuDoubleComplex beta, cuDoubleComplex *dC[], magma_int_t lddc, - cuDoubleComplex *dwork[], magma_int_t lddwork, - cuDoubleComplex *C, magma_int_t ldc, - cuDoubleComplex *work[], magma_int_t ldwork, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream, - cudaEvent_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs],magma_int_t nbevents, - magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx ); - - - -void magmablas_zher2k_mgpu2( - char uplo, char trans, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - cuDoubleComplex *dA[], magma_int_t ldda, magma_int_t aoff, - cuDoubleComplex *dB[], magma_int_t lddb, magma_int_t boff, - double beta, - cuDoubleComplex *dC[], magma_int_t lddc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, - cudaStream_t streams[][20], magma_int_t nstream ); - -void magmablas_zher2k_mgpu_spec( - char uplo, char trans, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, cuDoubleComplex *dA[], magma_int_t lda, magma_int_t aoff, - cuDoubleComplex *dB[], magma_int_t ldb, magma_int_t boff, - double beta, cuDoubleComplex *dC[], magma_int_t ldc, magma_int_t offset, - magma_int_t ngpu, magma_int_t nb, cudaStream_t streams[][20], magma_int_t nstream ); - - /* - * LAPACK auxiliary functions - */ -void magmablas_zgeadd( - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -void magmablas_zlacpy( - char uplo, - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -double magmablas_zlange( - char norm, - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA, magma_int_t ldda, double *dwork ); - -double magmablas_zlanhe( - char norm, char uplo, - magma_int_t n, - const cuDoubleComplex *dA, magma_int_t ldda, double *dwork ); - -double magmablas_zlansy( - char norm, char uplo, - magma_int_t n, - const cuDoubleComplex *dA, magma_int_t ldda, double *dwork ); - -void magmablas_zlascl( - char type, magma_int_t kl, magma_int_t ku, - double cfrom, double cto, - magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info ); - -void magmablas_zlaset( - char uplo, magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda ); - -void magmablas_zlaset_identity( - magma_int_t m, magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda ); - -void magmablas_zlaswp( - magma_int_t n, - cuDoubleComplex *dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_zlaswpx( - magma_int_t n, - cuDoubleComplex *dAT, magma_int_t ldx, magma_int_t ldy, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci ); - -void magmablas_zlaswp2( - magma_int_t n, - cuDoubleComplex* dAT, magma_int_t ldda, - magma_int_t i1, magma_int_t i2, - const magma_int_t *d_ipiv ); - -void magmablas_zsymmetrize( - char uplo, magma_int_t m, cuDoubleComplex *dA, magma_int_t ldda ); - -void magmablas_zsymmetrize_tiles( - char uplo, magma_int_t m, cuDoubleComplex *dA, magma_int_t ldda, - magma_int_t ntile, magma_int_t mstride, magma_int_t nstride ); - - /* - * Level 1 BLAS - */ -void magmablas_zswap( - magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -void magmablas_zswapblk( - char storev, - magma_int_t n, - cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb, - magma_int_t i1, magma_int_t i2, - const magma_int_t *ipiv, magma_int_t inci, - magma_int_t offset ); - -void magmablas_zswapdblk( - magma_int_t n, magma_int_t nb, - cuDoubleComplex *dA, magma_int_t ldda, magma_int_t inca, - cuDoubleComplex *dB, magma_int_t lddb, magma_int_t incb ); - - /* - * Level 2 BLAS - */ -void magmablas_zgemv( - char t, magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex beta, - cuDoubleComplex *dy, magma_int_t incy ); - -#if defined(PRECISION_z ) || defined(PRECISION_c ) -magma_int_t magmablas_zhemv( - char u, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex beta, - cuDoubleComplex *dy, magma_int_t incy ); -#endif - -magma_int_t magmablas_zsymv( - char u, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex beta, - cuDoubleComplex *dy, magma_int_t incy ); - - /* - * Level 3 BLAS - */ -void magmablas_zgemm( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zgemm_fermi80( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zgemm_fermi64( - char tA, char tB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zhemm( - char s, char u, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zsymm( - char s, char u, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zsyrk( - char u, char t, - magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zherk( - char u, char t, - magma_int_t n, magma_int_t k, - double alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - double beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zsyr2k( - char u, char t, - magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_zher2k( - char u, char t, - magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - double beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magmablas_ztrmm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -void magmablas_ztrsm( - char s, char u, char t, char d, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - - - /* - * Wrappers for platform independence. - * These wrap CUBLAS or AMD OpenCL BLAS functions. - */ - -// ======================================== -// copying vectors -// set copies host to device -// get copies device to host -// Add the function, file, and line for error-reporting purposes. - -#define magma_zsetvector( n, hx_src, incx, dy_dst, incy ) \ - magma_zsetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_zgetvector( n, dx_src, incx, hy_dst, incy ) \ - magma_zgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ ) - -#define magma_zsetvector_async( n, hx_src, incx, dy_dst, incy, stream ) \ - magma_zsetvector_async_internal( n, hx_src, incx, dy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -#define magma_zgetvector_async( n, dx_src, incx, hy_dst, incy, stream ) \ - magma_zgetvector_async_internal( n, dx_src, incx, hy_dst, incy, stream, __func__, __FILE__, __LINE__ ) - -void magma_zsetvector_internal( - magma_int_t n, - const cuDoubleComplex *hx_src, magma_int_t incx, - cuDoubleComplex *dy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_zgetvector_internal( - magma_int_t n, - const cuDoubleComplex *dx_src, magma_int_t incx, - cuDoubleComplex *hy_dst, magma_int_t incy, - const char* func, const char* file, int line ); - -void magma_zsetvector_async_internal( - magma_int_t n, - const cuDoubleComplex *hx_src, magma_int_t incx, - cuDoubleComplex *dy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_zgetvector_async_internal( - magma_int_t n, - const cuDoubleComplex *dx_src, magma_int_t incx, - cuDoubleComplex *hy_dst, magma_int_t incy, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// copying sub-matrices (contiguous columns ) -// set copies host to device -// get copies device to host -// copy copies device to device -// (with CUDA unified addressing, copy can be between same or different devices ) -// Add the function, file, and line for error-reporting purposes. - -#define magma_zsetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \ - magma_zsetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_zgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \ - magma_zgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ ) - -#define magma_zcopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \ - magma_zcopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ ) - -#define magma_zsetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, stream ) \ - magma_zsetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_zgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, stream ) \ - magma_zgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, stream, __func__, __FILE__, __LINE__ ) - -#define magma_zcopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, stream ) \ - magma_zcopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, stream, __func__, __FILE__, __LINE__ ) - -void magma_zsetmatrix_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *hA_src, magma_int_t lda, - cuDoubleComplex *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_zgetmatrix_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA_src, magma_int_t ldda, - cuDoubleComplex *hB_dst, magma_int_t ldb, - const char* func, const char* file, int line ); - -void magma_zcopymatrix_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA_src, magma_int_t ldda, - cuDoubleComplex *dB_dst, magma_int_t lddb, - const char* func, const char* file, int line ); - -void magma_zsetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *hA_src, magma_int_t lda, - cuDoubleComplex *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_zgetmatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA_src, magma_int_t ldda, - cuDoubleComplex *hB_dst, magma_int_t ldb, - magma_stream_t stream, - const char* func, const char* file, int line ); - -void magma_zcopymatrix_async_internal( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *dA_src, magma_int_t ldda, - cuDoubleComplex *dB_dst, magma_int_t lddb, - magma_stream_t stream, - const char* func, const char* file, int line ); - - -// ======================================== -// Level 1 BLAS - -void magma_zswap( - magma_int_t n, - cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex *dy, magma_int_t incy ); - -magma_int_t magma_izamax( - magma_int_t n, - cuDoubleComplex *dx, magma_int_t incx ); - -// ======================================== -// Level 2 BLAS - -void magma_zgemv( - magma_trans_t transA, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex beta, - cuDoubleComplex *dy, magma_int_t incy ); - -void magma_zhemv( - magma_uplo_t uplo, - magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dx, magma_int_t incx, - cuDoubleComplex beta, - cuDoubleComplex *dy, magma_int_t incy ); - -void magma_ztrsv( - magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t n, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dx, magma_int_t incx ); - -// ======================================== -// Level 3 BLAS - -void magma_zgemm( - magma_trans_t transA, magma_trans_t transB, - magma_int_t m, magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magma_zhemm( - magma_side_t side, magma_uplo_t uplo, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - cuDoubleComplex beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magma_zherk( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - double alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - double beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magma_zher2k( - magma_uplo_t uplo, magma_trans_t trans, - magma_int_t n, magma_int_t k, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - const cuDoubleComplex *dB, magma_int_t lddb, - double beta, - cuDoubleComplex *dC, magma_int_t lddc ); - -void magma_ztrmm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -void magma_ztrsm( - magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, - magma_int_t m, magma_int_t n, - cuDoubleComplex alpha, - const cuDoubleComplex *dA, magma_int_t ldda, - cuDoubleComplex *dB, magma_int_t lddb ); - -#ifdef __cplusplus -} -#endif - -#undef PRECISION_z - -#endif // MAGMABLAS_Z_H diff --git a/src/include/magmablas_zc.h b/src/include/magmablas_zc.h deleted file mode 100644 index 8d4ae4d..0000000 --- a/src/include/magmablas_zc.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * -- MAGMA (version 1.3.0) -- - * Univ. of Tennessee, Knoxville - * Univ. of California, Berkeley - * Univ. of Colorado, Denver - * November 2012 - * - * @precisions mixed zc -> ds - */ - -#ifndef MAGMABLAS_ZC_H -#define MAGMABLAS_ZC_H - -#ifdef __cplusplus -extern "C" { -#endif - - /* Mixed precision */ -void magmablas_zcaxpycp( - cuFloatComplex *R, cuDoubleComplex *X, - magma_int_t m, cuDoubleComplex *B, cuDoubleComplex *W ); - -void magmablas_zaxpycp( - cuDoubleComplex *R, cuDoubleComplex *X, - magma_int_t m, cuDoubleComplex *B ); - -void magmablas_zclaswp( - magma_int_t n, - cuDoubleComplex *A, magma_int_t lda, - cuFloatComplex *SA, magma_int_t m, - const magma_int_t *ipiv, magma_int_t incx ); - -void magmablas_zlag2c( - magma_int_t m, magma_int_t n, - const cuDoubleComplex *A, magma_int_t lda, - cuFloatComplex *SA, magma_int_t ldsa, - magma_int_t *info ); - -void magmablas_clag2z( - magma_int_t m, magma_int_t n, - const cuFloatComplex *SA, magma_int_t ldsa, - cuDoubleComplex *A, magma_int_t lda, - magma_int_t *info ); - -void magmablas_zlat2c( - char uplo, magma_int_t n, - const cuDoubleComplex *A, magma_int_t lda, - cuFloatComplex *SA, magma_int_t ldsa, - magma_int_t *info ); - -#ifdef __cplusplus -} -#endif - -#endif // MAGMABLAS_ZC_H From 45098c3413d9ea08797193e696abac6043eef689 Mon Sep 17 00:00:00 2001 From: sgsokol Date: Tue, 7 Oct 2014 18:32:38 +0200 Subject: [PATCH 2/3] v1.5.0-1 --- ChangeLog | 8 +++ DESCRIPTION | 31 +++++++----- INSTALL | 58 +++++++++++----------- MD5 | 67 +++++++++++++++++++++++++ NAMESPACE | 61 ++++++++++++----------- R/magAriths.r | 9 ++-- R/magSolvers.r | 6 +-- R/magUtils.r | 3 -- cleanup | 6 +-- configure | 38 +++++++-------- configure.ac | 40 +++++++++++---- inst/CITATION | 31 +++++++----- man/magma.Rd | 124 +++++++++++++++++++++++------------------------ src/Makefile.in | 0 src/magAriths.c | 25 ++++++---- src/magFactors.c | 10 ++-- src/magSolvers.c | 20 ++++---- src/magUtils.c | 14 ++++-- src/magUtils.h | 3 +- src/todo.txt | 8 +++ tests/.Rhistory | 90 ++++++++++++++++++++++++++++++++++ 21 files changed, 430 insertions(+), 222 deletions(-) mode change 100644 => 100755 DESCRIPTION create mode 100644 MD5 mode change 100644 => 100755 cleanup mode change 100644 => 100755 configure mode change 100644 => 100755 configure.ac mode change 100644 => 100755 inst/CITATION mode change 100644 => 100755 src/Makefile.in create mode 100644 src/todo.txt create mode 100644 tests/.Rhistory diff --git a/ChangeLog b/ChangeLog index bb3fc62..fc95786 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,14 @@ magma R package changes -------------------------------------------------------------------------------- +2014-10-06 Serguei Sokol + + * magma_1.5.0-1.tar.gz: Package upgrade release. + + * src/*.c: Updated to magma 1.5.0 and cublas 6.0 (4.0+ is required) libraries + + * fixed few bugs in magQRSolve() + 2013-04-02 Brian Smith * magma_1.3.0-1.tar.gz: Package upgrade release. diff --git a/DESCRIPTION b/DESCRIPTION old mode 100644 new mode 100755 index f5e1a1e..1d9ec5c --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,19 +1,24 @@ Package: magma Title: Matrix Algebra on GPU and Multicore Architectures -Version: 1.3.0-2 -Date: 2013-04-03 -Author: Brian J Smith -Maintainer: Brian J Smith +Version: 1.5.0-1 +Date: 2014-10-07 +Authors@R: c(person("Brian", "Smith", middle="J.", role = c("aut", "cre"), + email = "brian-j-smith@uiowa.edu"), + person("Serguei", "Sokol", role = c("com", "ctb"), + email="sokol@insa-toulouse.fr")) Depends: R (>= 2.11.0), methods -SystemRequirements: MAGMA shared libraries (== release 1.3.0), LAPACK shared - library, NVIDIA CUDA Toolkit (>= release 4.0) -Description: Magma matrix classes and methods for parallel processing of matrix - algebra operations. Operations are performed with algorithms developed by - the MAGMA research project. MAGMA aims to achieve the fastest possible - linear algebra libraries on hybrid multicore CPU and GPU architectures by - exploiting their massive parallelism and minimizing communication latencies. +SystemRequirements: MAGMA software (== release 1.5.0), LAPACK + shared library, NVIDIA CUDA Toolkit (>= release 4.0) +Description: Magma matrix classes and methods for parallel processing + of matrix algebra operations. Operations are performed with + algorithms developed by the MAGMA research project. MAGMA aims + to achieve the fastest possible linear algebra libraries on + hybrid multicore CPU and GPU architectures by exploiting their + massive parallelism and minimizing communication latencies. License: GPL-3 URL: http://icl.cs.utk.edu/magma OS_type: unix - - +Packaged: +NeedsCompilation: yes +Repository: CRAN +Date/Publication: diff --git a/INSTALL b/INSTALL index f7bbfb0..923106c 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,10 @@ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -magma R Package Version 1.3.0 -Installation and Release Notes (4/2/2013) +magma R Package Version 1.5.0 +Installation and Release Notes (2014-10-07) +Package Author: Brian J. Smith Package Maintainer: Brian J. Smith +Package Contributor: Serguei Sokol -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -60,14 +62,14 @@ I. (b) Hardware requirements I. (c) Supported operating systems -------------------------------------------------------------------------------- -* Development and testing of the package is performed on 64-bit Ubuntu Linux - 10.04 with. Other 64-bit Linux distributions should work as well. - Development is conducted with release 4.3 of the GCC tools; release 4.4 is - not supported and may cause errors. +* Development and testing of the package is performed on 64-bit Mageia Linux + 4.0. Other 64-bit Linux distributions should work as well. + Development is conducted with release 4.8.2 of the GCC tools and 6.0 + of the cuda tools. * At this time, the package has not been tried on OS X, although input from any - attempts to do so are welcome. Windows is not supported currently due to a - lack of shared MAGMA libraries for that platform. + attempts to do so are welcome. Windows should be supported too as the + library magma is reported to copile on this platform. -------------------------------------------------------------------------------- @@ -137,11 +139,7 @@ Next, the MAGMA software (http://icl.cs.utk.edu/magma) must be installed. To do so, * Extract the source code to a local directory, and follow the instructions - supplied with the code to make shared libraries 'libmagmablas.so' and - 'libmagma.so'. Additional help on making the shared magma libraries can be - found at http://www.hiplar.org/hiplar-M-installation.html#MAGMA. After making - the shared libraries, refer to the previous section for instructions on - installing the libraries. + supplied with the code to make shared library 'libmagma.so'. -------------------------------------------------------------------------------- @@ -165,7 +163,7 @@ where