I accidentally made a mistake while explaining, in the photo with the AVL tree, the polynomial represented is P(x) = Cx^3 + Bx^2 + Ax, the {+0, +1, +2} tags are the heights for each node for the rotation.Sorry about that.
Στις Τετάρτη 17 Ιανουαρίου 2024 στις 5:54:55 μ.μ. UTC+2, ο χρήστης Spiros Maggioros έγραψε: > Sure, as for using AVL trees to represent polynomials, the idea follows > the same approach as the AVL trees in case of insertion and deletion, so we > have O(logn) insertions and deletion, the tree stays balanced and we can > have the polynomial ordered every time.Here's an image for better > understanding: > Here is a simple Right-Right rotation for the insertion process. > > [image: Screenshot 2024-01-17 at 17-48-49 polynomial_trees.png] > Where A, B, C are the coefficients, i.e. the polynomial that this tree > represents is P(x) = Ax^2 + Bx + C. > [image: Screenshot 2024-01-17 at 17-51-59 polynomial_trees.png] > So we showed that, using AVL trees instead of arrays is much better(note > that even linked lists is slower cause the insertion time complexity is > O(n)). > I have not seen the data structure that is used in SymPy, but i'm planning > to check what i need to see cause right now i'm in exam period and i have > no time at all. > I will see the issues in the poly section as well and see if i can help > with something easy for now, cause i'm planning to apply for the GSoC this > year as well. > > Thanks for the information Oscar, i really appreciate that. > > Στις Τετάρτη 17 Ιανουαρίου 2024 στις 5:39:59 μ.μ. UTC+2, ο χρήστης Oscar > έγραψε: > >> On Wed, 17 Jan 2024 at 15:16, Spiros Maggioros <maggior...@gmail.com> >> wrote: >> > >> > Hi everyone! >> >> Hi Spiros, >> >> > My name is Spiros Maggioros and i'm a 3rd year undegraduate electrical >> & computer engineering student at National Technical University of >> Athens.I've worked as a machine learning engineering intern at OTE(HTO), >> i'm the lead of IEEEXtreme for the Greek section and a Computer Lab >> Assistant for my university.I have my own computer science research team >> working on prediction optimizations and algorithms.I would love to start >> contributing to SymPy and start solving some issues. >> > >> > One year ago i wrote a paper for polynomials representation(in the >> sparse representation) using AVL trees, and i would love to share my idea. >> >> That sounds interesting. Do you have a link to it or can you explain >> the idea briefly here? >> >> > Also, i would love to help with the implementation of the Polynomial >> GCD.Every help and details on what's the best way to contribute will be >> helpful! >> >> That's great. There was a GSOC project last Summer looking at >> polynomial GCD which made some good progress but there is still plenty >> more to do. >> >> Polynomials in particular are a high priority item for SymPy. Right >> now the two top priority items for polys are (any progress on either >> would be good): >> >> 1. Improve SymPy's existing implementation and algorithms for polynomial >> gcd. >> 2. Expose Flint's sparse polynomials in python-flint and add the >> wrapper code in SymPy so that SymPy can use them when python-flint is >> available. >> >> There is a start on the python-flint part here but it seems to be >> stalled: >> https://github.com/flintlib/python-flint/pull/59 >> >> Working on python-flint requires working with C and Cython as well as >> Python which might not be suitable. >> >> As for SymPy's existing polynomial GCD algorithms there is a pull >> request from GSOC 23 that never got finished: >> https://github.com/sympy/sympy/pull/25442 >> >> I think that PR needs to be broken down. Some parts were extracted to >> other PRs that got merged but the final piece didn't get finished. >> Right now the problem with it is that it mixes up some things that >> should be part of the general GCD preprocessing steps (like removing >> unneeded variables) in with the PRS algorithm which should just be >> implemented in a more direct way. The basic code there seems >> reasonable but I don't think that it is organised in the right way. >> >> Another thing that needs looking at is the code in >> sympy/polys/modulargcd. It looks like good code but isn't used >> anywhere and is not well tested. >> >> For initial contribution you might want to look at something a bit >> easier than working on the polys GCD code though. There are some 300 >> open issues with the polys tag if you are interested specifically in >> polynomials: >> >> https://github.com/sympy/sympy/issues?q=is%3Aissue+is%3Aopen+label%3Apolys+ >> >> -- >> Oscar >> > -- 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/da3d91aa-54ef-4458-afb1-cf3b6bd4dfe5n%40googlegroups.com.