[RFC] The future of Polynomials.jl

Hello all!

Recently I spent some time rewriting Polynomials.jl trying to improve its interface and the internal design of the module. My rewrite has manifested in this PR. Rather than pour over the changes/updates here, I want to ask for some specific advice moving forward.

Alongside @j_verzani and @olof3, we want to figure out the best approach for the future of Polynomials.jl. My questions for the community are:

  1. Would you benefit from an AbstractPolynomial type? My original plan for this was to allow representation of polynomial expansions (like Chebyshev and Legendre) under a common umbrella.
  2. Should we represent some “special” polynomials within this package? For instance, I have currently implemented ChebyshevT (mimicking the numpy.polynomials.Chebyshev module). There is currently a package that can facilitate this, ApproxFunOrthogonalPolynomials.jl, although our approach is less on function approximation and is more concerned with direct manipulation of the polynomials.
  3. If we should keep some “special” polynomials, where should we? Should they exist in Polynomials.jl? Or should we split into a system like AbstractPolynomials.jl - Polynomials.jl - SpecialPolynomials.jl?

I look forward to hearing what the community has to say, especially since this project is pretty widely used. Feel free to comment here or on the PR directly. If you would like a more personal conversation the best approach would be to reach me on the Julia slack (@mileslucas).


I would like to link to this github issue, which is me asking for more special polynomial implementation. I think that a third and seperate pakcage, like SpecialPolynomials.jl, is the right way to do it, provided that the documentation of Polynomials.jl links to it, so that people who come looking for special/named/orthogonal polynomials in Polynomials.jl can find this third package with ease (preferably they should find it when searching for any one of “Named”, “Special”, and “Orthogonal” IMO)

1 Like