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

Charles R Harris charlesr.harris at gmail.com
Tue Aug 4 21:09:58 EDT 2020


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

>
>
> 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.
>
>
Chebfun <https://github.com/chebfun/chebfun> is based around this method,
they use series with possibly thousands of terms. Trefethen is a big fan of
Chebyshev polynomials.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20200804/9d984ec2/attachment.html>


More information about the NumPy-Discussion mailing list