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"
10void 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