xref: /aosp_15_r20/external/cblas/src/xerbla.c (revision 1858f9982ea1ad57fb52080c08594e4d1cce4fa1)
1*1858f998SYi Kong #include <stdio.h>
2*1858f998SYi Kong #include <ctype.h>
3*1858f998SYi Kong #include "cblas.h"
4*1858f998SYi Kong #include "cblas_f77.h"
5*1858f998SYi Kong 
6*1858f998SYi Kong #define XerblaStrLen 6
7*1858f998SYi Kong #define XerblaStrLen1 7
8*1858f998SYi Kong 
9*1858f998SYi Kong #ifdef F77_CHAR
F77_xerbla(F77_CHAR F77_srname,void * vinfo)10*1858f998SYi Kong void F77_xerbla(F77_CHAR F77_srname, void *vinfo)
11*1858f998SYi Kong #else
12*1858f998SYi Kong void F77_xerbla(char *srname, void *vinfo)
13*1858f998SYi Kong #endif
14*1858f998SYi Kong 
15*1858f998SYi Kong {
16*1858f998SYi Kong #ifdef F77_CHAR
17*1858f998SYi Kong    char *srname;
18*1858f998SYi Kong #endif
19*1858f998SYi Kong 
20*1858f998SYi Kong    char rout[] = {'c','b','l','a','s','_','\0','\0','\0','\0','\0','\0','\0'};
21*1858f998SYi Kong 
22*1858f998SYi Kong #ifdef F77_INT
23*1858f998SYi Kong    F77_INT *info=vinfo;
24*1858f998SYi Kong    F77_INT i;
25*1858f998SYi Kong #else
26*1858f998SYi Kong    int *info=vinfo;
27*1858f998SYi Kong    int i;
28*1858f998SYi Kong #endif
29*1858f998SYi Kong 
30*1858f998SYi Kong    extern int CBLAS_CallFromC;
31*1858f998SYi Kong 
32*1858f998SYi Kong #ifdef F77_CHAR
33*1858f998SYi Kong    srname = F2C_STR(F77_srname, XerblaStrLen);
34*1858f998SYi Kong #endif
35*1858f998SYi Kong 
36*1858f998SYi Kong    if (CBLAS_CallFromC)
37*1858f998SYi Kong    {
38*1858f998SYi Kong       for(i=0; i != XerblaStrLen; i++) rout[i+6] = tolower(srname[i]);
39*1858f998SYi Kong       rout[XerblaStrLen+6] = '\0';
40*1858f998SYi Kong       cblas_xerbla(*info+1,rout,"");
41*1858f998SYi Kong    }
42*1858f998SYi Kong    else
43*1858f998SYi Kong    {
44*1858f998SYi Kong       fprintf(stderr, "Parameter %d to routine %s was incorrect\n",
45*1858f998SYi Kong               *info, srname);
46*1858f998SYi Kong    }
47*1858f998SYi Kong }
48