LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
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
8void
9#ifdef HAS_ATTRIBUTE_WEAK_SUPPORT
10__attribute__((weak))
11#endif
12API_SUFFIX(cblas_xerbla)(CBLAS_INT 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 %" CBLAS_IFMT " 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_IFMT
Definition cblas.h:35
#define API_SUFFIX(a)
Definition cblas.h:57
#define CBLAS_INT
Definition cblas.h:24
#define F77_xerbla(...)
Definition cblas_f77.h:562
int RowMajorStrg
void API_SUFFIX() cblas_xerbla(CBLAS_INT info, const char *rout, const char *form,...)