in reply to Re^2: Near equal partitions.
in thread Near equal partitions.

Just one question. Is the Perl interpreter smart enough to know that int($n/$m) should use integer division rather than floating point division?

No.

i.e. would there be any difference in performance betwee int($n/$m) vs. ($n-$r)/$m?

Sorry, you asked to ask two questions. But to save you from having to ask to ask another question, I'll answer it anyway.

Performance should be roughly the same (4 trivial ops in the former, 5 trivial ops in the latter). The latter is better from a numerical methods point of view, no possibility of floating point error.

Replies are listed 'Best First'.
Re^4: Near equal partitions.
by happy.barney (Friar) on Jan 14, 2011 at 07:24 UTC
    btw, what about use integer? It looks it's little bit faster with that.
      There's benchmarking code elsewhere in the thread. It should be easy to add a 'use integer' case.
        with that code
        sub ikei { my ($n, $m) = @_; use integer; my $q = $n / $m; my $r = $n % $m; return ($q+1) x $r, ($q) x ($m-$r); }
        Rate ike ikei ike 50.8/s -- -4% ikei 52.8/s 4% -- Rate ike ikei ike 50.5/s -- -5% ikei 52.9/s 5% --