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