Guest User

Untitled

a guest
Oct 18th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.66 KB | None | 0 0
  1. diff -r 1b70e84ac93b pypy/module/micronumpy/interp_numarray.py
  2. --- a/pypy/module/micronumpy/interp_numarray.py Thu Sep 01 15:31:22 2011 +0200
  3. +++ b/pypy/module/micronumpy/interp_numarray.py Thu Sep 01 10:38:52 2011 -0600
  4. @@ -1,11 +1,12 @@
  5.  from pypy.interpreter.baseobjspace import Wrappable
  6.  from pypy.interpreter.error import OperationError
  7. -from pypy.interpreter.gateway import interp2app, unwrap_spec
  8. +from pypy.interpreter.gateway import interp2app, unwrap_spec, NoneNotWrapped
  9.  from pypy.interpreter.typedef import TypeDef, GetSetProperty
  10.  from pypy.module.micronumpy import interp_ufuncs, interp_dtype, signature
  11.  from pypy.rlib import jit
  12.  from pypy.rpython.lltypesystem import lltype
  13.  from pypy.tool.sourcetools import func_with_new_name
  14. +from math import ceil
  15.  
  16.  
  17.  numpy_driver = jit.JitDriver(greens = ['signature'],
  18. @@ -561,6 +562,24 @@
  19.          arr.dtype.setitem(arr.storage, i, one)
  20.      return space.wrap(arr)
  21.  
  22. +@unwrap_spec(start=int, step=int)
  23. +def arange(space, start, w_end=NoneNotWrapped, step=1, w_dtype=None):
  24. +    dtype = space.interp_w(interp_dtype.W_Dtype,
  25. +        space.call_function(space.gettypefor(interp_dtype.W_Dtype), w_dtype)
  26. +    )
  27. +    if w_end is None:
  28. +        start, end = 0, start
  29. +    else:
  30. +        end = space.getindex_w(w_end, None)
  31. +
  32. +    # better way?
  33. +    size = max(int(ceil((end - start) / float(step))), 0)
  34. +
  35. +    arr = SingleDimArray(size, dtype=dtype)
  36. +    for i, val in enumerate(xrange(start, end, step)):
  37. +        arr.dtype.setitem(arr.storage, i, dtype.adapt_val(val))
  38. +    return space.wrap(arr)
  39. +
  40.  BaseArray.typedef = TypeDef(
  41.      'numarray',
  42.      __new__ = interp2app(BaseArray.descr__new__.im_func),
Add Comment
Please, Sign In to add comment