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 #else
12 #error Define one of ADD_, NOCHANGE, or UPCASE for how Fortran functions are name mangled.
13 #endif
14 #endif
15 
16 #include "magma_zlapack.h"
17 #include "magma_clapack.h"
18 #include "magma_dlapack.h"
19 #include "magma_slapack.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #define lapackf77_lsame FORTRAN_NAME( lsame, LSAME )
26 #define lapackf77_xerbla FORTRAN_NAME( xerbla, XERBLA )
27 
28 #define lapackf77_slamch FORTRAN_NAME( slamch, SLAMCH )
29 #define lapackf77_dlamch FORTRAN_NAME( dlamch, DLAMCH )
30 #define lapackf77_slabad FORTRAN_NAME( slabad, SLABAD )
31 #define lapackf77_dlabad FORTRAN_NAME( dlabad, DLABAD )
32 #define lapackf77_zcgesv FORTRAN_NAME( zcgesv, ZCGESV )
33 #define lapackf77_dsgesv FORTRAN_NAME( dsgesv, DSGESV )
34 
35 #define lapackf77_dsterf FORTRAN_NAME( dsterf, DSTERF )
36 #define lapackf77_ssterf FORTRAN_NAME( ssterf, SSTERF )
37 
38 #define lapackf77_zlag2c FORTRAN_NAME( zlag2c, ZLAG2C )
39 #define lapackf77_clag2z FORTRAN_NAME( clag2z, CLAG2Z )
40 #define lapackf77_dlag2s FORTRAN_NAME( dlag2s, DLAG2S )
41 #define lapackf77_slag2d FORTRAN_NAME( slag2d, SLAG2D )
42 
43 #define lapackf77_dlapy2 FORTRAN_NAME( dlapy2, DLAPY2 )
44 #define lapackf77_slapy2 FORTRAN_NAME( slapy2, SLAPY2 )
45 
46 long int lapackf77_lsame( const char *ca, const char *cb);
47 void lapackf77_xerbla( const char* name, magma_int_t* info, int name_len );
48 
49 float lapackf77_slamch(const char *cmach);
50 double lapackf77_dlamch(const char *cmach);
51 void lapackf77_slabad(float *small, float *large);
52 void lapackf77_dlabad(double *small, double *large);
53 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,
54  cuDoubleComplex *X, magma_int_t *ldx, cuDoubleComplex *work, cuFloatComplex *swork, double *rwork, magma_int_t *iter, magma_int_t *info);
55 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,
56  double *X, magma_int_t *ldx, double *work, float *swork, magma_int_t *iter, magma_int_t *info);
57 
58 void lapackf77_dsterf(magma_int_t *, double *, double *, magma_int_t *);
59 void lapackf77_ssterf(magma_int_t *, float *, float *, magma_int_t *);
60 
61 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 );
62 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 );
63 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 );
64 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 );
65 
66 double lapackf77_dlapy2( double *x, double *y );
67 float lapackf77_slapy2( float *x, float *y );
68 
69 // zdotc has different calling sequence, so define these here
70 double blasf77_ddot( magma_int_t *, double *, magma_int_t *, double *, magma_int_t *);
71 float blasf77_sdot( magma_int_t *, float *, magma_int_t *, float *, magma_int_t *);
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif /* MAGMA LAPACK */