<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 7, 2013 at 5:58 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">These all have to be categorized and dealt with. For ugly #ifdef stuff for dealing with slightly different system call interfaces I think the best approach would be to define a common interface, use that one common interface from PETSc source and then put the "patch" code that mates the true system stuff to the common interface in a separate place (whether that code is generated or stuck in some files somewhere is not important; in the same way that it doesn't matter where the LAPACK coupling code is done). The key is that PETSc code is pure C and thus can be easily manipulated, unlike the current situation.</blockquote>
</div><br>I think BLAS is substantial enough to follow Karl's suggestion and factor it *out* of PETSc. I don't think we really get anywhere by doing that for system stuff. The whole point of many of the interfaces in src/sys/ is to hide that stuff from the rest of PETSc. Of course we have to write that code somewhere and it's not at all clear to me that "generating that code" offers any value.</div>
</div>