[sympy] Re: GSOC Introduction
I have created the first draft of my proposal for "Optimising floating-point expressions", https://docs.google.com/document/d/12eBRsCbZkBfh4pj2MAaurdMWx6nd1MTYxXTmlRKriJ8/edit?usp=sharing Mentors, please suggest changes. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/55769c97-6fb8-426d-bee8-20d2ae3ca234%40googlegroups.com.
[sympy] Re: GSOC Introduction
Herbie also uses heuristic search estimates and localize error using sampled points. Same as in Fu et al, Herbie applies a database of rules and follows an algorithm that recursively rewrites candidate programs. I have attached a pdf that includes the rules that have to there in the database. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/428c8efb-9369-4c0b-a78c-9d6af3b6d941%40googlegroups.com. rewrite_rules.pdf Description: Adobe PDF document
[sympy] Re: GSOC Introduction
The paper about Herbie is very interesting. Since SymPy is primarily symbolic it would work well at producing expressions via Herbie that would perform well -- an optimized expression for evaluation. It reminds me a little of the Fu-heuristics that are used for trigonometric simplifications. /c On Thursday, March 12, 2020 at 10:47:01 AM UTC-5, Shubham thorat wrote: > > The current evalf() is used to evaluate a numerical expression into a > floating-point number using an arbitrary precision library mpmath. > > What I want to do is to get the best answer for different ranges that > varies from (-inf, inf) without increasing precision. > for example: > expr1 = (x + 1)**0.5 - x**0.5 > > when we calculate it for x = 1.98698698, we get 0 > - expr1.subs(x,1.98698698) = 0 > > but if we rewrite the expr1 as 1/(x**0.5 + (x + 1)**0.5), we get a better > answer without catastrophic cancellation as in the previous case. > -expr2 = 1/(x**0.5 + (x + 1)**0.5) > -expr2.subs(x,1.98698698) = 5.00e-9 > > I am proposing to implement this paper: > https://herbie.uwplse.org/pldi15-paper.pdf > > -Where an expression can be rewritten to get the best possible answer > without increasing the precision. > -The rewriting database will have different function and properties > like commutativity, associativity, distributivity, (x + y) = (x**2 - > y**2)/(x - y), (x - y) = (x**3 - y**3)/(x**2 + y**2 + x*y), x = exp(log( x > )) etc. > -I want to create a class where a symbolic expression along with its > optional range is given as an input, which will be rewritten to get the > best possible expression. > > Please correct me if I have made mistake in understanding the things, also > suggest the scope and changes for this. > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/151f58c0-0e83-4849-82e3-fac3173bd56c%40googlegroups.com.
[sympy] Re: GSOC Introduction
The current evalf() is used to evaluate a numerical expression into a floating-point number using an arbitrary precision library mpmath. What I want to do is to get the best answer for different ranges that varies from (-inf, inf) without increasing precision. for example: expr1 = (x + 1)**0.5 - x**0.5 when we calculate it for x = 1.98698698, we get 0 - expr1.subs(x,1.98698698) = 0 but if we rewrite the expr1 as 1/(x**0.5 + (x + 1)**0.5), we get a better answer without catastrophic cancellation as in the previous case. -expr2 = 1/(x**0.5 + (x + 1)**0.5) -expr2.subs(x,1.98698698) = 5.00e-9 I am proposing to implement this paper: https://herbie.uwplse.org/pldi15-paper.pdf -Where an expression can be rewritten to get the best possible answer without increasing the precision. -The rewriting database will have different function and properties like commutativity, associativity, distributivity, (x + y) = (x**2 - y**2)/(x - y), (x - y) = (x**3 - y**3)/(x**2 + y**2 + x*y), x = exp(log( x )) etc. -I want to create a class where a symbolic expression along with its optional range is given as an input, which will be rewritten to get the best possible expression. Please correct me if I have made mistake in understanding the things, also suggest the scope and changes for this. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bf9bcb66-d1d4-4f29-b752-b8db55c7b554%40googlegroups.com.
Re: [sympy] Re: GSOC Introduction
It's not clear to me what problem your proposal is intending to solve. In what way is it different from the current evalf algorithm/results? -- Oscar On Wed, 11 Mar 2020 at 22:48, Shubham thorat wrote: > > This is how I have divided the tasks: > The algorithm is defined in this paper: > https://herbie.uwplse.org/pldi15-paper.pdf > > Error Calculation on sampling points > > Find the best-accepted level of precision so we calculate the actual > correctly up to 64 bits by increasing the precision until we get constant up > to 64 bits. > Calculate the value using float( hardware precision). > Compare real and float value by calculating E(x,y) = log(2,z), z = number of > floating-point between real and approximate answers. > averaging these differences over the sampling to see how accurate the > expression is. > > Pick Candidate > > Pick candidates (subexpression) from the table and apply error calculation as > well as a local error at each location on the sampled points. > the database will have a set of rewrite rules like commutativity, > associativity, distributivity, (x + y) = (x**2 - y**2)/(x - y), (x - y) = > (x**3 - y**3)/(x**2 + y**2 + x*y), x = exp(log( x )) etc.. > > Recursive- rewrite > > Rewrite candidates using the database of rules and simplify to cancel terms. > Recursively repeat the algorithm on the best subexpression. > > Series Expansion > > Finding the series expansion of expressions to remove error near 0 and > infinity. > > Candidate Tree > > Only keep those candidates that give the best accuracy on at least one > location. > On every iteration of the outer loop, the algorithm chooses the program from > the table and uses it to find new candidates, every program is used once. > Candidate programs are also saved as a pair of maps that are tied with the > location that they are best at. > removing candidates if more than one candidate is giving the same results > based on their results at other locations. > Before the series approximation step, we will use the set cover approximation > algorithm to prune candidates to have a minimal set. > > Get Piecewise solutions > > Split is found using dynamic programming and later refined using binary > search. > > > These are the functions: > > > Definition-main(program) : > > points := sample-inputs(program) > > exacts := evaluate-exact(program, points) > > table := make-candidate-table(simplify(program)) > > repeat N times > > candidate:= pick-candidate(table) > > locations := sort-by-local-error(all-locations(candidate)) > > locations.take(M ) > > rewritten := recursive-rewrite(candidate, locations) > > new-candidates := simplify-each(rewritten) > > table.add(new-candidates) > > approximated := series-expansion(candidate, locations) > > table.add(approximated) > > return infer-regimes(table).as-program > > > > Definition local-error(expr, points) : > > for point ∈ points : > > args := evaluate-exact(expr.children) > > exact-ans := F(expr.operation.apply-exact(args)) > > approx-ans := expr.operation.apply-approx(F(args)) > > accumulate E(exact-ans, approx-ans) > > > > Definition recursive-rewrite(expr, target) : > > select input > > output from RULES > > where input.head = expr.operator ∧ output.head = target.head > > for (subexpr, subpattern) ∈ zip(expr.children, input.children) : > > if ¬matches(subexpr, subpattern) : > > recursive-rewrite(subexpr, subpattern) > > where matches(expr, input) > > expr.rewrite(input -> output) > > > > Definition infer-regimes(candidates, points) : > > for x i ∈ points : > > best-split 0 [x i ] = [regime(best-candidate(−∞, x i ), −∞, x i )] > > for n ∈ N until best-split n+1 = best-split n : > > for x i ∈ points ∪ {∞} : > > for x j ∈ points, x j < x i : > > extra-regime := regime(best-candidate(x j , x i ), x i , x j ) > > option[x j ] := best-split[x j ] ++ [extra-regime] > > best-split n+1 [x i ] := lowest-error(option) > > if best-split n [x i ].error − 1 ≤ best-split n+1 [x i ].error : > > best-split n+1 [x i ] := best-split n [x i ] > > split:= best-split ∗ [∞] > > split.refine-by-binary-search() > > return split > > > > I have written a basic brute force code. > from sympy import * > import numpy as np > > x = Symbol("x") > y = Symbol("y") > z = Symbol("z") > > > #points > maxi = 100 > mini = -100 > step = (maxi-mini)/256 > > start = mini > points = [] > > for i in range(0,256): > points.append(start) > start += step > > #calculate error > def calc_error(expr,point): > from mpmath import mp, mpf > mp.dps = 1000 > symb = expr.atoms(Symbol) > unq_sym = len(symb) > > > subst_sym = [] > subst_mpf = [] > > i=0 > for sym in symb: > subst_sym.append((x,point)) > #subst_sym.append((x,300)) > #subst_sym.append((z,400)) > subst_mpf.append( ( sym,mpf(point) ) ) > i = i+1 > > ans1 = expr.subs(subst_sym) > ans2 =
[sympy] Re: GSOC Introduction
This is how I have divided the tasks: The algorithm is defined in this paper: https://herbie.uwplse.org/pldi15-paper.pdf 1. Error Calculation on sampling points - Find the best-accepted level of precision so we calculate the actual correctly up to 64 bits by increasing the precision until we get constant up to 64 bits. - Calculate the value using float( hardware precision). - Compare real and float value by calculating *E(x,y) = log(2,z)*, z = number of floating-point between real and approximate answers. - averaging these differences over the sampling to see how accurate the expression is. 1. Pick Candidate - Pick candidates (subexpression) from the table and apply error calculation as well as a local error at each location on the sampled points. - the database will have a set of rewrite rules like commutativity, associativity, distributivity, (x + y) = (x**2 - y**2)/(x - y), (x - y) = (x**3 - y**3)/(x**2 + y**2 + x*y), x = exp(log( x )) etc.. 1. Recursive- rewrite - Rewrite candidates using the database of rules and simplify to cancel terms. - Recursively repeat the algorithm on the best subexpression. 2. Series Expansion 1. Finding the series expansion of expressions to remove error near 0 and infinity. 3. Candidate Tree 1. Only keep those candidates that give the best accuracy on at least one location. 2. On every iteration of the outer loop, the algorithm chooses the program from the table and uses it to find new candidates, every program is used once. 3. Candidate programs are also saved as a pair of maps that are tied with the location that they are best at. 4. removing candidates if more than one candidate is giving the same results based on their results at other locations. 5. Before the series approximation step, we will use the set cover approximation algorithm to prune candidates to have a minimal set. 4. Get Piecewise solutions 1. Split is found using dynamic programming and later refined using binary search. These are the functions: *Definition-main(program) :* points := sample-inputs(program) exacts := evaluate-exact(program, points) table := make-candidate-table(simplify(program)) repeat N times candidate:= pick-candidate(table) locations := sort-by-local-error(all-locations(candidate)) locations.take(M ) rewritten := recursive-rewrite(candidate, locations) new-candidates := simplify-each(rewritten) table.add(new-candidates) approximated := series-expansion(candidate, locations) table.add(approximated) return infer-regimes(table).as-program *Definition local-error(expr, points) :* for point ∈ points : args := evaluate-exact(expr.children) exact-ans := F(expr.operation.apply-exact(args)) approx-ans := expr.operation.apply-approx(F(args)) accumulate E(exact-ans, approx-ans) *Definition recursive-rewrite(expr, target) :* select input output from RULES where input.head = expr.operator ∧ output.head = target.head for (subexpr, subpattern) ∈ zip(expr.children, input.children) : if ¬matches(subexpr, subpattern) : recursive-rewrite(subexpr, subpattern) where matches(expr, input) expr.rewrite(input -> output) *Definition infer-regimes(candidates, points) :* for x i ∈ points : best-split 0 [x i ] = [regime(best-candidate(−∞, x i ), −∞, x i )] for n ∈ N until best-split n+1 = best-split n : for x i ∈ points ∪ {∞} : for x j ∈ points, x j < x i : extra-regime := regime(best-candidate(x j , x i ), x i , x j ) option[x j ] := best-split[x j ] ++ [extra-regime] best-split n+1 [x i ] := lowest-error(option) if best-split n [x i ].error − 1 ≤ best-split n+1 [x i ].error : best-split n+1 [x i ] := best-split n [x i ] split:= best-split ∗ [∞] split.refine-by-binary-search() return split I have written a basic brute force code. from sympy import * import numpy as np x = Symbol("x") y = Symbol("y") z = Symbol("z") #points maxi = 100 mini = -100 step = (maxi-mini)/256 start = mini points = [] for i in range(0,256): points.append(start) start += step #calculate error def calc_error(expr,point): from mpmath import mp, mpf mp.dps = 1000 symb = expr.atoms(Symbol) unq_sym = len(symb) subst_sym = [] subst_mpf = [] i=0 for sym in symb: subst_sym.append((x,point)) #subst_sym.append((x,300)) #subst_sym.append((z,400)) subst_mpf.append( ( sym,mpf(point) ) ) i = i+1 ans1 = expr.subs(subst_sym) ans2 = expr.subs(subst_mpf) return ans1,ans2 #replacement functions #database rule = [] rule.append(lambda exp: (exp.args[0]**3 + exp.args[1]**3)/(exp.args[0]**2 + exp.args[1]**2 - exp.args[1]*exp.args[0]) if type(exp) ==Add and len (exp.args)==2
[sympy] Re: GSOC Introduction
I am referring the given links for optimizing floating-point expressions https://herbie.uwplse.org/ https://ece.uwaterloo.ca/~dwharder/NumericalAnalysis/02Numerics/Double/paper.pdf *T**o Do* - *1]* *databases of rules **to find rearrangements*(the database can be updated by user) - Including those for the commutativity, associativity, distributivity - Identity of basic arithmetic operators - Fraction arithmetic - Laws of squares, square roots, exponents, logarithms - Some basic facts of trigonometry - *2]* *sampling points* - These input points are sampled uniformly from the set of floating point bit patterns. - Each sampled point is a combination of a random mantissa, exponent, and a sign bit. - By sampling exponents uniformly, We can generate both very small and very large input points, as well as inputs of normal size - *3]* *error calculation* - STOKE: error = no_of_floating_point_values_between(approximate and exact_answer) - E(x, y) = log 2 |{z ∈ FP | min(x, y) ≤ z ≤ max(x, y)}| - mpmath can be used for this operation. - *4]* *localizing the error points and operators* - We use a greedy, hill-climbing search to tracks a set of candidate programs - apply rules at various locations in these candidates, evaluates each resulting program, and repeats the process on the best candidates. - For polynomial approximations, we can use sympy specialized series expansion pass to handle inaccuracies near 0 and ±∞ - *7] recursively solving the subparts* - Simplifying the equation - Replacing the expression using the different equations from the database. - Series expansion - recursively solving the candidate keys. - *5]* *finding operati**ons** with the highest error* - using srepr tree for getting subexpressions. - For each operation, we will average the local error for all sample points, - focuse its rewrites at the operations with the highest average - simplifying rewrites after every step. - *6]* *Updating** program Table* - keeping only those candidates that achieve the best accuracy on at least one sample point. - store the processed program - after adding the candidate it might happen that previously added are no longer best so they can also be removed from the table. - above mentioned paper suggests that in practice, running until the table reaches saturation does not give better results than running for 3 iterations. - *7] returning the split Piecewise expression for different ranges* - based on the sample points *Functions (refering the above mentioned lines), I want to implement the following functions for my GSOC project* Definition-main(program) : points := sample-inputs(program) exacts := evaluate-exact(program, points) table := make-candidate-table(simplify(program)) repeat N times candidate:= pick-candidate(table) locations := sort-by-local-error(all-locations(candidate)) locations.take(M ) rewritten := recursive-rewrite(candidate, locations) new-candidates := simplify-each(rewritten) table.add(new-candidates) approximated := series-expansion(candidate, locations) table.add(approximated) return infer-regimes(table).as-program - Definition local-error(expr, points) : for point ∈ points : args := evaluate-exact(expr.children) exact-ans := F(expr.operation.apply-exact(args)) approx-ans := expr.operation.apply-approx(F(args)) accumulate E(exact-ans, approx-ans) - Definition recursive-rewrite(expr, target) : select and where are non-deterministic choice and requirement select input output from RULES where input.head = expr.operator ∧ output.head = target.head for (subexpr, subpattern) ∈ zip(expr.children, input.children) : if ¬matches(subexpr, subpattern) : recursive-rewrite(subexpr, subpattern) where matches(expr, input) expr.rewrite(input -> output) - Definition simplify(expr) : iters := iters-needed(expr) egraph := make-egraph(expr) repeat iters times : for node ∈ egraph : for rule ∈ SIMPLIFY - RULES : attempt-apply(rule, node) return extract-smallest-tree(egraph) - Definition iters-needed(expr) : if is-leaf(expr) : return 0 else : sub-iters := map(iters-needed, expr.children) iters-at-node :=
[sympy] Re: GSoC Introduction
Welcome! On Mar 29, 6:32 pm, Nishant Jain nishant@gmail.com wrote: Hi, I am a student at the Indian Institute of Technology, Kharagpur. I'm a third year undergraduate student studying mathematics and computing. I have gone through the Ideas page and I am interested on working on 'Efficient Groebner bases and their application'.(Introduction to Abstract Algebra is one of my courses in the current semester.) I am going through the code and I'll submit a patch soon. I have a bit of coding experience in C/C++, Java, Perl, Python. I hope to contribute to Sympy. We are looking forward to your contribution. Let us know if you have any questions. Vinzent -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSOC Introduction
Hi, I am looking at Issue 834 http://code.google.com/p/sympy/issues/detail?id=834. I feel I understand the problem and how I would fix it. But would I be able to get feedback on what fix would be best so I can practice submitting a patch? I've added a comment to the issue with my questions about the issue. Ben M On Mar 28, 9:08 am, Aaron S. Meurer asmeu...@gmail.com wrote: Yes, the present use case is only for integers. We do not really use floating point numbers (our numerical library, mpmath, has its own arbitrary precision floating point implementation). This can be expanded, though, to cover other C types, like arrays for lists/tuples. Aaron Meurer On Mar 27, 2011, at 5:22 AM, Ben M wrote: Hey, I’m learning about SymPy’s use of Cython at the moment so I can write my proposal. I've been looking at past discussions and the code. The ‘cythonized’ decorator seems to cast all given variables to local C int types ('cython.int'). Why only ints and no decimals? Is this because SymPy has its own way of representing rational numbers and will other modules only make use of ints? Thanks. Ben M On Mar 26, 3:22 pm, Ben M mcdonald@gmail.com wrote: Hi. I'm continuing to look at Cython. I've added a wiki page.https://github.com/sympy/sympy/wiki/Optimising-SymPy-using-Cython... Ben M On Mar 24, 1:10 pm, Aaron S. Meurer asmeu...@gmail.com wrote: Yes, maybe you could look at cythonizing the logic code (ilke the SAT solver). Another idea that comes to mind is the matrices. The other really big main part aside from the core is the polys, but Mateusz has already been working on cythonizing the core of that. Maybe you could see what he has done and if more could be done (see the @cythonized decorators in some of the files in sympy/polys/). Aaron Meurer On Mar 23, 2011, at 5:44 PM, Ronan Lamy wrote: Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to
[sympy] Re: GSoC Introduction. Perturbation theory example
Can some one help me and tell what I should do next... I create some kind of application: https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Anatolii-Koval (will appreciative to hear critic and amendments) I have send pull request: https://github.com/sympy/sympy/pull/159 and waiting for approving or comments But currently really don't know what I should to do next to participate the project... Sorry if my question is stupid, but I really disoriented. Regards, Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
Some general comments: * It would be useful if you have a patch that changed sympy itself. While your example is nice, it doesn't show that you have dived into the sympy code base. * You need to have a very specific and concrete proposal for what you will do. This needs to include, background and motivation, demonstrate an understanding of the math/physics, a weekly plan of what you will do, code-level details of the various components. I strongly suggest looking at previous year's proposals on the WIki. * Describe what types of Perturbation theories you will implement. How will you implement them (in detail)? * What will the interfaces in the code looks like? What objects/modules will you implement? * How will you handle the sum in perturbation theory? * What examples/tests/documentation will you write. Hope that helps, Brian On Mon, Mar 28, 2011 at 2:07 PM, weralwolf weralw...@gmail.com wrote: Can some one help me and tell what I should do next... I create some kind of application: https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Anatolii-Koval (will appreciative to hear critic and amendments) I have send pull request: https://github.com/sympy/sympy/pull/159 and waiting for approving or comments But currently really don't know what I should to do next to participate the project... Sorry if my question is stupid, but I really disoriented. Regards, Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- Brian E. Granger Cal Poly State University, San Luis Obispo bgran...@calpoly.edu and elliso...@gmail.com -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Mon, Mar 28, 2011 at 2:07 PM, weralwolf weralw...@gmail.com wrote: Can some one help me and tell what I should do next... I create some kind of application: https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Anatolii-Koval (will appreciative to hear critic and amendments) I have send pull request: https://github.com/sympy/sympy/pull/159 and waiting for approving or comments But currently really don't know what I should to do next to participate the project... Sorry if my question is stupid, but I really disoriented. Here is the Google timeline: http://www.google-melange.com/gsoc/events/google/gsoc2011 so the applications open today, and end on April 8. You apply using the google-melange.com webapp to the sympy project. Depending on the number of applications, Google will assign us some number of slots, usually roughly from 1/3 to 1/5 of all applications (e.g. for example 10 out of 30), and then we select the best ones. The idea is to write as good application as you can, and the best way to do it is to discuss it on the sympy list and with us, as you have been doing. Brian has offered you some useful suggestions, that you can incorporate. Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSOC Introduction
Hey, I’m learning about SymPy’s use of Cython at the moment so I can write my proposal. I've been looking at past discussions and the code. The ‘cythonized’ decorator seems to cast all given variables to local C int types ('cython.int'). Why only ints and no decimals? Is this because SymPy has its own way of representing rational numbers and will other modules only make use of ints? Thanks. Ben M On Mar 26, 3:22 pm, Ben M mcdonald@gmail.com wrote: Hi. I'm continuing to look at Cython. I've added a wiki page.https://github.com/sympy/sympy/wiki/Optimising-SymPy-using-Cython... Ben M On Mar 24, 1:10 pm, Aaron S. Meurer asmeu...@gmail.com wrote: Yes, maybe you could look at cythonizing the logic code (ilke the SAT solver). Another idea that comes to mind is the matrices. The other really big main part aside from the core is the polys, but Mateusz has already been working on cythonizing the core of that. Maybe you could see what he has done and if more could be done (see the @cythonized decorators in some of the files in sympy/polys/). Aaron Meurer On Mar 23, 2011, at 5:44 PM, Ronan Lamy wrote: Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSOC Introduction
Yes, the present use case is only for integers. We do not really use floating point numbers (our numerical library, mpmath, has its own arbitrary precision floating point implementation). This can be expanded, though, to cover other C types, like arrays for lists/tuples. Aaron Meurer On Mar 27, 2011, at 5:22 AM, Ben M wrote: Hey, I’m learning about SymPy’s use of Cython at the moment so I can write my proposal. I've been looking at past discussions and the code. The ‘cythonized’ decorator seems to cast all given variables to local C int types ('cython.int'). Why only ints and no decimals? Is this because SymPy has its own way of representing rational numbers and will other modules only make use of ints? Thanks. Ben M On Mar 26, 3:22 pm, Ben M mcdonald@gmail.com wrote: Hi. I'm continuing to look at Cython. I've added a wiki page.https://github.com/sympy/sympy/wiki/Optimising-SymPy-using-Cython... Ben M On Mar 24, 1:10 pm, Aaron S. Meurer asmeu...@gmail.com wrote: Yes, maybe you could look at cythonizing the logic code (ilke the SAT solver). Another idea that comes to mind is the matrices. The other really big main part aside from the core is the polys, but Mateusz has already been working on cythonizing the core of that. Maybe you could see what he has done and if more could be done (see the @cythonized decorators in some of the files in sympy/polys/). Aaron Meurer On Mar 23, 2011, at 5:44 PM, Ronan Lamy wrote: Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe
[sympy] Re: GSoC Introduction. Perturbation theory example
On Mar 25, 2:41 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: On 24 Mrz., 17:54, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent I guide your tip and after few minutes get this:http://pygments.org/demo/17051/ - could it be as good example? If yes, how I can submit it? Nice, this is exactly what I meant with polishing. About submitting it, I think Ondrej answered your question. Why did you add all these semicolons? In Python there is no need for them, a newline has the same effect as ';' (except for code inside parentheses). Vinzent All that semicolons are coming from my C++ coding style. I put it everywhere it just can be placed, in this way I fill some kind of order. I just really like it =) Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Fri, Mar 25, 2011 at 8:35 AM, weralwolf weralw...@gmail.com wrote: On Mar 25, 2:41 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: On 24 Mrz., 17:54, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent I guide your tip and after few minutes get this:http://pygments.org/demo/17051/ - could it be as good example? If yes, how I can submit it? Nice, this is exactly what I meant with polishing. About submitting it, I think Ondrej answered your question. Why did you add all these semicolons? In Python there is no need for them, a newline has the same effect as ';' (except for code inside parentheses). Vinzent All that semicolons are coming from my C++ coding style. I put it everywhere it just can be placed, in this way I fill some kind of order. I just really like it =) All code in sympy should conform to the Python coding guidelines: http://www.python.org/dev/peps/pep-0008/ so no semicolons, and also the names of the functions should be lowercase_with_underscores. Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
On Mar 25, 7:50 pm, Ondrej Certik ond...@certik.cz wrote: On Fri, Mar 25, 2011 at 8:35 AM, weralwolf weralw...@gmail.com wrote: On Mar 25, 2:41 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: On 24 Mrz., 17:54, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent I guide your tip and after few minutes get this:http://pygments.org/demo/17051/ - could it be as good example? If yes, how I can submit it? Nice, this is exactly what I meant with polishing. About submitting it, I think Ondrej answered your question. Why did you add all these semicolons? In Python there is no need for them, a newline has the same effect as ';' (except for code inside parentheses). Vinzent All that semicolons are coming from my C++ coding style. I put it everywhere it just can be placed, in this way I fill some kind of order. I just really like it =) All code in sympy should conform to the Python coding guidelines: http://www.python.org/dev/peps/pep-0008/ so no semicolons, and also the names of the functions should be lowercase_with_underscores. Ondrej Thanks for tip, I've fix semicolons and etc. Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSOC Introduction
Hi. I'm continuing to look at Cython. I've added a wiki page. https://github.com/sympy/sympy/wiki/Optimising-SymPy-using-CythonGSoC-Proposal,-Ben-McDonald Ben M On Mar 24, 1:10 pm, Aaron S. Meurer asmeu...@gmail.com wrote: Yes, maybe you could look at cythonizing the logic code (ilke the SAT solver). Another idea that comes to mind is the matrices. The other really big main part aside from the core is the polys, but Mateusz has already been working on cythonizing the core of that. Maybe you could see what he has done and if more could be done (see the @cythonized decorators in some of the files in sympy/polys/). Aaron Meurer On Mar 23, 2011, at 5:44 PM, Ronan Lamy wrote: Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
On 24 Бер, 00:22, Ondrej Certik ond...@certik.cz wrote: On Wed, Mar 23, 2011 at 1:42 PM, weralwolf weralw...@gmail.com wrote: On 23 Бер, 21:48, Ondrej Certik ond...@certik.cz wrote: On Wed, Mar 23, 2011 at 10:04 AM, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice! I ran your script, and got a number: -0.281647771314390 Then I printed E_n(_n, _a, _mass).n() and I got: 0.197392088021787 so the 0.197... is the original energy, and -0.281... is the corrected one? Yes, you are right, it's exactly what I mean in script. How hard would it be to do more perturbation terms, so that we can see some kind of convergence in the energies? People don't do that by hand, because it is tedious, but with sympy, it might be possible. That'd be really cool. It wouldn't be much harder, we just should wright down formulas for next perturbation terms, or provide way for calculating more general formula. I write it just for two first terms cause anyone who does work with perturbation theory or just learn it in University should know they. Indeed, I agree with your conclusions, it'd be really cool to make this work with brakets. It should be really shorter and simply. Can you guide me to get application for this idea? Definitely. Go to the wiki: https://github.com/sympy/sympy/wiki/Gsoc-current-applications and start crafting it up, then ask for feedback, and I and other people will try to help. Ondrej Thanks! I'll start today. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
On Mar 24, 12:22 am, Ondrej Certik ond...@certik.cz wrote: On Wed, Mar 23, 2011 at 1:42 PM, weralwolf weralw...@gmail.com wrote: On 23 Бер, 21:48, Ondrej Certik ond...@certik.cz wrote: On Wed, Mar 23, 2011 at 10:04 AM, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice! I ran your script, and got a number: -0.281647771314390 Then I printed E_n(_n, _a, _mass).n() and I got: 0.197392088021787 so the 0.197... is the original energy, and -0.281... is the corrected one? Yes, you are right, it's exactly what I mean in script. How hard would it be to do more perturbation terms, so that we can see some kind of convergence in the energies? People don't do that by hand, because it is tedious, but with sympy, it might be possible. That'd be really cool. Indeed, I agree with your conclusions, it'd be really cool to make this work with brakets. It should be really shorter and simply. Can you guide me to get application for this idea? Definitely. Go to the wiki: https://github.com/sympy/sympy/wiki/Gsoc-current-applications and start crafting it up, then ask for feedback, and I and other people will try to help. Ondrej So, I went there and create draft of my application: https://github.com/sympy/sympy/wiki/Perturbation-theory-by-Anatolii-Koval . Will be very appreciative to hear some fixes or proposals about it. Also I will write more information little bit later. Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory
Sorry, but due to unexpected error what happens to my yesterday I think it will be more useful to continue this topic there: http://groups.google.com/group/sympy/browse_thread/thread/ade9df0af84bd17c -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
24.03.2011 19:22, weralwolf пишет: Hi, It's very hopeful title, but I just notice that : Yes, let's use this convention. Title the page like GSoC 2011 Application Your Name. Someone go ahead and rename all existing pages to this format. Aaron Meurer http://groups.google.com/group/sympy/browse_thread/thread/3184d64aefba96c9?hl=en So, I went there and create draft of my application: https://github.com/sympy/sympy/wiki/Perturbation-theory-by-Anatolii-Koval . Will be very appreciative to hear some fixes or proposals about it. Also I will write more information little bit later. Anatolii -- Alexey U. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
2011/3/24 Alexey U. Gudchenko pr...@goodok.ru 24.03.2011 19:22, weralwolf пишет: Hi, It's very hopeful title, but I just notice that : Yes, let's use this convention. Title the page like GSoC 2011 Application Your Name. Someone go ahead and rename all existing pages to this format. Aaron Meurer http://groups.google.com/group/sympy/browse_thread/thread/3184d64aefba96c9?hl=en Thanks! I have rename my application https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Anatolii-Koval So, I went there and create draft of my application: https://github.com/sympy/sympy/wiki/Perturbation-theory-by-Anatolii-Koval . Will be very appreciative to hear some fixes or proposals about it. Also I will write more information little bit later. Anatolii -- Alexey U. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent Hm... I hope it could be added as example. But can you tell me what exactly I should polish, may be more comments or you talking about coding style? Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Thu, Mar 24, 2011 at 9:59 AM, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent Hm... I hope it could be added as example. But can you tell me what exactly I should polish, may be more comments or you talking about coding style? Can you please add the link here: https://github.com/sympy/sympy/wiki/GSoc-2011-current-applications so we can access it from one place? I also corrected the wiki front page, the link to GSoc-2011-current-applications was broken. Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Thu, Mar 24, 2011 at 11:06 AM, Ondrej Certik ond...@certik.cz wrote: On Thu, Mar 24, 2011 at 9:59 AM, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent Hm... I hope it could be added as example. But can you tell me what exactly I should polish, may be more comments or you talking about coding style? Can you please add the link here: https://github.com/sympy/sympy/wiki/GSoc-2011-current-applications so we can access it from one place? I also corrected the wiki front page, the link to GSoc-2011-current-applications was broken. Btw, I think that perturbation theory module would work well with the project idea I just posted on the sympy list: Implement All Known Analytical Solutions to Quantum Mechanical Systems. So that one can use known analytical solutions from sympy, and then use perturbation theory to solve more QM systems. Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Thu, Mar 24, 2011 at 1:12 PM, Ondrej Certik ond...@certik.cz wrote: On Thu, Mar 24, 2011 at 11:06 AM, Ondrej Certik ond...@certik.cz wrote: On Thu, Mar 24, 2011 at 9:59 AM, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent Hm... I hope it could be added as example. But can you tell me what exactly I should polish, may be more comments or you talking about coding style? Can you please add the link here: https://github.com/sympy/sympy/wiki/GSoc-2011-current-applications so we can access it from one place? I also corrected the wiki front page, the link to GSoc-2011-current-applications was broken. Btw, I think that perturbation theory module would work well with the project idea I just posted on the sympy list: Implement All Known Analytical Solutions to Quantum Mechanical Systems. So that one can use known analytical solutions from sympy, and then use perturbation theory to solve more QM systems. Yep! Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- Brian E. Granger Cal Poly State University, San Luis Obispo bgran...@calpoly.edu and elliso...@gmail.com -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory example
On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent I guide your tip and after few minutes get this: http://pygments.org/demo/17051/ - could it be as good example? If yes, how I can submit it? Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Thu, Mar 24, 2011 at 2:54 PM, weralwolf weralw...@gmail.com wrote: On Mar 24, 6:53 pm, Vinzent Steinberg vinzent.steinb...@googlemail.com wrote: Hi, On Mar 23, 6:04 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice, do you think this could be polished a bit and added to sympy's examples? This could be your first patch. :) Vinzent I guide your tip and after few minutes get this: http://pygments.org/demo/17051/ - could it be as good example? If yes, how I can submit it? Create a pull request to sympy, adding it into the examples directory. More info here: http://sympy.org/development.html Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory
On Mar 23, 12:57 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all sympy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ I think you forgot to put from sympy import S at the top. Did I get it right that you calculate the ground state energy of the 1D infinite potential well of width $a$ with a perturbation which is linear in $x$, up to second order in perturbation? I think in general your code is fine. What you might want to do is - have V an operator - same for the unpertubed Hamiltonian H - being able to write those operators in matrix form in a particular basis - find the basis which diagonalizes H - use this basis to represent H and V in matrix forms - compute perturbation theory to first, second, etc. order by looking up the matrix forms - make it general enough to handle degenerate cases I think some of this is possible already, but I haven't looked deeply into it. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory
2011/3/23 Julien Rioux julien.ri...@gmail.com On Mar 23, 12:57 pm, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all sympy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ I think you forgot to put from sympy import S at the top. Yes, thanks, I really miss it! I just remove it in the last moment before highlighting code. Did I get it right that you calculate the ground state energy of the 1D infinite potential well of width $a$ with a perturbation which is linear in $x$, up to second order in perturbation? Yes, you are right. I try to calculate the ground state energy for that case what you describe. I think in general your code is fine. What you might want to do is - have V an operator - same for the unpertubed Hamiltonian H - being able to write those operators in matrix form in a particular basis - find the basis which diagonalizes H - use this basis to represent H and V in matrix forms - compute perturbation theory to first, second, etc. order by looking up the matrix forms - make it general enough to handle degenerate cases I think some of this is possible already, but I haven't looked deeply into it. Thanks, I'll look deeply, may be I'll find some solutions of this points. I'll search methods to solve it in current SymPy state. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSoC Introduction. Perturbation theory
Problem was solved when I reconnect from other network. Because before I haven't see any discussions after 22.03.11 On 23 Бер, 20:52, Aaron S. Meurer asmeu...@gmail.com wrote: I don't think it's possible to delete a discussion on a public mailing list. But I think Google Groups has a bug where sometimes it does not show discussions when searching or when browsing for whatever reason. But they are still there (you can usually find them by doing a normal Google search). Aaron Meurer On Mar 23, 2011, at 10:57 AM, weralwolf wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all sympy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ P.S. Why my previous discussion(One more GSoC Introduction) was deleted? Regards, Anatolii -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSoC Introduction. Perturbation theory example
On Wed, Mar 23, 2011 at 1:42 PM, weralwolf weralw...@gmail.com wrote: On 23 Бер, 21:48, Ondrej Certik ond...@certik.cz wrote: On Wed, Mar 23, 2011 at 10:04 AM, weralwolf weralw...@gmail.com wrote: Hello, where my simple example of calculations corrections due to perturbation theory for hole with infinite walls. I thinks I didn't use all SymPy features, so if it possible guide me. Source:http://pygments.org/demo/16998/ Nice! I ran your script, and got a number: -0.281647771314390 Then I printed E_n(_n, _a, _mass).n() and I got: 0.197392088021787 so the 0.197... is the original energy, and -0.281... is the corrected one? Yes, you are right, it's exactly what I mean in script. How hard would it be to do more perturbation terms, so that we can see some kind of convergence in the energies? People don't do that by hand, because it is tedious, but with sympy, it might be possible. That'd be really cool. Indeed, I agree with your conclusions, it'd be really cool to make this work with brakets. It should be really shorter and simply. Can you guide me to get application for this idea? Definitely. Go to the wiki: https://github.com/sympy/sympy/wiki/Gsoc-current-applications and start crafting it up, then ask for feedback, and I and other people will try to help. Ondrej -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
[sympy] Re: GSOC Introduction
Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSOC Introduction
Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Re: [sympy] Re: GSOC Introduction
Yes, maybe you could look at cythonizing the logic code (ilke the SAT solver). Another idea that comes to mind is the matrices. The other really big main part aside from the core is the polys, but Mateusz has already been working on cythonizing the core of that. Maybe you could see what he has done and if more could be done (see the @cythonized decorators in some of the files in sympy/polys/). Aaron Meurer On Mar 23, 2011, at 5:44 PM, Ronan Lamy wrote: Le mercredi 23 mars 2011 à 16:09 -0700, Friedman a écrit : Thanks for the link Aaron. What other parts of SymPy could be optimised without working on deprecated code? I could try to produce a dependence graph to find the most referenced modules. I read in that thread that removing the old assumptions could be a challenging project. What skills does it rely on? Is it more mathematics or software engineering? I have more experience in the later doing a Comp. Sc. degree (encapsulation, modularity, OO design patterns). I think it's mostly software engineering (refactoring, interface design, ...) with a side dish of hardcore CS/AI topics (knowledge base maintenance and indexing, inductive reasoning, ...) We probably also need to implement simplification of boolean expressions. On Mar 24, 7:56 am, Aaron S. Meurer asmeu...@gmail.com wrote: You might read through this thread from a few days agohttp://groups.google.com/group/sympy/browse_thread/thread/18f0197965e Note that there might be a problem with the Cythonizing the core because we still need to remove the old assumptions (this would itself be a whole GSoC project). However, if you are still interested in Cython, you might look at cythonizing other core parts of SymPy. Aaron Meurer On Mar 23, 2011, at 5:20 AM, Friedman wrote: Hello SymPy people, I’m a Computer Science student currently completing my Master’s thesis at the University of Canterbury, New Zealand. I am looking to participate in gsoc this year. I would like to contribute to sympy because I have both an interest in mathematics and Python. Python is currently my language of choice. I use Python in my studies and I also tutor Python in undergraduate classes. I’m considering the Cython project to optimise the core. I used Cython in Master’s project to optimise processor/memory intensive methods. With Cython I increase the performance of my code while leaving the original Python code unchanged by adding Cython headers (.pyx) to modules to convert the Python into C++. It would be very interesting to be involved in doing the same to sympy. Currently looking through the discussion topics to see what would be required of the Cython project. Just wanted to express my interest in this project at this moment. Ben M. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups sympy group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.