[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sc-devel] When integers go bad



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@xxxxxxxxx>:
 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@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxx
  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@xxxxxxxxxxxxxxx
  http://lists.create.ucsb.edu/mailman/listinfo/sc-devel



 --
 http://www.mcld.co.uk
 _______________________________________________
 Sc-devel mailing list
 Sc-devel@xxxxxxxxxxxxxxx
 http://lists.create.ucsb.edu/mailman/listinfo/sc-devel


 --





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


--





.