On Thu, Dec 31, 2009 at 9:04 PM, Bill Hart <goodwillh...@googlemail.com> wrote: > As the code for this FFT is quite involved, I plan to incrementally > release a set of notes about it, starting tomorrow morning (today > already), which may take hours to days for me to complete. I got the > code working for the first time this afternoon, so please be patient > with me. > > Here is the rough list of topics I hope to cover in the notes: > > Table of Contents > ============= > > 1) The formal code release. I need to check all the test code still > passes and make it easy for people to build and run. That will take an > hour or so for me to do. > > 2) FFT's for nitwits (like me). How does an FFT help in multiplying > numbers, basically, and what are the important algorithms and > techniques. > > 3) Why a new FFT? This is an important question which needs answering. > I will discuss what led me to work on a new FFT implementation, rather > than improve or port another implementation.
I'm personally eagerly awaiting (3), since I've been watching you work on this for a while. I'm sure there is an excellent argument for (3), and I'm curious what it is. > 4) The strategy. What does this FFT actually do? Which algorithms does > it use? I tried many things, most of which completely failed. In > section 3 I will have already discussed other strategies I tried which > did not work. Here I will discuss what did work. Whilst many of the > details came from my head, I'm pretty sure the general outline will > contain few surprises. I hope you list things that failed too. > 5) References. Few. I purposely tried to be creative. Your numbering is creative, in that you went from 5) to 8) below. > > 8) Implementors notes. A long list of things that can be improved. In > releasing the code publicly it is my hope that contributors will help > make this the best FFT implementation it can be. The list will include > many trivial items which anyone could work on, all the way through to > fairly advanced topics which would probably require original research > to do really well. I'll rank the items according to how hard I think > they'd be to do. > > The code will be under revision control, so it is my hope that people > will be willing to contribute to it. I believe I spent between 150 and > 200 hours writing it, all told. > > Till tomorrow. > > Bill. > > 2010/1/1 Bill Hart <goodwillh...@googlemail.com>: >> Ha! I forgot to mention, those numbers represent the size of the >> integers in bits. I multiply two different integers with the same >> number of bits, though that is not a limitation of the code. It will >> accept integers of different lengths and adjust accordingly. >> >> Bill. >> >> 2010/1/1 Bill Hart <goodwillh...@googlemail.com>: >>> I re-timed that point and I believe I may have just mistranscribed it. >>> Here it is with the corrected time. Thanks for pointing it out! >>> >>> I've also included some times from the FLINT FFT, though only >>> non-truncated ones (i.e. where FLINT uses a convolution which is an >>> exact power of 2 length - not a limitation of FLINT, I just didn't get >>> around to timing it at the other points yet). >>> >>> 8364032: 6.8s / 8.0s >>> 9409536: 9.8s / 8.7s >>> 10455040: 10.8s / 9.6s >>> 11500544: 12.3s / 12.6s >>> 12546048: 12.7s / 15.3s >>> 13591552: 14.0s / 14.2s >>> 14637056: 14.9s / 15.3s >>> 15682560: 16.0s / 14.5s >>> 16728064: 16.8s / 19.5s >>> >>> 20910080: 24.3s / 23.2s >>> 25092096: 28.5s / 33.1s >>> 29274112: 33.1s / 31.8s >>> 33456128: 37.4s / 47.7s >>> >>> 519168: iters 10000: 30.7s / 32.2s / 32.3s >>> 2084864: iters 1000: 13.9s / 15.2s / 13.0s >>> 8364032: iters 100: 6.8s / 8.0s / 7.6s >>> 33497088: iters 100: 37.4s / 47.7s / 37.5s >>> 134103040: iters 10: 17.0s / 24.8s / 19.6s >>> 536608768: iters 1: 8.6s / 9.4s / 8.6s >>> 2146959360: iters 1: 42.3s / 40.3s / 38.9s >>> >>> Bill. >>> >>> >>> 2009/12/31 Bill Hart <goodwillh...@googlemail.com>: >>>> It's either a tuning issue or timing instability on the machine. >>>> >>>> Bill. >>>> >>>> On 31/12/2009, Robert Gerbicz <robert.gerb...@gmail.com> wrote: >>>>> Hi! >>>>> >>>>> How is it possible that to multiple longer numbers takes less time, for >>>>> example: >>>>> >>>>> 12546048: 14.7s / 15.3s >>>>> 13591552: 14.0s / 14.2s >>>>> >>>>> -- >>>>> >>>>> You received this message because you are subscribed to the Google Groups >>>>> "mpir-devel" group. >>>>> To post to this group, send email to mpir-de...@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> mpir-devel+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/mpir-devel?hl=en. >>>>> >>>>> >>>>> >>>> >>> >> > > -- > > You received this message because you are subscribed to the Google Groups > "mpir-devel" group. > To post to this group, send email to mpir-de...@googlegroups.com. > To unsubscribe from this group, send email to > mpir-devel+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/mpir-devel?hl=en. > > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-de...@googlegroups.com. To unsubscribe from this group, send email to mpir-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.