Skip to content

Commit

Permalink
Merge pull request #18 from BrechtBa/PyIntasLongSolution
Browse files Browse the repository at this point in the history
PyInt as long solution
  • Loading branch information
xuy committed Oct 11, 2015
2 parents 87bee83 + 8c90575 commit ab61f90
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
4 changes: 2 additions & 2 deletions setup.py
Expand Up @@ -48,11 +48,11 @@ def get_ipopt_lib():
#extra_link_args=['-Wl,--rpath','-Wl,'+ IPOPT_LIB],
library_dirs=[IPOPT_LIB],
libraries=[
'ipopt', 'blas',
'ipopt', 'coinblas',
#'coinhsl',
'coinmumps',
'coinmetis',
'lapack','dl','m',
'coinlapack','dl','m',
],
include_dirs=[numpy_include, IPOPT_INC],
)
Expand Down
40 changes: 20 additions & 20 deletions src/callback.c
Expand Up @@ -56,7 +56,7 @@ Bool eval_intermediate_callback(Index alg_mod, /* 0 is regular, 1 is resto */
Number alpha_du, Number alpha_pr,
Index ls_trials, UserDataPtr data)
{
logger("[Callback:E]intermediate_callback");
//logger("[Callback:E]intermediate_callback");

DispatchData *myowndata = (DispatchData *) data;
UserDataPtr user_data = (UserDataPtr) myowndata->userdata;
Expand Down Expand Up @@ -113,19 +113,19 @@ Bool eval_intermediate_callback(Index alg_mod, /* 0 is regular, 1 is resto */
if (!result)
PyErr_Print();

result_as_long = PyInt_AsLong(result);
result_as_long = PyLong_AsLong(result);
result_as_bool = (Bool) result_as_long;

Py_DECREF(result);
Py_CLEAR(arglist);
logger("[Callback:R] intermediate_callback");
//logger("[Callback:R] intermediate_callback");
return result_as_bool;
}

Bool
eval_f(Index n, Number * x, Bool new_x, Number * obj_value, UserDataPtr data)
{
logger("[Callback:E] eval_f");
//logger("[Callback:E] eval_f");

npy_intp dims[1];
dims[0] = n;
Expand Down Expand Up @@ -188,14 +188,14 @@ eval_f(Index n, Number * x, Bool new_x, Number * obj_value, UserDataPtr data)
Py_DECREF(result);
Py_DECREF(arrayx);
Py_CLEAR(arglist);
logger("[Callback:R] eval_f");
//logger("[Callback:R] eval_f");
return TRUE;
}

Bool
eval_grad_f(Index n, Number * x, Bool new_x, Number * grad_f, UserDataPtr data)
{
logger("[Callback:E] eval_grad_f");
//logger("[Callback:E] eval_grad_f");

DispatchData *myowndata = (DispatchData *) data;
UserDataPtr user_data = (UserDataPtr) myowndata->userdata;
Expand Down Expand Up @@ -263,15 +263,15 @@ eval_grad_f(Index n, Number * x, Bool new_x, Number * grad_f, UserDataPtr data)
Py_DECREF(result);
Py_CLEAR(arrayx);
Py_CLEAR(arglist);
logger("[Callback:R] eval_grad_f");
//logger("[Callback:R] eval_grad_f");
return TRUE;
}

Bool
eval_g(Index n, Number * x, Bool new_x, Index m, Number * g, UserDataPtr data)
{

logger("[Callback:E] eval_g");
//logger("[Callback:E] eval_g");

DispatchData *myowndata = (DispatchData *) data;
UserDataPtr user_data = (UserDataPtr) myowndata->userdata;
Expand Down Expand Up @@ -341,7 +341,7 @@ eval_g(Index n, Number * x, Bool new_x, Index m, Number * g, UserDataPtr data)
Py_DECREF(result);
Py_CLEAR(arrayx);
Py_CLEAR(arglist);
logger("[Callback:R] eval_g");
//logger("[Callback:R] eval_g");
return TRUE;
}

Expand All @@ -351,7 +351,7 @@ eval_jac_g(Index n, Number * x, Bool new_x,
Index * iRow, Index * jCol, Number * values, UserDataPtr data)
{

logger("[Callback:E] eval_jac_g");
//logger("[Callback:E] eval_jac_g");

DispatchData *myowndata = (DispatchData *) data;
UserDataPtr user_data = (UserDataPtr) myowndata->userdata;
Expand Down Expand Up @@ -419,7 +419,7 @@ eval_jac_g(Index n, Number * x, Bool new_x,
Py_CLEAR(arrayx);
Py_DECREF(result);
Py_CLEAR(arglist);
logger("[Callback:R] eval_jac_g(1)");
//logger("[Callback:R] eval_jac_g(1)");
} else {
PyObject *arrayx =
PyArray_SimpleNewFromData(1, dims, PyArray_DOUBLE,
Expand Down Expand Up @@ -478,9 +478,9 @@ eval_jac_g(Index n, Number * x, Bool new_x,
Py_DECREF(result);
Py_CLEAR(arrayx);
Py_CLEAR(arglist);
logger("[Callback:R] eval_jac_g(2)");
//logger("[Callback:R] eval_jac_g(2)");
}
logger("[Callback:R] eval_jac_g");
//logger("[Callback:R] eval_jac_g");
return TRUE;
}

Expand All @@ -490,7 +490,7 @@ eval_h(Index n, Number * x, Bool new_x, Number obj_factor,
Index nele_hess, Index * iRow, Index * jCol,
Number * values, UserDataPtr data)
{
logger("[Callback:E] eval_h");
//logger("[Callback:E] eval_h");

DispatchData *myowndata = (DispatchData *) data;
UserDataPtr user_data = (UserDataPtr) myowndata->userdata;
Expand All @@ -504,7 +504,7 @@ eval_h(Index n, Number * x, Bool new_x, Number obj_factor,
return FALSE;
}
if (values == NULL) {
logger("[Callback:E] eval_h (1a)");
//logger("[Callback:E] eval_h (1a)");
PyObject *newx = Py_True;
PyObject *objfactor = Py_BuildValue("d", obj_factor);
PyObject *lagrange = Py_True;
Expand Down Expand Up @@ -552,7 +552,7 @@ eval_h(Index n, Number * x, Bool new_x, Number obj_factor,
return FALSE;
}

logger("[Callback:E] eval_h (tuple is the right length)");
//logger("[Callback:E] eval_h (tuple is the right length)");

PyArrayObject *row = (PyArrayObject *) PyTuple_GetItem(result, 0);
PyArrayObject *col = (PyArrayObject *) PyTuple_GetItem(result, 1);
Expand All @@ -569,14 +569,14 @@ eval_h(Index n, Number * x, Bool new_x, Number obj_factor,
*/
}

logger("[Callback:E] eval_h (clearing stuff now)");
//logger("[Callback:E] eval_h (clearing stuff now)");

Py_DECREF(objfactor);
Py_DECREF(result);
Py_CLEAR(arglist);
logger("[Callback:R] eval_h (1b)");
//logger("[Callback:R] eval_h (1b)");
} else {
logger("[Callback:R] eval_h (2a)");
//logger("[Callback:R] eval_h (2a)");

PyObject *objfactor = Py_BuildValue("d", obj_factor);

Expand Down Expand Up @@ -642,7 +642,7 @@ eval_h(Index n, Number * x, Bool new_x, Number obj_factor,
Py_CLEAR(objfactor);
Py_DECREF(result);
Py_CLEAR(arglist);
logger("[Callback:R] eval_h (2b)");
//logger("[Callback:R] eval_h (2b)");
}
return TRUE;
}

0 comments on commit ab61f90

Please sign in to comment.