It refers to "unit in the last place", essentially the size of smallest change for a floating point number of a given magnitude. The Wikipedia page explains more: https://en.wikipedia.org/wiki/Unit_in_the_last_place
Now, there is also this famous paper, which discusses this in great detail: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html Regards, Elias On 15 August 2015 at 19:53, Juergen Sauermann <juergen.sauerm...@t-online.de > wrote: > Hi, > > and what is *ulps*? > > /// Jürgen > > > On 08/15/2015 01:15 PM, Elias Mårtenson wrote: > > Arguably ⎕CT should be specified in terms of ulps, since GNU APL uses > double precision floating point for all numeric operations. > > On 15 August 2015 at 02:54, Mike Duvos <m...@wolf359.net> wrote: > >> Hi Jürgen, >> >> > Z← R For real numbers, yields the largest integer that does not exceed >> R (within the comparison tolerance). >> >> > That is essentially what ISO says and what GNU APL has implemented. The >> observed behavior >> > of the IBM APL2 implementation seems to be (within R times the >> comparison tolerance), >> > which is probably unintentional. >> >> On page 58 of the APL2 Language Reference, it defines what "within >> comparison tolerance" means and for two positive numbers, the fuzz factor >> is ⎕CT times the larger of the magnitudes. It then lists floor and ceiling >> as two of the many functions to which this applies. >> >> I cannot think of a single APL that doesn't relativize ⎕CT for floor and >> ceiling, with the exception of this one. >> >> It's not a problem that relative tolerance can include more than one >> integer in the interval as the magnitude increases, as you are only >> checking if you are tolerantly equal to the nearest integer, which always >> does the right thing. >> >> "within comparison tolerance" should be read as "according to the >> previously discussed comparison tolerance algorithm" and not taken as a >> mathematical statement about adding or subtracting ⎕CT, or contrasted with >> "within R times comparison tolerance." >> >> Just as if they had said "modulo comparison tolerance," it would not >> imply anything having to do with residue. >> >> If tolerant ⌊ and ⌈ are only going to do something special on 2049 >> distinct integers, why not just do it without ⎕CT on everything, and call >> it a "feature." >> >> Regards, >> >> Mike >> >> >> > >