On Wed, Jan 22, 2014 at 8:30 AM, Anurag Sharma <anurag...@gmail.com> wrote: > Hello everyone. > > This post is regarding the gsoc idea of implementing (or continuing ) the > work of Aaron Meurer and Chetna Gupta on implementation of Risch Algorithm > for symbolic integrations. I have gone through the PR mentioned on the ideas > page. It seems there has been good progress last summer. > I have fairly decent background in abstract algebra and universal algebra. > Though I haven't formally done anything related to Differential Algebra. > > I wished to know the following things: > > 1. There are 3 remaining tasks mentioned in the PR. Would it be okay to > start on one of them ? (Most probably the one which asks to not hard code > the value of 'a' )
Yes, finishing this PR is probably the best place to start. I would create a new branch based off the PR branch and submit a new PR (we can close the old one when you do this). > > 2. Has there been any progress other than that mentioned in that PR? No. > > 3. I have skimmed through the first chapter of Bronstein's book. Algebraic > Preliminaries. Nothing new there. But the second chapter introduces > algorithms which I have never implemented and some of them I had not even > heard of. I would be really glad if you could tell me what sort of > mathematical background is required to contribute efficiently to this part > of the project. Well really Bronstein's book is self-contained. The unfortunate thing for you is that half of it is already implemented, so the prerequisites are really more like "the first half of Bronstein's book". I think you have a good opportunity to catch up, especially since you are still early. You should read through chapter 2. This gives a more algorithmic introduction to abstract algebra than you may have seen before. Chapter 3 gives a good understanding of the rational algorithm, but it is not necessary to understand all the algorithms there, except the Lazard-Rioboo-Trager, which is the one actually used. This is important because the full algorithm is just an extension of this algorithm, so understanding the basics of how it works is important. Chapter 4 is entirely theoretical. You should get an understanding of differential algebra, but a deep understanding of chapter 4 is not fully required. Most of it is just there to prove the theorems, particularly the Liouville theorem. A lot of it is there only to prove the algebraic case, which is not even described in the book. It really depends on how you learn, though. If you feel you learn better by really understanding all the mathematics, then you should read chapter 4 more carefully. Chapter 5 is the most important. This you should read and understand (with the possible exception of the proof of Liouville's theorem, assuming I remember correctly that it's in this chapter). This is the "base" algorithm. Most of it is already implemented, in risch.py. Chapters 6, 7, and 8 are nitty-gritty details of the sub-algorithms. You really don't need to worry so much about the parts that are already implemented. It depends on what you plan to do in your project too, but in many cases you can worry about things when you get to them too. Chapter 9 is more heavy on the math than what you really need to know to implement it. I recommend starting with chapter 2. Try to find the implementation in SymPy of the algorithms as you go through them, and play with them using your own inputs. This will help you learn SymPy and the polys module as well (the polys module can be a bit confusing so let us know if you can't figure stuff out with it). You should also try to follow the Risch code, say for some simple inputs, alongside the pseudocode in Bronstein. Don't worry too much about the code in DifferentialExtension to start with. > > I would be really glad if you could link me to some literature on net which > explains the Risch algorithm and implementation issues. In the meanwhile > I'll try to procure the mentioned text from my college library. Read Bronstein's "symbolic integration tutorial" (you can find it for free on his website). This gives a broad outline of the full algorithm. Note that his book only covers about a third of the full algorithm (namely, just the pure transcendental part), so don't worry too much if you can't follow the algebraic part parts. Beyond that, Bronstein's book really is the best source, so I would stick to it for the most part. The book is extremely well written, so you shouldn't have too many issues with it. > > Apart from Aaron Meurer and Chetna Gupta who else has worked on this part ? > It would be really nice if I knew more people familiar to this part of sympy > so that I wont have to bug Aaron with every little issue :).. I have tried > contacting Chetna but I guess she is not much active now. Sorry, it's just us. Raoul might be able to tell you a few things too. I would most likely be the one to mentor the project if it were accepted, though. You should just keep your communications on this list, and I will respond. Or if you want to chat you can use IRC or gitter (https://gitter.im/sympy/sympy). Aaron Meurer > > Cheers > Anurag > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sympy+unsubscr...@googlegroups.com. > To post to this group, send email to sympy@googlegroups.com. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.