Skip to main content

Deriving the fast Fourier algorithm by calculation

  • Conference paper
Functional Programming

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

  • 105 Accesses

Abstract

This paper reports an explanation of an intricate algorithm in the terms of a potentially mechanisable rigorous-development method. It uses notations and techniques of Sheeran [1] and Bird and Meertens [2, 3]. We have claimed that these techniques are applicable to digital signal processing circuits, and have previously applied them to regular array circuits [4, 5, 6].

This paper shows that they can deal with an apparently very different and more complex algorithm: the fast Fourier transform. Similar papers to this one [7, 8, 9] perform most of the same calculations, but experiment with different ways of expressing the algorithms and their development.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Sheeran M. Design and verification of regular synchronous circuits,IEE Proceedings, vol. 133, Pt. E, No. 5, September 1986, pp 295–304

    Google Scholar 

  2. Bird RS. An introduction to the theory of lists, In: Broy M (ed) Logic of programming and calculi of discrete design, Springer, 1987, pp 3–42

    Google Scholar 

  3. Bird RS. Lectures on constructive functional programming, Oxford University Computing Laboratory Programming Research Group technical monograph PRG-69, September 1988

    Google Scholar 

  4. Luk W, Jones G. The derivation of regular synchronous circuits, In: Bromley K, Kung S-Y, Schwarzlander E. Proceedings of the international conference on systolic arrays, IEEE Computer Society Press, 1988, pp 305–314

    Google Scholar 

  5. Luk W, Jones G. From specification to parametrised architectures, In: Milne GJ (ed) The fusion of hardware design and verification, North-Holland, 1988, pp 267–288

    Google Scholar 

  6. Sheeran M, Jones G. Relations + higher-order functions = hardware descriptions, Proc. CompEuro 89, Hamburg, May 1987 pp 303–306

    Google Scholar 

  7. Jones G. Calculating the fast Fourier transform as a divide and conquer algorithm, (unpublished)

    Google Scholar 

  8. Jones G. Factorising Fourier for fastness,(privately circulated draft of present paper)

    Google Scholar 

  9. Jones G. Constructing the fast Fourier transform by calculating with the algorithm, working paper for the STOP summer school on Constructive Algorithmics, Ameland, September 1989

    Google Scholar 

  10. Cooley JW, Tukey JW. An algorithm for the machine computation of complex Fourier series, Mathematics of Computation, 19, 1965, pp 297–301

    Article  MATH  MathSciNet  Google Scholar 

  11. Aho AV, Hoperoft JE, Ullman JD. The design and analysis of computer algorithms, Addison-Wesley, 1974

    Google Scholar 

  12. Smith SG. Fourier transform machines, In: Denyer P, Renshaw D. VLSI signal processing; a bit-serial approach, Addison—Wesley, 1985, pp 147–199

    Google Scholar 

  13. Ullman JD. Computational aspects of VLSI, Computer Science Press, 1984

    Google Scholar 

  14. Chandy KM, Misra J. Parallel program design — a foundation, Addison—Wesley, 1988

    Google Scholar 

  15. Jones G, Luk W. Exploring designs by circuit transformation, In: Moore W, McCabe A, Urquhart R (eds) Proceedings of the first international workshop on Systolic Arrays, Adam Hilger, 1987, pp 91–98

    Google Scholar 

  16. Sheeran M. Retiming and slowdown in Ruby, In: Milne GJ (ed) The fusion of hardware design and verification, North-Holland, 1988, pp 289–308

    Google Scholar 

  17. Sheeran M. Describing hardware algorithms in Ruby, In: David et al (eds) Proceedings IFIP WG10.1 workshop on Concepts and Characteristics of Declarative Systems, Budapest, 1988

    Google Scholar 

  18. Sheeran M, Jones G. Butterfly algorithms, (in hand)

    Google Scholar 

  19. Luk W. Parametrised design for regular processor arrays, D.Phil. thesis, Oxford University, 1988

    Google Scholar 

  20. Jones G. Fast Fourier transform by program transformation of the discrete Fourier transform,(submitted for publication)

    Google Scholar 

  21. Jones G, Sheeran M. Timeless truths about sequential circuits, In: Tewksbury SK, Dickinson BW, Schwartz SC (eds) Concurrent computations: algorithms, architectures and technology, Plenum Press, 1988, pp 245–259

    Google Scholar 

  22. Backhouse RC. Making formality work for us, Technical Report CS 8907, Department of Mathematics and Computing Science, University of Groningen, 1989

    Google Scholar 

  23. Wadler PL, Miller Q. An introduction to Orwell 5.00, Oxford University Programming Research Group, 1988

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1990 British Computer Society

About this paper

Cite this paper

Jones, G. (1990). Deriving the fast Fourier algorithm by calculation. In: Davis, K., Hughes, J. (eds) Functional Programming. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3166-3_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3166-3_6

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19609-9

  • Online ISBN: 978-1-4471-3166-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics