<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 28, 2014 at 3:31 PM, Geoffrey Irving <span dir="ltr"><<a href="mailto:irving@naml.us" target="_blank">irving@naml.us</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">PetscFEIntegrateJacobian_Basic has four layers of loops:<br>
<br>
   e - element<br>
   f - component of field being differentiated<br>
   g - component of field we're differentiating against<br>
   q - quadrature point<br>
<br>
It looks like g3_func and friends are being called once for each<br>
combination of (e,f,g,q), even though the calls to g3_func are<br>
independent of (f,g).  If g3_func is expensive, this duplication seems<br>
a bit slow.<br>
<br>
It seems like the loops should be flipped to be (e,q,f,g) major order,<br>
with the user functions hoisted up to the (e,q) level.  Is there a<br>
reason not to do this?</blockquote><div><br></div><div>Yes, it is stupid. I will fix it.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Geoffrey<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>