<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 12, 2014 at 8:26 AM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Matt,<br>
<div class=""><br>
On Mon, Aug 11, 2014 at 10:46 PM, Matti Picus <<a href="mailto:matti.picus@gmail.com">matti.picus@gmail.com</a>> wrote:<br>
> Hi Nathaniel.<br>
> Thanks for your prompt reply. I think numpy is a wonderful project, and you<br>
> all do a great job moving it forward.<br>
> If you ask what would my vision for maturing numpy, I would like to see a<br>
> grouping of linalg matrix-operation functionality into a python level<br>
> package, exactly the opposite of more tightly tying linalg into the core of<br>
> numpy.<br>
<br>
</div>As I understood it (though I admit Chuck was pretty terse, maybe he'll<br>
correct me :-)), what he was proposing was basically just a build<br>
system reorganization -- it's much easier to call between C functions<br>
that are in the same Python module than C functions that are in<br>
different modules, so we end up with lots of boilerplate gunk for the<br>
latter. I don't think it would involve any tighter coupling than we<br>
already have in practice.<br></blockquote><div><br></div><div>I'm trying to think of the correct sequence of moves. Here are my current thoughts.<br><ul><li>Move _dotblas down into multiarray<br><ol><li>When there is cblas, add cblas implementations of decr->f->dot.</li>
<li> Reimplement API matrixproduct2</li><li>Make ndarray.dot a first class method and use it for numpy.dot.</li></ol></li><li>Implement matmul<br><ol><li>Add matrixmultiply (matmul?) to the numpy API</li><li>Implement __matmul__ method.</li>
<li>Add functions to linalg for stacked vectors.</li><li>Make sure __matmul__ works with __numpy_ufunc__</li></ol></li><li><div>Consider using blas_lite instead of cblas, but that is now independent<br></div><div>of the previous steps.</div>
</li></ul></div><snip><br></div><div class="gmail_quote"><div><br></div><div>Chuck<br></div><br></div></div></div>