Hi everyone,
I just found out about GSoC several days ago and it immediately struck me as being amazing. I have been trying to get involved in the open source community for a while now, but haven't been able to "find the time". I am currently in a PhD program working on theoretical physics (string theory), but have been doing quite a lot of tinkering with computer science in general lately and it has been really fascinating. GSoC seems like the exact type of thing to push me and keep me on track to start contributing seriously to open source projects and get my hands dirty with "real" coding. I immediately jumped on the SymPy page and started playing around with the packages. It's a little overwhelming how much is being developed simultaneously, but I am getting a feel for some of the interesting features.
I know it is a long shot to get approved for the GSoC, since I see most people have started working on proposals so early on, but I am still going to try and if it doesn't work I will at least have learned enough to start working on something interesting even without the funding (it would help though, since I will be able to devote more time to it over the summer).
I wanted to get some feedback about my ideas, which I realize might not happen by the deadline (24ish hours left), but even so I would appreciate it. I am trying to have a decent proposal by then, which might not be very concrete (more of a conceptual plan) and hoping to have several days after the melange deadline to develop it fully once I hear from you. I am not sure how the review process works, but I would appreciate some feedback from the mentors if you would be willing to consider a proposal modified after the official deadline, since I see there is a period of several weeks of review. That is so I know if I should slave away on it the days after the deadline, or if there's no point.
I am also trying to fix an issue and submit a pull request by the deadline, which is not going too well since I have started looking at SymPy only for the past several days. Fingers crossed though. Anyways I just uploaded a wiki page with my current general ideas (nothing specific yet, but I have one more day). Any feedback or references to discussions surrounding the topics I am looking at would be greatly appreciated. I have been digging through the doc files and the mailing list, but someone with experience might be able to point me to something I have not discovered yet.
Thank you in advance for any help. This looks like a great community and I look forward to talking with you more and hopefully contributing.
Peter Petrov
--
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/e3f6b945-a91e-41d2-bda9-548eaaae449c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
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/CADDwiVCdh9JHMZ%3DQeUMK1-xrcXhjOY4JraWcs5OmnrzsJnZRZg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CADDwiVBrmXieY4G_KG91TriPvnm0ba5c1g5b%3D5_0srZf6Rds-Q%40mail.gmail.com.
>I realize it is a really long shot to get the funding, but the last 40 hours have been so much fun, that I will definitely try and work in the community as much as I can. I want to get hands on experience >with coding and this looks like the perfect place for me to start, given that I can actually apply my knowledge of physics and learn a lot about computer science at the same time.Thanks for all the help.
Hi Peter,
I read through your ideas. First of all, I started SymPy as a
theoretical physics student myself,
and I wanted to automate the General Relativity as well as high energy
QFT calculations. I am still
very interested in that, but there are a lot of tough problems and
parts that need to be in place.
You need to be able to do integrals, handle potentially large
formulas, tensor manipulation and simplification
(e.g. gamma matrices), and so on. It's not easy at all, but we've done
a long progress since the time I started
SymPy in 2007 or so.
The best way to get some ideas of what can be done is to look into
existing packages, they are pretty much
all in Mathematica. In fact, most theoretical physicist just use
Mathematica.
So it would be really nice to have the project that you describe. You
should have a look at work done by Francesco Bonazzi
regarding the gamma matrices:
https://github.com/Upabjojr
https://github.com/sympy/sympy/pull/2601
He has lots of PRs, closed and open. It's nontrivial. And those are
just the gamma matrices. I think Francesco's goal
could be summarized by your proposal, and he's done many months worth
of work on it already. So the scope is just huge.
One of the things is for example just the Feynman diagrams generator
for various Lagrangians.
I am sure there must be some
packages that do that, but it'd be nice to integrate this with SymPy
and create nice IPython Notebooks that generate all the correct
diagrams, for example from Peskin & Schroeder.
This will be good for
pedagogical reasons, as well as computations. In general,
good applications in my opinion are providing automatic symbolic
solutions to various exercises from books.
I would suggest you to figure out something, that can be finished
during a summer and that would provide something useful,
on it's own. So that you can create nice examples out of it. Then you
can continue working on some other things after the summer
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CADDwiVDjncWgRSLG4000kxk2MZzVSrB1cVj8K_HiftWLZrSwgA%40mail.gmail.com.
Efficient pattern dispatch is hard, particularly when you have associative and commutative operators. If we don't care about associativity/commutitivity then it's fairly doable. This is the sort of thing I would build in my spare time if the community actually intended to use it.
--
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/2355c999-683b-43fe-90d2-7afd20e2e8ce%40googlegroups.com.
> @Matthew Rocklin: would you try to generalize your multiple dispatch module to pattern dispatch?The multipledispatch package will only be about dispatch against types. This package is intended for general programming and so efficiently covers the common case.However a long time ago though I was on a pattern matching and logic programming kick. There are old/derelict unify and strategies modules in SymPy as a result. Most development was eventually transferred to the LogPy project, an implementation of miniKanren. Among other things it held a basic unification/reification system, a dispatch system for those functions, and a less basic though still inefficient associative-commutative unification/reification system.In a SymPy branch I built up LogPy/SymPy integration and played with a simplification system that defined itself based on (source-pattern, target-pattern, boolean condition patterns) a laAbs(x) -> x if x is positiveIt worked fine but was slow in the case of associative-commutative operators. I'll throw up some links below. I suggest that if we want to continue this conversation we do it on a separate issue.
The trick behind efficient pattern matching in our case is to match an input expression against all of the patterns at once. The patterns should be stored in a data structure like a Trie. This is relatively straightforward in the non-associative-commutative case but a mess in the associative-commutative case.
Can you provide simple yet comprehensive examples of the sort of matching and transformations that you'd like to support?
--
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/d9cbd48e-5e81-415e-aa8e-1d7dcac1fc2a%40googlegroups.com.