Thank you very much for the quick reply.<br><br><div id="ymail_android_signature"><a href="https://overview.mail.yahoo.com/mobile/?.src=Android" id="yMail_cursorElementTracker_0.8415516345416394">Sent from Yahoo Mail on Android</a></div> <br> <blockquote style="margin: 0 0 20px 0;"> <header style="font-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Wed, 20 Jul, 2016 at 7:20, Barry Smith</div><div><bsmith@mcs.anl.gov> wrote:</div> </header> <div style="padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: 1px solid #6D00F6;"> <div id="msgSandbox_AAjFCmoAAcq8V47d2BAjhcN1GJZc_TEXT" class="msgSandbox" style="padding: 1.5em 0.5em 0.5em 1.2em; word-wrap: break-word;"><br clear="none">> On Jul 19, 2016, at 7:01 AM, lixin chu <<a shape="rect" ymailto="mailto:lixin_chu@yahoo.com" href="javascript:return">lixin_chu@yahoo.com</a>> wrote:<br clear="none">> <br clear="none">> Hello,<br clear="none">> I am new to PETsc, and I am looking for a library to support matrix multiplication. I have several questions and would like to confirm:<br clear="none">> <br clear="none">> 1. From MatMatMult API, for C=A*B, I assume we can support mixed sparse and dense matrix, i.e., either A or B can be dense; similarly, MatMatMatMult (A*B*C) can support A and C sparse, and B is dense.<br clear="none"><br clear="none">  We do not have code for all combinations. <br clear="none">> <br clear="none">> 2. We can also use mixed data type for MatMatMult/MatMatMatMult, for example, A is complex, double, and B is double.<br clear="none"><br clear="none">  PETSc only supports all real or all complex, not missing.<br clear="none">> <br clear="none">> 3. Is there a way to estimate the total working memory required for MatMatMult/MatMatMatMult, given A,B and C information (like dimensions, and total none zero elements, data type)<br clear="none"><br clear="none">   Whenever one of the matrices is dense the result is dense so it is easy to compute in that case.<br clear="none"><br clear="none">   If all the matrices are sparse it is difficult to predict the sparsity of the final result (generally is is a bit denser than the most dense of the sparse matrices). We make some estimates before we start the symbolic multiple and if we need more space we allocate more.<br clear="none">>  <br clear="none">> 4. do we have any performance/memory usage data when compared with other sparse matrix multiplication solutions. for example. PSBLAS<br clear="none"><br clear="none">   No<div class="yQTDBase yqt8662050665" id="yqtfd95318"><br clear="none"><br clear="none">> ?<br clear="none">> <br clear="none">> thank you very much,<br clear="none">> <br clear="none">> lixin<br clear="none"></div></div> </div> </blockquote>