Thanks for the info Jason Moore and Vishesh Mangla. I analyzed the mechanics benchmarks. Many of the commits which are increasing the computation time are related to ode, printing , matrices.
I tried to find to find substitute for them. I think LU Decompositon is used in lagrange.py whose time complexity is O(n^3). but it can be replaced by better algo like Coppersmith- Winograd Algorithm(time complexity O(n^2.376)). Also as suggested by Vishesh Mangla, Karatsuba fast multiplication and strassen’s algo can be used for reducing complexity from n^3 to n^1.52. Please correct me if I am wrong. I am still analyzing the benchmarks and trying to find substitutes for other algos. On Tue, Mar 12, 2019 at 1:30 AM Vishesh Mangla <[email protected]> wrote: > Well, representation theory is a part of mathematics which maps a matrix > to a small representation which is easily computable than those big matrix. > This is also related to block diagonalization. Otherwise Karatsuba fast > multiplication and strassen’s algo can be used for reducing complexity from > n^3 to n^1.52. > > > > Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for > Windows 10 > > > > *From: *Jason Moore <[email protected]> > *Sent: *12 March 2019 01:26 > *To: *[email protected] > *Subject: *Re: [sympy] Gsoc Project idea " Efficient Equation of > MotionGeneration with Python" discussion. > > > > > moorepants.info > +01 530-601-9791 > > > > > > On Mon, Mar 11, 2019 at 11:44 AM Shiksha Rawat <[email protected]> > wrote: > > Hello, > > > > I am Shiksha , a second-year undergrad from India. I have been > contributing to Sympy for more than a month now. While going through Gsoc > Ideas page, I found Efficient Equation of Motion Generation with Python > <https://github.com/sympy/sympy/wiki/GSoC-2019-Ideas#classical-mechanics-efficient-equation-of-motion-generation-with-python> > interesting.I had a subject on engineering mechanics in college and I would > be pleased if I get a chance to work on it. > > > > Following are some tasks I want to work on: > > *Cleaning Up The CodeBase- *Going through the files like vector.py, > particle.py , frame.py on which Lagrange.py depends I found that there are > a number of ways by which we can speed up their computations like > enumeration is used at places where it is not required. > > > > Yes this is fine. > > > > > > *Profiling To Find Slow Functions: *Matrices operations take large > computation time so I think they can we replaced at feasible places with > some other data structures. > > > > Matrix operations are likely the best you will get, but we can use more > efficient matrix calcs if we know the structure and type of matrics. Many > matrics in EoM derivation are always positive definitive, symmetric, or > semi-positive definite, etc. > > > > You can see a couple of mechanics benchmarks here: > http://www.moorepants.info/misc/sympy-asv/ > > > > Extensive profiling needs to be done on a variety of mechanics problems > (big ones preferably) and many speed ups can be made to core algorithms in > SymPy that will affect mechanics (and other modules too). > > > > > > I am still going through the works done in sympy.mechanics and would draft > a refined proposal over this and the suggestions I receive. > > > > Since it is mentioned in the status of that idea that no work is done so > far, I am not sure where should I start from.I would love to hear from > mentors as they are more familiar with the topic. > > > > Links to the issues which I have solved(though not related to current > idea): > > https://github.com/sympy/sympy/pull/15842 > > https://github.com/sympy/sympy/pull/15901 > > > > Thanks. > > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAKVsmS4c_LKAxJ2OoZ%2BjKKcYLyGL45A2s1DfP8g7BT1c-1B%2Bgg%40mail.gmail.com > <https://groups.google.com/d/msgid/sympy/CAKVsmS4c_LKAxJ2OoZ%2BjKKcYLyGL45A2s1DfP8g7BT1c-1B%2Bgg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAP7f1AhW07dHr8js%3DNf14DB_azYttbkKY-5mn4ChxGUU0t_pPg%40mail.gmail.com > <https://groups.google.com/d/msgid/sympy/CAP7f1AhW07dHr8js%3DNf14DB_azYttbkKY-5mn4ChxGUU0t_pPg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/5c86be5b.1c69fb81.630b9.8d92%40mx.google.com > <https://groups.google.com/d/msgid/sympy/5c86be5b.1c69fb81.630b9.8d92%40mx.google.com?utm_medium=email&utm_source=footer> > . > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKVsmS5fEy1g-nwLikObhvLb3ZG6hgZnqTT1gwbCVOMV%3DWn4QA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
