Thanks for the replies, everyone. It suppose is not actually that hard for me 
to handle these dimensions properly -- I just hadn't personally encountered or 
thought much about when such operations with empty matrices might arise, and 
was initially puzzled about what multiplication by an "empty" matrix even 
means. I think I see now why I need to put in the work to handle these cases 
properly. (Sure wish that MKL could just do it, though!)

--Richard

On 5/30/20 4:09 PM, Stefano Zampini wrote:





On May 31, 2020, at 1:03 AM, Jed Brown 
<j...@jedbrown.org><mailto:j...@jedbrown.org> wrote:

Stefano Zampini <stefano.zamp...@gmail.com><mailto:stefano.zamp...@gmail.com> 
writes:



If A is 0x8 and B is 8x5 then C is correct to be of size 0x5. The rows and 
columns of the resulting matrix have to follow the rules.



Right, I think if you said C is 0x0 (which seems like Richard's proposal), 
you'd need to relax shape compatibility logic in many places, including in ways 
that might produce confusing errors.




Richard

In the triple matrix product case, your code will break, because the operation 
will no longer be associative

A 3x0, B 0x8, C 8x7 -> (ABC) is a valid 3x7 matrix (empty)

If I understand you right, (AB)  would be  a 0x0 matrix, and it can no longer 
be multiplied against C



Richard, what is the hardship in preserving the shape relations?





Reply via email to