MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magma_lapack.h
Go to the documentation of this file.
1 #ifndef MAGMA_LAPACK_H
2 #define MAGMA_LAPACK_H
3 
4 #ifndef FORTRAN_NAME
5 #if defined(ADD_)
6 #define FORTRAN_NAME(lcname, UCNAME) lcname##_
7 #elif defined(NOCHANGE)
8 #define FORTRAN_NAME(lcname, UCNAME) lcname
9 #elif defined(UPCASE)
10 #define FORTRAN_NAME(lcname, UCNAME) UCNAME
11 #endif
12 #endif
13 
14 #include "magma_zlapack.h"
15 #include "magma_clapack.h"
16 #include "magma_dlapack.h"
17 #include "magma_slapack.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #define lapackf77_lsame FORTRAN_NAME( lsame, LSAME )
24 #define lapackf77_xerbla FORTRAN_NAME( xerbla, XERBLA )
25 
26 #define lapackf77_slamch FORTRAN_NAME( slamch, SLAMCH )
27 #define lapackf77_dlamch FORTRAN_NAME( dlamch, DLAMCH )
28 #define lapackf77_slabad FORTRAN_NAME( slabad, SLABAD )
29 #define lapackf77_dlabad FORTRAN_NAME( dlabad, DLABAD )
30 #define lapackf77_zcgesv FORTRAN_NAME( zcgesv, ZCGESV )
31 #define lapackf77_dsgesv FORTRAN_NAME( dsgesv, DSGESV )
32 
33 #define lapackf77_dsterf FORTRAN_NAME( dsterf, DSTERF )
34 #define lapackf77_ssterf FORTRAN_NAME( ssterf, SSTERF )
35 
36 #define lapackf77_zlag2c FORTRAN_NAME( zlag2c, ZLAG2C )
37 #define lapackf77_clag2z FORTRAN_NAME( clag2z, CLAG2Z )
38 #define lapackf77_dlag2s FORTRAN_NAME( dlag2s, DLAG2S )
39 #define lapackf77_slag2d FORTRAN_NAME( slag2d, SLAG2D )
40 
41 #define lapackf77_dlapy2 FORTRAN_NAME( dlapy2, DLAPY2 )
42 #define lapackf77_slapy2 FORTRAN_NAME( slapy2, SLAPY2 )
43 
44 long int lapackf77_lsame( const char *ca, const char *cb);
45 void lapackf77_xerbla( const char* name, magma_int_t* info, int name_len );
46 
47 float lapackf77_slamch(const char *cmach);
48 double lapackf77_dlamch(const char *cmach);
49 void lapackf77_slabad(float *small, float *large);
50 void lapackf77_dlabad(double *small, double *large);
51 void lapackf77_zcgesv(magma_int_t *n, magma_int_t *nrhs, cuDoubleComplex *A, magma_int_t *lda, magma_int_t *IPIV, cuDoubleComplex *B, magma_int_t *ldb,
52  cuDoubleComplex *X, magma_int_t *ldx, cuDoubleComplex *work, cuFloatComplex *swork, double *rwork, magma_int_t *iter, magma_int_t *info);
53 void lapackf77_dsgesv(magma_int_t *n, magma_int_t *nrhs, double *A, magma_int_t *lda, magma_int_t *IPIV, double *B, magma_int_t *ldb,
54  double *X, magma_int_t *ldx, double *work, float *swork, magma_int_t *iter, magma_int_t *info);
55 
56 void lapackf77_dsterf(magma_int_t *, double *, double *, magma_int_t *);
57 void lapackf77_ssterf(magma_int_t *, float *, float *, magma_int_t *);
58 
59 void lapackf77_zlag2c( magma_int_t *m, magma_int_t *n, cuDoubleComplex *a, magma_int_t *lda, cuFloatComplex *sa, magma_int_t *ldsa, magma_int_t *info );
60 void lapackf77_clag2z( magma_int_t *m, magma_int_t *n, cuFloatComplex *sa, magma_int_t *ldsa, cuDoubleComplex *a, magma_int_t *lda, magma_int_t *info );
61 void lapackf77_dlag2s( magma_int_t *m, magma_int_t *n, double *a, magma_int_t *lda, float *sa, magma_int_t *ldsa, magma_int_t *info );
62 void lapackf77_slag2d( magma_int_t *m, magma_int_t *n, float *sa, magma_int_t *ldsa, double *a, magma_int_t *lda, magma_int_t *info );
63 
64 double lapackf77_dlapy2( double *x, double *y );
65 float lapackf77_slapy2( float *x, float *y );
66 
67 // zdotc has different calling sequence, so define these here
68 double blasf77_ddot( magma_int_t *, double *, magma_int_t *, double *, magma_int_t *);
69 float blasf77_sdot( magma_int_t *, float *, magma_int_t *, float *, magma_int_t *);
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif /* MAGMA LAPACK */