[petsc-dev] Meaning of PETSc matrices with zero rows but nonzero columns?

Mills, Richard Tran rtmills at anl.gov
Sat May 30 18:26:35 CDT 2020


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 <jed at jedbrown.org><mailto:jed at jedbrown.org> wrote:

Stefano Zampini <stefano.zampini at gmail.com><mailto:stefano.zampini at 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?





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200530/02559dd1/attachment.html>


More information about the petsc-dev mailing list