On Sunday, February 2, 2014 5:45:39 AM UTC+5:30, Chetna Gupta wrote:
>
> Hi All
>
> This is such a big nostalgia moment! @Anurag There are three tasks 
> mentioned on the PR. One of them being
> -> Don't hardcode the value of a in the functions in cds.py. And the 
> input should be a, not sqrt(a), (so, e.g., the input should be -1, not 
> sqrt(-1))
> I would try to solve this and would like to illustrate the code-blocks in 
> the above mentioned file(cds.py) so that you can understand the code flow
> within files and between different files.<Updates on the PR>
>
 No please dont solve it on your own. I would be really glad if we could 
fix some time on the irc and then you help me solve the issue. It would 
make the process easier for me for the next time. Anytime suits me. Either 
reply here or email me(I had sent an email from my institute id.).

>
> In particular inside sympy/intergrals module we have "risch_integrate" 
> function, which is suppose to be do the magic of integrating any elementary 
> function. It indeed is an abstraction for all the function calls, coded in 
> different files in the above mentioned module.
>
Yeah i am reading the code (although as mentioned in my other post last 
week had been dull. I would really appreciate it if we could directly chat 
on irc it would help me solve some noob issues which I are too obvious to 
ask on mailing list :P. 

> As suggested by Aaron, Manuel Bronstein is the best place to start with. 
> Try going through the book and you'll realize that the code implemented is 
> a lot more similar to the sections in the book.
>

Yeah, I am halfway through the second chapter. But its a big book and may 
take time to reach the relevant portion. Is it possible to understand the 
code before understanding the complete math of differential fields ? I have 
strong background in Universal Algebra/Lattices/Rings etc. But havent 
formally covered Differential fields. I am reading through the book and 
asking for help on forums like (math.stackexchange) but the process is 
slow. 



> On Saturday, January 25, 2014 6:24:25 AM UTC+5:30, Aaron Meurer wrote:
>>
>> On Fri, Jan 24, 2014 at 11:39 AM, Anurag Sharma <anur...@gmail.com> 
>> wrote: 
>> > Hi Aaron 
>> > Thanks for your reply. I have got hold of Bronstein book and the 
>> tutorial. I 
>> > find the tutorial much more accessible right now. I think I will go 
>> through 
>> > it first and worry about the correctness of algorithms later. 
>> > 
>> > I don't find all the algorithms being implemented in sympy (eg 
>> Bernoulli, 
>> > Hermite Reduction etc. ). And I guess we done need them when we have 
>> better 
>> > ones available. 
>>
>> The rational algorithms are implemented in rationaltools.py. The 
>> polynomial algorithms (that have nothing to do with integration) are 
>> buried in the polys module. The risch algorithms are in risch.py, 
>> rde.py, and prde.py. 
>>
>> Aaron Meurer 
>>
>> > Expect some queries and doubts related to maths involved in next couple 
>> of 
>> > days while I read on. 
>> > 
>> > Cheers 
>> > Anurag 
>> > 
>> > On Friday, January 24, 2014 5:18:52 AM UTC+5:30, Aaron Meurer wrote: 
>> >> 
>> >> On Thu, Jan 23, 2014 at 4:19 AM, someone <some...@bluewin.ch> wrote: 
>> >> >> > 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. 
>> >> > 
>> >> > We all miss the volume II he wanted to write :-( 
>> >> > 
>> >> >> 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" 
>> >> > 
>> >> > Yes, this a great "short version". 
>> >> > There is also a Thesis called "Symbolic Integration" 
>> >> > by BJÖRN TERELIUS. (You should be able to find this on 
>> >> > the net, otherwise I'll send you a copy.) 
>> >> 
>> >> There is also some paper that I found pretty useful for understanding 
>> >> the extension tower concept. I can't remember who wrote it or what 
>> >> it's called. It might not even be a paper, just a chapter from a 
>> >> textbook on computer algebra, but I do remember that it has the 
>> >> example from https://code.google.com/p/sympy/issues/detail?id=2010#c1. 
>>
>> >> 
>> >> There are also a ton of references in Bronstein's book. 
>> >> 
>> >> But I would always start with Bronstein, because his writing is the 
>> >> best, and then fill the gaps with other resources. 
>> >> 
>> >> Aaron Meurer 
>> >> 
>> >> > 
>> >> > -- 
>> >> > 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+un...@googlegroups.com. 
>> >> > To post to this group, send email to sy...@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+un...@googlegroups.com. 
>> > To post to this group, send email to sy...@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