Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

13

Transcript of Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

Page 1: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 1/13

C a l c u l a t i o n o f M a p p i n g s B e t w e e n O n e a n d  

n  - d i m e n s i o n a l V a l u e s U s i n g t h e H i l b e r t  

S p a c e - l l i n g C u r v e  

J K L a w d e r  

S c h o o l o f C o m p u t e r S c i e n c e a n d I n f o r m a t i o n S y s t e m s ,  

B i r k b e c k C o l l e g e , U n i v e r s i t y o f L o n d o n ,  

M a l e t S t r e e t , L o n d o n W C 1 E 7 H X , U n i t e d K i n g d o m  

j k l @ d c s . b b k . a c . u k  

A b s t r a c t .   T h i s r e p o r t r e p r o d u c e s a n d b r i e y d i s c u s s e s a n a l g o r i t h m  

p r o p o s e d b y B u t z 2 ] f o r c a l c u l a t i n g a m a p p i n g b e t w e e n o n e - d i m e n s i o n a l  

v a l u e s a n d   n  - d i m e n s i o n a l v a l u e s r e g a r d e d a s b e i n g t h e c o o r d i n a t e s o f  

p o i n t s l y i n g o n H i l b e r t C u r v e s . I t s u g g e s t s s o m e p r a c t i c a l i m p r o v e m e n t s  

t o t h e a l g o r i t h m a n d p r e s e n t s a n a l g o r i t h m f o r c a l c u l a t i n g t h e i n v e r s e o f  

t h e m a p p i n g , f r o m   n  - d i m e n s i o n a l v a l u e s t o o n e - d i m e n s i o n a l v a l u e s .  

1 I n t r o d u c t i o n  

T h e c o n c e p t o f a   s p a c e - l l i n g c u r v e   e m e r g e d i n t h e 1 9 - t h C e n t u r y a n d i s o r i g i -  

n a l l y a t t r i b u t e d t o P e a n o 5 ] w h o e x p r e s s e d i t i n m a t h e m a t i c a l t e r m s . T h e r s t  

g r a p h i c a l , o r g e o m e t r i c a l , r e p r e s e n t a t i o n o f t h e s p a c e - l l i n g c u r v e i s a t t r i b u t e d  

t o D a v i d H i l b e r t 3 ] . H e i l l u s t r a t e s t h e t h e c o n c e p t i n 2 d i m e n s i o n s b u t i t i s  

a p p l i c a b l e i n a n y n u m b e r o f d i m e n s i o n s .  

H i l b e r t C u r v e s p a s s t h r o u g h e v e r y p o i n t i n a n   n  - d i m e n s i o n a l s p a c e o n c e  

a n d o n c e o n l y i n s o m e p a r t i c u l a r o r d e r a c c o r d i n g t o s o m e a l g o r i t h m . A s s u c h  

t h e y g r a p h i c a l l y e x p r e s s a m a p p i n g b e t w e e n o n e - d i m e n s i o n a l v a l u e s a n d t h e  

c o o r d i n a t e s o f p o i n t s , r e g a r d e d a s m u l t i - d i m e n s i o n a l v a l u e s , s i n c e t h e p o i n t s a r e  

p l a c e d i n a s e q u e n c e a c c o r d i n g t o t h e o r d e r i n w h i c h t h e c u r v e p a s s e s t h r o u g h  

t h e m . I n t h i s r e p o r t , w e c a l l t h e s e q u e n c e n u m b e r o f a p o i n t i t s H i l b e r t   d e r i v e d -  

k e y  . 

M a p p i n g s b e t w e e n o n e a n d   n  d i m e n s i o n s a r e o f i n t e r e s t i n a n u m b e r o f a p -  

p l i c a t i o n s , i n c l u d i n g t h e s t o r a g e a n d r e t r i e v a l o f m u l t i - d i m e n s i o n a l d a t a , a s d i s -  

c u s s e d b y L a w d e r 4 ] .  

T h i s r e p o r t i s c o n c e r n e d w i t h m e t h o d s o f c a l c u l a t i n g t h e H i l b e r t d e r i v e d - k e y s  

o f a r b i t r a r y p o i n t s a n d t h e i n v e r s e a n d b u i l d s o n t h e w o r k o f B u t z .  

I n s e c t i o n 2 w e b r i e y d e s c r i b e t h e H i l b e r t C u r v e . I n s e c t i o n 3 w e r e p r o d u c e  

B u t z ' a l g o r i t h m a n d e x a m p l e t a k e n f r o m h i s 1 9 7 1 p a p e r 2 ] a n d p r o v i d e a b r i e f  

c o m m e n t a r y . I n s e c t i o n 4 w e s u g g e s t s o m e u s e f u l i m p r o v e m e n t s w h i c h c a n b e  

m a d e t o t h e a l g o r i t h m . B u t z d o e s n o t p r o v i d e a n a l g o r i t h m f o r c a l c u l a t i n g t h e  

T e c h n i c a l R e p o r t n o . J L 1 / 0 0 , A u g u s t 1 5 , 2 0 0 0  

Page 2: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 2/13

i n v e r s e m a p p i n g , f r o m   n  - d i m e n s i o n a l v a l u e s t o o n e - d i m e n s i o n a l v a l u e s , a n d s o  

t h i s i s g i v e n i n s e c t i o n 5 , i n t h e s a m e s t y l e a s t h e o r i g i n a l . T h e a l g o r i t h m s g i v e n i n  

s e c t i o n s 3 a n d 5 a r e i m p l e m e n t e d i n t h e C p r o g r a m m i n g l a n g u a g e s i n s e c t i o n 6 .  

2 T h e H i l b e r t C u r v e  

T h e w a y i n w h i c h a H i l b e r t C u r v e i s d r a w n i s d i s c u s s e d i n m o r e d e t a i l i n  

L a w d e r 4 ] . A n i n s i g h t , h o w e v e r , i s r a p i d l y g a i n e d f r o m F i g . 1 s h o w i n g t h e r s t  

3 s t e p s o f a n i n n i t e p r o c e s s f o r t h e 2 - d i m e n s i o n a l c a s e . A s q u a r e i s i n i t i a l l y d i -  

v i d e d i n t o 4 s u b - s q u a r e s w h i c h a r e t h e n o r d e r e d s u c h t h a t a n y p a i r o f c o n s e c u t i v e  

s u b - s q u a r e s s h a r e a c o m m o n e d g e . T h e o r d e r i n g i s i l l u s t r a t e d b y d r a w i n g a l i n e  

t h r o u g h t h e i r c e n t r e - p o i n t s a n d t h i s l i n e i s c a l l e d a     r s t - o r d e r   c u r v e . F i g u r e 1 ( b )  

s h o w s t h e n e x t s t e p i n w h i c h e a c h s u b - s q u a r e i s t h e n d i v i d e d i n t o 4 s u b - s q u a r e s .  

T h e s u b - s q u a r e s w i t h i n t h e r s t a n d l a s t s q u a r e s o f t h e r s t s t e p a r e o r d e r e d  

d i e r e n t l y t o e n s u r e t h e a d j a c e n c y p r o p e r t y i s a l w a y s p r e s e r v e d .  

0 1 2 3

1 2

30 1

23

4

5 6 

7 8

10

11

12

1514

13

0 1 2

0

1 2

3 63

15

(a) (b) (c)

9

0

F i g . 1 .   A p p r o x i m a t i o n s o f t h e H i l b e r t c u r v e i n 2 d i m e n s i o n s  

I n p r a c t i c a l a p p l i c a t i o n s , t h e p r o c e s s c a n b e t e r m i n a t e d a f t e r   k  s t e p s t o p r o -  

d u c e a n   a p p r o x i m a t i o n   o f a s p a c e - l l i n g c u r v e o f o r d e r   k  . T h i s c u r v e p a s s e s  

t h r o u g h 2  

k n 

s u b - s q u a r e s , t h e c e n t r e - p o i n t s o f w h i c h a r e r e g a r d e d a s p o i n t s i n  

a s p a c e o f n i t e g r a n u l a r i t y . T h e H i l b e r t C u r v e m a n i f e s t s a u s e f u l p r o p e r t y i n  

w h i c h c o n s e c u t i v e l y o r d e r e d p o i n t s a r e a d j a c e n t t o e a c h o t h e r i n s p a c e .  

M o s t p r e v i o u s w o r k o n t h e c a l c u l a t i o n o f m a p p i n g s i s c o n n e d t o t h e 2 -  

d i m e n s i o n a l c a s e a n d a r e v i e w i s g i v e n i n L a w d e r ' s P h D t h e s i s 4 ] . B i a l l y 1 ]  

d e s c r i b e s a g e n e r i c s e t o f r u l e s f o r c o n s t r u c t i n g s t a t e d i a g r a m s f o r u s e i n c a l c u -  

l a t i n g m a p p i n g s b u t t h e s e r u l e s a r e i n c o m p l e t e , r e q u i r i n g a p r o c e s s o f ` t r i a l a n d  

e r r o r ' . L a w d e r ' s t h e s i s s u p p l e m e n t s a n d s p e c i a l i z e s B i a l l y ' s r u l e s s o t h a t s t a t e  

d i a g r a m s c a n b e c o n s t r u c t e d f o r t h e H i l b e r t c u r v e w i t h o u t m a n u a l i n t e r v e n t i o n .  

H o w e v e r , t h e s p a c e r e q u i r e m e n t s f o r s t a t e d i a g r a m s f o r t h e H i l b e r t C u r v e g r o w  

Page 3: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 3/13

e x p o n e n t i a l l y w i t h t h e n u m b e r o f d i m e n s i o n s a n d s o t h e y a r e o n l y u s e f u l i n u p  

t o a b o u t 8 d i m e n s i o n s .  

B u t z ' a l g o r i t h m i n e e c t d e s c i b e s a p a r t i c u l a r H i l b e r t C u r v e f o r e a c h v a l u e o f  

n  . T h a t m o r e t h a n o n e H i l b e r t C u r v e c a n b e d r a w n t h r o u g h a n y s p a c e i s r e a d i l y  

i l l u s t r a t e d b y i n v e r t i n g t h e d i a g r a m s i n F i g . 1 .  

3 B u t z ' A l g o r i t h m f o r M a p p i n g f r o m a H i l b e r t  

d e r i v e d - k e y t o t h e C o o r d i n a t e s o f a P o i n t  

I n t h i s s e c t i o n , w e r e p r o d u c e t h e a l g o r i t h m f o r m a p p i n g f r o m a H i l b e r t d e r i v e d -  

k e y t o t h e c o o r d i n a t e s o f a p o i n t , g i v e n b y B u t z i n 2 ] .  

B u t z ' a l g o r i t h m i s i t e r a t i v e , r e q u i r i n g a n u m b e r o f i t e r a t i o n s e q u a l t o t h e  

o r d e r o f t h e c u r v e . B u t z s u m m a r i z e s t h e a l g o r i t h m i n t w o t a b l e s . T h e r s t ,  

g i v e n h e r e i n T a b l e 1 , l i s t s w o r k i n g v a r i a b l e s a n d s p e c i e s h o w t h e y a r e a s s i g n e d  

v a l u e s . T h e s e v a r i a b l e s a r e o r d e r e d i n t h e s e q u e n c e i n w h i c h t h e i r v a l u e s a r e  

c a l c u l a t e d , a n d n e w v a l u e s a r e a s s i g n e d w i t h i n e a c h i t e r a t i o n o f t h e a l g o r i t h m .  

W i t h t h e e x c e p t i o n o f t h e v a r i a b l e    

, i n f o r m a t i o n i s n o t p r o v i d e d o n t h e i r  

s e m a n t i c s i n 2 ] . T h e s e c o n d , g i v e n h e r e i n T a b l e 2 , p r o v i d e s a n e x a m p l e o f t h e  

c a l c u l a t i o n p r o c e s s .  

T h e t a b l e s m a k e u s e o f t h e f o l l o w i n g v a r i a b l e s a n d t e r m s d e n e d i n o r i n f e r r e d  

f r o m t h e p a p e r :  

n  :  t h e n u m b e r o f d i m e n s i o n s i n a s p a c e .  

m  :  t h e o r d e r o f t h e c u r v e p a s s i n g t h r o u g h a s p a c e .  

N  :  t h e n u m b e r o f b i t s i n a   d e r i v e d - k e y   , i e  n m  . 

i  :  t h e n u m b e r o f t h e i t e r a t i o n o f t h e a l g o r i t h m , i n t h e r a n g e 1   : : : m   ] . 

r  :  a n  N  - b i t b i n a r y H i l b e r t   d e r i v e d - k e y   , e x p r e s s e d a s a r e a l n u m b e r i n t h e r a n g e  

0 , 1 ) .  

b y t e :   a w o r d c o n t a i n i n g   n  b i t s .  

 

:  a b i n a r y d i g i t i n   r  , s u c h t h a t   r  = 0  :  

 

   

 

 

   

 

 

   

. T h u s  

 

r e p r e s e n t s t h e   i  t h b y t e i n   r  , s u c h t h a t    

=   

 

   

:  a c o o r d i n a t e i n d i m e n s i o n   j  o f t h e p o i n t ,   h  a 

    a 

i  w h o s e   d e r i v e d - k e y  

i s  r  . A c o o r d i n a t e i s a l s o e x p r e s s e d a s a r e a l n u m b e r i n t h e r a n g e 0 , 1 ) .  

 

:  a b i n a r y d i g i t i n a c o o r d i n a t e   a 

, s u c h t h a t   a 

=   

 

   

. T h u s i n  

T a b l e 1 ,    

=   

 

   

i s a n   n  - b i t Z o r d e r   d e r i v e d - k e y   f o r m e d f r o m t h e  

i  t h b i t s o f a l l o f t h e c o o r d i n a t e s i n t h e p o i n t   h  a 

    a 

i  . 

p r i n c i p a l p o s i t i o n :   t h e l a s t , o r l e a s t s i g n i c a n t , b i t p o s i t i o n ,   j  , i n   

s u c h t h a t  

 

6=   

. I f a l l b i t s i n    

a r e e q u a l , t h e p r i n c i p a l p o s i t i o n i s t h e   n  t h , o r l e a s t  

s i g n i c a n t . T h e m o s t s i g n i c a n t b i t p o s i t i o n i s c o n s i d e r e d t o o c c u p y p o i s t i o n  

1 . 

p a r i t y :   t h e n u m b e r o f b i t s i n a b y t e w h i c h a r e s e t t o 1 .  

Page 4: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 4/13

T A B L E I  

E n t i t i e s U s e d i n S p a c e - f i l l i n g C u r v e A l g o r i t h m  

: A n i n t e g e r b e t w e e n 1 a n d   n  e q u a l t o t h e s u b s c r i p t o f t h e p r i n c i p a l p o s i t i o n o f    

I n t h e f o l l o w i n g f o u r e x a m p l e s o f    

f o r t h e c a s e   n  = 5 , t h e v a l u e s o f  J 

a r e 5 , 2 , 4  

a n d 5 , r e s p e c t i v e l y ( t h e p r i n c i p a l p o s i t i o n s a r e c i r c l e d ) :  

1 1 1 1 1  

 i 

1 0 

 i 

1 1 1 

0 0 1 1  

 i 

0 0 0 0 0  

 i 

 

: A b y t e o f  n  b i t s , s u c h t h a t    

=   

 

=   

   

 

=   

   

     

=   

   

n  ;  1 

w h e r e     s t a n d s f o r t h e   E X C L U S I V E - O R   o p e r a t i o n .  

 

: A b y t e o f  n  b i t s o b t a i n e d b y c o m p l e m e n t i n g    

i n t h e   n  t h p o s i t i o n a n d t h e n , i f a n d  

o n l y i f t h e r e s u l t i n g b y t e i s o f o d d p a r i t y , c o m p l e m e n t i n g i n t h e p r i n c i p a l p o s i t i o n .  

H e n c e ,    

i s a l w a y s o f e v e n p a r i t y . N o t e t h a t t h e p a r i t y o f    

i s g i v e n b y t h e b i t    

a n d t h a t a m a s k f o r p e r f o r m i n g t h e s e c o n d c o m p l e m e n t a t i o n m a y b e s e t u p i n t h e  

s a m e p r o c e s s w h i c h c a l c u l a t e s   J 

~  

: A b y t e o f   n  b i t s o b t a i n e d b y s h i f t i n g    

r i g h t c i r c u l a r a n u m b e r o f p o s i t i o n s e q u a l  

t o 

(  J 

;  1 ) + (  J 

;  1 ) +    + (  J 

i  ;  1 

;  1 ) 

T h e r e i s n o s h i f t i n    

~  

: A b y t e o f  n  b i t s o b t a i n e d b y s h i f t i n g    

i n e x a c t l y t h e s a m e w a y .  

: A b y t e o f  n  b i t s w h e r e  

=  ! 

i  ;  1 

  ~  

i  ;  1 

= 0 0    0 0 

a n d w h e r e     i n d i c a t e s t h e   E X C L U S I V E - O R   o p e r a t i o n o n c o r r e s p o n d i n g b i t s .  

 

: A b y t e o f  n  b i t s w h e r e    

=  ! 

  ~  

T a b l e 1 .  ` T A B L E I ' f r o m 2 ]  

Page 5: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 5/13

T A B L E I I  

E x a m p l e o f C a l c u l a t i o n o f   a  f r o m   r 

n  = 5  m  = 4  N  = 2 0 

r  = 0  1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0  

i  1 2 3 4 5  

 

1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0  

3 4 4 2 5  

 

1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0  

 

1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0  

~  

1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0  

~  

1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0  

0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0  

 

1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0  

= 0  1 0 1 0  

= 0  1 0 1 1  

= 0  0 0 1 1  

= 0  1 1 0 1  

= 0  0 1 0 1  

T a b l e 2 .  ̀ T A B L E I I ' f r o m 2 ]  

Page 6: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 6/13

Page 7: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 7/13

5 P r o c e d u r e f o r M a p p i n g f r o m t h e C o o r d i n a t e s o f a  

P o i n t t o a H i l b e r t   d e r i v e d - k e y  

B u t z d o e s n o t g i v e a n a l g o r i t h m f o r m a p p i n g f r o m t h e c o o r d i n a t e s o f a p o i n t  

t o i t s H i l b e r t   d e r i v e d - k e y   . W e t h e r e f o r e g i v e t h e a l g o r i t h m i n T a b l e 3 , p r e s e n t e d  

i n t h e s a m e f o r m a t a s u s e d b y B u t z . T h e v a l u e s o f v a r i a b l e s   J 

,   

a n d  ! 

a r e 

c a l c u l a t e d i n t h e s a m e w a y a s d e s c r i b e d i n T a b l e 1 . A l l o t h e r v a r i a b l e s a r e  

c a l c u l a t e d d i e r e n t l y .  

 

: A b y t e o f  n  b i t s , s u c h t h a t    

=  a 

 

=  a 

     

=  a 

: A b y t e o f  n  b i t s w h e r e  

=  ! 

i  ;  1 

  ~  

i  ;  1 

= 0 0    0 0 

a n d w h e r e     i n d i c a t e s t h e   E X C L U S I V E - O R   o p e r a t i o n o n c o r r e s p o n d i n g b i t s .  

~  

: A b y t e o f  n  b i t s w h e r e  

~  

=   

  ! 

  ~  

=   

 

: A b y t e o f  n  b i t s o b t a i n e d b y s h i f t i n g ~   

l e f t c i r c u l a r a n u m b e r o f p o s i t i o n s e q u a l t o  

(  J 

;  1 ) + (  J 

;  1 ) +    + (  J 

i  ;  1 

;  1 ) 

T h e r e i s n o s h i f t i n ~   

 

: A b y t e o f  n  b i t s , s u c h t h a t    

=   

 

=   

   

 

=   

   

     

=   

   

n  ;  1 

w h e r e     s t a n d s f o r t h e   E X C L U S I V E - O R   o p e r a t i o n .  

: A n i n t e g e r b e t w e e n 1 a n d   n  e q u a l t o t h e s u b s c r i p t o f t h e p r i n c i p a l p o s i t i o n o f    

 

: A b y t e o f  n  b i t s o b t a i n e d b y c o m p l e m e n t i n g    

i n t h e   n  t h p o s i t i o n a n d t h e n , i f a n d  

o n l y i f t h e r e s u l t i n g b y t e i s o f o d d p a r i t y , c o m p l e m e n t i n g i n t h e p r i n c i p a l p o s i t i o n .  

H e n c e ,    

i s a l w a y s o f e v e n p a r i t y . N o t e t h a t t h e p a r i t y o f    

i s g i v e n b y t h e b i t    

a n d t h a t a m a s k f o r p e r f o r m i n g t h e s e c o n d c o m p l e m e n t a t i o n m a y b e s e t u p i n t h e  

s a m e p r o c e s s w h i c h c a l c u l a t e s   J 

~  

: A b y t e o f  n  b i t s d e r i v e d f r o m    

i n t h e s a m e w a y t h a t    

i s d e r i v e d f r o m ~   

T a b l e 3 .   E n t i t i e s u s e d i n t h e a l g o r i t h m f o r m a p p i n g f r o m t h e c o o r d i n a t e s o f a p o i n t  

t o a H i l b e r t   d e r i v e d - k e y  

Page 8: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 8/13

6 S o u r c e C o d e f o r t h e M a p p i n g A l g o r i t h m s  

I n t h i s s e c t i o n w e i m p l e m e n t t h e a l g o r i t h m s g i v e n i n s e c t i o n s 3 a n d 5 i n t h e C  

p r o g r a m m i n g l a n g u a g e . T h e c o r r e s p o n d e n c e b e t w e e n t e r m s d e n e d i n s e c t i o n 3  

a n d v a r i a b l e n a m e s u s e d i n t h e s o u r c e c o d e i s s u m m a r i z e d i n T a b l e 4 .  

B u t z ' T e r m P r o g r a m V a r i a b l e  

(  J 

;  1 ) +    + (  J 

i  ;  1 

;  1 ) x J  

 

 

~  

t S 

 

~  

t T 

 

T a b l e 4 .  K e y t o V a r i a b l e s  

/ * 

T h i s c o d e a s s u m e s t h e f o l l o w i n g :  

T h e m a c r o O R D E R c o r r e s p o n d s t o t h e o r d e r o f c u r v e a n d i s 3 2 ,  

t h u s c o o r d i n a t e s o f p o i n t s a r e 3 2 b i t v a l u e s .  

A U _ i n t s h o u l d b e a 3 2 b i t u n s i g n e d i n t e g e r .  

T h e m a c r o D I M c o r r e s p o n d s t o t h e n u m b e r o f d i m e n s i o n s i n a  

s p a c e .  

T h e d e r i v e d - k e y o f a P o i n t i s s t o r e d i n a n H c o d e w h i c h i s a n  

a r r a y o f U _ i n t . T h e b o t t o m b i t o f a d e r i v e d - k e y i s h e l d i n t h e  

b o t t o m b i t o f t h e h c o d e 0 ] e l e m e n t o f a n H c o d e a n d t h e t o p b i t  

o f a d e r i v e d - k e y i s h e l d i n t h e t o p b i t o f t h e h c o d e D I M - 1 ]  

e l e m e n t o f a n d H c o d e .  

g _ m a s k i s a g l o b a l a r r a y o f m a s k s w h i c h h e l p s s i m p l y f y s o m e  

c a l c u l a t i o n s - i t h a s D I M e l e m e n t s . I n e a c h e l e m e n t , o n l y o n e  

b i t i s z e o v a l u e d - t h e t o p b i t i n e l e m e n t n o . 0 a n d t h e b o t t o m  

b i t i n e l e m e n t n o . ( D I M - 1 ) . e g .  

# i f D I M = = 5 c o n s t U _ i n t g _ m a s k ] = { 1 6 , 8 , 4 , 2 , 1 } # e n d i f  

# i f D I M = = 6 c o n s t U _ i n t g _ m a s k ] = { 3 2 , 1 6 , 8 , 4 , 2 , 1 } # e n d i f  

e t c . . .  

* / 

# d e f i n e D I M 3  

t y p e d e f u n s i g n e d i n t U _ i n t  

# d e f i n e O R D E R 3 2  

t y p e d e f s t r u c t {  

U _ i n t h c o d e D I M ]  

} H c o d e  

t y p e d e f H c o d e P o i n t  

Page 9: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 9/13

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * c a l c _ P * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

U _ i n t c a l c _ P ( i n t i , H c o d e H )  

i n t e l e m e n t  

U _ i n t P , t e m p 1 , t e m p 2  

e l e m e n t = i / O R D E R  

P = H . h c o d e e l e m e n t ]  

i f ( i % O R D E R > O R D E R - D I M )  

t e m p 1 = H . h c o d e e l e m e n t + 1 ]  

P > > = i % O R D E R  

t e m p 1 < < = O R D E R - i % O R D E R  

P | = t e m p 1  

e l s e  

P > > = i % O R D E R / * P i s a D I M b i t h c o d e * /  

/ * t h e & m a s k s o u t s p u r i o u s h i g h b i t v a l u e s * /  

# i f D I M < O R D E R  

P & = ( 1 < < D I M ) - 1  

# e n d i f  

r e t u r n P  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * c a l c _ P 2 * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

U _ i n t c a l c _ P 2 ( U _ i n t S )  

i n t i  

U _ i n t P  

P = S & g _ m a s k 0 ]  

f o r ( i = 1 i < D I M i + + )  

i f ( S & g _ m a s k i ] ^ ( P > > 1 ) & g _ m a s k i ] )  

P | = g _ m a s k i ]  

r e t u r n P  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * c a l c _ J * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

U _ i n t c a l c _ J ( U _ i n t P )  

i n t i  

U _ i n t J  

J = D I M  

f o r ( i = 1 i < D I M i + + )  

i f ( ( P > > i & 1 ) = = ( P & 1 ) )  

c o n t i n u e  

e l s e  

b r e a k  

i f ( i ! = D I M )  

J - = i  

r e t u r n J  

Page 10: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 10/13

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * c a l c _ T * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

U _ i n t c a l c _ T ( U _ i n t P )  

i f ( P < 3 )  

r e t u r n 0  

i f ( P % 2 )  

r e t u r n ( P - 1 ) ^ ( P - 1 ) / 2  

r e t u r n ( P - 2 ) ^ ( P - 2 ) / 2  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * c a l c _ t S _ t T * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

U _ i n t c a l c _ t S _ t T ( U _ i n t x J , U _ i n t v a l )  

U _ i n t r e t v a l , t e m p 1 , t e m p 2  

r e t v a l = v a l  

i f ( x J % D I M ! = 0 )  

t e m p 1 = v a l > > x J % D I M  

t e m p 2 = v a l < < D I M - x J % D I M  

r e t v a l = t e m p 1 | t e m p 2  

r e t v a l & = ( ( U _ i n t ) 1 < < D I M ) - 1  

r e t u r n r e t v a l  

1 0 

Page 11: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 11/13

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * H _ d e c o d e * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * F o r m a p p i n g f r o m o n e d i m e n s i o n t o D I M d i m e n s i o n s * /  

P o i n t H _ d e c o d e ( H c o d e H )  

U _ i n t m a s k = ( U _ i n t ) 1 < < O R D E R - 1 ,  

A , W = 0 , S , t S , T , t T , J , P = 0 , x J  

P o i n t p t = { 0 }  

i n t i = O R D E R * D I M - D I M , j  

P = c a l c _ P ( i , H )  

J = c a l c _ J ( P )  

x J = J - 1  

A = S = t S = P ^ P / 2  

T = c a l c _ T ( P )  

t T = T  

/ * - - - d i s t r i b b i t s t o c o o r d s - - - * /  

f o r ( j = D I M - 1 P > 0 P > > = 1 , j - - )  

i f ( P & 1 )  

p t . h c o d e j ] | = m a s k  

f o r ( i - = D I M , m a s k > > = 1 i > = 0 i - = D I M , m a s k > > = 1 )  

P = c a l c _ P ( i , H )  

S = P ^ P / 2  

t S = c a l c _ t S _ t T ( x J , S )  

W ^ = t T  

A = W ^ t S  

/ * - - - d i s t r i b b i t s t o c o o r d s - - - * /  

f o r ( j = D I M - 1 A > 0 A > > = 1 , j - - )  

i f ( A & 1 )  

p t . h c o d e j ] | = m a s k  

i f ( i > 0 )  

T = c a l c _ T ( P )  

t T = c a l c _ t S _ t T ( x J , T )  

J = c a l c _ J ( P )  

x J + = J - 1  

r e t u r n p t  

1 1 

Page 12: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 12/13

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * H _ e n c o d e * /  

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /  

/ * F o r m a p p i n g f r o m D I M d i m e n s i o n s t o o n e d i m e n s i o n * /  

H c o d e H _ e n c o d e ( P o i n t p t )  

U _ i n t m a s k = ( U _ i n t ) 1 < < O R D E R - 1 , e l e m e n t ,  

A , W = 0 , S , t S , T , t T , J , P = 0 , x J  

H c o d e h = { 0 }  

i n t i = O R D E R * D I M - D I M , j  

f o r ( j = A = 0 j < D I M j + + )  

i f ( p t . h c o d e j ] & m a s k )  

A | = g _ m a s k j ]  

S = t S = A  

P = c a l c _ P 2 ( S )  

/ * a d d i n D I M b i t s t o h c o d e * /  

e l e m e n t = i / O R D E R  

i f ( i % O R D E R > O R D E R - D I M )  

h . h c o d e e l e m e n t ] | = P < < i % O R D E R  

h . h c o d e e l e m e n t + 1 ] | = P > > O R D E R - i % O R D E R  

e l s e  

h . h c o d e e l e m e n t ] | = P < < i - e l e m e n t * O R D E R  

J = c a l c _ J ( P )  

x J = J - 1  

T = c a l c _ T ( P )  

t T = T  

f o r ( i - = D I M , m a s k > > = 1 i > = 0 i - = D I M , m a s k > > = 1 )  

f o r ( j = A = 0 j < D I M j + + )  

i f ( p t . h c o d e j ] & m a s k )  

A | = g _ m a s k j ]  

W ^ = t T  

t S = A ^ W  

S = c a l c _ t S _ t T ( x J , t S )  

P = c a l c _ P 2 ( S )  

/ * a d d i n D I M b i t s t o h c o d e * /  

e l e m e n t = i / O R D E R  

i f ( i % O R D E R > O R D E R - D I M )  

h . h c o d e e l e m e n t ] | = P < < i % O R D E R  

h . h c o d e e l e m e n t + 1 ] | = P > > O R D E R - i % O R D E R  

e l s e  

h . h c o d e e l e m e n t ] | = P < < i - e l e m e n t * O R D E R  

i f ( i > 0 )  

T = c a l c _ T ( P )  

t T = c a l c _ t S _ t T ( x J , T )  

J = c a l c _ J ( P )  

x J + = J - 1  

r e t u r n h  

1 2 

Page 13: Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

8/3/2019 Calculation of Mappings Between One and N-dimensional Values Using the Hilbert Space-Filling Curve

http://slidepdf.com/reader/full/calculation-of-mappings-between-one-and-n-dimensional-values-using-the-hilbert 13/13

R e f e r e n c e s  

1 . T h e o d o r e B i a l l y . S p a c e - F i l l i n g C u r v e s : T h e i r G e n e r a t i o n a n d T h e i r A p p l i c a t i o n t o  

B a n d w i d t h R e d u c t i o n .   I E E E T r a n s a c t i o n s o n I n f o r m a t i o n T h e o r y  , I T - 1 5 ( 6 ) : 6 5 8 {  

6 6 4 , N o v 1 9 6 9 .  

2 . A r t h u r R . B u t z . A l t e r n a t i v e A l g o r i t h m f o r H i l b e r t ' s S p a c e - F i l l i n g C u r v e .   I E E E  

T r a n s a c t i o n s o n C o m p u t e r s  , 2 0 : 4 2 4 { 4 2 6 , A p r i l 1 9 7 1 .  

3 . D a v i d H i l b e r t . U e b e r s t e t i g e A b b i l d u n g e i n e r L i n i e a u f e i n F l a c h e n s t u c k .   M a t h e -  

m a t i s c h e A n n a l e n  . 3 8 : 4 5 9 { 4 6 0 , 1 8 9 1 .  

4 . J o n a t h a n L a w d e r . T h e A p p l i c a t i o n o f S p a c e - F i l l i n g C u r v e s t o t h e S t o r a g e a n d  

R e t r i e v a l o f M u l t i - d i m e n s i o n a l D a t a . P h D T h e s i s , B i r k b e c k C o l l e g e , U n i v e r s i t y o f  

L o n d o n , 2 0 0 0 .  

5 . G i u s e p p e P e a n o . S u r u n e c o u r b e , q u i r e m p l i t t o u t e u n e a i r e p l a n e ( O n a c u r v e  

w h i c h c o m p l e t e l y l l s a p l a n a r r e g i o n ) .   M a t h e m a t i s c h e A n n a l e n  , 3 6 : 1 5 7 { 1 6 0 , 1 8 9 0 .  

6 . E . M . R e i n g o l d a n d J . N i e v e r g e l t a n d N . D e o . C o m b i n a t o r i a l A l g o r i t h m s : T h e o r y  

a n d P r a c t i c e . P r e n t i c e H a l l , 1 9 7 7 .  

1 3