« Return to Thread: When integers go bad

Re: When integers go bad

by Julian Rohrhuber :: Rate this Message:

Reply to Author | View in Thread

before you get infinities, you get degraded precision.

a = 3; b = 2147483647.0; b ** a ** (1/a) - b

-2.6226043701172e-06


>Then don't use integers. You'll get the behavior you want (infinities)
>and a much larger range of integers if you use Float.
>
>--- james mccartney @ iphone
>
>On Feb 26, 2008, at 2:48 PM, Julian Rohrhuber <rohrhuber@uni-
>hamburg.de> wrote:
>
>>  I also think this is not optimal. I've had hard to find bugs with
>>  integer arithmetics because of this.
>>
>>>  Hm, OK, well maybe I'm just spoilt by environments like Octave or
>>>  Matlab that give you inf when you go off the scale, which is a really
>>>  useful warning that you've hit the buffers! (Maybe they use floats
>>>  implicitly even for integers.)
>>>
>>>  Thanks
>>>  Dan
>>>
>>>
>>>  2008/2/26, James Harkins <jamshark70@...>:
>>>>  This is standard behavior for integer arithmetic. Keeping it simple,
>>>>   if you have 8 bits only:
>>>>
>>>>   2r01111111 == 127
>>>>   +1
>>>>   ----
>>>>   2r10000000 == -128
>>>>
>>>>   Actually, n - 1 works by addition. 5 - 1 = 5 + (-1) = 5 + (2^8 - 1)
>>>>
>>>>   2r00000101 + 2r11111111 = 2r00000100 or 4.
>>>>
>>>>   I think it's more a matter of being careful, or of .asFloat'ing
>>>>   everything when the range might get very large.
>>>>   hjh
>>>>
>>>>
>>>>
>>>>   On Tue, Feb 26, 2008 at 4:53 PM, Dan Stowell
>>>>  <danstowell@...> wrote:
>>>>>  Hi -
>>>>>
>>>>>  SC goes a bit strange when integers go off the scale:
>>>>>
>>>>>   1410889248 * 99;   // Results in -2055885216
>>>>>
>>>>>  Is this as designed? Since it returns an Integer, it's pretty
>>>>>  dangerous since it can continue to be used in calculations and can
>>>>>  corrupt. Would be better if it returned inf, or perhaps even threw
>>>>>  some kind of exception. Is that feasible?
>>>>
>>>>
>>>>
>>>>  --
>>>>   James Harkins /// dewdrop world
>>>>   jamshark70@...
>>>>   http://www.dewdrop-world.net
>>>>
>>>>   "Come said the Muse,
>>>>   Sing me a song no poet has yet chanted,
>>>>   Sing me the universal."  -- Whitman
>>>>   _______________________________________________
>>>>   Sc-devel mailing list
>>>>   Sc-devel@...
>>>>   http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
>>>>
>>>
>>>
>>>  --
>>>  http://www.mcld.co.uk
>>>  _______________________________________________
>>>  Sc-devel mailing list
>>>  Sc-devel@...
>>>  http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
>>
>>
>>  --
>>
>>
>>
>>
>>
>>  .
>>  _______________________________________________
>>  Sc-devel mailing list
>>  Sc-devel@...
>>  http://lists.create.ucsb.edu/mailman/listinfo/sc-devel
>_______________________________________________
>Sc-devel mailing list
>Sc-devel@...
>http://lists.create.ucsb.edu/mailman/listinfo/sc-devel


--





.
_______________________________________________
Sc-devel mailing list
Sc-devel@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-devel

 « Return to Thread: When integers go bad