Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -r 1b70e84ac93b pypy/module/micronumpy/interp_numarray.py
- --- a/pypy/module/micronumpy/interp_numarray.py Thu Sep 01 15:31:22 2011 +0200
- +++ b/pypy/module/micronumpy/interp_numarray.py Thu Sep 01 10:38:52 2011 -0600
- @@ -1,11 +1,12 @@
- from pypy.interpreter.baseobjspace import Wrappable
- from pypy.interpreter.error import OperationError
- -from pypy.interpreter.gateway import interp2app, unwrap_spec
- +from pypy.interpreter.gateway import interp2app, unwrap_spec, NoneNotWrapped
- from pypy.interpreter.typedef import TypeDef, GetSetProperty
- from pypy.module.micronumpy import interp_ufuncs, interp_dtype, signature
- from pypy.rlib import jit
- from pypy.rpython.lltypesystem import lltype
- from pypy.tool.sourcetools import func_with_new_name
- +from math import ceil
- numpy_driver = jit.JitDriver(greens = ['signature'],
- @@ -561,6 +562,24 @@
- arr.dtype.setitem(arr.storage, i, one)
- return space.wrap(arr)
- +@unwrap_spec(start=int, step=int)
- +def arange(space, start, w_end=NoneNotWrapped, step=1, w_dtype=None):
- + dtype = space.interp_w(interp_dtype.W_Dtype,
- + space.call_function(space.gettypefor(interp_dtype.W_Dtype), w_dtype)
- + )
- + if w_end is None:
- + start, end = 0, start
- + else:
- + end = space.getindex_w(w_end, None)
- +
- + # better way?
- + size = max(int(ceil((end - start) / float(step))), 0)
- +
- + arr = SingleDimArray(size, dtype=dtype)
- + for i, val in enumerate(xrange(start, end, step)):
- + arr.dtype.setitem(arr.storage, i, dtype.adapt_val(val))
- + return space.wrap(arr)
- +
- BaseArray.typedef = TypeDef(
- 'numarray',
- __new__ = interp2app(BaseArray.descr__new__.im_func),
Add Comment
Please, Sign In to add comment