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
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
2
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
, 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 .
i
j
: 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 :
1
1
1
2
1
n
2
1
2
2
2
n
3
1
3
2
m
n
. T h u s
i
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
i
=
i
1
i
2
i
n
.
a
j
: 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
1
a
2
a
n
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 ) .
i
j
: 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
j
, s u c h t h a t a
j
=
1
j
2
j
m
j
. T h u s i n
T a b l e 1 ,
i
=
i
1
i
2
i
n
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
1
a
2
a
n
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
i
s u c h t h a t
i
j
6=
i
n
. I f a l l b i t s i n
i
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 .
3
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
J
i
: 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
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
i
f o r t h e c a s e n = 5 , t h e v a l u e s o f J
i
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 0
i
i
: A b y t e o f n b i t s , s u c h t h a t
i
1
=
i
1
i
2
=
i
2
i
1
i
3
=
i
3
i
2
i
n
=
i
n
i
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 .
i
: 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
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
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
i s g i v e n b y t h e b i t
i
n
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
i
~
i
: 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
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
; 1 ) + ( J
2
; 1 ) + + ( J
i ; 1
; 1 )
T h e r e i s n o s h i f t i n
1
~
i
: 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
i n e x a c t l y t h e s a m e w a y .
!
i
: A b y t e o f n b i t s w h e r e
!
i
= !
i ; 1
~
i ; 1
!
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 .
i
: A b y t e o f n b i t s w h e r e
i
= !
i
~
i
T a b l e 1 . ` T A B L E I ' f r o m 2 ]
4
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
i
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
J
i
3 4 4 2 5
i
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
i
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
~
i
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
~
i
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
!
i
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
i
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
a
1
= 0 1 0 1 0
a
2
= 0 1 0 1 1
a
3
= 0 0 0 1 1
a
4
= 0 1 1 0 1
a
5
= 0 0 1 0 1
T a b l e 2 . ̀ T A B L E I I ' f r o m 2 ]
5
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
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
i
,
i
a n d !
i
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 .
i
: A b y t e o f n b i t s , s u c h t h a t
i
1
= a
i
1
i
2
= a
i
2
i
n
= a
i
n
!
i
: A b y t e o f n b i t s w h e r e
!
i
= !
i ; 1
~
i ; 1
!
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 .
~
i
: A b y t e o f n b i t s w h e r e
~
i
=
i
!
i
~
1
=
1
i
: 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
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
; 1 ) + ( J
2
; 1 ) + + ( J
i ; 1
; 1 )
T h e r e i s n o s h i f t i n ~
1
i
: A b y t e o f n b i t s , s u c h t h a t
i
1
=
i
1
i
2
=
i
2
i
1
i
3
=
i
3
i
2
i
n
=
i
n
i
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 .
J
i
: 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
i
: 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
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
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
i s g i v e n b y t h e b i t
i
n
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
i
~
i
: A b y t e o f n b i t s d e r i v e d f r o m
i
i n t h e s a m e w a y t h a t
i
i s d e r i v e d f r o m ~
i
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
7
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
i
J
( J
1
; 1 ) + + ( J
i ; 1
; 1 ) x J
i
P
i
S
~
i
t S
i
T
~
i
t T
!
i
W
i
A
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
8
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
}
9
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
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
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
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
Top Related