[Jprogramming] Complex tolerant comparison

Elijah Stone elronnd at elronnd.net
Wed Feb 23 15:27:48 UTC 2022


I do not see the significance of your statement.  Are you saying that it 
would be inconsistent if _ = 1e300?  Fine, but that has nothing to do with 
what I propose.  _ is infinite, while 1e300 is finite.  3j_ and 5j_ are 
both infinite.  It is not inconsistent for two infinities to be equal; 
indeed, for _=_ already.

  -E

On Wed, 23 Feb 2022, Henry Rich wrote:

> I am just saying that
>
>   _ = 1e300
> 0
>
> is inconsistent with the definition of tolerant comparison, so further 
> arguments appealing to consistency are built on sand.
>
> Henry Rich
>
> On 2/23/2022 10:18 AM, Elijah Stone wrote:
>> So you do not find it inconsistent that 3j1e100=5j1e100 but 3j_~:5j_; 
>> nor that 3j_ and 5j_ seem to represent the same thing (as evinced by *.)?
>>
>> It does not seem at all inconsistent or problematic to define = such 
>> that (x j. _) = (y j. _) (for finite, real x,y), and it does not 
>> follow from such a definition that _ must compare equal with finite 
>> values.
>>
>>  -E
>>
>> On Wed, 23 Feb 2022, Henry Rich wrote:
>>
>>> As the essay points out, according to the rules _ is tolerantly equal 
>>> to everything.  To avoid that, comparisons to _ are intolerant.
>>>
>>> Henry Rich
>>>
>>> On 2/23/2022 7:09 AM, Elijah Stone wrote:
>>>> https://code.jsoftware.com/wiki/Essays/Tolerant_Comparison
>>>>
>>>> A good read, explains the workings of the comparators.
>>>>
>>>>  -E
>>>>
>>>> On Wed, 23 Feb 2022, Michail L. Liarmakopoulos wrote:
>>>>
>>>>> Thanks for the detailed explanation and for the counterexample to my
>>>>> argument.
>>>>>
>>>>> It seems that I haven't thought carefully how the "=" operates 
>>>>> behind the
>>>>> scenes when comparing two complex numbers.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> ---
>>>>> Michail L. Liarmakopoulos, MSc
>>>>>
>>>>> On Wed, Feb 23, 2022, 13:03 Elijah Stone <elronnd at elronnd.net> wrote:
>>>>>
>>>>>> Two arguments:
>>>>>>
>>>>>> 1. Comparison is tolerant anyway.  So:
>>>>>>
>>>>>>     3j1e100 = 5j1e100
>>>>>> 1
>>>>>>
>>>>>> Since _ is greater than 1e100, the (relative) difference between 
>>>>>> 3j_ and
>>>>>> 5j_ should be less than that between 3j1e100 and 5j1e100
>>>>>>
>>>>>> 2. Infinity is, of course, not a number.  So, when encountering an
>>>>>> expression involving infinity, it is necessary to ask how it 
>>>>>> should be
>>>>>> interpreted.  One way to interpret 3j_ is as follows: the limit as y
>>>>>> approaches _ of 3 j. y.  Well, that does not converge. But its 
>>>>>> _angle_
>>>>>> does, as does the angle of 5 j. y, and they converge to the same 
>>>>>> result:
>>>>>> 0.5p1.  The j interpreter is kind enough to tell us as much:
>>>>>>
>>>>>>     0.5p1 =!.0 {:"1*.3j_ 5j_
>>>>>> 1 1
>>>>>>     3j_ -:!.0&*. 5j_
>>>>>> 1
>>>>>>
>>>>>> (The fact that these expressions evaluate to 1 even with a comparison
>>>>>> tolerance of 0--and would continue to do so, even given infinite
>>>>>> precision--is my argument for why 3j_=5j_ should be 1 even with a
>>>>>> comparison tolerance of 0.  I recognise, however, that there are 
>>>>>> other
>>>>>> tradeoffs involved, and this may not be the right choice; but I think
>>>>>> there is no excuse for a 0 result given nonzero comparison tolerance,
>>>>>> unless _=_ is changed.)
>>>>>>
>>>>>>   -E
>>>>>>
>>>>>> On Wed, 23 Feb 2022, Michail L. Liarmakopoulos wrote:
>>>>>>
>>>>>> > It seems correct to me, as they're two different complex 
>>>>>> numbers. If they
>>>>>> > were the same:
>>>>>> >
>>>>>> > 5j_=5j_
>>>>>> > 1
>>>>>> >
>>>>>> >
>>>>>> > They have the same modulus though:
>>>>>> >
>>>>>> >   %: 9 + _
>>>>>> >
>>>>>> > _
>>>>>> >
>>>>>> >   %: 25 + _
>>>>>> >
>>>>>> > _
>>>>>> >
>>>>>> >   (|3j_) = (|5j_)
>>>>>> >
>>>>>> > 1
>>>>>> >
>>>>>> > Best,
>>>>>> >
>>>>>> > ---
>>>>>> > Michail L. Liarmakopoulos, MSc
>>>>>> >
>>>>>> > On Wed, Feb 23, 2022, 10:15 Elijah Stone <elronnd at elronnd.net> 
>>>>>> wrote:
>>>>>> >
>>>>>> >>     3j_ = 5j_
>>>>>> >> 0
>>>>>> >>
>>>>>> >> I think it should be 1.  For nonzero comparison tolerance, at 
>>>>>> any rate.
>>>>>> >>
>>>>>> >>   -E
>>>>>> >> 
>>>>>> ---------------------------------------------------------------------- 
>>>>>>
>>>>>> >> 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
>>>
>>>
>>> -- 
>>> 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
>


More information about the Programming mailing list