from numarray import NumArray from pypy.interpreter.baseobjspace import ObjSpace, W_Root from pypy.interpreter.error import OperationError def minimum(space, w_a, w_b): if not isinstance(w_a, NumArray) or not isinstance(w_b, NumArray): raise OperationError(space.w_TypeError, space.wrap("expecting NumArrat object")) if w_a.dim != w_b.dim: raise OperationError(space.w_ValueError, space.wrap("minimum of arrays of different length")) res = NumArray(space, w_a.dim, 'i') for i in range(len(w_a.storage)): one = w_a.storage[i] two = w_b.storage[i] if one < two: res.storage[i] = one else: res.storage[i] = two return space.wrap(res) minimum.unwrap_spec = [ObjSpace, W_Root, W_Root]