[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19195 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19195 - gnunet/src/ats |
Date: |
Tue, 17 Jan 2012 16:23:46 +0100 |
Author: wachs
Date: 2012-01-17 16:23:46 +0100 (Tue, 17 Jan 2012)
New Revision: 19195
Modified:
gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
Log:
- improved error logging
Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.c 2012-01-17 14:59:53 UTC
(rev 19194)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.c 2012-01-17 15:23:46 UTC
(rev 19195)
@@ -34,16 +34,128 @@
#endif
/**
+ * Translate glpk solver error codes to text
+ * @param retcode return code
+ * @return string with result
+ */
+const char *
+mlp_solve_to_string (int retcode)
+{
+ switch (retcode) {
+ case 0:
+ return "ok";
+ break;
+ case GLP_EBADB:
+ return "invalid basis";
+ break;
+ case GLP_ESING:
+ return "singular matrix";
+ break;
+ case GLP_ECOND:
+ return "ill-conditioned matrix";
+ break;
+ case GLP_EBOUND:
+ return "invalid bounds";
+ break;
+ case GLP_EFAIL:
+ return "solver failed";
+ break;
+ case GLP_EOBJLL:
+ return "objective lower limit reached";
+ break;
+ case GLP_EOBJUL:
+ return "objective upper limit reached";
+ break;
+ case GLP_EITLIM:
+ return "iteration limit exceeded";
+ break;
+ case GLP_ETMLIM:
+ return "time limit exceeded";
+ break;
+ case GLP_ENOPFS:
+ return "no primal feasible solution";
+ break;
+ case GLP_EROOT:
+ return "root LP optimum not provided";
+ break;
+ case GLP_ESTOP:
+ return "search terminated by application";
+ break;
+ case GLP_EMIPGAP:
+ return "relative mip gap tolerance reached";
+ break;
+ case GLP_ENOFEAS:
+ return "no dual feasible solution";
+ break;
+ case GLP_ENOCVG:
+ return "no convergence";
+ break;
+ case GLP_EINSTAB:
+ return "numerical instability";
+ break;
+ case GLP_EDATA:
+ return "invalid data";
+ break;
+ case GLP_ERANGE:
+ return "result out of range";
+ break;
+ default:
+ GNUNET_break (0);
+ return "unknown error";
+ break;
+ }
+ GNUNET_break (0);
+ return "unknown error";
+}
+
+
+/**
+ * Translate glpk status error codes to text
+ * @param retcode return code
+ * @return string with result
+ */
+const char *
+mlp_status_to_string (int retcode)
+{
+ switch (retcode) {
+ case GLP_UNDEF:
+ return "solution is undefined";
+ break;
+ case GLP_FEAS:
+ return "solution is feasible";
+ break;
+ case GLP_INFEAS:
+ return "solution is infeasible";
+ break;
+ case GLP_NOFEAS:
+ return "no feasible solution exists";
+ break;
+ case GLP_OPT:
+ return "solution is optimal";
+ break;
+ case GLP_UNBND:
+ return "solution is unbounded";
+ break;
+ default:
+ GNUNET_break (0);
+ return "unknown error";
+ break;
+ }
+ GNUNET_break (0);
+ return "unknown error";
+}
+
+/**
* Intercept GLPK terminal output
- *
+ * @param info the mlp handle
+ * @param s the string to print
+ * @return 0: glpk prints output on terminal, 0 != surpress output
*/
-
static int
mlp_term_hook (void *info, const char *s)
{
/* Not needed atm struct MLP_information *mlp = info; */
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "%s", s);
- /* 0: glpk prints output on terminal, != surpress output */
return 1;
}
@@ -171,7 +283,7 @@
/* Problem was ill-defined, no way to handle that */
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
"ats-mlp",
- "Solving LP problem failed: glp_simplex error 0x%X\n", res);
+ "Solving LP problem failed: %s\n", mlp_solve_to_string(res));
return GNUNET_SYSERR;
}
}
@@ -200,7 +312,7 @@
default:
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
"ats-mlp",
- "Solving LP problem failed, no solution: glp_get_status 0x%X\n",
res);
+ "Solving LP problem failed, no solution: %s\n",
mlp_status_to_string(res));
return GNUNET_SYSERR;
break;
}
@@ -248,7 +360,7 @@
/* Problem was ill-defined, no way to handle that */
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
"ats-mlp",
- "Solving MLP problem failed: glp_intopt error 0x%X\n", res);
+ "Solving MLP problem failed: %s\n", mlp_solve_to_string(res));
return GNUNET_SYSERR;
}
@@ -275,7 +387,7 @@
default:
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
"ats-mlp",
- "Solving MLP problem failed, no solution: glp_mip_status 0x%X\n",
res);
+ "Solving MLP problem failed, %s\n\n", mlp_status_to_string(res));
return GNUNET_SYSERR;
break;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19195 - gnunet/src/ats,
gnunet <=