Drat. I thought I had tested that.
The error occurs when the size exceeds 384, because for caching purposes
I break up matrix products bigger than that. Normal matrix
multiplication works, but the versions used for %. save some time by
taking advantage of the fact that the matrices involved are
upper-triangular; that code fails when the size is too large.
I have a fix for it now, but I need to understand why the tests didn't
catch it & why the upper-triangular code fails in that case.
Henry Rich
On 1/10/2020 5:28 PM, Devon McCormick wrote:
So, in my recently installed J 9.01 (Engine: j901/j64avx2/windows), I get
this surprising result in the final case (indentation added manually since
this does not work for my session under emacs):
mat=. <:+:10 10?@$0
+/,mat+/ . * %.mat
10
mat=. <:+:100 100?@$0
+/,mat+/ . * %.mat
100
mat=. <:+:1000 1000?@$0
+/,mat+/ . * %.mat
21278.6
The last sum should be 1000.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm