[pythran] Re: question on slice.hpp

  • From: Pierrick Brunet <pierrick.brunet@xxxxxxxx>
  • To: pythran@xxxxxxxxxxxxx
  • Date: Thu, 04 Sep 2014 20:56:41 +0200

I think it is rounded up as the slice : 1:5:3 is 2 with a roundup and 1 with a round down with your expression.

It looks like your formule have the same final behavior but need more operation to perform it. Do you have any example where the current function fail?

On 04/09/2014 20:32, Neal Becker wrote:
In pythran/pythonic/types/slice.hpp

            long size() const
assert( not upper.is_none and not lower.is_none and not step.is_none ); return std::max(0L, long(ceil(double(upper - lower)/double(step))));

Maybe this should be:
(using python code here:)

def roundup_divide (a, b):
    return (a + b - 1) // b

return std::max(0L, roundup_divide (upper-lower, step));

But on the other hand, did you really mean to roundup? Should the size of a slice be rounded down?

/Those who don't understand recursion are doomed to repeat it/

Other related posts: