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.

Reply via email to