On Tue, Aug 4, 2020 at 6:10 PM Charles R Harris <charlesr.harris@gmail.com> wrote:


On Tue, Aug 4, 2020 at 4:55 AM Ralf Gommers <ralf.gommers@gmail.com> wrote:


On Tue, Aug 4, 2020 at 1:49 AM Chris Vavaliaris <cv1038@wildcats.unh.edu> wrote:
PR #16999: https://github.com/numpy/numpy/pull/16999

Hello all,
this PR adds the two 1D Chebyshev transform functions `chebyfft` and
`ichebyfft` into the `numpy.fft` module, utilizing the real FFTs `rfft` and
`irfft`, respectively. As far as I understand, `pockefft` does not support
cosine transforms natively; for this reason, an even extension of the input
vector is constructed, whose real FFT corresponds to a cosine transform.

The motivation behind these two additions is the ability to quickly perform
direct and inverse Chebyshev transforms with `numpy`, without the need to
write scripts that do the necessary (although minor) modifications.
Chebyshev transforms are used often e.g. in the spectral integration of PDE
problems; thus, I believe having them implemented in `numpy` would be useful
to many people in the community.

I'm happy to get comments/feedback on this feature, and on whether it's
something more people would be interested in. Also, I'm not entirely sure
what part of this functionality is/isn't present in `scipy`, so that the two
`fft` modules remain consistent with one another.

Hi Chris, that's a good question. scipy.fft is a superset of numpy.fft, and the functionality included in NumPy is really only the basics that are needed in many fields. The reason for the duplication stems from way back when we had no wheels and SciPy was very hard to install. So I don't think there's anything we'd add to numpy.fft at this point.

As I commented on your PR, it would be useful to add some references and applications, and then make your proposal on the scipy-dev list.


Chebfun is based around this method, they use series with possibly thousands of terms. Trefethen is a big fan of Chebyshev polynomials.

I am quite sure that Chebyshev transforms are useful, but it does feel like something more directly suitable for SciPy than NumPy. The current division for submodules like numpy.fft/scipy.fft and numpy.linalg/scipy.linalg exists for outdated historical reasons, but at this point it is easiest for users to understand if has SciPy has a strict superset of NumPy's functionality here.


Chuck
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion