<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 12, 2014 at 9:24 PM, Sturla Molden <span dir="ltr"><<a href="mailto:sturla.molden@gmail.com" target="_blank">sturla.molden@gmail.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"><div class="">Charles R Harris <<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>> wrote:<br>

<br>
</div>>    - Move _dotblas down into multiarray<br>
>    1. When there is cblas, add cblas implementations of decr->f->dot.<br>
>       2. Reimplement API matrixproduct2<br>
>       3. Make ndarray.dot a first class method and use it for numpy.dot.<br>
>    - Implement matmul<br>
>    1. Add matrixmultiply (matmul?) to the numpy API<br>
>       2. Implement __matmul__ method.<br>
>       3. Add functions to linalg for stacked vectors.<br>
>       4. Make sure __matmul__ works with __numpy_ufunc__<br>
>    - Consider using blas_lite instead of cblas, but that is now independent<br>
>    of the previous steps.<br>
<br>
We could consider to have a linalg._linalg module that just stores BLAS and<br>
LAPACK function pointer values as read-only integer attributes. This way we<br>
could move _dotblas into the core without actually having linalg in the<br>
core. linalg._linalg would just sit there and own BLAS and LAPACK, and no<br>
other part of NumPy would need build dependencies on these libraries. </blockquote><div><br></div><div>Note that those dependencies are optional now.<br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
When
_dotblas is imported it just imports linalg._linalg and reads whatever<br>
function pointer value it needs. It would also make it possible to remove<br>
BLAS and LAPACK build dependencies from SciPy, as long as we export most or<br>
all of BLAS and LAPACK.<br></blockquote><div><br>That's not possible. The only way you can do that is move the hard 
dependency on BLAS & LAPACK to numpy, which we don't want to do.<br><br>Ralf<br><br></div></div><br></div></div>