Space-Filling Curves

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Space-Filling Curves

1113994
1 Preface
This essay aims to serve as a short introduction to Space-Filling Curves (SFCs) for a reader
that has completed a year in study of an undergraduate mathematics course. In particular, this
text begins by dening SFCs and the motivation of their study to familiarise the reader with
the subject and its historical context in mathematics. The remainder of the text is concerned
with a brief analysis of the generation and properties of the Hilbert Space-Filling Curve.
In my personal journey of understanding the subject, I have found a geometric treatment
to be most easily accessible. I have therefore gone out of my way to employ a geometrical
argument in many of my proofs and explanations, believing this to be the optimum approach
for the reader to comprehend the material. Despite this the opening section requires some basic
knowledge of set theory and topology covered in MA132 Foundations [7] and MA222 Metric
Spaces, as well as some new concepts which I attempt to explain suciently for oneself to follow
all denitions and theorems introduced.
Much of the content and structure of this essay has been heavily inuenced by Hans Sagans
Space-Filling Curves [1]. I would recommend the book to anyone interested in studying the
subject further.
2 Space-lling Curves
Throughout this essay we will use I to denote the closed unit interval [0, 1], Q to denote the
closed unit square [0, 1] [0, 1] and E
n
to denote the n-dimensional Euclidean space.
2.1 Denition of a SFC
Before we can dene a SFC, we must rst dene a curve. For this essay, we will dene a curve
as follows [1, p4]:
Denition 1. If f : I E
n
is continuous, then the image of f, f[I], is called a curve. f(0) is
called the beginning point of the curve and f(1) is called its endpoint. We call
x = f(t), t I
a parameter representation of the curve f[I].
We note that by denition a curve must have a beginning and endpoint. Also, although we
have used I as the domain of the function f, we could have used any closed interval on the real
line. This is because we can construct a continuous bijective function with continuous inverse
from any closed line segment onto I. More compactly, I is homeomorphic to any closed line
segment, and I omit the proof of this statement as an easy exercise for the reader.
1
Before giving the formal denition of a SFC we must rst dene Jordan content. Essentially,
Jordan content is used as a measure of size for a set of points in n-dimensional Euclidean space.
Precisely, for a set X E
n
the Jordan content is the least upperbound on the hypervolume of
the union of a nite set of hypercubes contained in X [4]. For this essay you may simply think
of Jordan content in E
n
as area for n = 2, and volume for n = 3. We can now dene a SFC as
such [1, p5]:
Denition 2. If f : I E
n
, n 2, is continuous and f[I] has positive Jordan content, then
f[I] is called a space-lling curve.
An alternative way we could state this denition is that f[I] is a space-lling curve if
f : I E
n
, n 2, is continuous and surjective on a region A E
n
. This is because f being
surjective on a region of E
n
is necessary and sucient for f[I] to have positive Jordan content.
2.2 Cantors discovery and Nettos Theorem
1
We dene a manifold as a topological space that resembles Euclidean space near each point.
Formally [5, p1]:
Denition 3. An n-dimensional manifold is a topological space M such that x M, there
exists a neighbourhood of x which is homeomorphic to E
n
.
You may think of a manifold as a space which seems at when zoomed in close enough,
much like the way in which the Earth can seem at to us until we view it from a distance.
Furthermore we can then dene a manifold with boundary as a manifold with an edge. In this
case letting M be our manifold with boundary, the interior of M, IntM, is dened as the set
of points in M which have neighbourhoods homeomorphic to E
n
(and thus IntM is a manifold
from our dention) and the boundary of M, M, is the complement of IntM in M.
A smooth manifold is more troublesome to dene.
2
Intrinsically, similar to the way sailors
can navigate the Earth using charts from an atlas, we describe a manifold using mathematical
charts - invertible maps from E
n
onto subspaces of the manifold - and we also call a collection of
these charts an atlas. If you imagine standing in the centre of a dark room, a chart is equivalent
to having a torch light shone onto a section of the room, giving you some information on your
surroundings. An atlas can then be compared to illuminating the entire room, giving you a full
understanding of whats around you, or mathematically giving you a complete description of the
manifold. If the charts of a manifold are compatible in a sense then we can dene dierentiable
functions on the manifold. In this case, the manifold is a dierentiable manifold. A smooth
manifold is a certain class of dierentiable manifold, where these dierentiable functions known
as transition maps are C

. Any more detail would be way beyond the scope of this text and I
leave as further reading for enthusiasts.
Simple examples of smooth manifolds with boundary are lines and circles in two dimensions
and the sphere and torus in three dimensions, whilst some more exotic examples the reader
may be familiar with are the M obius strip and Klein bottle. Most importantly for our study is
that any closed unit hypercube is a smooth manifold with boundary.
In 1878 Georg Cantor proved a remarkable result: given any two nite dimensional smooth
manifolds X and Y there exists a bijective function f: X Y [1, p5], and hence all nite
1
Georg Cantor (1845-1918), Eugen Netto (1848-1919).
2
The informal denitions of dierentiable/smooth manifolds given are a combination of denitions I have
found in various sources ([5, p1], [6], [8]). I have omitted many of the technical aspects instead opting for an
overview of smooth manifolds sucient to understanding Cantors theorem.
2
dimensional smooth manifolds have the same cardinality.
3
Since all closed unit hypercubes are
smooth manifolds, a counter-intuitive corollary implied directly by Cantors theorem is that
the cardinality of the unit interval I is the same as the unit square Q. In fact the existance of
a bijection between the two sets is a simple exercise in set theory which I prove below.
4
Theorem 1. There exists a bijective function f : I Q.
Proof. I rst construct an injective function : Q I.
For (x,y) Q\{(0,0)}, we represent (x,y) uniquely with x,y both as innite decimals:
(x,y) := (0.x
1
x
2
x
3
..., 0.y
1
y
2
y
3
...), x
i
,y
j
{0, 1, ..., 9}
where N N, q,p >N such that x
p
= 0 and y
q
= 0. For example, (0.7, 0.54) must be
represented as (0.6999..., 0.53999....) in this system and such a representation is unique. Then
if we dene : Q I as:
(x, y) = 0, (x, y) = (0,0)
(x, y) = (0.x
1
x
2
x
3
..., 0.y
1
y
2
y
3
...) = 0.x
1
y
1
x
2
y
2
x
3
y
3
..., (x, y) Q \{0, 0}
then is an injective function from Q to I. By the Schroeder-Bernstein Theorem we therefore
have:
|Q| |I| (1)
However, I Q, so clearly:
|I| |Q| (2)
Combining (1) and (2) gives |I| = |Q|, so I has the same cardinality as Q and hence there
exists a bijective function f : I Q.
One of the rst questions that arises from Cantors result is whether a bijection between two
nite-dimensional manifolds can be continuous. However, it only took one year after Cantor
released his proof for another German mathematician, Eugen Netto, to solve this problem [1,
p6].
Theorem 2. (Netto): If f represents a bijective map from an m-dimensional smooth manifold
X onto an n-dimensional smooth manifold Y, where m = n, then f is necessarily discontinuous.
I will give an outline of the proof
5
of Nettos Theorem for the case X = I and Y = Q, but
must rst deine a connected set [1, p94]:
Denition 4. A set S E
n
is connected if there do not exist two open sets A, B E
n
such
that all of the following conditions hold:
A S = , B S =
(A S) (B S) = S
(A S) (B S) =
If there are two such sets, we call them a disconnection of S, and S is disconnected.
3
Cantor himself was so surprised by the result, he famously wrote I see it, but I dont believe it! in a letter
about the discovery.
4
I have completed this proof as an exercise from Sagan [1, p7]. The statement and proof of the Schroeder-
Bernstein Theorem can be found in MA132 Foundations [7, 8].
5
Although a proof of Nettos Theorem can be found in Sagan [1, p97], I nd the notation used in Sagan to
be cumbersome and instead have produced an outline of a proof closer to that of the more intuiative sketch of
a proof found in Parker [3, p1].
3
With this we also use the result that if A and B are topological spaces, and f : A B is a
continuous mapping, then if A is connected then f[A] must also be connected. Now I outline
the proof of Nettos Theorem as such:
We wish to show there does not exist a continuous bijective mapping f : I Q. Suppose
such a mapping exists. Then letting g f
1
, g : Q I is also a continuous bijective mapping.
6
Now choose any element x
0
Q such that g(x
0
) (0, 1) and remove it from the domain of g.
Then the function g : Q\{x
0
} I\{g(x
0
)} is still continuous, however Q\{x
0
} is a connected
set whilst I\{g(x
0
)} := [0, g(x
0
)) (g(x
0
), 1] is not (the sets A = (1, g(x
0
)), B = (g(x
0
), 2) are
a disconnection of I\{g(x
0
)}). Since we can not have a continuous mapping from a connected
set to a disconnected set, we must conclude there does not exist a continuous bijective mapping
f : I Q.
From Nettos theorem we know that no injective SFCs can exist. However, from the end
of the nineteenth century to mid-twentieth century many continuous surjective mappings from
I to Q were discovered. We will study arguably the most famous of these SFCs, the Hilbert
curve.
3 The Hilbert Space-Filling Curve
Whilst the Hilbert curve was not the rst SFC to be constructed,
7
it is of particular signicance
as it is the rst SFC to be generated using a recursive geometric principle. Although in this
section I will focus solely on the two-dimensional Hilbert curve, it is important to note the same
generating process with minor alterations can be applied to any n-dimensional space. With
this in mind it is clear that by generating the two-dimensional Hilbert curve we are in fact
demonstrating a method that can be applied to construct a whole class of SFCs.
3.1 Generation of the Hilbert curve
8
6
That g is continuous is nontrivial and relies on theorems of compact sets that can be found in Sagan [1, 6].
7
The rst SFC to be constructed is now known as the Peano curve. Both the Hilbert curve and Peano curve
are named after the mathematicians who discovered them: Guiseppe Peano (1858 - 1932) rst described his
curve in 1890, and David Hilbert (1862 - 1943) published his curve a year later in 1891 [8].
8
In 3.1 and 3.2, I am closely following Sagan [1, 2.1] and Valgaerts [2, p3].
4
Figure 1 [3, p3]: The rst three iterations of the construction of the Hilbert curve. The
polygonal lines in Q for each iteration show the order in which our curve must traverse each
subsquare, although together can be thought of as an approximating curve for the Hilbert
curve.
We wish to construct the two-dimensional Hilbert curve, a continuous surjective mapping
from I to Q. Assume that a continuous mapping from I to Q exists. If this is true, we
can partition I into four congruent subintervals and Q into four congruent subsquares such
that each subinterval of I can be mapped continuously onto a corresponding subsquare of Q.
This can be seen visually in Figure 1, as subintervals of I and subsquares of Q have been
numbered accordingly to represent the way in which subintervals are mapped to subsquares.
The procedure can then be repeated recursively, so that on the nth iteration I and Q have
been partitioned into 2
2n
subintervals and subsquares respectively.
However, to mantain continuity of the mapping each iteration requires that the subsquares
of Q are arranged such that adjacent intervals are mapped onto adjacent subsquares. Hilbert
demonstrated that such an ordering of subsquares is always possible. Looking at Figure 1 again,
in each iteration adjacent subintervals of I are numbered consecutively and we also have that
consecutively numbered subsquares of Q always share a common edge, thus the condition is
satised.
Finally, we also require that inclusion relationships are preserved, which means that if an
interval corresponds to a square then all subintervals of that interval correspond to subsquares of
the same square. With the arrangement as in Figure 1 this is again satised, as for example the
interval numbered 0 in (*) is partitioned by subintervals 0,1,2,3 in (**) and the corresponding
square numbered 0 in (*) is partitioned by the four subsquares 0,1,2,3 in (**) which correspond
to these subintervals.
We now dene the Hilbert curve as follows [1, p11]:
Denition 5. Let f : I Q, t f(t) where the image f(t) of t is determined as follows. Every
t I is uniquely determined by a sequence of nested closed intervals (that are generated by our
successive partitioning), the lengths of which shrink to 0. With this sequence corresponds a
unique sequence of nested closed squares, the diagonals of which shrink into a point, and which
dene a unique point in Q. Dene this point as the image f(t) of t. Then we call the image of
f, f[I], the Hilbert curve.
A subtlety we must consider that emerges from this denition is that there exists points in
I that belong to two dierent sequences of nested intervals. In particular, any point t that is
the endpoint of one of the subintervals of I - other than 0 or 1 - belongs to two such sequences.
However, we know that adjacent intervals always map onto adjacent squares, and with each
iteration of the generation of the Hilbert curve adjacent squares shrink in size. Therefore, the
least upperbound on the greatest distance between points in Q where f(t) may lie converges to
zero.
9
We can conclude this will still lead to the same image and we are safe that our mapping
is well-dened.
An immediate question you may ask is how we can explicity nd the image of any point
t
0
I under f. This turns out to be nontrivial and rst requires a complex representation of
the Hilbert curve, so we shall leave this question unanswered for now until it becomes our main
focus in 3.3.
9
Here I am dening distance as the standard Euclidean metric on R
2
.
5
3.2 Properties of the Hilbert curve
Of course, the main result I wish to prove in this section is that the Hilbert curve is a SFC.
Before doing so I rst acknowledge one of our previous results. We know that Nettos Theorem
directly implies that no SFC is injective, so I begin by showing the Hilbert curve is not one-to-
one.
10
Theorem 3. The Hilbert curve is not an injective mapping.
Figure 2
Proof. Consider a point A

Q such that A

is commonly shared by four dierent subsquares


(A, B, C, D from top-left to bottom-right) in any iteration of the generation of the Hilbert
curve. Clearly this is only possible if A

lies on the mutual corner of all four subquares (see


above in Figure 2). By the denition of how the Hilbert curve is generated, we know there is
a sequence of nested closed squares in each of our subsquares which converge to A

. Therefore
the preimages of A

lie in the subintervals of I that correspond to these subsquares. It is


possible that non of A, B, C, D are adjacent subsquares,
11
however we can be certain that in
particular the pairs of subsquares A,D and B,C are not adjacent. Just considering subsquares
A,D, as they are not adjacent the corresponding subintervals of I - call them A, D respectively
- that map onto these squares are not consecutive. Therefore, the intersection of A and D is
empty. However, a preimage of A

must lie in both A and D, and hence we conclude these


preimages must be distinct. Since we have shown there exists a point in Q that is mapped onto
by at least two distinct points in I under the Hilbert mapping, we conclude this mapping is not
injective.
Indeed there are innitely many points where the Hilbert curve is self-intersecting, a re-
markable property since all discrete approximating curves to the Hilbert curve - such as those
shown in Figure 1 - are injective. This highlights the strange nature of the mapping and why
we can only visualise it as a limiting procedure.
We now move on to show the Hilbert curve is a SFC. To do this I must prove our mapping
is both surjective and continuous.
12
Theorem 4. The Hilbert curve is surjective.
10
I have completed this proof myself using the idea given in Parker [3, p4].
11
Look back to (***) in Figure 1, page 5. Subsquares 6, 9, 54, 57 are clearly not consecutive but all share
a mutual vertex. Following the same argument as the rest of the proof, the point in Q that lies on this vertex
has four distinct preimages in I under the Hilbert mapping. As any point in Q can be shared by at most four
seperate subsquares (if and only if the point lies on a mutual vertex of these subsquares), every point in Q has
at most four preimages in I under the Hilbert mapping. The question of why every point in Q has at most four
preimages in I is taken as an exercise from Sagan [1, p29].
12
The proofs of Theorem 4. and Theorem 5. follow closely those given in Sagen [1, p12].
6
Proof. The proof is somewhat trivial from the denition of the generation of the Hilbert curve.
Let A

Q. Then A

belongs to a sequence of nested closed squares which converge to A

.
With this sequence of nested closed squares we have a corresponding sequence of nested closed
intervals which converge to a point t I, and therefore t is a preimage of A

. Since we can
apply this argument to all points in Q, the Hilbert curve is surjective.
Theorem 5. The Hilbert curve is continuous.
Proof. At the nth iteration of the generation of the Hilbert curve, I have already stated that I
and Q are partitioned into 2
2n
subintervals and subsquares respectively. We deduce the length
of each subinterval is 1/2
2n
and the length of each side of the subsquares is 1/2
n
. Hence letting
t
1
, t
2
I such that |t
1
t
2
| < 1/2
2n
, the closed interval [t
1
, t
2
] intersects at most two consecutive
subintervals of I, and hence the images lie in at most two consequtive subsquares of Q. The
greatest distance between the images of t
1
, t
2
is clearly the diagonal of the rectangle made
up of these two adjacent subsquares, which we deduce by Pyhtagorus Theorem has sidelength

5/2
n
(see below in Figure 3).
Figure 3
Let f
h
(t) : I Q be the Hilbert mapping. Then from above we have for t
1
, t
2
I, if
|t
1
t
2
| < 1/2
2n
then ||f
h
(t
1
) f
h
(t
2
)|| <

5/2
n
. Since

5/2
n
0 as n , we deduce the
Hilbert curve is continuous.
Combining Theorem 4. and Theorem 5. we have nally proved that the Hilbert curve
is a SFC!
A nal property of the Hilbert curve (and in fact any SFC) for which the proof I shall omit
is that it is nowhere dierentiable.
13
This is a property that is common to many fractals, and
indeed all SFCs are special cases of fractal constructions. The recursive geometric principle
used to generate the Hilbert curve displays self-similarity properties similar to of other fractals
such as the Koch Snowake or Cantor Function. Like the Koch Snowake, the length of the
Hilbert curve is innite. This can be proven using that the length of the approximating curve
is equal to (4
n
1)/2
n
at the nth iteration of the generation of the Hilbert curve,
14
from which
we deduce the length of the approximating curve (and thus the length of the Hilbert curve)
tends to innity.
13
Two proofs of the nowhere dierentiability of the Hilbert curve can be found in Sagan ([1, p12],[1, p20]).
14
We can check this for n = 1, 2, 3 by looking back at Figure 1. As expected, you can see the lengths of the
approximating curve for the rst three iterations are 3/2, 15/4, 63/8 and our formula holds.
7
3.3 A Complex Representation and Arithmetization of the Hilbert
curve
15
Although we have successfully conrmed the fundamental properties of the Hilbert curve, we
have yet to establish a method for calculating the image in Q for any particular point t I
under our mapping. To achieve this, we will use a complex representation of the Hilbert curve.
In the generation of the Hilbert curve, with each iteration any subinterval of I is partitioned
into four congruent subintervals within this interval and corresponding subsquares of Q are
divided in a similar fashion. By representing points in Q in the complex plane, it turns out
we can obtain the same mapping by instead applying a set of ane transformations to Q for
each iteration, and using this method has its own distinct advantages. Before describing this
set of transformations, we rst look back to Figure 1 and note some key features of our former
generating process.
Firstly, we see that for each iteration our curve always initiates in the lower-left subsquare
of Q and terminates in the lower-right subsquare, from which we deduce our curve must initiate
at the origin and terminate at (1, 0).
16
As well as this, it is a necessity that subsquares are
oriented such that the point at which the curve exits a subsquare is the same as where it enters
the following one in order to mantain continuity. Taking this into consideration, I show in
Figure 4 the conguration we wish to achieve for the rst three iterations of applying a set of
ane transformations on Q, using arrows to represent the way in which subsquares require to
be oriented.
Figure 4: The rst three iterations of the complex representation of the Hilbert curve.
Considering points in Q as points in the complex plane, we can obtain the conguration
(ii) in Figure 4 by applying four ane transformations to Q in (i). For z C, we dene these
four transformations as follows:
A
0
z =
1
2
zi
A
1
z =
1
2
z +
i
2
15
In this section I closely follow Sagan [1, 2.3] and Valgaerts [2, pp4-6].
16
This is because the sequence of nested squares formed by choosing the lower-left subsquare of Q at each
iteration of the generation of the Hilbert curve converges to the origin, and similarly the sequence of lower-right
subsquares converges to (1, 0). It should also be clear that we could just have easily generated the curve to
initiate in the lower-left subsquare and terminate in the upper-left subsquare; the generation process I have
chosen is simply for personal preference.
8
A
2
z =
1
2
z +
1
2
+
i
2
A
3
z =
1
2
zi + 1 +
i
2
With the transformations as dened above, applying A
0
, A
1
, A
2
, A
3
to Q in (i) yields
the bottom-left subsquare, top-left subsquare, top-right subsquare and bottom-right subsquare
of Q in (ii) respectively. Hence application of all four transformations yields the complete
conguration in (ii). This may not appear obvious to the reader, so I will now demonstrate
that A
0
applied to Q in (i) does indeed yield the bottom-left subsquare of Q in (ii), from which
you should be able to show that the remaining transformations yield their desired subsquares
as an exercise.
Considering A
0
z =
1
2
zi, we note that A
0
can be written as the composition P
2
P
1
P
0
where P
0
z =
1
2
z is a scaling by scale factor
1
2
, P
1
z = zi is a rotation of 90

about the origin,


P
2
z = z is a reection in the imaginary axis. From this I show geometrically in Figure 5
below that applying A
0
= P
2
P
1
P
0
to Q in (i) gives us the bottom-left subsquare of Q in
(ii).
Figure 5
Although we have shown that application of our four transfromations on Q in (i) gives us the
conguration in (ii), it can easily be deduced that applying these transformations to Q in (ii)
would give us the conguration in (iii). In fact it is clear that applying these transformations
ad innitum will generate the Hilbert curve. Returning to my original claim that using this
complex representation we can nd the image for any t I under the Hilbert mapping, I must
rst introduce quaternaries.
Essentially, the quaternary numeral system is a numeral system we can use to represent any
real number. It is similar to binary except whilst binary is base-2, quaternary is base-4. The
standard way we write numbers is in the Arabic system which is base-10. In our usual system
when we write a decimal 0.a
1
a
2
a
3
... we are really representing the sum:
0.a
1
a
2
...a
n
... =
a1
10
+
a2
100
+ ... +
an
10
n
+ ... a
i
{0, 1, ..., 9} i N
Since quaternary is base-4 rather then base-10, any decimal in the quaternary system
0.
4
a
1
a
2
...a
n
... represents the sum:
0.
4
a
1
a
2
...a
n
... =
a1
4
+
a2
16
+ ... +
an
4
n
+ ... a
i
{0, 1, 2, 3} i N
Clearly we can represent any decimal in the standard base-10 system in quaternary form,
and the reason doing so will be advantageous is due to the nature of our original generating
process of the Hilbert curve.
9
If we represent x
0
I in quarternary form, x
0
= 0.
4
a
1
a
2
a
3
..., a
i
{0, 1, 2, 3}, then we
know x
0
belongs to the (a
1
+1)th subinterval of I when we rst partition I into four congruent
subintervals. Therefore we know the image of x
0
under the Hilbert mapping belongs to the
(a
1
+ 1)th subsquare of Q when we rst partition Q into four subsquares. Now using our new
generating principle for the Hilbert curve, this means if f is the Hilbert mapping we can say
f(x
0
) A
a1
Q. Similarly we know that f(x
0
) lies in the (a
2
+1)th subsquare of the partitioning
of the (a
1
+ 1)th subsquare into four congruent subsquares, i.e f(x
0
) A
a1
A
a2
Q. Continuing
this reasoning ad innitum we deduce:
f(x
0
) =

Re
Im

lim
n
A
a1
A
a2
A
a3
...A
an
Q
Finally, if x
0
is a nite quaternary x
0
= 0.
4
a
1
a
2
a
3
...a
n
, a
i
{0, 1, 2, 3}, this simplies to:
f(x
0
) =

Re
Im

lim
n
A
a1
A
a2
A
a3
...A
an
A
0
A
0
A
0
...Q
=

Re
Im

lim
n
A
a1
A
a2
A
a3
...A
an
0
Noting that since A
0
only involves scaling towards the origin, lim
n
A
n
0
Q = 0.
Since our choice of x
0
is arbitary, we have realised a method of computing the image of x
under the Hilbert mapping for all x I.
References
[1] Space-Filling Curves (Universitext). Hans Sagen. Springer-Verlag New York, Inc. 1994.
[2] Space-Filling Curves: An Introduction. Levi Valgaerts. University of Technology, Munich.
2005.
http://wwwmayr.in.tum.de/konferenzen/Jass05/courses/2/Valgaerts/Valgaerts_
paper.pdf
[3] Space-Filling Curves. Frieda Parker. University of Northern Colorado. 2008.
http://www.unco.edu/NHS/mathsci/facstaff/parker/math/SFC_Paper.pdf
[4] McGraw-Hill Dictionary of Scientic and Technical Terms. Mcgraw-hill. McGraw-Hill Pro-
fessional, 6th edition. 2002.
[5] Manifolds. Jenny Wilson. University of Chicago 2008.
http://math.uchicago.edu/
~
wilsonj/WOMPtalk-Manifolds.pdf
[6] Manifold. Todd Rowland. Mathworld - A Wolfram Web Resource.
http://mathworld.wolfram.com/Manifold.html
[7] Lecture Notes for MA132 Foundations. D. Mond, S. Siksek, J. Cremona. University of
Warwick 2011.
http://www2.warwick.ac.uk/fac/sci/maths/undergrad/ughandbook/lecturers/
ma132/lecture_notes.pdf
[8] Wikipedia: The Free Encyclopedia. A web resource.
http://en.wikipedia.org/wiki/Space-filling_curve
http://en.wikipedia.org/wiki/Manifolds
10

You might also like