I mean numpy. On Thu, Mar 14, 2019 at 3:00 PM Shiksha Rawat <[email protected]> wrote:
> Will importing sympy and using it for computations be helpful here ? > > On Thu, Mar 14, 2019 at 2:38 PM Oscar Gustafsson < > [email protected]> wrote: > >> I am personally not convinced that Karatsuba, Coppersmith-Winograd and >> Strassen will provide much help here. Basically because only rarely, the >> size of the problem is the main issue. These algorithms show excellent >> asymptotic behaviour, but also has an overhead which leads to that quite >> large problems are needed to actually see a speedup in practice. I can >> imagine Karatsuba being useful for (non-sparse) polynomial multiplication, >> but most likely not the other ones, at least for the typical problem sizes >> I can imagine that people are working with symbolically. In addition, one >> should investigate the complexity difference between a multiplication and >> an addition in SymPy. My guess is that the overhead from everything except >> for the actual computation is much higher than the computation itself and >> these algorithms (primarily) reduce the number of multiplications and the >> expense of additions. >> >> (For the record: Karatsuba decreases multiplication from n^2 to n^1.52, >> Strassen matrix multiplication from n^3 to n^2.83, and Coppersmith-Winograd >> matrix multiplication for n^3 to n^2.376. For Coppersmith-Winograd I >> requote from Wikipedia: "However, unlike the Strassen algorithm, it is not >> used in practice because it only provides an advantage for matrices so >> large that they cannot be processed by modern hardware.", and this is for >> numbers, not symbolic computation, which require even more resources.) >> >> BR Oscar >> >> Den tis 12 mars 2019 kl 16:55 skrev Shiksha Rawat < >> [email protected]>: >> >>> 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 >>> <https://groups.google.com/d/msgid/sympy/CAKVsmS5fEy1g-nwLikObhvLb3ZG6hgZnqTT1gwbCVOMV%3DWn4QA%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/CAFjzj-LcJYs8EJ1WWiSNJKJi8sm_gXqfzTVxUC5DuFAFXh5peA%40mail.gmail.com >> <https://groups.google.com/d/msgid/sympy/CAFjzj-LcJYs8EJ1WWiSNJKJi8sm_gXqfzTVxUC5DuFAFXh5peA%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/CAKVsmS5SGswmENfyOmpCjke03NQArpQ%3DUqoSwFVOcHPqCq%3DUFA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
