[Numpy-discussion] Numeric and swig (or, how to wrap functions).
Roy.Dragseth at cc.uit.no
Fri Jan 5 07:53:49 CST 2001
I'm trying to figure out a (simple) way to wrap extension functions
using Numeric and swig. I want to use swig because I find the method
described i ch. 12 of the user manual a bit too elaborate.
The problem I'm facing with swig is that I cannot figure out a way to
pass arrays to the functions expecting double pointers as input. Say,
for example, that I want to wrap daxpy:
1. I put the function call interface into a swig file:
void daxpy(int* n,double* a, double* x,int* incx, double* y, int* incy)
2. I want the function call visible to python to be something like:
x = Numeric.arange(0.0,10.0)
y = a[:]
a = 1.0
3. To achieve 2. I make a python function that does the
real call to daxpy:
<Do consistency checking between x and y>
n = len(x)
d_x = GetDataPointer(x)
inc_x = <x's incrment>
(daxpy_c is the real daxpy)
The problem I'm facing is that I cannot grab the internal data pointer
from Numeric arrays and pass it to a function. Is there a
simple way to do that without having to write a wrapper function in c
for every function I want to use?
How should I write the function GetDataPointer()?
Any hints is greatly appreciated.
The Computer Center, University of Tromsø, N-9037 TROMSØ, Norway.
phone:+47 77 64 41 07, fax:+47 77 64 41 00
Roy Dragseth, High Perfomance Computing System Administrator
Direct call: +47 77 64 62 56. email: royd at cc.uit.no
More information about the Numpy-discussion