<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thank you, Jed! &nbsp;I have more questions:&nbsp;<div><br><div>if I do C=A*B with A(or B) of MatNest type and B(or A, resp.) of usual type,<div>what type will C be of? &nbsp;</div><div>And is there any function not supporting MatNest, for example, does LU decomposition&nbsp;</div><div>supports MatNest?&nbsp;</div><div>Does one sometimes need to convert MatNest to the usual type and how to do it?&nbsp;</div><div>The MatNest is useful to me because my matrix is in the form&nbsp;[K1*K2 &nbsp;K3*K4].</div><div>I think to construct it as MatNest is easier than setting up Aij.</div><div><br></div><div>Best wishes,</div><div>Hui</div><div><br><div><div><div><div>On Sep 30, 2011, at 7:08 PM, Jed Brown wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Fri, Sep 30, 2011 at 10:51, Hui Zhang <span dir="ltr">&lt;<a href="mailto:mike.hui.zhang@hotmail.com">mike.hui.zhang@hotmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":gd">Do you know what type of the resulting vector y by MatMult of a MatNest A and a Vec x, i.e. y = Ax?<br></div></blockquote><div><br></div><div>MatMult does not change the types of vectors. This function works with any types.</div>
<div><br></div><div>Note, however, that many Vec operations require all arguments to have the same type, so you can't freely mix native Vec with VecNest. I don't recommend using VecNest unless you have a very specific use case and can explain to me why you should use it. (I do recommend using MatNest, but generally with the MatGetLocalSubMatrix() so you don't depend on it---I always try to avoid depending on implementations.)</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":gd">
Because after that I want to modify a SubVec of the result y. If it is a VectNest, I think<br>
VecNestGetSubVec should be used but not VecGetSubVector.</div></blockquote></div><br><div>This is why VecNest implements VecGetSubVector (see VecGetSubVector_Nest).</div>
</blockquote></div><br></div></div></div></div></div></body></html>