Bit-reversal permutation: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted Visual edit
m Reverted edits by Lasantha.Adikaram (talk) to last version by WikiCleanerBot
Line 1:
In applied mathematics, a '''bit-reversal permutation''' is a [[permutation]] of a [[sequence]] of ''n'' items, where ''n''&nbsp;=&nbsp;2<sup>''k''</sup> is a [[power of two]]. It is defined by indexing the elements of the sequence by the numbers from 0 to ''n''&nbsp;&minus;&nbsp;1 and then reversing the [[binary representation]]s of each of these numbers (padded so that each of these binary numbers has length exactly&nbsp;''k''). Each item is then mapped to the new position given by this reversed value. The bit reversal permutation is an [[Involution (mathematics)|involution]], so repeating the same permutation twice returns to the original ordering on the items<ref name=":0" />.
 
This permutation can be applied to any sequence in [[linear time]] while performing only simple index calculations. It has applications in the generation of [[low-discrepancy sequence]]s and in the evaluation of [[fast Fourier transform]]s.
Line 68:
 
==Algorithms==
Mainly because of the importance of [[fast Fourier transform]] algorithms, numerous efficient algorithms for applying a bit-reversal permutation to a sequence have been devised.<ref name=":0">{{Cite web|last=Adikaram|first=K. K. L. B.|last2=Hussein|first2=M. A.|last3=Effenberger|first3=M.|last4=Becker|first4=T.|date=2014-07-17|title=Multiple Memory Structure Bit Reversal Algorithm Based on Recursive Patterns of Bit Reversal Permutation|url=https://www.hindawi.com/journals/mpe/2014/827509/|access-date=2021-02-14|website=Mathematical Problems in Engineering|language=en|doi=10.1155/2014/827509}}</ref><ref name="karp">{{citation
| last = Karp | first = Alan H.
| doi = 10.1137/1038001
Line 90:
| year = 1990}}.</ref>
 
Another consideration that is even more important for the performance of these algorithms is the effect of the [[memory hierarchy]] on running time. Because of this effect, more sophisticated algorithms that consider the block structure of memory can be faster than this naive scan.<ref name=":0" /><ref name="karp"/><ref name="cg98">{{citation|last1=Carter|first1=Larry|first2=Kang Su|last2=Gatlin|contribution=Towards an optimal bit-reversal permutation program|title=Proceedings of the 39th Annual Symposium on Foundations of Computer Science (FOCS)|pages=544–553|year=1998|doi=10.1109/SFCS.1998.743505|title-link=Symposium on Foundations of Computer Science|isbn=978-0-8186-9172-0|citeseerx=10.1.1.46.9319}}.</ref> An alternative to these techniques is special computer hardware that allows memory to be accessed both in normal and in bit-reversed order.<ref>{{citation
| last1 = Harley | first1 = T. R.
| last2 = Maheshwaramurthy | first2 = G. P.