<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div dir="ltr">Lisandro:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>* Please consider fixing MatProductCreate(A,B,C,&D) to take ownership (that is, increase reference count) of the A,B, and the (optional) C matrices provided as arguments. Otherwise it is way easy to get into the dangling pointer trap.<br></div></div></blockquote><div>Can you give me a simple example of " get into the dangling pointer trap"? We do not use reference count to keep track of A, B for Mat-Mat operations in the current and previous versions. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div>* A thing also missing in the new API is a way to "cleanup" the A,B,C references, something MatProductReset(D) to get rid of (deallocates)  the internal "product" context, thus removing  from D the references to A,B,C. This would be useful if you just want to compute JUST the symbolic product, I'm using that in some code to compute the nonzero pattern of A^2. <br></div></div></blockquote><div>Again, giving an example would help me understand. If you just want the  symbolic product, you can call</div><div>MatProductCreate()</div><div>MatProductSetType()</div><div>MatProductSetFromOptions()</div><div>MatProductSymbolic().</div><div>This is equivalent to previous MatMatMultSymbolic(), and is used in some routines of PETSc.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div>* It should be also considered to provide backward compatibility PETSC_DEPRECATED calls to the previous MatMatMultSymbolic() and MatMatMultNumeric(). It looks like it would be trivial to do, though I may be getting it wrong because I have not looked at all the details. </div></div></blockquote><div> MatMatMultSymbolic/Numeric() are not recommended for users, and few developers ever used them.  I only see one or two PETSc subroutines call them. I do not think we need provide backward compatibility PETSC_DEPRECATED calls for 6 pairs of such routines. </div><div><br></div><div>Hong</div></div></div>