The implementation follows chapter 7 of Kak and Slaney (http://engineering.purdue.edu/~malcolm/pct/CTI_Ch07.pdf), which is already referenced in the docstring. The reason is well explained there, if I remember correctly, so I won't attempt to improve on that here.