Introduction to Computer Systems (ELEC1601) >> Underflow and overflow while operating with real numbers are reported as >> exceptions with the hope that some other program or application will take >> the appropriate measures. >> >> From the point of view of a computer system, though, the designers must >> include the required hardware to detect these situations when performing >> mathematical calculations. >> >> Given the importance of defining the right floating point encoding for >> computer systems, the Institute of Electrical and Electronics Engineers >> (known simply as the IEEE) has defined a standard to encoded floating point >> numbers known as the IEEE 754 format. The standard defines five >> representations: binary floating point with 32, 64 and 128 bits, and decimal >> floating point with 64 and 128 bits. >>
> On Oct 23, 2021, at 1:41 PM, Henry Rich <[email protected]> wrote: > > On reflection, this is clearly a bug since the exact float 2^63 is a better > approximation than any integer. I'll fix it. > > Henry Rich > > On 10/23/2021 10:39 AM, ethiejiesa via General wrote: >> Note, this issue is not specific to based representations. >> 9223372036854776064 >> (i.e. INT_MAX+256) also parses to INT_MAX with integer precision. I just used >> hex in my examples since it makes bit boundaries a lot more obvious. >> >> Raul Miller <[email protected]> wrote: >>> There are currently three "constants" pages in the wiki: >>> >>> https://code.jsoftware.com/wiki/Vocabulary/Nouns >>> https://code.jsoftware.com/wiki/Vocabulary/Constants >>> https://code.jsoftware.com/wiki/Guides/Constants >>> >>> I have updated the Guides/Constants page, as it already had a segment >>> on 'based' constants. >>> >>> I am not sure about the Vocabulary/Constants page -- it looks like it >>> needs a lot of work. Perhaps a redirect might be a better option? >>> >>> The Vocabulary/Nouns page covers a larger suite of topics and is >>> probably not the right place for this kind of detail. >>> >>> Thanks, >>> >>> -- >>> Raul >>> >>> >>> On Sat, Oct 23, 2021 at 8:59 AM Ian Clark <[email protected]> wrote: >>>> I was just about to say that, Henry. >>>> >>>> Ancillary pages are intended to be linked from multiple NuVoc pages. I >>>> thought there might be a need for a new one to address the matter of this >>>> thread. But [[Vocabulary/Constants]] >>>> https://code.jsoftware.com/wiki/Vocabulary/Constants >>>> seems to be its natural home for now. >>>> >>>> Note that the last section: >>>> https://code.jsoftware.com/wiki/Vocabulary/Constants#Further_reading >>>> promises to answer Raul's question, but links to a missing page …or is it a >>>> placeholder? >>>> >>>> Some NuVoc pages link into Pipermail, as a temporary measure, until someone >>>> has the time to draw threads together. >>>> For forum members who haven't used Pipermail, the link to the present >>>> thread is: >>>> https://www.jsoftware.com/pipermail/general/2021-October/038701.html >>>> >>>> On Sat, 23 Oct 2021 at 13:44, Henry Rich <[email protected]> wrote: >>>> >>>>> Constants >>>>> >>>>> Henry Rich >>>>> >>>>> On Sat, Oct 23, 2021, 2:03 PM Raul Miller <[email protected]> wrote: >>>>> >>>>>> I guess the question is: which wiki page should this be documented in? >>>>>> >>>>>> (If it's not already -- I guess another question is what should I >>>>>> search on to attempt to find such documentation?) >>>>>> >>>>>> Thanks, >>>>>> >>>>>> -- >>>>>> Raul >>>>>> >>>>>> On Sat, Oct 23, 2021 at 5:44 AM Henry Rich <[email protected]> wrote: >>>>>>> You might have a point, but I don't think it's worth taking the risk of >>>>>>> breaking existing code to make the change. If you want a float, add a >>>>>>> decimal point. >>>>>>> >>>>>>> Numbers close to IMAX are always troublesome because of tolerance. >>>>>>> >>>>>>> Henry Rich >>>>>>> >>>>>>> On 10/23/2021 4:13 AM, ethiejiesa via General wrote: >>>>>>>> The issue I find surprising is that integer literals in the range >>>>>>>> 16b8000000000000000 to 16b80000000000004ff, i.e. INT_MAX+1 to >>>>>> INT_MAX+1024, all >>>>>>>> parse into the integer precision 9223372036854775807, i.e. INT_MAX. >>>>>> This is not >>>>>>>> the same thing as (<:2^63) which has floating precision. >>>>>>>> >>>>>>>> My expectation was that non-exact representations for (2^63x) and >>>>>> above--- >>>>>>>> e.g. 16b8000000000000000---would parse into floating precision >>>>> numbers. >>>>>>>> As it stands, this means that integer precision values equal to >>>>>>>> 16b7fffffffffffffff cannot be trusted and must be handled specially, >>>>> as >>>>>>>> demonstrated nicely in Raul's examples below. >>>>>>>> >>>>>>>> Henry Rich <[email protected]> wrote: >>>>>>>>> 16b8000000000000401 cannot be exactly represented. There is a band >>>>>> of floats near 2^63 that are converted to (<:2^63). >>>>>>>>> Henry Rich >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 10/23/2021 1:42 AM, Raul Miller wrote: >>>>>>>>>> I do not see why I should expect these to be the same number: >>>>>>>>>> >>>>>>>>>> 2^.92233720368547768323 >>>>>>>>>> 66.3219 >>>>>>>>>> 2^.16b8000000000000401 >>>>>>>>>> 63 >>>>>>>>>> >>>>>>>>>> One is larger than can be represented using a 64 bit integer, and >>>>> so >>>>>>>>>> datatype 92233720368547768323 >>>>>>>>>> floating >>>>>>>>>> >>>>>>>>>> That said, I do think that there's a problem with the other one. >>>>> That >>>>>>>>>> one is also larger than can be represented using a 64 bit signed >>>>>>>>>> integer: >>>>>>>>>> >>>>>>>>>> (2^63x)-16b8000000000000401 >>>>>>>>>> 1 >>>>>>>>>> (2^63x)-16b8000000000000000 >>>>>>>>>> 1 >>>>>>>>>> (2^63x)-16b7fffffffffffffff >>>>>>>>>> 1 >>>>>>>>>> >>>>>>>>>> So there's a certain range of numbers here which get treated ... >>>>>> oddly. >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>> >>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>> >>>>>>> -- >>>>>>> This email has been checked for viruses by AVG. >>>>>>> https://www.avg.com >>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
