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)
)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 ofa
in the functions in cds.py. And the input should bea
, notsqrt(a)
, (so, e.g., the input should be-1
, notsqrt(-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>
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.
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.
Hi
While going through some of the risch algorithm code, I couldn't understand few of the docstrings.
One of them is quoted here:
"DE.D is a list of the derivatives of x, t1, t2, ..., tn-1 = t, DE.T is the list [x, t1, t2, ..., tn-1], DE.t is the
outer-most variable of the differential extension at the given level (the level
can be adjusted using DE.increment_level() and DE.decrement_level()),
k is the field C(x, t0, ..., tn-2), where C is the constant field. Â The
numerator of a fraction is denoted by a and the denominator by
d. Â If the fraction is named f, fa == numer(f) and fd == denom(f).
Fractions are returned as tuples (fa, fd). Â DE.d and DE.t are used to
represent the topmost derivation and extension variable, respectively."
I do not understand what is the difference in DE.D and DE.T ?
And also the last line. Kindly be lucid.
These are hurriedly asked questions I might be able to get them after some more thought, but its better to put them on the mailing list maybe someone else stuck can also get help from these. :)
Cheers
--
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/5e1ddd0b-d482-4302-bee2-f070e3b155a6%40googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "sympy" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sympy/bYHtVOmKEFs/unsubscribe.
To unsubscribe from this group and all its topics, 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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2BG%2BgP69aE%3DGL3GOyRPZu1_YaUjXx98RauZeGo2bYC3yQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAOYHqH-OAFNuLdqUSLNXJnSKzJoLWg4FsKWxmSRG%2BbfDkvsvrA%40mail.gmail.com.
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/67e0c80d-65c6-4693-9081-a57963886c4b%40googlegroups.com.
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' )
2. Has there been any progress other than that mentioned in that PR?
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.
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.
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.
Cheers
Anurag
Â
You received this message because you are subscribed to a topic in the Google Groups "sympy" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sympy/bYHtVOmKEFs/unsubscribe.
To unsubscribe from this group and all its topics, 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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2Bo-vWSChMU%3DdQttPRKwbAmbi-z8REq6h%2Bzx%3DRmCVyUmA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2BW%3DEsiuaHHpYkMGU6My6on9jvGavR4_LHaZFp7fgDrSQ%40mail.gmail.com.
On Wed, Jan 22, 2014 at 8:30 AM, Anurag Sharma <anur...@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+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.