Displaying 2 results from an estimated 2 matches for "9000000000000000l".
Did you mean:
0000000000000000
2018 Jan 30
2
sum() returns NA on a long *logical* vector when nb of TRUE values exceeds 2^31
Hi Martin, Henrik,
Thanks for the follow up.
@Martin: I vote for 2) without *any* hesitation :-)
(and uniformity could be restored at some point in the
future by having prod(), rowSums(), colSums(), and others
align with the behavior of length() and sum())
Cheers,
H.
On 01/27/2018 03:06 AM, Martin Maechler wrote:
>>>>>> Henrik Bengtsson <henrik.bengtsson at gmail.com>
2018 Feb 01
0
sum() returns NA on a long *logical* vector when nb of TRUE values exceeds 2^31
..., I had procrastinated and worked at
implementing '2)' already a bit on the weekend and made it work
- more or less. It needs a bit more work, and I had also been considering
replacing the numbers in the current overflow check
if (ii++ > 1000) { \
ii = 0; \
if (s > 9000000000000000L || s < -9000000000000000L) { \
if(!updated) updated = TRUE; \
*value = NA_INTEGER; \
warningcall(call, _("integer overflow - use sum(as.numeric(.))")); \
return updated; \
} \
} \
i.e. think of tweaking the '1000' and '90000000000000...