00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef BOOST_NUMERIC_BINDINGS_BLAS_BLAS_H
00010 #define BOOST_NUMERIC_BINDINGS_BLAS_BLAS_H
00011
00012
00013
00014
00015
00016
00017 #include <boost/numeric/bindings/blas/blas_names.h>
00018 #include <boost/numeric/bindings/traits/type.h>
00019
00020 extern "C"
00021 {
00022
00023
00024
00025 void BLAS_SSCAL(const int *n, const float* alpha, float* x, const int* incx);
00026 void BLAS_DSCAL(const int *n, const double* alpha, double* x, const int* incx);
00027 void BLAS_CSCAL(const int *n, const fcomplex_t* alpha, fcomplex_t* x, const int* incx);
00028 void BLAS_ZSCAL(const int *n, const dcomplex_t* alpha, dcomplex_t* x, const int* incx);
00029
00030 void BLAS_SAXPY(const int *n, const float* alpha, const float* x, const int* incx, float* y, const int* incy);
00031 void BLAS_DAXPY(const int *n, const double* alpha, const double* x, const int* incx, double* y, const int* incy);
00032 void BLAS_CAXPY(const int *n, const fcomplex_t* alpha, const fcomplex_t* x, const int* incx, fcomplex_t* y, const int* incy);
00033 void BLAS_ZAXPY(const int *n, const dcomplex_t* alpha, const dcomplex_t* x, const int* incx, dcomplex_t* y, const int* incy);
00034
00035 float BLAS_SDOT (const int *n, const float *x, const int *incx, const float *y, const int *incy);
00036 double BLAS_DDOT (const int *n, const double *x, const int *incx, const double *y, const int *incy);
00037
00038 void BLAS_CDOTU(fcomplex_t* ret, const int *n, const fcomplex_t *x, const int *incx, const fcomplex_t *y, const int *incy);
00039 void BLAS_ZDOTU(dcomplex_t* ret, const int *n, const dcomplex_t *x, const int *incx, const dcomplex_t *y, const int *incy);
00040
00041 void BLAS_CDOTC(fcomplex_t* ret, const int *n, const fcomplex_t *x, const int *incx, const fcomplex_t *y, const int *incy);
00042 void BLAS_ZDOTC(dcomplex_t* ret, const int *n, const dcomplex_t *x, const int *incx, const dcomplex_t *y, const int *incy);
00043
00044 float BLAS_SNRM2(const int *n, const float *x, const int *incx);
00045 double BLAS_DNRM2(const int *n, const double *x, const int *incx);
00046 float BLAS_SCNRM2(const int *n, const fcomplex_t *x, const int *incx);
00047 double BLAS_DZNRM2(const int *n, const dcomplex_t *x, const int *incx);
00048
00049 float BLAS_SASUM(const int *n, const float *x, const int *incx);
00050 double BLAS_DASUM(const int *n, const double *x, const int *incx);
00051 float BLAS_SCASUM(const int *n, const fcomplex_t *x, const int *incx);
00052 double BLAS_DZASUM(const int *n, const dcomplex_t *x, const int *incx);
00053
00054 void BLAS_SCOPY( const int *n, const float *x, const int *incx, float *y, const int *incy);
00055 void BLAS_DCOPY( const int *n, const double *x, const int *incx, double *y, const int *incy);
00056 void BLAS_CCOPY( const int *n, const fcomplex_t *x, const int *incx, fcomplex_t *y, const int *incy);
00057 void BLAS_ZCOPY( const int *n, const dcomplex_t *x, const int *incx, dcomplex_t *y, const int *incy);
00058
00059
00060
00061
00062
00063 void BLAS_SGEMV(const char *trans, 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) ;
00064 void BLAS_DGEMV(const char *trans, 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) ;
00065 void BLAS_CGEMV(const char *trans, const int *m, const int *n, const fcomplex_t *alpha, const fcomplex_t *a, const int *lda, const fcomplex_t *x, const int *incx, const fcomplex_t *beta, fcomplex_t *y, const int *incy) ;
00066 void BLAS_ZGEMV(const char *trans, const int *m, const int *n, const dcomplex_t *alpha, const dcomplex_t *a, const int *lda, const dcomplex_t *x, const int *incx, const dcomplex_t *beta, dcomplex_t *y, const int *incy) ;
00067
00068 void BLAS_SGER (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);
00069 void BLAS_DGER (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);
00070
00071 void BLAS_CGERU(const int *m, const int *n, const fcomplex_t *alpha, const fcomplex_t *x, const int *incx, const fcomplex_t *y, const int *incy, fcomplex_t *a, const int *lda);
00072 void BLAS_ZGERU(const int *m, const int *n, const dcomplex_t *alpha, const dcomplex_t *x, const int *incx, const dcomplex_t *y, const int *incy, dcomplex_t *a, const int *lda);
00073
00074 void BLAS_CGERC(const int *m, const int *n, const fcomplex_t *alpha, const fcomplex_t *x, const int *incx, const fcomplex_t *y, const int *incy, fcomplex_t *a, const int *lda);
00075 void BLAS_ZGERC(const int *m, const int *n, const dcomplex_t *alpha, const dcomplex_t *x, const int *incx, const dcomplex_t *y, const int *incy, dcomplex_t *a, const int *lda);
00076
00077
00078
00079
00080
00081 void BLAS_SGEMM(const char *transa, const char *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);
00082 void BLAS_DGEMM(const char *transa, const char *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);
00083 void BLAS_CGEMM(const char *transa, const char *transb, const int *m, const int *n, const int *k, const fcomplex_t *alpha, const fcomplex_t *a, const int *lda, const fcomplex_t *b, const int *ldb, const fcomplex_t *beta, fcomplex_t *c, const int *ldc);
00084 void BLAS_ZGEMM(const char *transa, const char *transb, const int *m, const int *n, const int *k, const dcomplex_t *alpha, const dcomplex_t *a, const int *lda, const dcomplex_t *b, const int *ldb, const dcomplex_t *beta, dcomplex_t *c, const int *ldc);
00085
00086 void BLAS_SSYRK ( const char* uplo, const char* trans, const int* n, const int* k, const float* alpha,
00087 const float* a, const int* lda, const float* beta, float* c, const int* ldc );
00088 void BLAS_DSYRK ( const char* uplo, const char* trans, const int* n, const int* k, const double* alpha,
00089 const double* a, const int* lda, const double* beta, double* c, const int* ldc );
00090 void BLAS_CSYRK ( const char* uplo, const char* trans, const int* n, const int* k, const fcomplex_t* alpha,
00091 const fcomplex_t* a, const int* lda, const fcomplex_t* beta, fcomplex_t* c, const int* ldc );
00092 void BLAS_ZSYRK ( const char* uplo, const char* trans, const int* n, const int* k, const dcomplex_t* alpha,
00093 const dcomplex_t* a, const int* lda, const dcomplex_t* beta, dcomplex_t* c, const int* ldc );
00094 void BLAS_CHERK ( const char* uplo, const char* trans, const int* n, const int* k, const float* alpha,
00095 const fcomplex_t* a, const int* lda, const float* beta, fcomplex_t* c, const int* ldc );
00096 void BLAS_ZHERK ( const char* uplo, const char* trans, const int* n, const int* k, const double* alpha,
00097 const dcomplex_t* a, const int* lda, const double* beta, dcomplex_t* c, const int* ldc );
00098
00099 void BLAS_STRSM( const char* side, const char* uplo, const char* transa, const char* diag, const int* m,
00100 const int* n, float const* alpha, float const* a, int const* lda, float* b, int const* ldb );
00101 void BLAS_DTRSM( const char* side, const char* uplo, const char* transa, const char* diag, const int* m,
00102 const int* n, double const* alpha, double const* a, int const* lda, double* b, int const* ldb );
00103 void BLAS_CTRSM( const char* side, const char* uplo, const char* transa, const char* diag, const int* m,
00104 const int* n, fcomplex_t const* alpha, fcomplex_t const* a, int const* lda, fcomplex_t* b, int const* ldb );
00105 void BLAS_ZTRSM( const char* side, const char* uplo, const char* transa, const char* diag, const int* m,
00106 const int* n, dcomplex_t const* alpha, dcomplex_t const* a, int const* lda, dcomplex_t* b, int const* ldb );
00107
00108 }
00109
00110 #endif // BOOST_NUMERIC_BINDINGS_BLAS_BLAS_H