[Rd] identical(0, -0)
Martin Maechler
maechler at stat.math.ethz.ch
Sat Aug 22 00:00:44 CEST 2009
I have taken up the issue now,
and after thinking, studying the source, trying to define a
'method = <string>' argument, came to the conclusion that both
the implementation and documentation (and source code "self-explanation")
are easiest to program, maintain, and understand,
if I introduce explicit binary switches,
so I now propose the following R-level interface which keeps
the current behavior the default:
>> Usage:
>>
>> identical(x, y, num.EQ = TRUE, one.NA = TRUE, attrib.asSet = TRUE)
>>
>> Arguments:
>>
>> x, y: any R objects.
>>
>> num.EQ: logical indicating if ('double' and 'complex' non-'NA')
>> numbers should be compared using '==', or by bitwise
>> comparison. The latter (non-default) differentiates between
>> '-0' and '+0'.
>>
>> one.NA: logical indicating if there is conceptually just one numeric
>> 'NA' and one 'NaN'; 'one.NA = FALSE' differentiates bit
>> patterns.
>>
>> attrib.asSet: logical indicating if 'attributes' of 'x' and 'y' should
>> be treated as _unordered_ tagged pairlists ("sets"); this
>> currently also applies to 'slot's of S4 objects. It may well
>> be too strict to set 'attrib.asSet = FALSE'.
I'm open for better names of arguments, but will not accept "_"
in the argument names {just my taste; no reason for argueing...}.
I've practically finished both C- and R- and Rd-code, but can
still adapt to proposals if there are good reasons for it.
Martin Maechler, ETH Zurich
More information about the R-devel
mailing list