error in ctypes example from the numpy book?

hi, i posted this to the forum, but it looks like the email list gets much more traffic, so here goes. i am attempting to reproduce a portion of the example on using ctypes from the current version of the numpy book (the example can be found on pps 313-16). here is what i am trying to do: import numpy import interface x = numpy.array(range(1,1)) y = numpy.ones_like(x) z = interface.add(a,b) prints the following error: BEGIN ERROR>> 26 b = N.require(b, dtype, requires) 27 c = N.empty_like(a) ---> 28 func(a,b,c,a.size) 29 return c 30 ArgumentError: argument 1: exceptions.TypeError: Don't know how to convert parameter 1 <<END ERROR In case it matters, here are the relevant bits of code I am using (since I have not just copied the entire text from the example): BEGIN testAddInt.c >> /* Add arrays of contiguous data */ typedef struct {double real;} cdouble; typedef struct {float real;} cfloat; void dadd(double *a, double *b, double *c, long n) { while (n--) { *c++ = *a++ + *b++; } } void sadd(float *a, float *b, float *c, long n) { while (n--) { *c++ = *a++ + *b++; } } <<END testAddInt.c and the interface code: BEGIN interface.py>> __all__ = ['add'] import numpy as N from ctypes import * import os _path = os.path.dirname('__file__') lib = N.ctypeslib.ctypes_load_library('testAddInt', _path) for name in ['sadd','dadd']: getattr(lib,name).restype=None def select(dtype): if dtype.char in['?bBhHf']: return lib.sadd, single else: return lib.dadd, float return func, ntype def add(a,b): requires = ['CONTIGUOUS','ALIGNED'] a = N.asanyarray(a) func, dtype = select(a.dtype) a = N.require(a, dtype, requires) b = N.require(b, dtype, requires) c = N.empty_like(a) func(a,b,c,a.size) return c <<END interface.py any hints/clues/suggestions as to what i am doing wrong here? since i am so new at this, i am assuming there is a simple mistake in what i am doing, but i cannot find it! thanks so much, bryan
participants (1)
-
W. Bryan Smith