On Wed, 09 Dec 2009 05:28:23 +0100, Andrei Alexandrescu <[email protected]> wrote:

Don wrote:
Bill Baxter wrote:
On Tue, Dec 8, 2009 at 10:18 AM, Bill Baxter <[email protected]> wrote:
I agree. Then at least why not make the type of the exponent unsigned? That gives the type system a fighting chance (via e.g. value range propagation).
Give Willy a chance!
Honestly, I don't really understand this concern with range
propagation.   Seems to me that allowing a negative exponent doesn't
much expand the range, if a truncation rule is used.  The result is
either undefined, 0 or 1.  The range is much greater with a
non-negative exponent.  Could be undefined, zero, or most any negative
or positive number.

This was meant sincerely, by the way.  As in, I am ignorant about this
issue (the trouble with range propagation and negative exponents) and
would appreciate it if someone could explain it.

--bb
I'm bitterly opposed to making int^^negative int return 0. Doing that is making up a new operation. And it does really bad things. Why is 2^^-1 == 0, and not 1 ? If you're evaluating with the floating point unit, it will be 1 when using "round up" mode.
It's foul.

Awesome! Don please please require the exponent to be of unsigned type :o).

Andrei

Yeah. Makes no sense allowing it to be signed.

--
Simen

Reply via email to