LAPACK  3.10.0
LAPACK: Linear Algebra PACKage
cblas_xerbla.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <stdarg.h>
5 #include "cblas.h"
6 #include "cblas_f77.h"
7 
8 void
9 #ifdef HAS_ATTRIBUTE_WEAK_SUPPORT
10 __attribute__((weak))
11 #endif
12 cblas_xerbla(CBLAS_INDEX info, const char *rout, const char *form, ...)
13 {
14  extern int RowMajorStrg;
15  char empty[1] = "";
16  va_list argptr;
17 
18  va_start(argptr, form);
19 
20  if (RowMajorStrg)
21  {
22  if (strstr(rout,"gemm") != 0)
23  {
24  if (info == 5 ) info = 4;
25  else if (info == 4 ) info = 5;
26  else if (info == 11) info = 9;
27  else if (info == 9 ) info = 11;
28  }
29  else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0)
30  {
31  if (info == 5 ) info = 4;
32  else if (info == 4 ) info = 5;
33  }
34  else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0)
35  {
36  if (info == 7 ) info = 6;
37  else if (info == 6 ) info = 7;
38  }
39  else if (strstr(rout,"gemv") != 0)
40  {
41  if (info == 4) info = 3;
42  else if (info == 3) info = 4;
43  }
44  else if (strstr(rout,"gbmv") != 0)
45  {
46  if (info == 4) info = 3;
47  else if (info == 3) info = 4;
48  else if (info == 6) info = 5;
49  else if (info == 5) info = 6;
50  }
51  else if (strstr(rout,"ger") != 0)
52  {
53  if (info == 3) info = 2;
54  else if (info == 2) info = 3;
55  else if (info == 8) info = 6;
56  else if (info == 6) info = 8;
57  }
58  else if ( (strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0)
59  && strstr(rout,"her2k") == 0 )
60  {
61  if (info == 8) info = 6;
62  else if (info == 6) info = 8;
63  }
64  }
65  if (info)
66  fprintf(stderr, "Parameter %d to routine %s was incorrect\n", info, rout);
67  vfprintf(stderr, form, argptr);
68  va_end(argptr);
69  if (info && !info)
70  F77_xerbla(empty, &info); /* Force link of our F77 error handler */
71  exit(-1);
72 }
#define CBLAS_INDEX
Definition: cblas.h:16
int RowMajorStrg
Definition: cblas_globals.c:2
#define F77_xerbla
Definition: cblas_test.h:24
void cblas_xerbla(CBLAS_INDEX info, const char *rout, const char *form,...)
Definition: cblas_xerbla.c:12