00001 #ifndef BLAS_H
00002 #define BLAS_H
00003
00007 #ifndef Rpackage
00008 #define F77_CALL(x) x ## _
00009 #define F77_NAME(x) F77_CALL(x)
00010 #else
00011 #include <Rconfig.h>
00012 #endif
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00018
00019
00020 extern double F77_NAME(dasum)(const int *n, const double *dx, const int *incx);
00021 extern void F77_NAME(daxpy)(const int *n, const double *alpha,
00022 const double *dx, const int *incx,
00023 double *dy, const int *incy);
00024 extern void F77_NAME(dcopy)(const int *n, const double *dx, const int *incx,
00025 double *dy, const int *incy);
00026 extern double F77_NAME(ddot) (const int *n, const double *dx, const int *incx,
00027 const double *dy, const int *incy);
00028 extern double F77_NAME(dnrm2)(const int *n, const double *dx, const int *incx);
00029 extern void F77_NAME(drot) (const int *n, double *dx, const int *incx,
00030 double *dy, const int *incy, const double *c,
00031 const double *s);
00032 extern void F77_NAME(drotg)(const double *a, const double *b, double *c,
00033 double *s);
00034 extern void F77_NAME(drotm)(const int *n, double *dx, const int *incx,
00035 double *dy, const int *incy,const double *dparam);
00036 extern void F77_NAME(drotmg)(const double *dd1, const double *dd2,
00037 const double *dx1, const double *dy1,
00038 double *param);
00039 extern void F77_NAME(dscal)(const int *n, const double *alpha, double *dx,
00040 const int *incx);
00041 extern void F77_NAME(dswap)(const int *n, double *dx, const int *incx,
00042 double *dy, const int *incy);
00043 extern int F77_NAME(idamax)(const int *n, const double *dx, const int *incx);
00044
00045
00046
00047 extern void F77_NAME(dgbmv)(const char *trans, const int *m, const int *n,
00048 const int *kl,const int *ku, const double *alpha,
00049 const double *a, const int *lda, const double *x,
00050 const int *incx, const double *beta, double *y,
00051 const int *incy);
00052 extern void F77_NAME(dgemv)(const char *trans, const int *m, const int *n,
00053 const double *alpha, const double *a,
00054 const int *lda, const double *x, const int *incx,
00055 const double *beta, double *y, const int *incy);
00056 extern void F77_NAME(dsbmv)(const char *uplo, const int *n, const int *k,
00057 const double *alpha, const double *a,
00058 const int *lda, const double *x, const int *incx,
00059 const double *beta, double *y, const int *incy);
00060 extern void F77_NAME(dspmv)(const char *uplo, const int *n,
00061 const double *alpha, const double *ap,
00062 const double *x, const int *incx,
00063 const double *beta, double *y, const int *incy);
00064 extern void F77_NAME(dsymv)(const char *uplo, const int *n,
00065 const double *alpha, const double *a,
00066 const int *lda, const double *x, const int *incx,
00067 const double *beta, double *y, const int *incy);
00068 extern void F77_NAME(dtbmv)(const char *uplo, const char *trans,
00069 const char *diag, const int *n, const int *k,
00070 const double *a, const int *lda,
00071 double *x, const int *incx);
00072 extern void F77_NAME(dtpmv)(const char *uplo, const char *trans,
00073 const char *diag, const int *n, const double *ap,
00074 double *x, const int *incx);
00075 extern void F77_NAME(dtrmv)(const char *uplo, const char *trans,
00076 const char *diag, const int *n, const double *a,
00077 const int *lda, double *x, const int *incx);
00078 extern void F77_NAME(dtbsv)(const char *uplo, const char *trans,
00079 const char *diag, const int *n, const int *k,
00080 const double *a, const int *lda,
00081 double *x, const int *incx);
00082 extern void F77_NAME(dtpsv)(const char *uplo, const char *trans,
00083 const char *diag, const int *n,
00084 const double *ap, double *x, const int *incx);
00085 extern void F77_NAME(dtrsv)(const char *uplo, const char *trans,
00086 const char *diag, const int *n,
00087 const double *a, const int *lda,
00088 double *x, const int *incx);
00089 extern void F77_NAME(dger) (const int *m, const int *n, const double *alpha,
00090 double *x, const int *incx,
00091 double *y, const int *incy,
00092 double *a, const int *lda);
00093 extern void F77_NAME(dsyr) (const char *uplo, const int *n,
00094 const double *alpha, const double *x,
00095 const int *incx, double *a, const int *lda);
00096 extern void F77_NAME(dspr) (const char *uplo, const int *n,
00097 const double *alpha, const double *x,
00098 const int *incx, double *ap);
00099 extern void F77_NAME(dsyr2)(const char *uplo, const int *n,
00100 const double *alpha, const double *x,
00101 const int *incx, const double *y, const int *incy,
00102 double *a, const int *lda);
00103 extern void F77_NAME(dspr2)(const char *uplo, const int *n,
00104 const double *alpha, const double *x,
00105 const int *incx, const double *y,
00106 const int *incy, double *ap);
00107
00108
00109
00110 extern void F77_NAME(dgemm)(const char *transa, const char *transb,
00111 const int *m, const int *n, const int *k,
00112 const double *alpha, const double *a,
00113 const int *lda, const double *b, const int *ldb,
00114 const double *beta, double *c, const int *ldc);
00115 extern void F77_NAME(dtrsm)(const char *side, const char *uplo,
00116 const char *transa, const char *diag,
00117 const int *m, const int *n, const double *alpha,
00118 const double *a, const int *lda,
00119 double *b, const int *ldb);
00120 extern void F77_NAME(dtrmm)(const char *side, const char *uplo,
00121 const char *transa, const char *diag,
00122 const int *m, const int *n, const double *alpha,
00123 const double *a, const int *lda,
00124 double *b, const int *ldb);
00125 extern void F77_NAME(dsymm)(const char *side, const char *uplo, const int *m,
00126 const int *n, const double *alpha,
00127 const double *a, const int *lda,
00128 const double *b, const int *ldb,
00129 const double *beta, double *c, const int *ldc);
00130 extern void F77_NAME(dsyrk)(const char *uplo, const char *trans,
00131 const int *n, const int *k,
00132 const double *alpha, const double *a,
00133 const int *lda, const double *beta,
00134 double *c, const int *ldc);
00135 extern void F77_NAME(dsyr2k)(const char *uplo, const char *trans,
00136 const int *n, const int *k,
00137 const double *alpha, const double *a,
00138 const int *lda, const double *b, const int *ldb,
00139 const double *beta, double *c, const int *ldc);
00140
00141 #ifdef __cplusplus
00142 }
00143 #endif
00144
00145 #endif