<div dir="ltr">Hi Ian,<br><br><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 24, 2015 at 1:22 AM, Ian Henriksen <span dir="ltr"><<a href="mailto:insertinterestingnamehere@gmail.com" target="_blank">insertinterestingnamehere@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 dir="ltr"><div>Hi all,</div><div><br></div><div>I'm putting together an application for GSOC 2015, and, although the deadline is approaching fast, I would still appreciate your feedback on a few of my ideas.</div></div></blockquote><div><br></div><div>Great to see your interest.<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"><div dir="ltr"><div></div><div>I am a masters student studying mathematics at Brigham Young University. Thus far my primary contribution to SciPy has been the Cython API for BLAS and LAPACK (see <a href="https://github.com/scipy/scipy/pull/4021" target="_blank">https://github.com/scipy/scipy/pull/4021</a>).</div><div><br></div><div>My research is in Isogeometric Analysis, i.e. finite element analysis on spline curves. My open source work and research at BYU have given me a great deal of experience with Python and Cython, but I am also familiar with C, C++, and Fortran. As such, I have been reflecting on projects that would be best suited to my skill set, as well as most beneficial to SciPy.</div><div><br></div><div>I'm curious to know which of the following projects would be of greatest interest to the SciPy community:</div><div><br></div><div>1. Wrapping the PROPACK library for sparse linear algebra and using it for sparse SVD computation in scipy.sparse. There has been some initial work on f2py wrappers for PROPACK at <a href="https://github.com/jakevdp/pypropack" target="_blank">https://github.com/jakevdp/pypropack</a>, though it appears the wrappers are still incomplete.</div></div></blockquote><div><br></div><div>This is definitely a feature that's regularly requested. On an older post on this mailing list a factor of 10 faster than ARPACK is mentioned, benchmarks at <a href="https://jakevdp.github.io/blog/2012/12/19/sparse-svds-in-python/">https://jakevdp.github.io/blog/2012/12/19/sparse-svds-in-python/</a> say a factor ~5. Here is an old issue requesting addition of a wrapper to Scipy: <a href="https://github.com/scipy/scipy/issues/857">https://github.com/scipy/scipy/issues/857</a><br></div><div> <br></div><div>Some feedback from Jake on the state of his wrapper and whether this would fill a whole GSoC would be great to have.<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"><div dir="ltr"><div>2. Implementing an improved library for spline operations in SciPy. I am very familiar with the different refinement techniques used in CAD (knot insertion, degree elevation, etc.) and could implement a library that would be able to perform them all. My ideal here would be to write a C++ or Fortran library to do this and then wrap it via Cython. The emphasis would be primarily on writing code for refinement and evaluation that is both fast and general. I could include code for spline subdivision methods as well.</div></div></blockquote><div><br></div><div>Also often discussed, is one of the listed GSoC ideas, and one of the topics in Scipy that need a major make over. It's not clear to me how well your proposed C++/Fortran library would mesh with the Python/Cython splines code that Evgeni and Pauli have in progress - that would need some discussion.<br><br>(<a href="https://github.com/scipy/scipy/pull/3174">https://github.com/scipy/scipy/pull/3174</a> seems to have stalled)<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"><div dir="ltr"><div>3. Adding support for Cython to both f2py and numpy.distutils. The goal here would be to allow f2py to generate cython-compatible wrappers from existing pyf files. I would also modify numpy.distutils so it could compile Cython files.</div></div></blockquote><div><br></div><div>The f2py part sounds potentially interesting, I'm a bit worried about mentoring power here though (f2py is close to unmaintained). The numpy.distutils part seems to me to be of lower prio - Cython itself has distutils support, and things like tools/cythonize.py in Scipy work fine.<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"><div dir="ltr"><div>4. Wrap ffts (<a href="https://github.com/anthonix/ffts" target="_blank">https://github.com/anthonix/ffts</a>) and use it as an alternative to FITPACK in scipy.fft for use cases where it is faster.</div></div></blockquote><div><br></div><div>Benchmarks look great, but this also looks like a potential build nightmare (dynamically generated code, a JNI interface, no Windows builds?). <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"><div dir="ltr"><div><br></div><div>Which of these projects would be most appreciated? I certainly want to be able to make a valid and, more importantly, useful contribution.</div></div></blockquote><div><br></div><div>All of these ideas could make a nice GSoC project, but I suspect (1) or (2) would be preferable over (3) or (4).<br><br></div><div>Cheers,<br></div><div>Ralf<br><br></div></div><br></div></div></div>