<div dir="ltr">Hi Michele,<div><br></div><div>Regarding xtensor, the article focused on how we can wrap an existing data structure in an "xtensor expression", i.e. something that you can operate upon with the numpy style API in C++ (see the numpy to xtensor cheat sheet <a href="http://xtensor.readthedocs.io/en/latest/numpy.html">http://xtensor.readthedocs.io/en/latest/numpy.html</a>). Since it is an expression system, you can do "a + b * sin(t)" with numpy-style broadcasting and it returns an un-evaluated expression, which is computed only upon access or assignment to a container. "a", "b", and "c" could all be compound expressions, backed by filesystem operations, be an in-memory container, or a wrapper on your sparse matrices...</div><div><br></div><div>Now, we are working on automating the "<i>C++ tensor expression-type -> python wrapper with access and math operators" </i>generation of code, which would be what you are describing below...</div><div><br></div><div>On the subject of the LGPL, regarding the distinction with the GPL that were brought up earlier in the thread, it is indeed not as problematic as the GPL, but still less permissive as BSD and MIT. In general, I think that using a BSD or MIT license averts these concerns in the Python ecosystem, and is preferable <i>if you don't care about copyleft</i>...</div><div><br></div><div>Best,</div><div><br></div><div>Sylvain</div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 25, 2017 at 12:01 PM, Michele Martone <span dir="ltr"><<a href="mailto:michelemartone@users.sourceforge.net" target="_blank">michelemartone@users.sourceforge.net</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">On 20170624@16:29, Sylvain Corlay wrote:<br>
> Hi Michele,<br>
<br>
Hi Sylvain,<br>
<span class="gmail-"><br>
> This is really interesting. I am a co-author of the xtensor project and one<br>
> thing that could be interesting is to wrap the various sparse matrix data<br>
> structures in the form of xtensor expressions. A byproduct of doing so is<br>
> that it would simplify creating bindings for multiple scientific computing<br>
> languages (Python, Julia, R, and more coming). You can see the blog post<br>
> <a href="http://quantstack.net/c++/2017/05/30/polyglot-scientific-computing-with-" rel="noreferrer" target="_blank">http://quantstack.net/c++/<wbr>2017/05/30/polyglot-<wbr>scientific-computing-with-</a><br>
> xtensor.html for reference...<br>
</span>This article exemplifies manipulation of numerical arrays.<br>
Now I ask you: Given an interactive language $L of the one you cite above,<br>
can xtensor provide objects with custom type and operators for manipulation<br>
in *that* language, like in e.g. the pyrsb case:<br>
a=rsb_matrix((4,4))<br>
print(a+a) # + operator and 'print' interfacing<br>
?<br>
<span class="gmail-"><br>
> Also, one quick question: is the LGPL license a deliberate choice or is it<br>
> not important to you? Most projects in the Python scientific stack are BSD<br>
> licensed. So the LGPL choice makes it unlikely that a higher-level project<br>
> adopts it as a dependency. If you are the only copyright holder, you would<br>
> still have the possibility to license it under a more permissive license<br>
> such as BSD or MIT...<br>
</span>No important choice.<br>
No problems relicensing the PyRSB prototype to BSD or MIT.<br>
<br>
> Congratulations on the release!<br>
Thanks for the interest and welcome constructive feedback :-)<br>
<div class="gmail-HOEnZb"><div class="gmail-h5"><br>
> Sylvain<br>
><br>
><br>
><br>
><br>
><br>
> On Wed, Jun 21, 2017 at 11:51 AM, Michele Martone <michelemartone@users.<br>
> <a href="http://sourceforge.net" rel="noreferrer" target="_blank">sourceforge.net</a>> wrote:<br>
><br>
> > Hi.<br>
> ><br>
> > I'm the author of the high performance multithreaded sparse matrix<br>
> > library `librsb' (mostly C, LGPLv3): <a href="http://librsb.sourceforge.net/" rel="noreferrer" target="_blank">http://librsb.sourceforge.net/</a><br>
> ><br>
> > I'm *not* a user of SciPy/NumPy/Python, but using Cython I have<br>
> > written a proof-of-concept interface to librsb, named `PyRSB':<br>
> > <a href="https://github.com/michelemartone/pyrsb" rel="noreferrer" target="_blank">https://github.com/<wbr>michelemartone/pyrsb</a><br>
> ><br>
> > PyRSB is in a prototypal state; e.g. still lacks good error handling.<br>
> > Its interface is trivial, as it mimicks that of SciPy's 'csr_matrix'.<br>
> > Advantages over csr_matrix are in fast multithreaded multiplication<br>
> > of huge sparse matrices.<br>
> > Intended application area is iterative solution of linear systems;<br>
> > particularly fast if with symmetric matrices and many rhs.<br>
> ><br>
> > With this email I am looking for prospective:<br>
> > - users/testers<br>
> > - developers (any interest to collaborate/adopt/include the project?)<br>
> ><br>
> > Looking forward for your feedback,<br>
> > Michele<br>
> ><br>
> > ______________________________<wbr>_________________<br>
> > SciPy-Dev mailing list<br>
> > <a href="mailto:SciPy-Dev@python.org">SciPy-Dev@python.org</a><br>
> > <a href="https://mail.python.org/mailman/listinfo/scipy-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/scipy-dev</a><br>
> ><br>
> ><br>
<br>
> ______________________________<wbr>_________________<br>
> SciPy-Dev mailing list<br>
> <a href="mailto:SciPy-Dev@python.org">SciPy-Dev@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/scipy-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/scipy-dev</a><br>
<br>
</div></div></blockquote></div><br></div></div></div>