Exemplo n.º 1
0
static KKTObject* LPX_kktint(LPXObject *self) {
	KKTObject *kkt = KKT_New();
	if (!kkt)
		return NULL;
	lpx_check_int(LP, &(kkt->kkt));
	return kkt;
}
Exemplo n.º 2
0
Arquivo: lp.c Projeto: kleptog/pyglpk
static KKTObject* LPX_kkt(LPXObject *self, PyObject *args) {
  // Cannot get for undefined primal or dual.
  if (glp_get_prim_stat(LP)==GLP_UNDEF ||
      glp_get_dual_stat(LP)==GLP_UNDEF) {
    PyErr_SetString(PyExc_RuntimeError, "cannot get KKT when primal or dual "
		    "basic solution undefined");
    return NULL;
  }
  // Check the Python arguments.
  int scaling = 0;
  PyObject *arg = NULL;
  if (!PyArg_ParseTuple(args, "|O", &arg)) return NULL;
  scaling = ((arg==NULL) ? 0 : PyObject_IsTrue(arg));
  if (scaling == -1) return NULL;
  // OK, all done with those checks.  Now get the KKT condition.
  KKTObject *kkt = KKT_New();
  if (!kkt) return NULL;
  lpx_check_kkt(LP, scaling, &(kkt->kkt));
  return kkt;
}