It is in fact right on the edge:

   T=: 2^_34
   2=!.T 2+T+T
1

   hex=: 5 }. 2: 3!:3 ,
   hex 2+T+T
4000000000040000

   X=: }: 2 (3!:3) 2*1+t
   X
e200000000000000
0000000000000008
0000000000000001
0000000000000000

   unhex=: 3!:2 @ (X&,)

   2 =!.T unhex '4000000000040000'
1
   2 =!.T unhex '4000000000040001'
0

A difference in the last bit.



On Wed, Feb 19, 2014 at 5:35 PM, Henry Rich <henryhr...@nc.rr.com> wrote:

> Yes, the test is very close to the edge:
>
>     T=: 2^_34
>    2 =!.T 2+T+T
> 1
>    2 =!.T 2+T+T+2^_50
> 0
>
> Henry Rich
>
> On 2/19/2014 8:33 PM, Roger Hui wrote:
>
>> You have to consider the definition of tolerant equality carefully.  It is
>> the _relative_ difference that matters, not the absolute difference.  The
>> absolute difference between 2 and 2+T+T is 2*T, but the relative
>> difference
>> is (2*T)%2+T+T, and this relative difference is less than T.
>>
>>
>>
>>
>>
>> On Wed, Feb 19, 2014 at 5:24 PM, Ian Clark <earthspo...@gmail.com> wrote:
>>
>>  Okay, I was reading that as *less* than 2^_34
>>>
>>> All is not as it seems however...
>>>
>>> ]   T=: 2^_34
>>> 5.82077e_11
>>>     2 =!.T 2+T
>>> 1
>>>     2 =!.T 2+T+T     NB. I'd expect 0 here
>>> 1
>>>     2 =!.T 2+T+T+T
>>> 0
>>>     NB. at last!
>>>
>>>
>>>
>>> On Thu, Feb 20, 2014 at 12:37 AM, Henry Rich <henryhr...@nc.rr.com>
>>> wrote:
>>>
>>>  Comparison tolerance cannot be more than 2^_34.
>>>>
>>>> (So that integer comparisons on 32-bit machines do not have to worry
>>>>
>>> about
>>>
>>>> tolerance)
>>>>
>>>> Henry Rich
>>>>
>>>>
>>>>
>>>> On 2/19/2014 7:03 PM, Ian Clark wrote:
>>>>
>>>>  I'm trying to construct an example using Fit (!.) to customize a given
>>>>> primitive (e.g. =) to set its tolerance.
>>>>> Try as I might I cannot get variants of this to work:
>>>>>
>>>>>      T=: 0.001
>>>>>      2 =!.T 2.0001
>>>>> |domain error
>>>>> |   2    =!.T 2.0001
>>>>>
>>>>> What am I doing wrong?
>>>>> ----------------------------------------------------------------------
>>>>> 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

Reply via email to