E
Enrico
I am trying to pass a multi-dimensional ndarray to C as a multi-
dimensional C array for the purposes of passing it to mathematica.
They already have a wrapper for a 1-D Python list. where the list is
copied to "list". Shown below:
static PyObject * mathlink_PutIntegerList(mathlink_Link *self,
PyObject *args)
{
PyObject* seq;
PyObject* obj;
long i, len, result;
int* list;
len = PyObject_Length(seq);
list = PyMem_New(int, len);
for(i = 0; i < len; i++)
{
obj = PySequence_GetItem(seq, i);
list = PyInt_AsLong(obj);
}
CheckForThreadsAndRunLink(self,result = MLPutIntegerList(self->lp,
list, len));
PyMem_Free(list);
CHECKNOTEQUAL(result,MLSUCCESS,self);
Py_INCREF(Py_None);
return Py_None;
}
I would like to create a similar wrapper which accepts an ndarray and
provides the array laid out in memory like a C array declared
explicitly as "int a[m][n]...". I also need to pass the length of the
array at each level i as dim. Since this is pretty much the only
function I plan to wrap, I'd like to avoid using boost, swig, etc.
Any help would be appreciated.
dimensional C array for the purposes of passing it to mathematica.
They already have a wrapper for a 1-D Python list. where the list is
copied to "list". Shown below:
static PyObject * mathlink_PutIntegerList(mathlink_Link *self,
PyObject *args)
{
PyObject* seq;
PyObject* obj;
long i, len, result;
int* list;
len = PyObject_Length(seq);
list = PyMem_New(int, len);
for(i = 0; i < len; i++)
{
obj = PySequence_GetItem(seq, i);
list = PyInt_AsLong(obj);
}
CheckForThreadsAndRunLink(self,result = MLPutIntegerList(self->lp,
list, len));
PyMem_Free(list);
CHECKNOTEQUAL(result,MLSUCCESS,self);
Py_INCREF(Py_None);
return Py_None;
}
I would like to create a similar wrapper which accepts an ndarray and
provides the array laid out in memory like a C array declared
explicitly as "int a[m][n]...". I also need to pass the length of the
array at each level i as dim. Since this is pretty much the only
function I plan to wrap, I'd like to avoid using boost, swig, etc.
Any help would be appreciated.