[Numpy-discussion] Numpy FFT normalization options issue (addition of new option)

Gregory Lee grlee77 at gmail.com
Wed Jun 24 18:45:04 EDT 2020


norm='forward' is my preference out of the names suggested so far. The
option seems reasonable and should be pretty low maintenance to add.

For SciPy, we would probably be willing to make the corresponding changes
in the scipy.fft module (but probably not in the outdated scipy.fftpack
module).


On Wed, Jun 24, 2020 at 1:38 PM Ross Barnowski <rossbar15 at gmail.com> wrote:

> I think it's also important to get the thoughts of the SciPy community on
> this topic so that we avoid divergence between numpy.fft and scipy.fft. I
> would recommend sending this discussion to the scipy mailing list as well.
>
> ~Ross
>
> On Tue, Jun 23, 2020 at 4:11 PM Feng Yu <rainwoodman at gmail.com> wrote:
>
>> Your approach sounds good to me.
>>
>> Thanks,
>>
>> Yu
>>
>> On Tue, Jun 23, 2020 at 11:51 AM Chris Vavaliaris <
>> cv1038 at wildcats.unh.edu> wrote:
>>
>>> Chris Vavaliaris wrote
>>> > Hello,
>>> >
>>> > - my first reaction would be that the less argument names we change at
>>> a
>>> > time the better, so that we don't confuse people or cause codes written
>>> > with
>>> > previous NumPy versions to break. Personally I always think of "ortho"
>>> as
>>> > "orthonormal", which immediately brings "unit norm" to mind, but I
>>> have no
>>> > problem whatsoever with changing its name to "unitary" or maybe "unit",
>>> > which I'd probably choose if we were writing the routines from
>>> scratch.
>>> >
>>> > - In terms of the "inverse" name option, I do believe that it'd be a
>>> > confusing choice since "inverse" is used to describe the inverse FFT;
>>> if
>>> > we
>>> > choose to stick with a name that's based on the fact that this scaling
>>> is
>>> > opposite to the "norm=None" option, then I'd suggest "norm=opposite"
>>> as a
>>> > better choice. However, following Ross' comment, I think we could
>>> choose a
>>> > name based on the fact that the forward transform is now scaled by `n`,
>>> > instead of the backward one as in the default "norm=None". In this
>>> case,
>>> > I'd
>>> > suggest "norm=forward", which we can also nicely abbreviate to the
>>> > 4-character form "norm=forw" if desirable.
>>> >
>>> > Chris
>>> >
>>> >
>>> > Feng Yu wrote
>>> >> Hi,
>>> >>
>>> >> 1. The wikipedia pages of CFT and DFT refer to norm='ortho' as
>>> 'unitary'.
>>> >> Since we are in general working with complex numbers, I do suggest
>>> >> unitary
>>> >> over ortho.
>>> >> (https://en.wikipedia.org/wiki/Fourier_transform#Other_conventions)
>>> and (
>>> >>
>>> https://en.wikipedia.org/wiki/Discrete_Fourier_transform#The_unitary_DFT
>>> )
>>> >>
>>> >> 2. I share Chris's concern about 'inverse', but I could not come up
>>> with
>>> >> a
>>> >> nice name.
>>> >>
>>> >> 3. Now that we are at this, should we also describe the corresponding
>>> >> continuum limit of FFT and iFFT in the documentation?
>>> >>
>>> >> A paragraph doing so could potentially also help people diagnose some
>>> of
>>> >> the normalization factor errors. I assumed it is common that one
>>> needs to
>>> >> translate a CFT into DFT when coding a paper up, and the correct
>>> >> compensation to the normalization factors will surface if one does the
>>> >> math. -- I had the impression 1 / N corresponds to 1 / 2pi if the
>>> >> variable
>>> >> is angular frequency, but it's been a while since I did that last
>>> time.
>>> >>
>>> >> - Yu
>>> >>
>>> >> NumPy-Discussion mailing list
>>> >
>>> >> NumPy-Discussion@
>>> >
>>> >> https://mail.python.org/mailman/listinfo/numpy-discussion
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Sent from: http://numpy-discussion.10968.n7.nabble.com/
>>> > _______________________________________________
>>> > NumPy-Discussion mailing list
>>>
>>> > NumPy-Discussion@
>>>
>>> > https://mail.python.org/mailman/listinfo/numpy-discussion
>>>
>>> Hello all,
>>> the discussion on this topic has been stagnant for the past couple of
>>> weeks,
>>> so I just wanted to ask if anyone has any alternative names for the new
>>> normalization option that would like to share.
>>>
>>> If not, I'd suggest that we move on with "norm=forward", which seems to
>>> be a
>>> more straightforward choice than the "norm=inverse" naming alternative. I
>>> can wait a couple of days for possible new recommendations to be
>>> submitted,
>>> and will then recommit to the open PR to account for the new kwarg name.
>>>
>>> In terms of the name for the "norm=ortho" option, I suggest that we keep
>>> it
>>> as is for now so that we don't introduce two API changes at once. If
>>> desired, we can discuss it separately and open a new PR introducing a
>>> name
>>> such as "norm=unitary" or "unit" as recommended in previous messages. I'm
>>> happy to handle that if you think it'd be a useful change.
>>>
>>> Chris
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://numpy-discussion.10968.n7.nabble.com/
>>> _______________________________________________
>>> NumPy-Discussion mailing list
>>> NumPy-Discussion at python.org
>>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20200624/da4d2913/attachment-0001.html>


More information about the NumPy-Discussion mailing list