[Numpy-discussion] Add Chebyshev (cosine) transforms implemented via FFTs

Ralf Gommers ralf.gommers at gmail.com
Tue Aug 4 06:54:21 EDT 2020


On Tue, Aug 4, 2020 at 1:49 AM Chris Vavaliaris <cv1038 at 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.

Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20200804/60da62d6/attachment.html>


More information about the NumPy-Discussion mailing list