Chris@202: #include Chris@202: #include Chris@202: #include Chris@202: #include Chris@202: #include "cblas.h" Chris@202: #include "cblas_f77.h" Chris@202: Chris@202: void cblas_xerbla(int info, const char *rout, const char *form, ...) Chris@202: { Chris@202: extern int RowMajorStrg; Chris@202: char empty[1] = ""; Chris@202: va_list argptr; Chris@202: Chris@202: va_start(argptr, form); Chris@202: Chris@202: if (RowMajorStrg) Chris@202: { Chris@202: if (strstr(rout,"gemm") != 0) Chris@202: { Chris@202: if (info == 5 ) info = 4; Chris@202: else if (info == 4 ) info = 5; Chris@202: else if (info == 11) info = 9; Chris@202: else if (info == 9 ) info = 11; Chris@202: } Chris@202: else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0) Chris@202: { Chris@202: if (info == 5 ) info = 4; Chris@202: else if (info == 4 ) info = 5; Chris@202: } Chris@202: else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0) Chris@202: { Chris@202: if (info == 7 ) info = 6; Chris@202: else if (info == 6 ) info = 7; Chris@202: } Chris@202: else if (strstr(rout,"gemv") != 0) Chris@202: { Chris@202: if (info == 4) info = 3; Chris@202: else if (info == 3) info = 4; Chris@202: } Chris@202: else if (strstr(rout,"gbmv") != 0) Chris@202: { Chris@202: if (info == 4) info = 3; Chris@202: else if (info == 3) info = 4; Chris@202: else if (info == 6) info = 5; Chris@202: else if (info == 5) info = 6; Chris@202: } Chris@202: else if (strstr(rout,"ger") != 0) Chris@202: { Chris@202: if (info == 3) info = 2; Chris@202: else if (info == 2) info = 3; Chris@202: else if (info == 8) info = 6; Chris@202: else if (info == 6) info = 8; Chris@202: } Chris@202: else if ( (strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0) Chris@202: && strstr(rout,"her2k") == 0 ) Chris@202: { Chris@202: if (info == 8) info = 6; Chris@202: else if (info == 6) info = 8; Chris@202: } Chris@202: } Chris@202: if (info) Chris@202: fprintf(stderr, "Parameter %d to routine %s was incorrect\n", info, rout); Chris@202: vfprintf(stderr, form, argptr); Chris@202: va_end(argptr); Chris@202: if (info && !info) Chris@202: F77_xerbla(empty, &info); /* Force link of our F77 error handler */ Chris@202: exit(-1); Chris@202: }