Tim Murray | 81253e9 | 2015-02-17 11:29:36 -0800 | [diff] [blame] | 1 | /* |
| 2 | * |
| 3 | * cblas_sger.c |
| 4 | * This program is a C interface to sger. |
| 5 | * Written by Keita Teranishi |
| 6 | * 4/6/1998 |
| 7 | * |
| 8 | */ |
| 9 | |
| 10 | #include "cblas.h" |
| 11 | #include "cblas_f77.h" |
| 12 | void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N, |
| 13 | const float alpha, const float *X, const int incX, |
| 14 | const float *Y, const int incY, float *A, const int lda) |
| 15 | { |
| 16 | #ifdef F77_INT |
| 17 | F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY; |
| 18 | #else |
| 19 | #define F77_M M |
| 20 | #define F77_N N |
| 21 | #define F77_incX incX |
| 22 | #define F77_incY incY |
| 23 | #define F77_lda lda |
| 24 | #endif |
| 25 | |
| 26 | extern int CBLAS_CallFromC; |
| 27 | extern int RowMajorStrg; |
| 28 | RowMajorStrg = 0; |
| 29 | |
| 30 | CBLAS_CallFromC = 1; |
| 31 | if (order == CblasColMajor) |
| 32 | { |
| 33 | F77_sger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A, |
| 34 | &F77_lda); |
| 35 | } |
| 36 | else if (order == CblasRowMajor) |
| 37 | { |
| 38 | RowMajorStrg = 1; |
| 39 | F77_sger( &F77_N, &F77_M, &alpha, Y, &F77_incY, X, &F77_incX, A, |
| 40 | &F77_lda); |
| 41 | } |
| 42 | else cblas_xerbla(1, "cblas_sger", "Illegal Order setting, %d\n", order); |
| 43 | CBLAS_CallFromC = 0; |
| 44 | RowMajorStrg = 0; |
| 45 | return; |
| 46 | } |