<div class="gmail_quote">On Wed, Jul 18, 2012 at 10:22 AM, Jose E. Roman <span dir="ltr"><<a href="mailto:jroman@dsic.upv.es" target="_blank">jroman@dsic.upv.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":e5">El 18/07/2012, a las 15:05, Jed Brown escribió:<br>
<div class="im"><br>
> MatMultHermitianTranspose could have a default implementation in terms of the others. Then it would work in all cases, right?<br>
><br>
<br>
</div>Do you mean VecConjugate(x) plus MatMultTranspose(A,x,y) plus VecConjugate(y) ??<br>
I guess this would work.</div></blockquote></div><br><div>In the PETSc implementation, right?</div><div><br></div><div>Also, I notice this in your current code. It is always safe to call MatConjugate(), the function will just do nothing if not using complex.</div>
<div><br></div><div><div>src/svd/interface/svdsetup.c- ierr = MatTranspose(svd->OP,MAT_INITIAL_MATRIX,&svd->AT);CHKERRQ(ierr);</div><div>src/svd/interface/svdsetup.c-#if defined(PETSC_USE_COMPLEX)</div><div>
src/svd/interface/svdsetup.c: ierr = MatConjugate(svd->AT);CHKERRQ(ierr);</div><div>src/svd/interface/svdsetup.c-#endif</div><div>src/svd/interface/svdsetup.c- } else {</div><div>src/svd/interface/svdsetup.c- ierr = MatTranspose(svd->OP,MAT_INITIAL_MATRIX,&svd->A);CHKERRQ(ierr);</div>
<div>src/svd/interface/svdsetup.c-#if defined(PETSC_USE_COMPLEX)</div><div>src/svd/interface/svdsetup.c: ierr = MatConjugate(svd->A);CHKERRQ(ierr);</div><div>src/svd/interface/svdsetup.c-#endif</div></div><div><br>
</div>