It comes down to this:
<. 17575011601890. 0 NB. bug!
17575011601891 0
<. 17575011601890.
17575011601890
When I rewrote >. to allow inplace operation, I forgot that comparison
tolerance causes trouble when the numbers get big. Singletons follow a
different path.
Fixed for next beta. Thanks for the report.
NOTE that tolerant <. gives non-intuitive results on large float values:
<. 20000000000000.6
20000000000001
You got a problem with that? You asked for 'the largest integer
tolerantly less than or equal to y', didn't you?
Henry Rich
On 2/15/2021 4:59 AM, Stefan Baumann wrote:
Dear all,
I had an issue when calculating the triangular number with the formula
<.@:-:@:(*
:) in list context. Starting from 5928745 the outcome in list context is
larger than the correct value (additionally calculated with the binomial
coefficient in the first box):
t=: <.@:-:@:(* >:)
((2&!)@:>:; t ;{.@:t@:,~) 5928744
+--------------+--------------+--------------+
|17575005673140|17575005673140|17575005673140|
+--------------+--------------+--------------+
((2&!)@:>:; t ;{.@:t@:,~) 5928745
+--------------+--------------+--------------+
|17575011601885|17575011601885|17575011601886|
+--------------+--------------+--------------+
JVERSION
Engine: j902/j64avx2/windows
Release-a: commercial/2020-12-05T13:36:01
Library: 9.02.08
Platform: Win 64
Installer: J902 install
InstallPath: c:/users/wzhbsn/_/opt/j
Contact: www.jsoftware.com
Thanks. Stefan.
----------------------------------------------------------------------
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