[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