1 /* 2 * cblas_zgeru.c 3 * The program is a C interface to zgeru. 4 * 5 * Keita Teranishi 5/20/98 6 * 7 */ 8 #include "cblas.h" 9 #include "cblas_f77.h" 10 void cblas_zgeru(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 CBLAS_CallFromC = 1; 28 29 if (order == CblasColMajor) 30 { 31 F77_zgeru( &F77_M, &F77_N, alpha, X, &F77_incX, Y, &F77_incY, A, 32 &F77_lda); 33 } 34 else if (order == CblasRowMajor) 35 { 36 RowMajorStrg = 1; 37 F77_zgeru( &F77_N, &F77_M, alpha, Y, &F77_incY, X, &F77_incX, A, 38 &F77_lda); 39 } 40 else cblas_xerbla(1, "cblas_zgeru", "Illegal Order setting, %d\n", order); 41 CBLAS_CallFromC = 0; 42 RowMajorStrg = 0; 43 return; 44 } 45