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