fast fourier transform algorithm parallel processing
TRANSCRIPT
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
1/45
See discussions, stats, and author profiles for this publication at: http://www.researchgate.net/publication/247494750
A self-sorting in-place fast Fouriertransformalgorithm suitable for vector and
parallelprocessing
ARTICLE in NUMERISCHE MATHEMATIK OCTOBER 1994
Impact Factor: 1.55 DOI: 10.1007/s002110050074
CITATIONS
15
DOWNLOADS
94
VIEWS
40
1 AUTHOR:
Markus Hegland
Australian National University160PUBLICATIONS 1,024CITATIONS
SEE PROFILE
Available from: Markus Hegland
Retrieved on: 27 July 2015
http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_1http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_7http://www.researchgate.net/institution/Australian_National_University?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_6http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_5http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_1http://www.researchgate.net/publication/247494750_A_self-sorting_in-place_fast_Fouriertransform_algorithm_suitable_for_vector_and_parallelprocessing?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_3http://www.researchgate.net/publication/247494750_A_self-sorting_in-place_fast_Fouriertransform_algorithm_suitable_for_vector_and_parallelprocessing?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_2 -
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
2/45
N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
N u m e r i s c h e
M a t h e m a t i k
c
S p r i n g e r - V e r l a g 1 9 9 4
E l e c t r o n i c E d i t i o n
A s e l f - s o r t i n g i n - p l a c e f a s t F o u r i e r t r a n s f o r m
a l g o r i t h m s u i t a b l e f o r v e c t o r a n d p a r a l l e l
p r o c e s s i n g
?
M a r k u s H e g l a n d
P r o g r a m i n A d v a n c e d C o m p u t a t i o n , C e n t e r f o r M a t h e m a t i c s a n d i t s A p p l i c a t i o n s , S c h o o l o f
M a t h e m a t i c a l S c i e n c e s , T h e A u s t r a l i a n N a t i o n a l U n i v e r s i t y , C a n b e r r a A C T 0 2 0 0 , A u s t r a l i a
e - m a i l : M a r k u s . H e g l a n d @ a n u . e d u . a u
R e c e i v e d O c t o b e r 2 9 , 1 9 9 2 / R e v i s e d v e r s i o n r e c e i v e d O c t o b e r 2 1 , 1 9 9 3
S u m m a r y . W e p r o p o s e a n e w a l g o r i t h m f o r f a s t F o u r i e r t r a n s f o r m s . T h i s a l g o -
r i t h m f e a t u r e s u n i f o r m l y l o n g v e c t o r l e n g t h s a n d s t r i d e o n e d a t a a c c e s s . T h u s
i t i s w e l l a d a p t e d t o m o d e r n v e c t o r c o m p u t e r s l i k e t h e F u j i t s u V P 2 2 0 0 h a v i n g
s e v e r a l o a t i n g p o i n t p i p e l i n e s p e r C P U a n d v e r y f a s t s t r i d e o n e d a t a a c c e s s . I t
a l s o h a s f a v o r a b l e p r o p e r t i e s f o r d i s t r i b u t e d m e m o r y c o m p u t e r s a s a l l c o m m u -
n i c a t i o n i s g a t h e r e d t o g e t h e r i n o n e s t e p . T h e a l g o r i t h m h a s b e e n i m p l e m e n t e d
o n t h e F u j i t s u V P 2 2 0 0 u s i n g t h e b a s i c s u b r o u t i n e s f o r f a s t F o u r i e r t r a n s f o r m s
d i s c u s s e d e l s e w h e r e .
W e d e v e l o p t h e t h e o r y o f i n d e x d i g i t p e r m u t a t i o n s t o s o m e e x t e n t . W i t h
t h i s t h e o r y w e c a n d e r i v e t h e s p l i t t i n g f o r m u l a s f o r a l m o s t a l l m i x e d - r a d i x F F T
a l g o r i t h m s k n o w n s o f a r . T h i s f r a m e w o r k e n a b l e s u s t o p r o v e t h e s e a l g o r i t h m s
b u t a l s o t o d e r i v e o u r n e w a l g o r i t h m . T h e d e v e l o p m e n t a n d s y s t e m a t i c u s e o f
t h i s f r a m e w o r k i s n e w a n d a l l o w s u s t o s i m p l i f y t h e p r o o f s w h i c h a r e n o w r e d u c e d
t o t h e a p p l i c a t i o n o f m a t r i x r e c u r s i o n s .
M a t h e m a t i c s S u b j e c t C l a s s i c a t i o n ( 1 9 9 1 ) : 6 5 T 2 0
1 . I n t r o d u c t i o n
F a s t F o u r i e r t r a n s f o r m s a r e o f p r i m a r y i m p o r t a n c e i n c o m p u t a t i o n a l l y i n t e n s i v e
a p p l i c a t i o n s . T h e y a r e u s e d f o r l a r g e - s c a l e d a t a a n a l y s i s a n d t o s o l v e p a r t i a l
d i e r e n t i a l e q u a t i o n s .
A p p l i c a t i o n s o f F F T s i n d a t a a n a l y s i s i n c l u d e c o m p u t e r t o m o g r a p h y , d a t a
l t e r i n g a n d s t r u c t u r e o r u i d - s t r u c t u r e i n t e r a c t i o n a n a l y s i s . O t h e r a r e a s o f i n -
t e r e s t h e r e a r e s p e c t r a l a n a l y s i s o f s p e e c h , s o n a r , r a d a r , s e i s m i c a n d v i b r a t i o n
d e t e c t i o n . T h e y a r e u s e d f o r d i g i t a l l t e r i n g , c o n v o l u t i o n e v a l u a t i o n a n d s i g n a l
d e c o m p o s i t i o n .
A s e c o n d e l d o f F F T a p p l i c a t i o n s a r e i n t h e s o l u t i o n o f p a r t i a l d i e r e n t i a l
e q u a t i o n s . A n e a r l i e r e x a m p l e h e r e i s t h e f a s t P o i s s o n s o l v e r w h i c h i s c l o s e l y
r e l a t e d t o F F T s . I n r e c e n t y e a r s s p e c t r a l m e t h o d s f e a t u r i n g F F T s h a v e b e e n
u s e d s u c c e s s f u l l y t o s o l v e c o m p u t a t i o n a l u i d d y n a m i c s ( C F D ) p r o b l e m s . T h e y
?
T h i s r e s e a r c h w a s p a r t o f a s o f t w a r e p r o j e c t b y A N U a n d F u j i t s u L t d
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 0 7 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
3/45
5 0 8 M . H e g l a n d
a r e r o u t i n e l y u s e d i n w e a t h e r f o r e c a s t i n g a n d f o r s i m u l a t i o n i n g e o p h y s i c s a n d
q u a n t u m m e c h a n i c s .
A l l t h e s e a p p l i c a t i o n s u s e d i s c r e t e F o u r i e r t r a n s f o r m s . T h e y a r e n i t e -
d i m e n s i o n a l , l i n e a r , c o m p l e x o p e r a t o r s r e l a t e d t o t h e t r a n s f o r m s o f c l a s s i c a l
F o u r i e r a n a l y s i s w h i c h p l a y a p r e e m i n a n t e r o l e i n m a t h e m a t i c a l p h y s i c s . T h e y
i m p l e m e n t f a s t a l g o r i t h m s f o r t h e m a t r i x - v e c t o r p r o d u c t w i t h t h e c o m p l e x
F o u r i e r t r a n s f o r m m a t r i x .
I t i s w e l l k n o w n t h a t t h e o r d e r n c o m p l e x m a t r i x - v e c t o r p r o d u c t c a n b e d o n e
w i t h o r d e r O ( n
2
) o a t i n g p o i n t o p e r a t i o n s . I n t h e s i x t i e s , h o w e v e r , a l g o r i t h m s
w e r e s u g g e s t e d b y C o o l e y a n d T u k e y C T 6 5 ] a n d l a t e r b y G e n t l e m a n a n d S a n d e
G S 6 6 ] w h i c h a l l o n l y n e e d O ( n l o g ( n ) ) o p e r a t i o n s i f n i s \ f a r f r o m p r i m e " i n
t h e s e n s e t h a t i t i s c o m p o s e d o f m a n y f a c t o r s . T h e s e a l g o r i t h m s w e r e g i v e n
t h e n a m e f a s t F o u r i e r t r a n s f o r m s a n d h a v e b e e n e s s e n t i a l f o r t h e s u c c e s s o f
t h e a p p l i c a t i o n s m e n t i o n e d . T h e y c a n b e i m p l e m e n t e d w i t h o u t t h e u s e o f e x t r a
w o r k s p a c e o f o r d e r O ( n ) o v e r w r i t i n g t h e i n p u t v e c t o r w i t h t h e t r a n s f o r m e d d a t a .
T h u s t h e y a r e c a l l e d \ i n - p l a c e " .
H o w e v e r , t h e y h a v e o n e i m p o r t a n t d r a w b a c k i n t h a t t h e y e i t h e r c o m p u t e t h e
d i s c r e t e F o u r i e r t r a n s f o r m i n a \ d i g i t - r e v e r s e d " o r d e r o r c o m p u t e t h e t r a n s f o r m
o f d i g i t - r e v e r s e d d a t a . T h u s i n o r d e r t o g e t t h e a c t u a l F o u r i e r t r a n s f o r m s o m e
e x t r a p e r m u t a t i o n s a r e n e e d e d . F o r t h e a p p l i c a t i o n o f F F T s t o s p e c t r a l m e t h o d s ,
h o w e v e r , a c o m b i n a t i o n o f t h e C o o l e y - T u k e y a n d G e n t l e m a n - S a n d e a l g o r i t h m
c a n b e u s e d w i t h o u t a n y p e r m u t a t i o n s . T h i s i s u s u a l l y n o t t r u e f o r d a t a a n a l y s i s
a p p l i c a t i o n s w h e r e F o u r i e r t r a n s f o r m s a r e u s e d t o c o m p u t e t h e s p e c t r u m a n d
n o t j u s t a s a t o o l t o g e t f a s t a l g o r i t h m s .
L a t e r , a l g o r i t h m s w e r e s u g g e s t e d b y S t o c k h a m C C F
+
6 7 ] w h i c h a r e i n - o r d e r ,
c o m b i n i n g d i g i t r e v e r s i o n s w i t h e l e m e n t a r y t r a n s f o r m s . T h e s e a l g o r i t h m s f o r
g e n e r a l n b e i n g b o t h i n - p l a c e a n d i n - o r d e r c o u l d b e c r e a t e d a n d a r s t e x a m p l e
w a s s u g g e s t e d b y J o h n s o n a n d B u r r u s J B 8 4 , T e m 9 1 ] . ( N a t u r a l l y , i n - p l a c e , i n -
o r d e r t r a n s f o r m s f o r s p e c i a l o r d e r s n u s i n g t h e p r i m e f a c t o r a l g o r i t h m w e r e
k n o w n f o r s o m e t i m e T e m 8 5 ] . ) W h i l e i n - o r d e r t r a n s f o r m s a r e n e e d e d f o r s o m e
a p p l i c a t i o n s i n - p l a c e t r a n s f o r m s g e n e r a l l y m a k e l a r g e r t r a n s f o r m s i z e s f e a s i b l e i f
t h e l i m i t i n g f a c t o r i s s t o r a g e s p a c e r a t h e r t h a n c o m p u t i n g t i m e .
F o u r i e r t r a n s f o r m a l g o r i t h m s c o n t a i n a l a r g e a m o u n t o f p a r a l l e l i s m . T h u s
t h e a l g o r i t h m s b y C o o l e y - T u k e y , G e n t l e m a n - S a n d e a n d S t o c k h a m h a v e a l l b e e n
i m p l e m e n t e d o n v e c t o r a n d p a r a l l e l c o m p u t e r s . A p r o b l e m o f t h e s e a l g o r i t h m s ,
h o w e v e r , i s t h a t t h e y h a v e v a r y i n g l o o p l e n g t h s . T h u s s o m e i m p l e m e n t a t i o n s u s e
l o o p i n t e r c h a n g e s P e t 8 3 ] . A d r a w b a c k o f t h e l o o p i n t e r c h a n g e m e t h o d i s t h a t i t
r e q u i r e s d a t a a c c e s s w i t h n o n - u n i t s t r i d e . T h i s i s a v o i d e d b y t h e P e a s e a l g o r i t h m
P e a 6 8 ] u s i n g e x t e n d e d t r i g o n o m e t r i c t a b l e s o r b y u s i n g a c o m b i n a t i o n o f t h e
S t o c k h a m a l g o r i t h m a n d t h e t r a n s p o s e d S t o c k h a m a l g o r i t h m W H 9 0 ] . A d r a w -
b a c k o f t h e s e t w o m e t h o d s , h o w e v e r , i s t h e i r n e e d t o a c c e s s t h e t r i g o n o m e t r i c
t a b l e i n t h e i n n e r m o s t l o o p a s w e l l a s t h e d a t a .
A s o m e h o w n e w a p p r o a c h c a n b e f o u n d i n a p a p e r b y S w a r z t r a u b e r S w a 8 7 ]
a n d A s h w o r t h a n d L y n e A L 8 8 ] . I n o r d e r t o g e t s u i t a b l e p a r a l l e l i s m t h e y i m -
p l e m e n t w h a t V a n L o a n L o a 9 2 ] c a l l s f o u r o r s i x - s t e p f r a m e w o r k s . T h e s e f r a m e -
w o r k s a r e d i e r e n t f r o m t h e o r i g i n a l a l g o r i t h m s a s t h e y \ s p l i t " o r \ s e g m e n t "
t h e d i s c r e t e F o u r i e r t r a n s f o r m i n t o f a c t o r s i m p l e m e n t i n g m u l t i p l e t r a n s f o r m s o f
s i m i l a r o r d e r i n s t e a d o f a f a c t o r o f e l e m e n t a r y ( e . g . , p r i m e ) o r d e r a n d a f a c t o r
o f c o m p o s i t e o r d e r . H o w e v e r , a f t e r j u s t o n e s t e p o f t h i s s p l i t t i n g i n t o m u l t i p l e
t r a n s f o r m s o f s i m i l a r o r d e r t h e s e a l g o r i t h m s p r o c e e d w i t h t h e o r i g i n a l s p l i t t i n g
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 0 8 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
4/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 0 9
i n t o a s m a l l ( o f t e n p r i m e ) o r d e r t r a n s f o r m a n d a l a r g e o r d e r t r a n s f o r m . A d i s a d -
v a n t a g e o f t h e s e a l g o r i t h m s i s t h a t t h e r s t s t e p m i g h t n o t b e i n - p l a c e . T h e i r b i g
a d v a n t a g e i s t h e i r l o n g v e c t o r l e n g t h s a n d s t r i d e o n e d a t a a c c e s s a f t e r t h e r s t
s t e p . O u r n e w a l g o r i t h m c a n b e i n t e r p r e t e d a s a c o m b i n a t i o n o f t h e s e a l g o r i t h m s
w i t h i d e a s f r o m t h e J o h n s o n - B u r r u s a l g o r i t h m .
A r e v i e w o f t h e h i s t o r i c a l d e v e l o p m e n t o f f a s t F o u r i e r t r a n s f o r m s s i n c e G a u s s
c a n b e f o u n d i n D V 9 0 ] . S e v e r a l o f t h e 1 1 7 r e f e r e n c e s i n t h i s p a p e r p o i n t t o s o f t -
w a r e . F u r t h e r m o r e a s i m p l e t u t o r i a l o n F F T s i s p r e s e n t e d t h e r e w i t h o u t e x p l i c i t
u s a g e o f K r o n e c k e r p r o d u c t s . B o t h c o m p l e x i t y r e s u l t s a n d i m p l e m e n t a t i o n i d e a s
a r e p r e s e n t e d . A b r o a d i n t r o d u c t i o n t o F F T s f e a t u r i n g \ m a t r i x l a n g u a g e " c a n
b e f o u n d i n L o a 9 2 ] . I t s e e m s s a f e t o g u e s s t h a t t h i s b o o k w i l l h a v e l a r g e i m p a c t
o n t h e f u r t h e r d e v e l o p m e n t o f F F T a l g o r i t h m s a s i t g i v e s a c o n c i s e m a t h e m a t i c a l
t r e a t m e n t a n d t h o r o u g h d i s c u s s i o n o f m o s t o f t h e m a j o r F F T i d e a s k n o w n s o
f a r .
T h e p u r p o s e t h i s p a p e r i s t h r e e f o l d : F i r s t w e p r e s e n t a n e w F F T a l g o r i t h m .
T h e n w e d i s c u s s t h e t h e o r y o f i n d e x d i g i t p e r m u t a t i o n s o n w h i c h s u c h a l g o r i t h m s
a r e b a s e d . F i n a l l y w e d e r i v e s o m e o l d a n d n e w F F T a l g o r i t h m s u s i n g s p l i t t i n g
l e m m a t a .
O u r n e w a l g o r i t h m i m p l e m e n t s a r e c u r s i v e S w a r z t r a u b e r - t y p e o f s p l i t t i n g .
I n c o n t r a s t t o S w a r z t r a u b e r ' s , i t i s i n - p l a c e f o r a n y o r d e r n . I t i s n a t u r a l l y s e l f -
s o r t i n g a n d e s s e n t i a l l y a c c e s s e s d a t a o n l y w i t h s t r i d e o n e . T h i s i s i m p o r t a n t f o r
c o m p u t e r s f e a t u r i n g v e r y f a s t s t r i d e o n e d a t a a c c e s s l i k e t h e V P s e r i e s o f F u j i t s u .
A s i n S w a r z t r a u b e r ' s a l g o r i t h m , i t a l s o l e n d s i t s e l f t o p a r a l l e l i m p l e m e n t a t i o n . I n
a j o i n t p r o j e c t b e t w e e n A N U a n d F u j i t s u L t d . i m p l e m e n t a t i o n s o f t h i s a l g o r i t h m
f o r t h e n e w V P P 5 0 0 s u p e r c o m p u t e r a r e b e i n g d e v e l o p e d . T h e F u j i t s u V P P 5 0 0
i s a s t a t e - o f - t h e - a r t v e c t o r p a r a l l e l c o m p u t e r w i t h u p t o 2 2 2 v e c t o r p r o c e s s o r s
a n d c a p a b l e o f u p t o 3 5 5 G i g a o p s ( f r o m a p r o d u c t d e s c r i p t i o n b y F u j i t s u L t d . ) .
A s a r s t s t a g e w e i m p l e m e n t e d t h i s a l g o r i t h m f o r n b e i n g a p o w e r o f 2 o n t h e
V P 2 2 0 0 a t A N U .
W e w i l l i n t r o d u c e s o m e b a s i c m a t r i x f a m i l i e s t o d e s c r i b e t h e F o u r i e r t r a n s -
f o r m a l g o r i t h m s . T h e s e f a m i l i e s a r e c l o s e l y r e l a t e d t o b a s i c s u b r o u t i n e s ( s i m i l a r
t o t h e B L A S i n l i n e a r a l g e b r a ) n e e d e d f o r t h e i m p l e m e n t a t i o n o f t h e a l g o r i t h m s .
T h e b a s i c s u b r o u t i n e s w i l l b e d i s c u s s e d e l s e w h e r e . F o r o u r d e r i v a t i o n w e s u g g e s t
s o m e n e w n o t a t i o n b a s e d o n K r o n e c k e r p r o d u c t s . K r o n e c k e r p r o d u c t s a r e w e l l
k n o w n t o b e v e r y u s e f u l i n t h e d e r i v a t i o n a n d i m p l e m e n t a t i o n o f F F T a l g o r i t h m s .
T h i s w a s r e p e a t e d l y d e m o n s t r a t e d , a r e c e n t r e f e r e n c e i s J J R T 9 0 ] . I n J J R T 9 0 ]
a n a p p r o a c h v e r y s i m i l a r t o t h e o n e s u g g e s t e d h e r e w a s u s e d . S e v e r a l i d e n t i t i e s
t h e y d i s c u s s w i l l b e u s e d h e r e f o r t h e i m p l e m e n t a t i o n o f F F T s o n v e c t o r a n d
p a r a l l e l c o m p u t e r s . O n e p o i n t d e s e r v e s s p e c i a l m e n t i o n i n g h e r e : T h e y d i s c u s s
t h e i d e a o f c r e a t i n g a c o m p i l e r f o r F F T s w h i c h c o u l d s e l e c t b e t w e e n t h e m y r -
i a d s o f c h o i c e s t h e o n e b e s t a d a p t e d t o a p a r t i c u l a r c o m p u t e r a r c h i t e c t u r e . I n
t h e s e c t i o n s f o l l o w i n g t h e d e s c r i p t i o n o f o u r n e w a l g o r i t h m w e p r e s e n t i n s o m e
d e t a i l m a n y r e l a t i o n s n e e d e d f o r t h e i m p l e m e n t a t i o n o f s u c h a c o m p i l e r .
T h e n e x t s e c t i o n i n t r o d u c e s t h e n o t a t i o n n e e d e d . T h i s s e c t i o n i s r a t h e r l o n g
b u t n e c e s s a r y a s t h e n o t a t i o n i s o f t e n n e w a n d i n s o m e c a s e s n o t w e l l - k n o w n .
T h e n , i n t h e t h i r d s e c t i o n w e p r e s e n t o u r n e w a l g o r i t h m .
A f o r t h s e c t i o n g i v e s s o m e b a s i c p r o p o s i t i o n s o n i n d e x - d i g i t p e r m u t a t i o n s
a n d K r o n e c k e r p r o d u c t s . I n d e x d i g i t p e r m u t a t i o n s a r e u s e d e x t e n s i v e l y f o r
s e l f - s o r t i n g F o u r i e r t r a n s f o r m s . S o m e o f t h e i r b a s i c p r o p e r t i e s a r e d i s c u s s e d i n
F r a 7 6 ] . I n d e x d i g i t p e r m u t a t i o n s a r e t r a n s f o r m a t i o n s w h i c h p e r m u t e d i g i t s o f a
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 0 9 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
5/45
5 1 0 M . H e g l a n d
m i x e d r a d i x r e p r e s e n t a t i o n o f t h e i n t e g e r s . T h e q u e s t i o n s w e d i s c u s s f o c u s a r o u n d
t w o m a i n p o i n t s : F i r s t , a p r o d u c t o f a n i n d e x d i g i t p e r m u t a t i o n i s n o t a l w a y s
a n i n d e x d i g i t p e r m u t a t i o n a g a i n . S e c o n d , t h e s a m e p e r m u t a t i o n c a n b e d e n e d
b y d i e r e n t r a d i x v e c t o r s . B y i n v e s t i g a t i n g t h e s e q u e s t i o n s c a r e f u l l y w e a r e a b l e
t o d e r i v e a f r a m e w o r k w h i c h l e a d s t o a c o m p r e h e n s i v e n e w u n i e d t r e a t m e n t
o f a l l e s s e n t i a l m i x e d - r a d i x a l g o r i t h m s i n c l u d i n g s o m e y e t u n k n o w n a l g o r i t h m s .
T h i s t r e a t m e n t i s b a s e d o n m a t r i x f a c t o r i z a t i o n s a s t h e y a r e u s e d i n L o a 9 2 ] .
H o w e v e r , w e e x t e n d t h e d i s c u s s i o n o f L o a 9 2 ] b y i n c l u d i n g n e w s p l i t t i n g s a n d
t h e a l g e b r a i c t r e a t m e n t o f i n d e x - d i g i t p e r m u t a t i o n s .
T h e f t h s e c t i o n d e v e l o p s s o m e k n o w n a n d s e v e r a l n e w a l g o r i t h m s a n d t h e
u n d e r l y i n g s p l i t t i n g s o r m a t r i x f a c t o r i z a t i o n s . F i n a l l y , i n t h e l a s t s e c t i o n , w e g i v e
b o u n d s f o r t h e p e r f o r m a n c e i n d i c a t o r s .
2 . N o t a t i o n
I n t h e f o l l o w i n g w e w i l l h a v e a r a t h e r l e n g t h y i n t r o d u c t i o n t o n o t a t i o n . O n e
r e a s o n f o r t h i s i s t h a t f o r t h e c o m p a r i s o n o f F F T s w e w i l l n e e d i n d e x - d i g i t
p e r m u t a t i o n s w h i c h h a v e h a r d l y b e e n s y s t e m a t i c a l l y f o r m a l i z e d i n t h e l i t e r a t u r e .
T h u s s o m e o f t h e n o t a t i o n w i l l b e n e w o r n o t s o w e l l - k n o w n . A l s o w e n e e d
n o t a t i o n f o r v a r i o u s o b j e c t s a s i n t e g e r s ( f o r t h e i n d i c e s ) , v e c t o r s a n d m a t r i c e s
a n d a l s o f o r p e r m u t a t i o n s r e l a t i n g t o t h e s e o b j e c t s .
2 . 1 . I n t e g e r s
T h e s e t o f i n t e g e r s w i l l b e d e n o t e d b y Z , t h e s e t o f p o s i t i v e i n t e g e r s b y N ,
a n d t h e s e t o f n o n - n e g a t i v e i n t e g e r s l e s s t h a n t b y Z
t
= f 0 ; : : : ; t ? 1 g , w h e r e
t 2 N . I n d i v i d u a l i n t e g e r s w i l l b e d e n o t e d b y t h e l o w e r c a s e R o m a n l e t t e r s
i ; j ; k ; l ; m ; n ; p ; q ; r ; s ; t .
C o n t r a r y t o s o m e a l g e b r a i c n o t a t i o n t h e o p e r a t o r s + ; ? ; ; = w i l l a l w a y s b e
t h e o n e s d e n e d f o r t h e r a t i o n a l n u m b e r s Q . T h u s f o r i
2Z
n
a n d j
2Z
m
t h e
s u m i + j i s w e l l d e n e d a n d i + j 2 Z
n + m
. I f w e u s e t h e o p e r a t o r s m o d u l o n w e
w i l l e x p l i c i t l y w r i t e s o . F o r e x a m p l e i f i ; j 2 Z
n
w e w r i t e
k = i + j m o d n
i f k 2 Z
n
s u c h t h a t k = i + j + l n f o r s o m e l 2 Z .
F o r t 2 N a n y b i j e c t i v e m a p p i n g
: Z
t
! Z
t
; s 7! ( s ) :
i s c a l l e d a p e r m u t a t i o n o f Z
t
. T h e s e t o f a l l p e r m u t a t i o n s o f Z
t
i s t h e s y m m e t r i c
g r o u p S
t
. W e w i l l d e n o t e e l e m e n t s o f S
t
b y t h e G r e e k l e t t e r s ; ; ; . S p e c i a l
e l e m e n t s o f S
t
a r e
{ t r a n s p o s i t i o n s :
( s
1
) = s
2
; ( s
2
) = s
1
; a n d ( s ) = s ; s 2 Z
t
n f s
1
; s
2
g
f o r s o m e s
1
; s
2
2 Z
t
,
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 0 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
6/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 1
{ s h i f t s :
( 0 ) = t ? 1 ; ( s ) = s ? 1 ; s 2 Z
t
n f 0 g ;
{ a n d r e v e r s a l s :
( s ) = t ? 1 ? s ; s 2 Z
t
:
I t i s w e l l k n o w n t h a t a n y p e r m u t a t i o n c a n b e r e p r e s e n t e d a s a p r o d u c t o f t r a n s -
p o s i t i o n s . T h e c o m p o s i t i o n
1
2
o f p e r m u t a t i o n s
1
;
2
2 S
t
i s d e n e d b y
(
1
2
) ( s ) : =
1
(
2
( s ) ) ; s 2 Z
t
;
a n d i s a l s o a p e r m u t a t i o n . W e w i l l u s e t h e s a m e s y m b o l f o r t h e c o m p o s i t i o n
o f a n y m a p p i n g s .
I n o r d e r t o m a k e t h e m d i s t i n c t f r o m i n t e g e r s w e w i l l d e n o t e a r r a y s o f i n t e g e r s
b y u n d e r l i n e d l o w e r c a s e R o m a n l e t t e r s , e . g . ,
n = ( n
0
; : : : ; n
t ? 1
) ; i = ( i
0
; : : : ; i
t ? 1
) :
T h e c o m p o n e n t s o f n w i l l u s u a l l y b e d e n o t e d b y n
s
.
A s u s u a l , N
k
d e n o t e s t h e s e t o f k - t u p l e s o f p o s i t i v e i n t e g e r s . F u r t h e r m o r e ,
w e w i l l n e e d t h e s e t o f a l l n i t e a r r a y s o f i n t e g e r s l a r g e r t h a n 1 a n d c a l l i t
N =
k 2 N
( n
0
; : : : ; n
k ? 1
) 2 N
k
j n
s
> 1 ; s 2 Z
k
:
T h e d i m e n s i o n o f n 2 N i s r e t r i e v e d b y , i . e . , i f n 2 N t h e n
n 2 N
( n )
:
F o r c o n v e n i e n c e w e d e n o t e t h e p r o d u c t o f t h e c o m p o n e n t s o f n 2 N b y
j n j = n
0
n
( n ) ? 1
= n :
F i n a l l y w e w i l l u s e a p r e - o r d e r i n g o n N d e n e d b y t h e f o l l o w i n g : F o r a n y n ; m 2
N ; m s h a l l b e s u b o r d i n a t e t o n o r
m n
i f t h e r e e x i s t ( m ) a r r a y s n
0
; : : : ; n
( m ) ? 1
s u c h t h a t
n = ( n
0
; : : : ; n
( m ) ? 1
) a n d
m = ( j n
0
j ; : : : ; j n
( m ) ? 1
j ) :
F o l l o w i n g t h i s d e n i t i o n , t h e a r r a y ( 6 ; 3 ; 7 ) i s s u b o r d i n a t e t o ( 2 ; 3 ; 3 ; 7 ) . I f m i s
s u b o r d i n a t e t o n t h e n j m j = j n j a n d ( m ) ( n ) .
T h e s e t o f a l l t - t u p l e s i = ( i
0
; : : : ; i
t ? 1
) o f i n t e g e r s i
s
2 Z
n
s
; s = f 0 ; : : : ; t ? 1 g
w i l l b e d e n o t e d b y
Z
n
= Z
n
0
Z
n
t ? 1
:
T h i s s e t i s s o m e t i m e s a l s o c a l l e d a g r i d . N o t e t h a t
Z
n
Z
( n )
w h e r e Z
t
i s t h e s e t o f t - t u p l e s o f i n t e g e r s a s u s u a l .
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 1 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
7/45
5 1 2 M . H e g l a n d
N o w w e d e n e t h e a c t i o n s o f p e r m u t a t i o n s o n i n t e g e r a r r a y s b y p e r m u t i n g
t h e c o m p o n e n t s . I n o r d e r t o b e a b l e t o d i s t i n g u i s h t h e p e r m u t a t i o n s f r o m t h e i r
a c t i o n s o n i n t e g e r a r r a y s w e w i l l d e n o t e t h e m b y u n d e r l i n e d G r e e k l e t t e r s . T h u s
f o r 2 S
t
a n d i = ( i
0
; : : : ; i
t ? 1
) 2 Z
t
w e d e n e
( i ) = ( i
( 0 )
; : : : ; i
( t ? 1 )
) :
F r o m t h i s w e g e t
( Z
n
) = Z
( n )
:
T h e s e t o f a l l w i l l b e c a l l e d S
t
. N o t e t h a t c o m p o s i t i o n i n S
t
i s r e v e r s e d c o m -
p a r e d t o c o m p o s i t i o n i n S
t
. W i t h o t h e r w o r d s
(
1
2
) ( i ) =
2
(
1
( i ) ) o r
1
2
=
2
1
i f d e n o t e s t h e c o m p o s i t i o n i n S
t
. F i n a l l y p e r m u t a t i o n s l e a v e o u r \ n o r m " a n d
d i m e n s i o n o f n i n v a r i a n t :
j ( n ) j = j n j ; a n d ( ( n ) ) = ( n )
f o r a l l 2 S
( n )
; n 2 N .
T h e m i x e d - r a d i x d i g i t r e p r e s e n t a t i o n m a p s i n t e g e r t - t u p l e s o n t o i n t e g e r s
w h e r e t h e c o m p o n e n t s o f t h e t - t u p l e s a r e j u s t t h e d i g i t s o f t h e n u m b e r . T h i s
i s d o n e b y t h e f o l l o w i n g f o r m u l a :
n
( i ) =
t ? 1
X
s = 0
i
s
n
0
n
s ? 1
; i 2 Z
n
; n 2 N ;
w h e r e i = ( i
0
; : : : ; i
t ? 1
) a n d n = ( n
0
; : : : ; n
t ? 1
) . T h i s d e n e s a b i j e c t i v e m a p p i n g
f r o m Z
n
t o Z
j n j
. T h i s m a p p i n g i s w e l l - k n o w n a n d c a n b e f o u n d , e . g . , i n K n u 8 1 ] .
I f j n j = j m j t h e n
? 1
m
n
d e n e s a b i j e c t i o n b e t w e e n Z
n
a n d Z
m
. A l t e r n a t i v e s
t o
n
a r e w e l l - k n o w n a n d c a n b e g e n e r a t e d , e . g . , f r o m t h e C h i n e s e r e m a i n d e r
t h e o r e m . H o w e v e r , t h e y w i l l n o t b e d i s c u s s e d h e r e . W e w i l l c a l l i t h e d i g i t v e c t o r
o f i =
n
( i ) r e l a t i v e t o a r a d i x v e c t o r n 2 N .
A s a n e x a m p l e c o n s i d e r t h e r a d i x v e c t o r n = ( 1 0 ; 1 0 ; 1 0 ) . W i t h t h i s r a d i x
v e c t o r w e c a n r e p r e s e n t i n t e g e r s b e t w e e n 0 a n d 9 9 9 a n d t h e d i g i t v e c t o r o f t h e
n u m b e r 5 7 2 w o u l d b e ( 2 ; 7 ; 5 ) w h i c h a r e j u s t t h e o r d i n a r y d i g i t s i n r e v e r s e d
o r d e r . M i x e d r a d i x r e p r e s e n t a t i o n e x t e n d s t h i s t o r a d i c e s o t h e r t h a n 1 0 a n d
e v e n d i e r e n t r a d i c e s . F o r e x a m p l e w i t h t h e r a d i x v e c t o r n = ( 9 ; 1 0 ; 1 0 ) w e c a n
r e p r e s e n t i n t e g e r s b e t w e e n 0 a n d 8 9 9 a n d t h e n u m b e r 5 7 2 h a s t h e i n d e x v e c t o r
( 5 ; 3 ; 6 ) a s 5 7 2 = 5 + 3 9 + 6 9 1 0 .
I f t h e d i g i t s o f a n i n t e g e r a r e r s t c o m p u t e d w i t h t h e i n v e r s e o f
n
, t h e n
p e r m u t e d w i t h a n d n a l l y m a p p e d b a c k t o a n i n t e g e r w i t h
( n )
w e g e t a n
i n d e x - d i g i t p e r m u t a t i o n . F o r m a l l y w e d e n e
~
n
=
( n )
? 1
n
; n 2 N ; 2 S
( n )
:
A s
? 1
n
m a p s Z
j n j
o n t o Z
n
, m a p s Z
n
o n t o Z
( n )
, a n d
( n )
m a p s Z
( n )
b a c k
t o Z
j n j
t h e c o m p o s i t i o n m a p s Z
j n j
o n t o i t s e l f a n d a s a l l f a c t o r s a r e b i j e c t i v e w e
g e t
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 2 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
8/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 3
~
n
2 S
j n j
:
W e c a l l ~
n
t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a n d n .
A c o m p o s i t i o n o f t w o i n d e x - d i g i t p e r m u t a t i o n s g i v e s a p e r m u t a t i o n b u t i n
g e n e r a l t h i s i s n o t a n i n d e x - d i g i t p e r m u t a t i o n a n y m o r e . I n a l a t e r s e c t i o n w e
w i l l s t u d y t h e q u e s t i o n w h e n a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a n
i n d e x - d i g i t p e r m u t a t i o n . F u r t h e r m o r e t h e s a m e i n d e x - d i g i t p e r m u t a t i o n c a n b e
r e p r e s e n t e d b y d i e r e n t r a d i x v e c t o r s n a n d p e r m u t a t i o n s . T h i s q u e s t i o n w i l l
a l s o b e d i s c u s s e d l a t e r .
W e n o w c o n t i n u e o u r p r e v i o u s e x a m p l e . G i v e n t h e r a d i x v e c t o r ( 1 0 ; 1 0 ; 1 0 )
a n d t h e p e r m u t a t i o n 2 S
3
w i t h ( 0 ) = 2 ; ( 1 ) = 0 a n d ( 2 ) = 1 t h e c o r r e -
s p o n d i n g i n d e x - d i g i t - p e r m u t a t i o n p e r m u t e s t h e a c t u a l d i g i t s . T h u s t h e n u m b e r
5 7 2 w i t h d i g i t v e c t o r ( 2 ; 7 ; 5 ) h a s a p e r m u t e d d i g i t v e c t o r ( 5 ; 2 ; 7 ) w h i c h c o r r e -
s p o n d s t o t h e n u m b e r 7 2 5 . W i t h t h e s a m e p e r m u t a t i o n b u t a d i e r e n t r a d i x
v e c t o r ( 9 ; 1 0 ; 1 0 ) t h e d i g i t v e c t o r o f 5 7 2 w a s s e e n t o b e ( 5 ; 3 ; 6 ) a n d s o t h e p e r -
m u t e d d i g i t v e c t o r i s ( 6 ; 5 ; 3 ) w h i c h c o r r e s p o n d s w i t h r e s p e c t t o t h e p e r m u t e d
r a d i x v e c t o r ( 1 0 ; 9 ; 1 0 ) t o t h e n u m b e r 3 2 6 = 6 + 5 1 0 + 3 1 0 9 . S o t h e s a m e p e r -
m u t a t i o n c a n g i v e r i s e t o q u i t e d i e r e n t i n d e x - d i g i t p e r m u t a t i o n s d e p e n d i n g
o n t h e r a d i x v e c t o r .
2 . 2 . V e c t o r s
W e i n t e r p r e t n - v e c t o r s x 2 C
n
a s m a p p i n g s w h i c h m a p t h e s e t o f i n d i c e s Z
n
i n t o
t h e c o m p l e x n u m b e r s C :
x : Z
n
! C ; i 7! x ( i ) ;
w h e r e x ( i ) i s t h e i - t h c o m p o n e n t o f x . T h i s m i g h t s e e m j u s t l i k e a f a n c y i n t e r -
p r e t a t i o n , h o w e v e r , i t w i l l l e a d t o c o m p a c t n o t a t i o n a n d b e t t e r u n d e r s t a n d i n g
o f t h e p e r m u t a t i o n s . W e w i l l d e n o t e v e c t o r s b y t h e l o w e r - c a s e R o m a n l e t t e r s
x ; y ; z ; u ; v ; e ; f a n d s o m e t i m e s w r i t e t h e m a s c o l u m n v e c t o r s o f t h e i r c o m p o -
n e n t s .
W e w i l l u s e t h e s c a l a r p r o d u c t d e n e d i n t h e u s u a l w a y a s
( x ; y ) =
X
i 2 Z
n
x ( i ) y ( i ) ;
w h e r e x ( i ) i s t h e c o n j u g a t e c o m p l e x o f x ( i ) . W e l e t e
i
2 C
n
b e t h e s t a n d a r d
b a s i s s o t h a t
x =
X
i 2 Z
n
x ( i ) e
i
:
F o r a s e t o f v e c t o r s x
s
2 C
n
s
( s = 0 ; : : : ; t ? 1 ) w e d e n e t h e K r o n e c k e r
p r o d u c t o f t h e x
s
w h i c h w e w r i t e a s
x = x
0
x
t ? 1
=
t ? 1
O
s = 0
x
s
b y
x ( i ) =
t ? 1
Y
s = 0
x
s
( i
s
) ; w h e r e ( i
0
; : : : ; i
t ? 1
) =
? 1
n
( i )
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 3 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
9/45
5 1 4 M . H e g l a n d
f o r n = ( n
0
; : : : ; n
t ? 1
) a n d n = j n j . ( S o m e t i m e s t h i s p r o d u c t i s a l s o d e n o t e d a s
x
t ? 1
x
0
. ) T h e a l g e b r a i c c l o s u r e ( t h e s e t o f a l l l i n e a r c o m b i n a t i o n s ) o f s u c h
p r o d u c t s i s C
n
.
P e r m u t a t i o n s o f v e c t o r s a r e d e n e d b y p e r m u t a t i o n s o f t h e i n d i c e s . A s v e c -
t o r s a r e i n t e r p r e t e d a s m a p p i n g s w e c a n w r i t e a p e r m u t a t i o n o f a v e c t o r a s a
c o m p o s i t i o n o f a p e r m u t a t i o n a n d a v e c t o r , i . e . , a s x . F o r e x a m p l e i f 2 S
3
w i t h ( ( 0 ) ; ( 1 ) ; ( 2 ) ) = ( 2 ; 0 ; 1 ) a n d x 2 C
3
w e g e t
x =
x ( ( 0 ) )
x ( ( 1 ) )
x ( ( 2 ) )
!
=
x ( 2 )
x ( 0 )
x ( 1 )
!
:
I t i s e a s y t o s h o w t h a t p e r m u t a t i o n s a r e u n i t a r y , i . e . ,
( x ; y ) = ( x ; y ) :
T h e i - t h c o m p o n e n t o f x i s x ( ( i ) ) , t h e ( i ) t h c o m p o n e n t o f x a n d s o
e
i
= e
? 1
( i )
:
2 . 3 . M a t r i c e s
E l e m e n t s o f t h e s e t L ( C
n
) o f l i n e a r o p e r a t o r s o n C
n
a r e d e n o t e d b y c a p i t a l
R o m a n l e t t e r s . F o r a n y A 2 L ( C
n
) t h e m a t r i x e l e m e n t s a r e
A i ; j ] = ( A e
j
) ( i ) = ( e
i
; A e
j
) ; i ; j 2 Z
n
:
T w o s p e c i a l m a t r i c e s w i l l b e u s e d f r e q u e n t l y , n a m e l y I
n
, t h e i d e n t i t y i n C
n
a n d F
n
2 L ( C
n
) , t h e d i s c r e t e F o u r i e r t r a n s f o r m m a t r i x w i t h c o m p o n e n t s b e i n g
p o w e r s o f t h e n - t h r o o t o f u n i t y , i . e . ,
F
n
i ; j ] = !
i j
n
; i ; j 2 Z
n
;
w h e r e
!
n
= e x p ( ? 2
p
? 1 = n )
a n d e x p i s t h e e x p o n e n t i a l f u n c t i o n .
W e d e n e t h e K r o n e c k e r p r o d u c t A o f a s e t o f m a t r i c e s A
s
2 L ( C
n
s
) b y
A
t ? 1
O
s = 0
x
s
!
=
t ? 1
O
s = 0
( A
s
x
s
) ; x
s
2 C
n
s
; ( s = 0 ; : : : ; t ? 1 ) ;
a n d w i l l d e n o t e i t b y
A =
t ? 1
O
s = 0
A
s
= A
0
A
t ? 1
:
I t c a n b e e a s i l y c h e c k e d t h a t t h e m a t r i x e l e m e n t s o f t h e K r o n e c k e r p r o d u c t a r e
g i v e n b y
A i ; j ] =
t ? 1
Y
s = 0
A
s
i
s
; j
s
]
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 4 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
10/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 5
i f ( i
0
; : : : ; i
t ? 1
) =
? 1
n
( i ) a n d ( j
0
; : : : ; j
t ? 1
) =
? 1
n
( j ) .
W e w i l l u s e v a r i o u s m a t r i x f a m i l i e s . T h e y a r e a l l m a p p i n g s f r o m N
t
i n t o
L ( C
n
) a n d w i l l b e d e n o t e d b y T ( n
0
; n
1
; n
2
; n
3
; n
4
) ; W ( n
0
; n
1
; n
2
; n
3
) ; e t c .
Q u i t e f r e q u e n t l y w e w i l l m a k e u s e o f p e r m u t a t i o n m a t r i c e s . T h e y a r e g e n e r -
a t e d b y a p e r m u t a t i o n 2 S
n
a n d a r e d e n e d b y
P ( ) x = x
? 1
:
T h e m a t r i x e l e m e n t s o f t h e p e r m u t a t i o n s a r e
P ( ) i ; j ] = ( P ( ) e
j
) ( i ) = ( e
j
? 1
) ( i ) = e
j
(
? 1
( i ) ) =
1 ; i f ( j ) = i
0 ; e l s e
T h e r e a s o n f o r u s i n g x
? 1
i n s t e a d o f x
i s p u r e l y e s t h e t i c , w e w a n t t o d e n e
x o n t h e \ n o n - p e r m u t e d a r g u m e n t s e t " . A c o n s e q u e n c e o f t h i s i s t h e c o m p o s i t i o n
r u l e f o r t r a n s p o s i t i o n s : L e t
1
;
2
2 S
n
. T h e n f o r a n y x 2 C
n
:
P (
1
2
) x = x (
1
2
)
? 1
= x
? 1
2
? 1
1
= P (
1
) ( x
? 1
2
) = P (
1
) P (
2
) x
a n d s o
P (
1
2
) = P (
1
) P (
2
) :
W e w i l l n o w l o o k c l o s e r a t a s p e c i a l t r a n s p o s i t i o n w h i c h w e w i l l u s e l a t e r . I t
i s g e n e r a t e d b y 2 S
5
w i t h
( 1 ) = 3 ; ( 3 ) = 1 ; a n d ( s ) = s ; f o r s = 0 ; 2 ; 4 :
A s d e n e d e a r l i e r t h e a c t i o n o f o n Z
5
i s w i t h
( i ) = ( i
0
; i
3
; i
2
; i
1
; i
4
) ; f o r i = ( i
0
; i
1
; i
2
; i
3
; i
4
) 2 Z
5
:
T h e i n d e x - d i g i t p e r m u t a t i o n a s s o c i a t e d w i t h i s t h e n ~
n
=
( n )
? 1
n
a n d w e d e n o t e i t s a c t i o n o n C
n
w i t h n = j n j b y
T ( n
0
; n
1
; n
2
; n
3
; n
4
) = P ( ~
n
) :
N o w l e t
y = P ( ~
n
) x = x
n
? 1
? 1
( n )
a n d s e t
i =
? 1
? 1
( n )
( j ) ; j 2 Z
n
:
T h e n j =
( n )
( ( i ) ) a n d n a l l y
y
( n )
( i
0
; i
3
; i
2
; i
1
; i
4
) = x
n
( i
0
; i
1
; i
2
; i
3
; i
4
) ;
w h i c h s h o w s t h a t i f x a n d y a r e i n t e r p r e t e d a s m u l t i d i m e n s i o n a l a r r a y s ( f u n c t i o n s
o n C
n
a n d C
( n )
r e s p e c t i v e l y ) t h e p e r m u t a t i o n i s j u s t a t r a n s p o s i t i o n o f t h e
a r r a y s . T h e i m p l e m e n t a t i o n o f s u c h t r a n s p o s i t i o n s u s u a l l y n e e d s t o h a v e t h e
v e c t o r s x a n d y i n d i e r e n t s t o r a g e l o c a t i o n s . H o w e v e r , a s i n t h e c a s e o f m a t r i x
t r a n s p o s i t i o n s , t h e x a n d y c a n u s e t h e s a m e s t o r a g e l o c a t i o n s i f n
1
= n
3
. W e
c a l l t h i s a s q u a r e t r a n s p o s i t i o n . F F T a l g o r i t h m s u s i n g o n l y T ( n
0
; n
1
; n
2
; n
3
; n
4
)
w i t h n
1
= n
3
c a n b e i m p l e m e n t e d w i t h o u t t h e n e e d f o r a n y e x t r a w o r k s p a c e a n d
w i l l b e c a l l e d i n - p l a c e .
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 5 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
11/45
5 1 6 M . H e g l a n d
T h e t r a n s p o s i t i o n s a s d e n e d a b o v e a l s o h a v e b e e n u s e d t o s o l v e b a n d e d s y s -
t e m s a n d t h e r e w e r e t e r m e d \ w r a p - a r o u n d - p a r t i t i o n i n g p e r m u t a t i o n s " H e g 9 1 ] .
A s e c o n d m a t r i x f a m i l y i s d e n e d b y
F ( n
0
; n
1
; n
2
) = I
n
0
F
n
1
I
n
2
:
T h e s e m a t r i c e s a r e j u s t m u l t i p l e F o u r i e r t r a n s f o r m s .
N o w l e t n = ( n
0
; n
1
; n
2
; n
3
) . T h e n w e n e e d a f a m i l y o f d i a g o n a l m a t r i c e s w i t h
d i a g o n a l e l e m e n t s
W ( n
0
; n
1
; n
2
; n
3
) i ; i ] = ( !
n
1
n
2
)
i
1
i
2
; i f ( i
0
; i
1
; i
2
; i
3
) =
? 1
n
( i ) ; i 2 Z
j n j
;
w h e r e t h e d i a g o n a l e l e m e n t s a r e p o w e r s o f t h e n
1
n
2
t h r o o t o f u n i t y . T h i s m a t r i x
i s c a l l e d w e i g h t m a t r i x o r t w i d d l e - f a c t o r m a t r i x . U s u a l l y m u l t i p l i c a t i o n b y t h i s
m a t r i x i s i m p l e m e n t e d b y u s i n g a p r e c o m p u t e d t a b l e c o n t a i n i n g t h e n e c e s s a r y
p o w e r s o f !
n
.
2 . 4 . A l g o r i t h m s
O u r a l g o r i t h m s w i l l b e f o r m u l a t e d i n a s y m b o l i c l a n g u a g e w h i c h h a s s o m e s i m -
i l a r i t i e s w i t h M a t l a b M a t 9 3 ] , s e e a l s o L o a 9 2 ] . W e w i l l i n t r o d u c e t h i s n o t a t i o n
h e r e w i t h a n e x a m p l e w h i c h d e s c r i b e s t h e g e n e r i c F o u r i e r t r a n s f o r m . I t i s d e n e d
b y
A l g o r i t h m 2 . 1 .
f u n c t i o n y = g f t ( x ; n )
( * c o m p u t e F o u r i e r t r a n s f o r m o f x * )
n 2 N ; x ; y 2 C
n
;
0
;
1
2 S
n
y : = P (
1
) F
n
P (
0
) x
O n t h e r s t l i n e , t h e n a m e o f t h e f u n c t i o n , h e r e g f t , i s s p e c i e d a n d t h e
a r g u m e n t s x ; n a n d t h e r e s u l t y a r e n a m e d . T h e s e c o n d l i n e i s a c o m m e n t w h i c h
s p e c i e s t h e f u n c t i o n a l i t y o f t h e a l g o r i t h m a n d t h e t h i r d l i n e s p e c i e s t h e t y p e
o f a r g u m e n t s , r e s u l t s a n d e x t r a d a t a , h e r e t h e p e r m u t a t i o n s
k
. T h e f o u r t h l i n e
d e n e s a n a s s i g n m e n t s t a t e m e n t w i t h t h e v a r i a b l e t o b e r e d e n e d o n t h e l e f t
s i d e a n d a n e x p r e s s i o n t o r e d e n e t h i s v a r i a b l e o n t h e r i g h t . F o r t h i s e x p r e s s i o n
t h e s a m e t e r m i n o l o g y a s i n t h e r e s t o f t h e p a p e r w i l l b e u s e d . I n t h e e x a m p l e
t h e v e c t o r x i s r s t p e r m u t e d t h e n m u l t i p l i e d b y t h e d i s c r e t e F o u r i e r t r a n s f o r m
m a t r i x F
n
a n d n a l l y p e r m u t e d a g a i n . A l t h o u g h n o t i m p l e m e n t e d i n t h i s w a y ,
t h e f u n c t i o n a l i t y o f t h e g e n e r i c F o u r i e r t r a n s f o r m i s t h e o n e w e w i l l e n c o u n t e r .
I f P (
0
) = P (
1
) = I
n
w e c a l l t h e t r a n s f o r m s e l f - s o r t i n g . F u r t h e r f u n c t i o n a l i t y
l i k e s o m e o b v i o u s c o n t r o l s t a t e m e n t s w i l l b e d e n e d a s w e g o a l o n g . O f t e n t h e
f u n c t i o n s w i l l b e r e c u r s i v e . M o s t o f t h e f u n c t i o n s d e n e d i n t h i s w a y h a v e b e e n
t r a n s l a t e d t o M a t l a b a n d t e s t e d .
T h e u l t i m a t e t e s t f o r p e r f o r m a n c e o f a n a l g o r i t h m i s t o c o d e i t a n d r u n
i t o n t h e d e s i r e d c o m p u t e r . V a r i o u s p r o p e r t i e s o f h a r d - a n d s o f t w a r e u s e d w i l l
i n u e n c e p e r f o r m a n c e . I t i s u s e f u l t o h a v e i n d i c a t o r s s u m m a r i z i n g a s p e c t s o f t h e
a l g o r i t h m t o b e t e s t e d , a n d c o n n e d w i t h s o m e i n f o r m a t i o n a b o u t t h e h a r d w a r e ,
a l l o w c o m p a r i s o n s o f d i e r e n t a l g o r i t h m s .
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 6 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
12/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 7
A r s t i n d i c a t o r w h i c h w e d e n o t e b y c o u n t s t h e n u m b e r o f o a t i n g p o i n t
o p e r a t i o n s n e e d e d . F o r t h e g e n e r i c F o u r i e r t r a n s f o r m , i f w e u s e t h e o r d i n a r y
c o m p l e x m a t r i x - v e c t o r p r o d u c t w i t h o u t t a k i n g i n t o a c c o u n t a n y s p e c i a l v a l u e s
( l i k e 1 ) w e n e e d n
2
c o m p l e x m u l t i p l i c a t i o n s a n d n ( n ? 1 ) c o m p l e x a d d i t i o n s f o r
a t r a n s f o r m o f s i z e n , a n d w e w o u l d s e t
( g f t ; n ) = 8 n
2
? 2 n :
T h i s i n d i c a t o r g i v e s r e a s o n a b l e c o m p a r i s o n s f o r s e q u e n t i a l c o m p u t e r s . F o r v e c t o r
a n d p a r a l l e l c o m p u t e r s , h o w e v e r , o t h e r i n d i c a t o r s a r e n e e d e d .
F o u r i e r t r a n s f o r m a l g o r i t h m s c o n t a i n e s s e n t i a l l y m a p p i n g s o f t h e s o r t
x 7! ( I
n
0
A ) x ; A 2 L ( C
n
1
) ; x 2 C
n
0
n
1
:
S u c h m a p p i n g s c a n b e i m p l e m e n t e d a s t r i p l e l o o p s w h e r e t h e \ i n n e r m o s t " l o o p
i s o f l e n g t h n
0
a n d t h e t w o o u t e r l o o p s a r e o f l e n g t h n
1
. D a t a a c c e s s t o x i s w i t h
s t r i d e o n e i n t h e i n n e r m o s t l o o p a n d t h e e l e m e n t s o f A a r e c o n s t a n t i n t h i s l o o p .
O n a v e c t o r p r o c e s s o r , t h e i n n e r m o s t l o o p w o u l d b e t h e f a v o u r e d c a n d i d a t e f o r
v e c t o r i z a t i o n . O n a d i s t r i b u t e d m e m o r y p a r a l l e l p r o c e s s o r , d a t a i s d i s t r i b u t e d
s u c h t h a t t h i s i n n e r m o s t l o o p c a n b e r u n i n p a r a l l e l a n d n o c o m m u n i c a t i o n i s
n e e d e d . B o t h v e c t o r i z a t i o n a n d p a r a l l e l i z a t i o n , h o w e v e r , a r e o n l y e c i e n t i f n
0
i s l a r g e . O u r F o u r i e r t r a n s f o r m a l g o r i t h m s c o n s i s t s o f m a p p i n g s
x 7! F ( n
0
; n
1
; n
2
) x
w h e r e n
1
i s s m a l l ,
x 7! W ( n
0
; n
1
; n
2
; n
3
) x a n d
x 7! T ( n
0
; n
1
; n
2
; n
3
; n
4
) x :
W e a s s u m e t h a t t h e r s t a n d t h i r d m a p p i n g s c a n b e o v e r l a p p e d w i t h m a p p i n g s
o f t h e s e c o n d k i n d . I f t h e a l g o r i t h m c o n t a i n s o n l y o n e m a p p i n g o f t h e s e c o n d
k i n d ,
A l g o r i t h m 2 . 2 .
f u n c t i o n y = w f t ( x ; n )
: : :
y : = W ( n
0
; n
1
; n
2
; n
3
) x
: : :
w e s e t o u r s e c o n d i n d i c a t o r t o
( w f t ; n ) =
(
1
n
0
; i f n
0
> 1
2
n
1
i f n
0
= 1 .
T h e f a c t o r 2 i n t h e s e c o n d c a s e t a k e s i n t o a c c o u n t t h a t t w o v e c t o r s u s u a l l y h a v e
t o b e l o a d e d i n t h i s c a s e .
W e a l s o d e s i r e o u r i n d i c a t o r t o b e a d d i t i v e , i . e . , i f a n a l g o r i t h m c o n s i s t s o f
t w o p a r t s a s i n
A l g o r i t h m 2 . 3 .
f u n c t i o n y = p a f t ( x ; n )
: : :
y : = p a r t 1 ( x ; n )
y : = p a r t 2 ( y ; n )
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 7 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
13/45
5 1 8 M . H e g l a n d
w e r e q u i r e
( p a f t ; n ) = ( p a r t 1 ; n ) + ( p a r t 2 ; n ) :
S i n c e d a t a f r o m p a r t 2 h a s t o b e c o m p u t e d i n p a r t 1 t h e t w o p a r t s c a n n o t b e
d o n e i n p a r a l l e l a n d t h u s a d d i t i v i t y i s a l s o v a l i d f o r p a r a l l e l p r o c e s s i n g . S o m e
t i m e s w e w i l l u s e t h e s y m b o l f ( n ) = O ( n ) m e a n i n g t h a t t h e r e i s a c o n s t a n t s u c h
t h a t f ( n ) C n f o r a l l n .
3 . A n e w F F T a l g o r i t h m
T h i s s e c t i o n s p e c i e s a n e w a l g o r i t h m t o d o f a s t F o u r i e r t r a n s f o r m s . S o m e p r o p o -
s i t i o n s a r e s t a t e d a b o u t t h e p e r f o r m a n c e o f t h i s a l g o r i t h m a n d s o m e p e r f o r m a n c e
d a t a a r e s u p p l i e d . P r o o f s o f t h e p r o p o s i t i o n s w i l l b e g i v e n i n l a t e r s e c t i o n s .
T h e n u m b e r o f o a t i n g p o i n t o p e r a t i o n s r e q u i r e d i s b o u n d e d b y t h e n u m b e r
o f o p e r a t i o n s n e e d e d f o r t h e t r a d i t i o n a l r a d i x 2 a l g o r i t h m s . T h i s c a n b e u p t o
2 0 % m o r e t h a n f o r h i g h e r r a d i x o r e v e n s p l i t - r a d i x D H 8 4 ] m e t h o d s . O n m a n y
p l a t f o r m s , h o w e v e r , t h e n e w a l g o r i t h m p e r f o r m s f a s t e r a s i t e s s e n t i a l l y o n l y
a c c e s s e s d a t a w i t h s t r i d e o n e a n d a l l o w s l o n g v e c t o r l e n g t h s .
T h e a l g o r i t h m i s d e s c r i b e d b y t h e f o l l o w i n g p s e u d o - c o d e :
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 8 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
14/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 9
A l g o r i t h m 3 . 1 .
f u n c t i o n y = t f t ( x ; n
0
; n
1
; n
2
)
( * c o m p u t e m u l t i p l e F o u r i e r t r a n s f o r m , y = F ( n
0
; n
1
; n
2
) x * )
n
0
; n
1
; n
2
2 N ; x ; y 2 C
n
0
n
1
n
2
p : = m i n f s 2 N j
p
n
1
= s 2 N g
i f ( p = n
1
)
y : = F ( n
0
; p ; n
2
) x
e l s e
q : =
p
n
1
= p
y : = t f t ( x ; n
0
q p ; q ; n
2
)
y : = W ( n
0
; q p ; q ; n
2
) T ( n
0
; q ; p ; q ; n
2
) F ( n
0
q ; p ; q n
2
) W ( n
0
q ; p ; q ; n
2
) y
y : = t f t ( y ; n
0
q p ; q ; n
2
)
e n d i f
L e t
n
1
=
t ? 1
Y
i = 0
p
r
i
i
( 1 )
b e t h e p r i m e f a c t o r d e c o m p o s i t i o n o f t h e o r d e r n
1
o f t h e F o u r i e r t r a n s f o r m . I n
a r s t s t e p o u r a l g o r i t h m c o m p u t e s
p =
Y
r
i
i s o d d
p
i
( 2 )
t h e p r o d u c t o f a l l p r i m e s w h i c h a p p e a r i n o d d p o w e r s i n t h e f a c t o r i z a t i o n . I f n
1
i s e q u a l t o p t h e n i t s p r i m e f a c t o r d e c o m p o s i t i o n c o n t a i n s o n l y m u t u a l l y d i e r e n t
p r i m e f a c t o r s . I n t h i s c a s e x i s m u l t i p l i e d b y t h e m a t r i x F ( n
0
; p ; n
2
) . F o r t h i s
m u l t i p l i c a t i o n a s e p a r a t e a l g o r i t h m h a s t o b e s u p p l i e d ( e . g . , t h e p r i m e f a c t o r
a l g o r i t h m T e m 8 3 , T e m 8 5 ] ) . I f n
1
i s n o t e q u a l t o p t h e n n
1
= p = q
2
i s a s q u a r e o f
a n i n t e g e r . T h e a l g o r i t h m t h e n p r o c e e d s b y r s t c a l l i n g i t s e l f w i t h o r d e r q < n
1
,
t h e n d o i n g s o m e i n t e r m e d i a t e m a t r i x v e c t o r m u l t i p l i e s , a n d n a l l y c a l l i n g i t s e l f
a g a i n . T h u s i t b o t h d o e s d e c i m a t i o n i n t i m e a n d d e c i m a t i o n i n f r e q u e n c y . T h e
a b o v e d e n e s o u r a l g o r i t h m i n a r e c u r s i v e f a s h i o n . H o w e v e r , f o r t h e V P 2 2 0 0 w e
i m p l e m e n t e d t h i s a l g o r i t h m i n a n o n - r e c u r s i v e F o r t r a n 7 7 p r o g r a m .
I n o r d e r t o g e t a b e t t e r u n d e r s t a n d i n g o f t h i s a l g o r i t h m , w e w i l l s t u d y h o w
i t p r o c e e d s i n t h e c a s e o f n
1
= 8 . I n t h e r s t s t e p i t g e t s p = 2 a n d p r o c e e d s
t o t h e s t a t e m e n t s f o l l o w i n g \ e l s e " . T h e r e i t c o m p u t e s q = 2 , t h e n d o e s a n o r d e r
2 t r a n s f o r m , t h e n t h e i n t e r m e d i a t e s t e p a n d a n a l o r d e r 2 t r a n s f o r m . F o r t h e
o r d e r t w o t r a n s f o r m s t f t i s c a l l e d r e c u r s i v e l y , b u t a s 2 i s p r i m e , w e e n d u p w i t h
p = 2 = n
1
o n t h i s l e v e l . T h u s e s s e n t i a l l y t h e f o l l o w i n g t h r e e s t e p s a r e p e r f o r m e d :
y : = F ( 4 n
0
; 2 ; n
2
) x
y : = W ( n
0
; 4 ; 2 ; n
2
) T ( n
0
; 2 ; 2 ; 2 ; n
2
) F ( 2 n
0
; 2 ; 2 n
2
) W ( 2 n
0
; 2 ; 2 ; n
2
) y
y : = F ( 4 n
0
; 2 ; n
2
) y
S o i n t h i s c a s e w e h a v e t w o m u l t i p l i c a t i o n s w i t h W , t h r e e o r d e r 2 t r a n s f o r m s
a n d o n e s q u a r e t r a n s p o s i t i o n .
T h e f o l l o w i n g p r o p o s i t i o n s t a t e s t h a t o u r a l g o r i t h m d o e s w h a t w e w a n t i t t o
d o .
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 1 9 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
15/45
5 2 0 M . H e g l a n d
P r o p o s i t i o n 3 . 1 . A l g o r i t h m 3 d e n e s a n i n - p l a c e a n d s e l f - s o r t i n g F o u r i e r
t r a n s f o r m a n d f o r a l l x 2 C
n
w i t h n = n
0
n
1
n
2
t h e f o l l o w i n g h o l d s :
t f t ( x ; n
0
; n
1
; n
2
) = F ( n
0
; n
1
; n
2
) x :( 3 )
T h e p r o o f u s e s a n e w s p l i t t i n g f o r m u l a . I t w i l l b e g i v e n i n S e c t . 5 .
T h e f o l l o w i n g p r o p o s i t i o n s t a t e s t h a t o u r n e w a l g o r i t h m i s a t l e a s t a s f a s t
a s t h e t r a d i t i o n a l r a d i x 2 a l g o r i t h m s i n t h e c a s e o f n
1
b e i n g a p o w e r o f 2 . T h e
g e n e r a l m i x e d - r a d i x c a s e c a n b e t r e a t e d i n a s i m i l a r w a y .
P r o p o s i t i o n 3 . 2 . T h e n u m b e r o f o a t i n g p o i n t o p e r a t i o n s n e e d e d f o r A l g o -
r i t h m 3 i s f o r o r d e r s b e i n g a p o w e r o f 2 b o u n d e d b y
( t f t ; n
0
; 2
t
; n
2
) 5 t n
0
2
t
n
2
:
T h i s t h e o r e m w i l l b e p r o v e d i n S e c t . 6 . C o m p a r e d t o o t h e r a l g o r i t h m s w h i c h
c o m e c l o s e t o o p e r a t i o n c o u n t s o f 4 t n
0
2
t
n
2
t h i s n e w a l g o r i t h m d o e s n ' t s e e m t o
p e r f o r m b e t t e r t h a n t h e u s u a l o n e s . H o w e v e r , a n i n d i c a t i o n f o r b e t t e r p e r f o r -
m a n c e i s g i v e n b y t h e f o l l o w i n g t h e o r e m g i v i n g a n e s t i m a t e f o r t h e l o o p - o v e r h e a d
i n d i c a t o r . W e w i l l c o m p u t e e s t i m a t e s f o r t h i s i n d i c a t o r f o r v a r i o u s o t h e r a l g o -
r i t h m s i n S e c t . 6 f o r c o m p a r i s o n . A s s i m p l e t r a n s f o r m s ( n
0
= n
2
= 1 ) a r e m o s t
c r u c i a l w e g i v e a n e s t i m a t e f o r t h i s c a s e .
P r o p o s i t i o n 3 . 3 . L e t n b e t h e p r o d u c t o f p o w e r s o f s o m e s m a l l p r i m e n u m b e r s ,
e . g . , 2 , 3 a n d 5 . T h e n t h e i n n e r m o s t l o o p o v e r h e a d i n d i c a t o r f o r A l g o r i t h m 3 i s
i n t h e c a s e o f s i m p l e t r a n s f o r m s b o u n d e d b y
( t f t ; 1 ; n ; 1 ) = O (
p
n
? 1
) :( 4 )
I n t h e f o l l o w i n g w e g i v e s o m e t i m i n g r e s u l t s f o r a n i m p l e m e n t a t i o n o f o u r
n e w a l g o r i t h m o n t h e V P 2 2 0 0 . I n c o m p a r i s o n w e g i v e t h e t i m i n g s f o r t h e l i b r a r y
r o u t i n e D V C F T 1 f r o m F u j i t s u ' s s c i e n t i c s u b r o u t i n e l i b r a r y S S L I I F u j 9 0 ] w h i c h
i m p l e m e n t s p e c i a l l y t u n e d v a r i a n t s o f t h e P e a s e a n d S t o c k h a m A l g o r i t h m s . T h e
h i g h e s t M F l o p r a t e i s a r o u n d 4 7 0 . H e r e w e o n l y c o u n t e d t h e o p e r a t i o n s d o n e
i n t h e a c t u a l t r a n s f o r m a n d n o t t h e o n e s n e e d e d f o r t h e t a b l e s e t u p . I f w e t a k e
t h e s e i n a c c o u n t a l s o w e g e t a p e r f o r m a n c e a r o u n d 5 0 0 M F l o p s . T h e r e d u c t i o n
i n c o m p u t e r t i m e f o r o u r n e w a l g o r i t h m s e e m s t o b e r a t h e r s m a l l . H o w e v e r ,
D V C F T 1 o n l y a c h i e v e s t h e p e r f o r m a n c e d i s p l a y e d i f s o m e p r e l i m i n a r y c o m p u -
t a t i o n s h a v e b e e n d o n e . F u r t h e r m o r e i t u s e s a l a r g e w o r k s p a c e a r r a y . O u r n e w
a l g o r i t h m r e q u i r e s n o s u c h w o r k s p a c e .
T a b l e 1 . T i m e i n m i c r o s e c o n d s a n d p e r f o r m a n c e i n M F l o p s o f t f t ( d o u b l e p r e c i s i o n )
n t i m e p e r f o r m a n c e t i m e f o r S t o c k h a m
1 0 2 4 3 8 0 . 0 1 1 9 1 7 3 . 0
2 0 4 8 6 4 0 . 0 1 5 7 4 0 6 . 0
4 0 9 6 7 4 0 . 0 2 9 9 8 2 1 . 0
8 1 9 2 1 4 3 8 . 0 3 3 6 1 7 5 5 . 0
1 6 3 8 4 2 5 0 7 . 0 4 1 8 3 8 1 4 . 0
3 2 7 6 8 5 1 1 4 . 0 4 4 2 8 1 9 0 . 0
6 5 5 3 6 1 0 6 0 3 . 0 4 5 7 1 7 6 1 7 . 0
1 3 1 0 7 2 2 2 0 4 0 . 0 4 7 0 3 7 5 5 3 . 0
F i n a l l y , a w o r d o n p a r a l l e l e x e c u t i o n . I n t h e c o r e o f t h e c o d e o f F F T a l g o -
r i t h m s o n e u s u a l l y n d s m u l t i p l e l o o p s . O n v e c t o r c o m p u t e r s t h e i n n e r m o s t o f
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 2 0 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
16/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 1
t h e s e l o o p s i s v e c t o r i z e d a s i t g i v e s s t r i d e - o n e d a t a a c c e s s . T h i s i s w h y , i n o u r
a l g o r i t h m , w e t r y t o m a x i m i z e t h e l e n g t h o f t h e i n n e r m o s t l o o p t o g e t o p t i -
m a l v e c t o r p e r f o r m a n c e . I n t h e o r d i n a r y a l g o r i t h m s t h e o u t e r m o s t l o o p c a n b e
r e a s o n a b l y l a r g e a s w e l l . T h i s i s n o t t h e c a s e f o r o u r a l g o r i t h m w h e r e w e t r y t o
m i n i m i z e t h e o u t e r m o s t l o o p , w h i c h o f t e n h a s l e n g t h o n e f o r o u r a l g o r i t h m . T h u s
d i s t r i b u t i o n o f t h e o u t e r m o s t l o o p o v e r d i e r e n t p r o c e s s o r s , a s i t i s o f t e n d o n e
f o r t h e \ c l a s s i c a l " a l g o r i t h m s i s n o t a f e a s i b l e o p t i o n h e r e . I n s t e a d , w e u s e t h e
i n n e r m o s t l o o p a g a i n f o r d i s t r i b u t i o n o v e r p r o c e s s o r s . I f a d i s t r i b u t e d m e m o r y
i s u s e d , t h i s m e a n s t h a t t h e d a t a h a s t o b y c y c l i c a l l y d i s t r i b u t e d . N o t e t h a t t h e
u s a g e o f t h e i n n e r m o s t l o o p f o r p a r a l l e l i z a t i o n d o e s n o t m e a n a n y d i s a d v a n t a g e
i n c o m p a r i s o n w i t h t h e u s a g e o f t h e o u t e r m o s t l o o p a s w e e s s e n t i a l l y r e p l a c e t h e
o u t e r m o s t l o o p b y a l o n g e r i n n e r m o s t l o o p .
I f t h e i n n e r m o s t l o o p i s u s e d f o r p a r a l l e l i z a t i o n a n d v e c t o r i z a t i o n , t h e i n n e r
m o s t l o o p o v e r h e a d i n d i c a t o r g i v e s u s i n f o r m a t i o n a b o u t v e c t o r a n d p a r a l l e l
p e r f o r m a n c e .
4 . I n d e x d i g i t p e r m u t a t i o n s a n d K r o n e c k e r p r o d u c t s
T h i s s e c t i o n d o e s t h r e e t h i n g s : I n a r s t s u b s e c t i o n t h e q u e s t i o n i s s t u d i e d w h e n
a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a g a i n a n i n d e x - d i g i t p e r m u t a t i o n .
T h e n w e w i l l g i v e a f u n d a m e n t a l t h e o r e m s h o w i n g h o w K r o n e c k e r p r o d u c t s o f
m a t r i c e s t r a n s f o r m u n d e r c e r t a i n i n d e x - d i g i t p e r m u t a t i o n s . F i n a l l y w e w i l l g i v e
s o m e r e c u r s i o n s f o r i n d e x - d i g i t r e v e r s a l s .
T h e r s t t w o p a r t s a r e f u n d a m e n t a l t o a l l F F T a l g o r i t h m s w e w i l l d i s c u s s
h e r e . I n d e x - d i g i t r e v e r s a l s a r e c l o s e l y r e l a t e d t o F F T a l g o r i t h m s a n d a r e u s e d o n
t h e r e o w n i n c o n n e c t i o n w i t h t h e a l g o r i t h m s o f C o o l e y - T u k e y , G e n t l e m a n - S a n d e
a n d P e a s e . A s p e c i a l i n s t a n c e o f t h i s a r e t h e b i t - r e v e r s a l a l g o r i t h m s .
S o m e w o r k o n i n d e x - d i g i t p e r m u t a t i o n s w a s d o n e i n F r a 7 6 ] , s e e a l s o L o a 9 2 ] .
4 . 1 . P r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s
I n g e n e r a l , a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a p e r m u t a t i o n b u t n o t
a n i n d e x - d i g i t p e r m u t a t i o n . W e w i l l s t u d y c o n d i t i o n s f o r t h e f a c t o r s s u c h t h a t
t h e i r p r o d u c t i s a n i n d e x - d i g i t p e r m u t a t i o n . I f t h i s i s t h e c a s e w e s h o w h o w t h e
p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s c a n s i m p l y b e c o m p u t e d a s t h e p r o d u c t
o f t h e p e r m u t a t i o n s o f t h e c o r r e s p o n d i n g i n d e x - d i g i t s .
T h e f o l l o w i n g p r o p o s i t i o n i s o u r b a s i c \ m u l t i p l i c a t i o n t h e o r e m " .
P r o p o s i t i o n 4 . 1 . F o r t 2 N l e t
( s )
2 S
t
; s = 1 ; 2 ; 3 b e t h r e e p e r m u t a t i o n s
a n d
( 3 )
=
( 1 )
( 2 )
. A s u s u a l , l e t
( s )
d e n o t e t h e a c t i o n o f t h e
( s )
o n Z
t
a n d
f o r n 2 N
t
l e t ~
( s )
n
b e t h e i n d e x - d i g i t p e r m u t a t i o n s g e n e r a t e d b y
( s )
a n d n ,
s = 1 ; 2 ; 3 . T h e n w i t h n
0
=
( 1 )
( n ) t h e c o m p o s i t i o n ~
( 2 )
n
0
~
( 1 )
n
i s a n i n d e x - d i g i t
p e r m u t a t i o n a n d
~
( 2 )
n
0
~
( 1 )
n
= ~
( 3 )
n
:
P r o o f . T h i s i s a d i r e c t c o n s e q u e n c e o f t h e d e n i t i o n s a n d t h e a s s o c i a t i v e l a w f o r
c o m p o s i t i o n s o f m a p p i n g s :
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 2 1 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
17/45
5 2 2 M . H e g l a n d
~
( 2 )
n
0
~
( 1 )
n
=
( 2 )
( n
0
)
( 2 )
? 1
n
0
( 1 )
( n )
( 1 )
? 1
n
=
( 3 )
( n )
( 3 )
? 1
n
= ~
( 3 )
n
a s o n t h e s e c o n d l i n e t h e i n t e r m e d i a t e t e r m s d r o p o u t b e c a u s e n
0
=
( 1 )
( n ) a n d
( 2 )
( 1 )
=
( 1 )
( 2 )
=
( 3 )
. ut
T h u s w e c a n m u l t i p l y i n d e x d i g i t p e r m u t a t i o n s s i m p l y b y m u l t i p l y i n g t h e i r d e n -
i n g p e r m u t a t i o n s
( s )
i n r e v e r s e d o r d e r i f t h e r a d i x v e c t o r s \ m a t c h " . H o w e v e r ,
i n m a n y c a s e s t h i s m a t c h i n g c o n d i t i o n i s t o o r e s t r i c t i v e a n d i n t h e f o l l o w i n g w e
w i l l r e l a x i t s l i g h t l y . F i r s t w e j u s t s t a t e a c o n s e q u e n c e o f t h e \ m u l t i p l i c a t i o n
t h e o r e m : "
C o r o l l a r y 4 . 2 . F o r t 2 N l e t ;
0
2 S
t
; b e t w o p e r m u t a t i o n s a n d
0
=
? 1
. A s
u s u a l , l e t ;
0
d e n o t e t h e a c t i o n o f t h e ;
0
o n Z
t
a n d f o r a n y n 2 N
t
l e t ~
n
; ~
0
n
b e t h e i n d e x - d i g i t p e r m u t a t i o n s g e n e r a t e d b y ;
0
a n d n . T h e n t h e i n v e r s e o f ~
n
i s g i v e n b y
?
~
n
? 1
= ~
0
( n )
:
P r o o f . S e t
( 1 )
= ;
( 2 )
=
? 1
=
0
a n d a p p l y P r o p o s i t i o n 4 . 1 t o g e t
~
0
( n )
~
n
= ~
( 3 )
n
w h e r e ~
( 3 )
n
i s g e n e r a t e d b y
( 3 )
=
0
= i d a n d n , s o ~
( 3 )
n
= i d . ut
E a r l i e r w e d e n e d a r a d i x v e c t o r t o b e s u b o r d i n a t e t o a n o t h e r r a d i x v e c t o r
i f t h e s e c o n d r a d i x v e c t o r c a n b e p a r t i t i o n e d i n t o b l o c k s i n s u c h a w a y t h a t
t h e p r o d u c t o f t h e c o m p o n e n t s o f t h e b l o c k s j u s t f o r m t h e c o m p o n e n t s o f t h e
s u b o r d i n a t e v e c t o r . T h e n t h e m i x e d r a d i x d i g i t r e p r e s e n t a t i o n s a r e c l o s e l y r e -
l a t e d . C o n s i d e r a s a n e x a m p l e t h e n u m b e r 1 5 9 7 . W i t h r e s p e c t t o t h e r a d i x v e c t o r
( 1 0 ; 1 0 ; 1 0 ; 1 0 ) i t s d i g i t s a r e 7 ; 9 ; 5 a n d 1 . A s u b o r d i n a t e r a d i x v e c t o r i s ( 1 0 0 ; 1 0 0 )
a n d w i t h r e s p e c t t o t h i s r a d i x v e c t o r w e g e t t h e \ d i g i t s " 9 7 a n d 1 5 . T h e m i x e d
r a d i x r e p r e s e n t a t i o n w i t h r e s p e c t t o t h e o r i g i n a l r a d i x v e c t o r c a n b e o b t a i n e d
b y i n s e r t i n g t h e m i x e d r a d i x r e p r e s e n t a t i o n o f t h e \ d i g i t s " w i t h r e s p e c t t o t h e
b l o c k s ( 1 0 ; 1 0 ) o f t h e o r i g i n a l r a d i x v e c t o r i n t o t h e r e p r e s e n t a t i o n w i t h r e s p e c t t o
t h e s u b o r d i n a t e r a d i x v e c t o r . T h i s m i g h t s e e m a l l v e r y t r i v i a l b u t i s n e v e r t h e l e s s
q u i t e u s e f u l i n t h e d e v e l o p m e n t o f F F T a l g o r i t h m s . W e f o r m u l a t e t h i s i n t h e
f o l l o w i n g l e m m a f o r t h e g e n e r a l m i x e d - r a d i x c a s e .
L e m m a 4 . 3 . L e t n = ( n
0
; : : : ; n
t ? 1
) 2 N b e p a r t i t i o n e d s u c h t h a t m =
( j n
0
j ; : : : , j n
t ? 1
j ) i s s u b o r d i n a t e . F u r t h e r m o r e l e t t h e d i g i t v e c t o r i = ( i
0
; : : : ; i
t ? 1
) 2
Z
n
b e p a r t i t i o n e d s u c h t h a t i
s
2 Z
n
s
. T h e n e v e r y d i g i t v e c t o r j 2 Z
m
i s g i v e n b y
j = (
n
0
( i
0
) ; : : : ;
n
t ? 1
( i
t ? 1
) )
i f a n d o n l y i f
m
( j ) =
n
( i ) :
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 2 2 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
18/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 3
T h e p r o o f s i m p l y i n s e r t s t h e d e n i t i o n o f t h e m i x e d r a d i x r e p r e s e n t a t i o n
n
a n d
u s e s i t s b i j e c t i v i t y . W e w i l l o m i t i t h e r e .
N o w a n y i n d e x d i g i t p e r m u t a t i o n w i t h r e s p e c t t o a s u b o r d i n a t e r a d i x v e c t o r
a l s o d e n e s a n i n d e x d i g i t p e r m u t a t i o n w i t h r e s p e c t t o t h e o r i g i n a l r a d i x v e c t o r .
T h u s t h e n u m b e r 9 7 1 5 i s o b t a i n e d f r o m 1 5 9 7 b y p e r m u t i n g t h e t w o \ d i g i t s " 9 7
a n d 1 5 b u t a l s o b y p e r m u t i n g t h e d i g i t s 7 ; 9 ; 5 a n d 1 . F o r t h e g e n e r a l m i x e d -
r a d i x r e p r e s e n t a t i o n t h i s i s f o r m u l a t e d i n t h e f o l l o w i n g c o r o l l a r y t o t h e p r e v i o u s
l e m m a :
C o r o l l a r y 4 . 4 . L e t ~
n
b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y t h e p e r m u -
t a t i o n a n d t h e r a d i x v e c t o r n . F u r t h e r m o r e l e t n b e s u b o r d i n a t e t o s o m e n
0
,
i . e . , n n
0
. T h e n t h e r e e x i s t s a n i n d e x - d i g i t p e r m u t a t i o n ~
0
n
0
g e n e r a t e d b y a
p e r m u t a t i o n
0
a n d t h e r a d i x v e c t o r n
0
s u c h t h a t
~
0
n
0
= ~
n
:
P r o o f . L e t n
0
= ( n
0
0
; : : : ; n
0
t ? 1
) s u c h t h a t n = ( j n
0
0
j ; : : : ; j n
0
t ? 1
j ) . F u r t h e r m o r e f o r
a n y j 2 Z
j n j
= Z
j n
0
j
l e t
i = ( i
0
; : : : ; i
t ? 1
) =
? 1
n
( j ) ; i
0
= ( i
0
0
; : : : ; i
0
t ? 1
) =
n
0
( j ) :
F i n a l l y l e t
0
b e d e n e d b y
( j
0
; : : : ; j
t ? 1
) = ( j
( 0 )
; : : : ; j
( t ? 1 )
)
f o r a n y j 2 Z
n
0
.
T h e n w e g e t f r o m t h e p r e v i o u s l e m m a
i
s
=
n
0
s
( i
0
s
) ; s = 0 ; : : : ; t ? 1
a n d s o
i
( s )
=
n
0
( s )
( i
0
( s )
) ; s = 0 ; : : : ; t ? 1 :
A p p l y i n g t h e p r e v i o u s l e m m a a s e c o n d t i m e r e s u l t s i n
( n )
( ( i ) ) =
0
( n
0
)
(
0
( i
0
) ) :
F r o m t h i s t h e c o r o l l a r y f o l l o w s b y i n s e r t i o n o f t h e d e n i t i o n s o f i a n d i
0
. ut
F r o m t h i s w e s e e t h a t t h e s a m e i n d e x - d i g i t p e r m u t a t i o n i s g e n e r a t e d b y a w h o l e
c l a s s o f p a i r s o f p e r m u t a t i o n s a n d r a d i x v e c t o r s .
O u r b a s i c m u l t i p l i c a t i o n t h e o r e m r e q u i r e d t h e r a d i x v e c t o r s o f t w o i n d e x -
d i g i t p e r m u t a t i o n s t o \ m a t c h " i n o r d e r t o g u a r a n t e e t h a t t h e p r o d u c t i s a l s o a n
i n d e x d i g i t p e r m u t a t i o n . T h e m a t c h i n g c o n d i t i o n c a n n o w b e g e n e r a l i z e d u s i n g
t h e p r e v i o u s c o r o l l a r y .
C o r o l l a r y 4 . 5 . L e t t h e t w o i n d e x - d i g i t p e r m u t a t i o n s ~
( 1 )
n
a n d ~
( 2 )
m
b e g e n e r a t e d
b y t h e r a d i x v e c t o r s n ; m
2 Na n d t h e p e r m u t a t i o n s
( 1 )
a n d
( 2 )
. F u r t h e r m o r e
l e t
( 1 )
( n ) m :
T h e n t h e c o m p o s i t i o n ~
( 2 )
m
~
( 1 )
n
i s a n i n d e x - d i g i t p e r m u t a t i o n a s w e l l g e n e r a t e d
b y s o m e p e r m u t a t i o n
( 3 )
a n d t h e r a d i x v e c t o r n .
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 2 3 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
19/45
5 2 4 M . H e g l a n d
P r o o f . B y t h e p r e v i o u s c o r o l l a r y t h e r e e x i s t s a p e r m u t a t i o n
( 3 )
s u c h t h a t
( 3 )
a n d t h e r a d i x v e c t o r
( 1 )
( n ) g e n e r a t e ~
( 2 )
m
. T h e m u l t i p l i c a t i o n t h e o r e m s h o w s
t h e n t h a t t h e c o m p o s i t i o n o f t h i s i n d e x - d i g i t p e r m u t a t i o n w i t h ~
( 1 )
n
i s a n i n d e x -
d i g i t p e r m u t a t i o n .
ut
W i t h t h i s w e c o m p l e t e t h e i n t r o d u c t i o n t o i n d e x - d i g i t p e r m u t a t i o n a l g e b r a a n d
g o o n t o t h e c o n n e c t i o n o f i n d e x - d i g i t p e r m u t a t i o n s a n d K r o n e c k e r p r o d u c t s .
4 . 2 . P e r m u t a t i o n o f K r o n e c k e r p r o d u c t s
T h e e e c t o f i n d e x - d i g i t p e r m u t a t i o n s o n K r o n e c k e r p r o d u c t s i s s u c h t h a t t h e
f a c t o r s o f t h e p r o d u c t a r e p e r m u t e d a c c o r d i n g t o t h e g e n e r a t i n g p e r m u t a t i o n . A
r s t p r o p o s i t i o n s h o w s t h i s f o r K r o n e c k e r p r o d u c t s o f v e c t o r s . H e r e t h e u s e f u l n e s s
o f t h e i n t e r p r e t a t i o n o f v e c t o r s a s m a p p i n g s b e c o m e s o b v i o u s a s i t s i m p l i e s t h e
p r o o f .
P r o p o s i t i o n 4 . 6 . L e t ~
n
b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a r a d i x
v e c t o r n = ( n
0
; : : : ; n
t ? 1
) 2 N a n d a p e r m u t a t i o n 2 S
t
. T h e n f o r x
s
2
C
n
s
; s = 0 ; : : : ; t ? 1 t h e p e r m u t e d K r o n e c k e r p r o d u c t o f t h e x
s
i s t h e s a m e
a s t h e K r o n e c k e r p r o d u c t o f t h e f a c t o r s i n p e r m u t e d o r d e r o r
P ( ~
n
)
t ? 1
O
s = 0
x
s
=
t ? 1
O
s = 0
x
( s )
:
P r o o f . L e t
x =
t ? 1
O
s = 0
x
s
:
T h e n b y d e n i t i o n
x
n
( i ) =
t ? 1
Y
s = 0
x
s
( i
s
) ; f o r i = ( i
0
; : : : ; i
t ? 1
) 2 Z
n
:
U s i n g t h i s a n d t h e d e n i t i o n o f i n d e x - d i g i t p e r m u t a t i o n s w e g e t f o r a n y j =
( j
0
; : : : ; j
t ? 1
)
2Z
( n )
( P ( ~
n
) x )
( n )
( j ) = x
n
? 1
( j )
=
t ? 1
Y
s = 0
x
s
( j
? 1
( s )
)
=
t ? 1
Y
s = 0
x
( s )
( j
s
)
=
t ? 1
O
s = 0
x
( s )
!
( n )
( j ) :
A s t h i s i s v a l i d f o r a n y j t h e p r o o f i s c o m p l e t e . ut
N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n
p a g e 5 2 4 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )
-
7/24/2019 Fast Fourier Transform Algorithm Parallel Processing
20/45
A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 5
A s i m i l a r p r o p o s i t i o n h o l d s f o r m a t r i c e s a n d i s a c o n s e q u e n c e o f t h e p r e v i o u s
p r o p o s i t i o n .
P r o p o s i t i o n 4 . 7 . L e t ~
n
b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a r a d i x
v e c t o r n = ( n
0
; : : : ; n
t ? 1
) 2 N a n d a p e r m u t a t i o n 2 S
t
. T h e n f o r A
s
2
L ( C
n
s
) ; s = 0 ; : : : ; t ? 1 t h e p e r m u t e d K r o n e c k e r p r o d u c t o f t h e A
s
i s t h e s a m e
a s t h e K r o n e c k e r p r o d u c t o f t h e f a c t o r s i n p e r m u t e d o r d e r m u l t i p l i e d b y t h e p e r -
m u t a t i o n o r
P ( ~
n
)
t ? 1
O
s = 0
A
s
=
t ? 1
O
s = 0
A
( s )
P ( ~
n
) :
P r o o f . B y d e n i t i o n , f o r a n y x
s
2 C
n
s
; s = 0 ; : : : ; t ? 1 w e h a v e
A
t ? 1
O
s = 0
x
s
=
t ? 1
O
s = 0
( A
s
x
s
)
a n d s o , b y t h e p r e v i o u s p r o p o s i t i o n w e g e t
P ( ~
n
)
t ? 1
O
s = 0
A
s
!
=
t ? 1
O
s = 0
A
( s )
x
( s )
=
t ? 1
O
s = 0
A
( s )
!
t ? 1
O
s = 0
x
( s )
!
=
t ? 1
O
s = 0
A
( s )
!
P ( ~
n
)
t ? 1
O
s = 0
x
s
!
:
A s t h e K r o n e c k e r p r o d u c t s o f t h e x
s
c o n t a i n a b a s i s o f C
j n j
t h