Dear Oscar,

Thank you for your detailed response and for outlining the priority of 
integrating FLINT via python-flint for multivariate polynomials. I truly 
appreciate the guidance and the resources you have shared.

Given that this is at the top of SymPy's development roadmap, I am eager to 
contribute to this effort with my whole heart. I will start by exploring 
python-flint. reviewing the existing integration in SymPy, and 
understanding the necessary modifications to rings.py and polyclasses.py.

Best Regards,

Pratyksh

On Saturday, February 8, 2025 at 3:31:21 AM UTC+5:30 Oscar wrote:

> Improving SymPy's multivariate polynomial algorithms does fit with
> SymPy's development roadmap but the top priority item here is making
> use of FLINT via python-flint. You can install the latest development
> version of python-flint from the scientific Python nightly wheels
> index with:
>
> pip install -i 
> https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
> python-flint
>
> https://anaconda.org/scientific-python-nightly-wheels/python-flint
>
> Once you have that you can use it for multivariate polynomials:
>
> In [3]: from flint import fmpz_mpoly_ctx
>
> In [4]: ctx = fmpz_mpoly_ctx.get(['x', 'y'])
>
> In [5]: x, y = ctx.gens()
>
> In [6]: p = x**2 - y**2
>
> In [7]: p
> Out[7]: x^2 - y^2
>
> In [8]: p.factor()
> Out[8]: (1, [(x + y, 1), (x - y, 1)])
>
> This is much faster than SymPy's Python implementations for things
> like arithmetic, gcd, factor etc and has good implementations of good
> algorithms for all the most important operations.
>
> What is needed is for SymPy to make use of this when python-flint is
> installed for multivariate polynomials similar to this PR which was
> for univariate polynomials:
>
> https://github.com/sympy/sympy/pull/25722
>
> The outcome of that is the three classes in polyclasses.py:
>
> https://github.com/sympy/sympy/blob/master/sympy/polys/polyclasses.py
>
> There are DMP, DMP_Python and DUP_Flint with the latter being the
> class that uses python-flint but it is only for univariate
> polynomials. What is needed is to have DMP_Flint there for
> multivariate polynomials based on FLINT but more importantly the first
> thing needed is to have versions of PolyRing and PolyElement based on
> python-flint. The first thing that is needed is that this code needs
> to have alternate versions that can use FLINT:
>
> https://github.com/sympy/sympy/blob/master/sympy/polys/rings.py
>
> Making it so that SymPy uses FLINT via python-flint for things like
> multivariate polynomials is top of the priority list in my development
> roadmap. There are many more things besides just multivariate
> polynomials in FLINT and python-flint that SymPy should make use of as
> well.
>
> On Fri, 7 Feb 2025 at 17:50, Pratyksh Gupta <[email protected]> wrote:
> >
> > Hello SymPy developers,
> >
> > I am excited to share my interest in contributing to SymPy by enhancing 
> its capabilities in multivariate polynomial arithmetic and factorization. 
> Currently, SymPy utilizes Kronecker's method for multivariate polynomial 
> factorization, which, while a solid foundation, lacks the efficiency needed 
> for practical applications. I propose implementing more advanced 
> algorithms, such as Wang's EEZ-GCD or Gao's approach using partial 
> differential equations, to boost the efficiency and usability of 
> multivariate polynomial operations in SymPy.
> >
> > My main question is: Does expanding SymPy's support for efficient 
> multivariate polynomial arithmetic and factorization fit within the 
> project's current development roadmap and priorities?
> >
> > If this aligns with SymPy's objectives, I am eager to contribute to this 
> initiative. I have a strong background in algebra and computational 
> mathematics, which I believe will be valuable in addressing this challenge. 
> I am ready to delve into the implementation details, research 
> state-of-the-art algorithms, and develop a concrete plan to integrate these 
> enhancements into SymPy.
> >
> > To help facilitate this process, I would greatly appreciate any guidance 
> on:
> >
> > Recommended resources or existing work within SymPy that I should review
> >
> > Thank you for your time and consideration. I look forward to your 
> response and am excited about the opportunity to contribute to SymPy's 
> development.
> >
> > Best regards,
> >
> > Pratyksh Gupta.
> >
> > --
> > 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 view this discussion visit 
> https://groups.google.com/d/msgid/sympy/8d38e2ee-bdc5-416b-a50c-bfb993558127n%40googlegroups.com
> .
>

-- 
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 view this discussion visit 
https://groups.google.com/d/msgid/sympy/9ba5a81d-4252-4c59-86e3-4f4d48c870dbn%40googlegroups.com.

Reply via email to