01: /*
02:  * cblas_zgeru.c
03:  * The program is a C interface to zgeru.
04:  *
05:  * Keita Teranishi  5/20/98
06:  *
07:  */
08: #include "cblas.h"
09: #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: