tag:blogger.com,1999:blog-1685836796101281962Thu, 12 Jan 2017 00:57:55 +0000GSoCIt's all about BITS!!!http://euphoricjenny.blogspot.com/search/label/GSoCnoreply@blogger.com (janani padmanabhan)Blogger5125tag:blogger.com,1999:blog-1685836796101281962.post-7439783520226091747Fri, 15 Aug 2014 18:56:00 +00002014-08-15T19:03:04.911-07:00GSoC<div dir="ltr" style="text-align: left;" trbidi="on">The deadlines ringing do remind that 3 months have flown past in a jiffy. Time to bid sayonara! Good times seem to roll by too soon, always; sad thing! Nevertheless it has been a great experience under a brilliant mentoring. The post has come up much later the previous one. Things have taken shape since then.<br /><br />1. Ellipsoidal Harmonics:<br /> Ellipsoidal harmonic functions, the first kind; also known as Lames functions have been implemented in Cython and had been integrated with ufuncs. <br /> Ellipsoidal Harmonic function of the second kind and the calculation normalization constant for Lames function were implemented as .pyx files due to the involvement of global variables. The calculation of normalization constant was implemented in 2 different ways, using integration and using recurrence. Though recurrence seemed to be the more basic and faster way of implementation, the numerical stability wasn't that good; so we adopted integration.<br />The process involved many new things to me, like the integration of awesome LAPACK library, the speed and awesomeness of Cython etc!<br />The pull request is here: <a href="https://github.com/scipy/scipy/pull/3811">https://github.com/scipy/scipy/pull/3811</a><br />2. Hypergeometric functions:<br />The present implementation of hypergeometric functions is buggy. For real values of x, C implementation of the function from Cephes library has few errors while the FORTRAN implementation for complex values of x suffers with errors for much wider domain. There has been an attempt to re-implement the function in Cython and make it less ridden with errors. Though the shortage of time denied a bug-free implementation a few bugs have been removed successfully.<br />The implementation so far has been posted <a href="https://github.com/jennystone/scipy/blob/605ec827207fb80fa010827c93cc1c774cc86241/scipy/special/hypc.pxd">here</a><br /><br />I would yet again stress on the fact that the flipping of bits this summer has been of great fun and well as a great skill and knowledge booster. Never was my summer so productive! <br /><br />Signing off with loads of great memories and experiences<br />Janani</div>http://euphoricjenny.blogspot.com/2014/08/the-deadlines-ringing-do-remind-that.htmlnoreply@blogger.com (janani padmanabhan)0tag:blogger.com,1999:blog-1685836796101281962.post-1770725334069149381Wed, 25 Jun 2014 17:59:00 +00002014-06-25T17:50:26.403-07:00GSoC<div dir="ltr" style="text-align: left;" trbidi="on">With those mid-sem bells chiming, it is time for another update.<br />The following checkpoints have been reached:<br /><br />1. The implementation of ellipsoidal harmonic function (also known as Lame's function): The first kind.<br />The following is the link to the pull request:<br /><a href="https://github.com/scipy/scipy/pull/3753#issuecomment-47100921">https://github.com/scipy/scipy/pull/3753 </a><br />The implementation is in Cython and calls LAPACK subroutine. It is based on the python implementation by Knepley and Bardhan given <a href="https://bitbucket.org/knepley/ellipsoidal-potential-theory/src/e11de8719d8f6da5304f3b9ec6fb709d42dbe0cc/src/python/Lame.py">here</a><br />Further the absence of Lame's function implementation by any many other libraries there is a challenge in preparation of an extensive test-suite. At present the output of the function for certain range of inputs is tested. The immediate next plan is to try improving the test-suite.<br />This will be followed by the implementation of Ellipsoidal harmonic function: The second kind.<br /><br /><br />2. Before this the spherical harmonic functions were improved by reimplementing them in Cython rather than python thus improving the speed.<br />The details having been elaborately touched in the previous post, are omitted here, saving people from the boredom due to redundancy. The pull request can be accessed from <a href="https://github.com/scipy/scipy/pull/3692">https://github.com/scipy/scipy/pull/3692</a><br /><br />Thanks to the constant support of my brilliant mentors Pauli, Ralf and Stefan, (and I suppose, few miracles!) the progress is as per schedule. Hoping that this pace will be maintained or even better, quickened; post mid-sem evaluation!<br /><br />Signing off till next time,<br />Janani</div>http://euphoricjenny.blogspot.com/2014/06/with-those-mid-sem-bells-chiming-it-is.htmlnoreply@blogger.com (janani padmanabhan)0tag:blogger.com,1999:blog-1685836796101281962.post-5972694517828128822Thu, 05 Jun 2014 16:52:00 +00002014-06-05T09:52:48.038-07:00GSoC<div dir="ltr" style="text-align: left;" trbidi="on">2 weeks over! That was fast..<br />And I have sent my pull request finishing the first of 4 sub-parts of my project.<br />The link to the pull request is <a href="https://github.com/scipy/scipy/pull/3692">https://github.com/scipy/scipy/pull/3692</a>.<br />Here the function to implement spherical harmonics has been rewritten in Cython. It uses lpmv fortran sub-routine (with the help of the existing wrapper function pmv_wrap) to calculate associated Legendre Function.<br />Initially the function to calculate spherical harmonics was written in python which called lpmn function to calculate the associated Legendre function. Lpmn function in turn uses lpmn fortran routine to calculate the function. The routine iteratively evaluates associated Legendre function for all orders and degrees m and n. While the routine lpmv avoids the iteration by using recursion.<br />The usage of a different routine and rewriting the code in cython has given a huge leap in the speed of the function which is shown in a simple benchmark performed by Pauli,<br />Before:<br /> In [4]: %timeit sph_harm(50, 50, 0.5, 0.9)<br />10000 loops, best of 3:<br />81.3 µs per loop<br /> In [5]: x = np.linspace(0, 1, 2000)<br /> In [6]: %timeit sph_harm(50, 50, 0.5, x)<br /> 10 loops, best of 3:<br />127 ms per loop<br /><br />After:<br /> In [2]: %timeit sph_harm(50, 50, 0.5, 0.9)<br />100000 loops, best of 3:<br /> 4.52 µs per loop<br /> In [3]: x = np.linspace(0, 1, 2000)<br />In [4]: %timeit sph_harm(50, 50, 0.5, x)<br />1000 loops, best of 3: 1.87 ms per loop<br /><br />Now the next part of the project is to implement the ellipsoidal harmonic functions. It is kind of challenging as they are complex and they havent been implemented much. My next 2-3 weeks are dedicated to the implementation of the both kinds of ellipsoidal functions, thus meeting my mid sem deadline.<br /><br /></div>http://euphoricjenny.blogspot.com/2014/06/2-weeks-over-that-was-fast.htmlnoreply@blogger.com (janani padmanabhan)0tag:blogger.com,1999:blog-1685836796101281962.post-7007704633399010356Thu, 22 May 2014 23:25:00 +00002014-05-22T16:26:07.217-07:00GSoC<div dir="ltr" style="text-align: left;" trbidi="on">Hey all,<br />The calendar shows the day to be the 23rd of May and so officially we have slided into the first week of coding, well.. we are towards the end of first week!!<br /><br />My immediate target for the week is to implement the spherical harmonic function with the existing 'lpmv' function rather than the 'lpmn' because the latter at present calculates the associated Legendre polynomial iteratively for all degrees and orders less then m and n. We aim to remove the redundancy by adopting lpmv instead of lpmn.<br />And also the aim is to write the entire sph_harmonic function in cython to improve the speed and accuracy.</div>http://euphoricjenny.blogspot.com/2014/05/hey-all-calendar-shows-day-to-be-23rd.htmlnoreply@blogger.com (janani padmanabhan)2tag:blogger.com,1999:blog-1685836796101281962.post-7978075736135365727Mon, 17 Mar 2014 21:02:00 +00002014-04-30T07:20:10.640-07:00GSoC<div dir="ltr" style="text-align: left;" trbidi="on">Hi,<br />This is Janani, a happy-go-lucky girl with beautiful little dreams! Here I shall be posting randomly the things that affect me, touch me or just amuse me. At present the event that fueled the creation of this page is GSoC -2014 which makes it mandatory for the prospective students to have a blog. After initial hesitations, now as I write this, I am grateful for this compulsory requisite.<br /><br />Now, time to do justice to the main purpose of this blog. GSoC i.e. Google Summer of Code is an exemplary effort taken by Google every year, to expose young and enthusiastic students to the world of open source coding under the priceless guidance of experienced mentors who actively contribute to the mentoring organization.<br /><br />Yeah, so I am one of the thousands of students who dream to have this amazing experience. I am really eager to spend the summers in association with <a href="http://www.scipy.org/">SciPy.</a> Do have a look at my humble attempt <a href="http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/jennystone/5629499534213120">here</a> and feel free to give your opinions.<br />Let us wait till the 21th of April to find out if the central purpose of the blog thrives. Thanks for reading till the end! Hope to have you back here soon!<br /><br />Signing off<br />Janani </div>http://euphoricjenny.blogspot.com/2014/03/hi-this-is-janani-happy-go-lucky-girl.htmlnoreply@blogger.com (janani padmanabhan)0