You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the sake of posterity: looping in PDL operates at 3 levels:
there are each operation's "inherent" dimensions (which might be none, for a dimensionless/scalar operation like addition), over which any broadcasting happens; any loops happen within each operation's code
there are two further dimension that happen in the "inner loop" generated for each readdata/writebackdata
anything above that gets managed by startbroadcastloop which sets up data structures, and iterbroadcastloop which moves along higher dimensions until done
The two inner loops already knew about dealing with empties, because they are implemented with two for loops, which are a while loop with extra stuff, but that didn't help here because the and2 operation is dimensionless, and the two inner-loop dims had 1 each. The iterbroadcastloop knew how to stop correctly.
However, the startbroadcastloop did not check for empty and do nothing; the commit above changes that, and now all works correctly.
This is PDL 2.081 on OpenBSD current on amd64.
The text was updated successfully, but these errors were encountered: