diff options
author | Tim Murray <timmurray@google.com> | 2015-02-17 11:29:36 -0800 |
---|---|---|
committer | Tim Murray <timmurray@google.com> | 2015-02-17 13:04:10 -0800 |
commit | 81253e9afbc34b99e9adc22ddf33a1bfac56c697 (patch) | |
tree | 5c09d2b29298f5a52eadbc110c26c0dceeddac5a /src/cblas_dsyr.c | |
parent | 3fc7142964e5daf9046253892e681d146a65cc2a (diff) | |
download | cblas-81253e9afbc34b99e9adc22ddf33a1bfac56c697.tar.gz |
Add CBLAS library.
Change-Id: I6d5c0ea5eb350f1d35637d8963a78811a4e015d8
Diffstat (limited to 'src/cblas_dsyr.c')
-rw-r--r-- | src/cblas_dsyr.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/cblas_dsyr.c b/src/cblas_dsyr.c new file mode 100644 index 0000000..0d20083 --- /dev/null +++ b/src/cblas_dsyr.c @@ -0,0 +1,71 @@ +/* + * + * cblas_dsyr.c + * This program is a C interface to dsyr. + * Written by Keita Teranishi + * 4/6/1998 + * + */ + +#include "cblas.h" +#include "cblas_f77.h" +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) +{ + char UL; +#ifdef F77_CHAR + F77_CHAR F77_UL; +#else + #define F77_UL &UL +#endif + +#ifdef F77_INT + F77_INT F77_N=N, F77_incX=incX, F77_lda=lda; +#else + #define F77_N N + #define F77_incX incX + #define F77_lda lda +#endif + extern int CBLAS_CallFromC; + extern int RowMajorStrg; + RowMajorStrg = 0; + CBLAS_CallFromC = 1; + if (order == CblasColMajor) + { + if (Uplo == CblasLower) UL = 'L'; + else if (Uplo == CblasUpper) UL = 'U'; + else + { + cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo ); + CBLAS_CallFromC = 0; + RowMajorStrg = 0; + return; + } + #ifdef F77_CHAR + F77_UL = C2F_CHAR(&UL); + #endif + + F77_dsyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda); + + } else if (order == CblasRowMajor) + { + RowMajorStrg = 1; + if (Uplo == CblasLower) UL = 'U'; + else if (Uplo == CblasUpper) UL = 'L'; + else + { + cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo ); + CBLAS_CallFromC = 0; + RowMajorStrg = 0; + return; + } + #ifdef F77_CHAR + F77_UL = C2F_CHAR(&UL); + #endif + F77_dsyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda); + } else cblas_xerbla(1, "cblas_dsyr", "Illegal Order setting, %d\n", order); + CBLAS_CallFromC = 0; + RowMajorStrg = 0; + return; +} |