[Numpy-discussion] How to call methods from a class with custom matrices parameters with numpy arrays ?
Matthieu Brucher
matthieu.brucher@gmail....
Thu Apr 19 03:09:57 CDT 2007
>
> You should give ctypes a try, I find it much better than swig most
> of the time for wrapping. You can find some doc here:
>
> http://www.scipy.org/Cookbook/Ctypes2
>
> Basically, once you get your dll/so with a function foo(double *a,
> int n), you can call it directly in numpy by passing directly a numpy
> array. The catch is that the layout of the array should be exactly the
> same than your function expects (most of the time a contiguous array),
> but there are numpy functions which enforce that. As long as you are not
> calling thousand of function with small arrays, the wrapping is pretty
> efficient in my experience.
>
> cheers,
>
> David
Thanks for the fast answer ;)
I was wondering if ctypes would fit better, but in this case, I have to make
the wrapper myself, I suppose ?
Here is the basic prototype of what I have - it's a cost function I want to
optimize with optimizers I proposed on scipy recently - :
template<class MatrixType>
struct CostFunction
{
CostFunction(const MatrixType& points, ...)
{
}
const MatrixType gradient(const Matrixtype& parameters)
{
// ...
return aNewGradient;
}
};
So I have to create a function that takes a numpy array and that returns and
instance of my cost function, this is pretty simple to do, the matrix can be
constructed from its two dimensions and a pointer, but for the gradient
method, I have trouble seeing how to do wrap it :(
Matthieu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20070419/99bea961/attachment.html
More information about the Numpy-discussion
mailing list