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