<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hong,<div class="">I also removed a couple of deprecated MATOP there <a href="https://gitlab.com/petsc/petsc/-/merge_requests/2786" class="">https://gitlab.com/petsc/petsc/-/merge_requests/2786</a></div><div class="">If you git grep MATOP_TRANSPOSE_MAT_MULT, you’ll see that there are still some remaining in src/tao/constrained/impls/admm/admm.c</div><div class="">Actually, in this case, it does not come from a MatHasOperation but from a MatShellSetOperation.</div><div class="">I don’t think there is any example showing how to add an algorithm inside user-code to compute C=A*B. Maybe it would be worth creating such an example? (I’m actually not sure how to do it myself)</div><div class="">That way, it would be quite convenient to try out new algorithms, instead of having to recompile the library itself.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Pierre<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 9 May 2020, at 1:36 PM, Stefano Zampini <<a href="mailto:stefano.zampini@gmail.com" class="">stefano.zampini@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hong<div class=""><br class=""></div><div class="">you may want to take a look at this big commit here <a href="https://gitlab.com/petsc/petsc/-/merge_requests/2712/diffs?commit_id=94a81e695f30a0ff4a14c0eb596e09393f9b329f" class="">https://gitlab.com/petsc/petsc/-/merge_requests/2712/diffs?commit_id=94a81e695f30a0ff4a14c0eb596e09393f9b329f</a></div><div class=""><br class=""></div><div class="">Now that you coded MatProduct, I think it is the case of not playing with the destroy/view routines anymore in the various MatMat operations (you know, I have raised this issue already in the past). I think I got it fixed properly. What I did in short, I have added extra slots to the MatProduct struct to keep track of how to destroy/view the extra information you need for the products.</div><div class="">Also, I have deprecated MatFreeIntermediateStructures, since we now have MatProductClear</div><div class=""><br class=""></div><div class="">I have spent quite a bit of time on it, and I personally think it is the proper way to go. I think I took care of all the cases already covered. Tests are clean for me</div><div class="">I would like to hear your opinion.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks</div><div class="">Stefano</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno sab 9 mag 2020 alle ore 13:45 Stefano Zampini <<a href="mailto:stefano.zampini@gmail.com" class="">stefano.zampini@gmail.com</a>> ha scritto:<br class=""></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" class="">Jose<div class=""><br class=""></div><div class="">I have just pushed a test <a href="https://gitlab.com/petsc/petsc/-/blob/d64c2bc63c8d5d1a8c689f1abc762ae2722bba26/src/mat/tests/ex69.c" target="_blank" class="">https://gitlab.com/petsc/petsc/-/blob/d64c2bc63c8d5d1a8c689f1abc762ae2722bba26/src/mat/tests/ex69.c</a></div><div class="">See if it fits your framework, and feel free to modify the test to add more checks</div><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno ven 8 mag 2020 alle ore 18:48 Jose E. Roman <<a href="mailto:jroman@dsic.upv.es" target="_blank" class="">jroman@dsic.upv.es</a>> ha scritto:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Attached. Run with -test 1 or -test 2<br class="">
<br class="">
> El 8 may 2020, a las 17:14, Stefano Zampini <<a href="mailto:stefano.zampini@gmail.com" target="_blank" class="">stefano.zampini@gmail.com</a>> escribió:<br class="">
> <br class="">
> Jose<br class="">
> <br class="">
> Just send me a MWE and I’ll fix the case for you<br class="">
> <br class="">
> Thanks<br class="">
> Stefano<br class="">
</blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="">Stefano</div>
</blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="gmail_signature">Stefano</div>
</div></blockquote></div><br class=""></div></body></html>