xref: /aosp_15_r20/external/cblas/examples/cblas_example2.c (revision 1858f9982ea1ad57fb52080c08594e4d1cce4fa1)
1*1858f998SYi Kong /* cblas_example2.c */
2*1858f998SYi Kong 
3*1858f998SYi Kong #include <stdio.h>
4*1858f998SYi Kong #include <stdlib.h>
5*1858f998SYi Kong #include "cblas.h"
6*1858f998SYi Kong #include "cblas_f77.h"
7*1858f998SYi Kong 
8*1858f998SYi Kong #define INVALID -1
9*1858f998SYi Kong 
main(int argc,char ** argv)10*1858f998SYi Kong int main (int argc, char **argv )
11*1858f998SYi Kong {
12*1858f998SYi Kong    int rout=-1,info=0,m,n,k,lda,ldb,ldc;
13*1858f998SYi Kong    double A[2] = {0.0,0.0},
14*1858f998SYi Kong           B[2] = {0.0,0.0},
15*1858f998SYi Kong           C[2] = {0.0,0.0},
16*1858f998SYi Kong           ALPHA=0.0, BETA=0.0;
17*1858f998SYi Kong 
18*1858f998SYi Kong    if (argc > 2){
19*1858f998SYi Kong       rout = atoi(argv[1]);
20*1858f998SYi Kong       info = atoi(argv[2]);
21*1858f998SYi Kong    }
22*1858f998SYi Kong 
23*1858f998SYi Kong    if (rout == 1) {
24*1858f998SYi Kong       if (info==0) {
25*1858f998SYi Kong          printf("Checking if cblas_dgemm fails on parameter 4\n");
26*1858f998SYi Kong          cblas_dgemm( CblasRowMajor,  CblasTrans, CblasNoTrans, INVALID, 0, 0,
27*1858f998SYi Kong                    ALPHA, A, 1, B, 1, BETA, C, 1 );
28*1858f998SYi Kong       }
29*1858f998SYi Kong       if (info==1) {
30*1858f998SYi Kong          printf("Checking if cblas_dgemm fails on parameter 5\n");
31*1858f998SYi Kong          cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasTrans, 0, INVALID, 0,
32*1858f998SYi Kong                    ALPHA, A, 1, B, 1, BETA, C, 1 );
33*1858f998SYi Kong       }
34*1858f998SYi Kong       if (info==2) {
35*1858f998SYi Kong          printf("Checking if cblas_dgemm fails on parameter 9\n");
36*1858f998SYi Kong          cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 0, 2,
37*1858f998SYi Kong                    ALPHA, A, 1, B, 1, BETA, C, 2 );
38*1858f998SYi Kong       }
39*1858f998SYi Kong       if (info==3) {
40*1858f998SYi Kong          printf("Checking if cblas_dgemm fails on parameter 11\n");
41*1858f998SYi Kong          cblas_dgemm( CblasRowMajor,  CblasNoTrans, CblasNoTrans, 0, 2, 2,
42*1858f998SYi Kong                    ALPHA, A, 1, B, 1, BETA, C, 1 );
43*1858f998SYi Kong       }
44*1858f998SYi Kong    } else {
45*1858f998SYi Kong       if (info==0) {
46*1858f998SYi Kong          printf("Checking if F77_dgemm fails on parameter 3\n");
47*1858f998SYi Kong          m=INVALID; n=0; k=0; lda=1; ldb=1; ldc=1;
48*1858f998SYi Kong          F77_dgemm( "T", "N", &m, &n, &k,
49*1858f998SYi Kong                    &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
50*1858f998SYi Kong       }
51*1858f998SYi Kong       if (info==1) {
52*1858f998SYi Kong          m=0; n=INVALID; k=0; lda=1; ldb=1; ldc=1;
53*1858f998SYi Kong          printf("Checking if F77_dgemm fails on parameter 4\n");
54*1858f998SYi Kong          F77_dgemm( "N", "T", &m, &n, &k,
55*1858f998SYi Kong                    &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
56*1858f998SYi Kong       }
57*1858f998SYi Kong       if (info==2) {
58*1858f998SYi Kong          printf("Checking if F77_dgemm fails on parameter 8\n");
59*1858f998SYi Kong          m=2; n=0; k=0; lda=1; ldb=1; ldc=2;
60*1858f998SYi Kong          F77_dgemm( "N", "N" , &m, &n, &k,
61*1858f998SYi Kong                    &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
62*1858f998SYi Kong       }
63*1858f998SYi Kong       if (info==3) {
64*1858f998SYi Kong          printf("Checking if F77_dgemm fails on parameter 10\n");
65*1858f998SYi Kong          m=0; n=0; k=2; lda=1; ldb=1; ldc=1;
66*1858f998SYi Kong          F77_dgemm( "N", "N" , &m, &n, &k,
67*1858f998SYi Kong                    &ALPHA, A, &lda, B, &ldb, &BETA, C, &ldc );
68*1858f998SYi Kong       }
69*1858f998SYi Kong    }
70*1858f998SYi Kong 
71*1858f998SYi Kong    return 1;
72*1858f998SYi Kong }
73