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.
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
Dear Oscar,
Thank you for the detailed response and for outlining the priority of integrating python-flint for multivariate polynomials. I have started exploring python-flint and reviewing the existing integration in SymPy.
I had a few questions regarding the implementation:
1. Should DMP_Flint follow the same structure as DUP_Flint, or are there any specific considerations for handling multivariate polynomials efficiently ?
2. For integrating PolyRing and PolyElement, should I strictly follow the approach in polyclasses.py, or are there design differences to account for ?
3. Are there existing benchmark tests for comparing performance improvements with python-flint? If not, what key operations (e.g., gcd, factor) should we focus on for measuring efficiency gains ?
4. Is there an ongoing discussion or PR related to this work that I should follow or contribute to ?
I’d appreciate any insights on these aspects before I begin structuring the implementation. Looking forward to your guidance!
Best regards,
Pratyksh Gupta