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

Reply via email to