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. Best, Chris -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
On Tue, Aug 4, 2020 at 1:49 AM Chris Vavaliaris <[hidden email]> wrote: PR #16999: https://github.com/numpy/numpy/pull/16999 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 _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
On Tue, Aug 4, 2020 at 4:55 AM Ralf Gommers <[hidden email]> wrote:
Chebfun is based around this method, they use series with possibly thousands of terms. Trefethen is a big fan of Chebyshev polynomials. Chuck _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
On Tue, Aug 4, 2020 at 6:10 PM Charles R Harris <[hidden email]> wrote:
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.
_______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
> 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.
Exactly this sentence might be useful on top of the FFT page. Is the right page reference/routines.fft.html? I can submit a PR. _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
On Wed, Aug 5, 2020 at 8:16 PM Ben Nathanson <[hidden email]> wrote: > 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. A PR would be great, thanks Ben. And yes, that's the right page. Cheers, Ralf _______________________________________________ _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
In reply to this post by Stephan Hoyer-2
Stephan Hoyer-2 wrote
> On Tue, Aug 4, 2020 at 6:10 PM Charles R Harris < > charlesr.harris@ > > > wrote: > >> >> >> On Tue, Aug 4, 2020 at 4:55 AM Ralf Gommers < > ralf.gommers@ > > >> wrote: >> >>> >>> >>> On Tue, Aug 4, 2020 at 1:49 AM Chris Vavaliaris < > cv1038@.unh > > >>> 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. >> > > 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@ >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@ > https://mail.python.org/mailman/listinfo/numpy-discussion Thank you all for the replies and feedback! I now have a better understanding of the differences between the NumPy and SciPy FFT modules; it certainly looks like SciPy would be a more appropriate place for such a feature. > Chebfun is based around this method, they use series with possibly > thousands of terms. Trefethen is a big fan of Chebyshev polynomials. > > Chuck Thank you Chuck for your comment; yes I'm aware of Chebfun and of Trefethen's work in general, it's mostly the work of his and some of his past grad students that got me interested in Chebyshev methods in the first place! Chris -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion |
Free forum by Nabble | Edit this page |