ArticlePDF Available

Abstract and Figures

Geometric algebra (also known as Clifford algebra) is a powerful mathematical tool that offers a natural and direct way to model geometric objects and their transformations. It is gaining growing attention in different research fields as physics, robotics, CAD/CAM and computer graphics. Clifford algebra makes geometric objects (points, lines and planes) into basic elements of computation and defines few universal operators that are applicable to all types of geometric elements. This paper provides an introduction to Clifford algebra elements and operators.
Content may be subject to copyright.
Università degli studi di Palermo
Dipartimento di Ingegneria Informatica
Viale delle Scienze, Edificio 6, 90128 Palermo (Italy), email: info@dinfo.unipa.it Codice Fiscale: 80023730825
Technical Report N. 2/2010
A brief introduction to
Clifford algebra
Silvia Franchini, Giorgio Vassallo, Filippo Sorbell
o
February 2010
1
A brief introduction to Clifford algebra
Silvia Franchini
(1)
, Giorgio Vassallo
(1)
, Filippo Sorbello
(1)
(1) Dipartimento di Ingegneria Informatica - Università degli Studi di Palermo
Viale delle Scienze, Edificio 6, 90128 Palermo (Italy)
Corresponding author e-mail: franchini@dinfo.unipa.it
February 2010
Abstract
Geometric algebra (also known as Clifford algebra) is a
powerful mathematical tool that offers a natural and
direct way to model geometric objects and their
transformations. It is gaining growing attention in
different research fields as physics, robotics,
CAD/CAM and computer graphics. Clifford algebra
makes geometric objects (points, lines and planes) into
basic elements of computation and defines few
universal operators that are applicable to all types of
geometric elements. This paper provides an
introduction to Clifford algebra elements and operators.
1. Introduction
Many research fields, such as robotics, CAD/CAM, machine vision and
computer graphics, rely on geometric models of external world. In these
applications geometric objects and their transformations are traditionally
formalized using linear algebra [2]. The limitation of the traditional approach is
that its primitives are too low-level and all geometric concepts have to be
represented by vectors and matrices. This creates a separation between
geometric reasoning and matrix-based algorithms, which in turn leads to
implementation errors [10]. Geometric algebra (also known as Clifford algebra
from its main contributor, W. K. Clifford [1]) is an interesting alternative for
its natural and intuitive way to model and manipulate the geometric objects.
Compared with traditional linear algebra, geometric algebra introduces
primitives (subspaces) of any dimensionality (not only vectors) and defines the
operators to make calculations with them. Geometric entities, such as lines,
planes and volumes, become basic elements of the algebra and can be
manipulated by a rich set of algebraic operators that have a direct geometric
2
significance [5] - [9]. While linear algebra lacks universal geometric operations,
in Clifford algebra the unified treatment of subspaces of any dimensionality
makes many operators of the algebra universally applicable to all types of
elements. Furthermore, several mathematical theories, such as projective
geometry, complex numbers and quaternions, are naturally integrated in
geometric algebra providing a unified framework.
This paper gives an introduction to Clifford algebra theory. The rest of the
paper is organized as follows. Section 2 introduces geometric algebra
subspaces, while in section 3 the Clifford operators are detailed. In section 4
the basic operators of geometric algebra are used to solve simple geometric
problems in three-dimensional space, such as reflections and rotations. The
models of geometry commonly used in computer science applications, that is
the homogeneous model and the conformal model, are described in sections 5
and 6, respectively. Finally section 7 contains conclusions from this work.
2. Clifford algebra elements
This section uses a natural and intuitive way to introduce Clifford algebra
basic objects.
2.1. Multiplication of vectors in R
2
Considering an orthonormal basis {e
1
, e
2
} of a Euclidean vector space R
2
,
two generic vectors a and b of R
2
can be expressed as linear combinations of
the basis elements:
a = a
1
e
1
+ a
2
e
2
b = b
1
e
1
+ b
2
e
2
Multiplying the two vectors a and b, it is obtained:
ab = (a
1
e
1
+ a
2
e
2
) (b
1
e
1
+ b
2
e
2
) =
a
1
b
1
e
1
e
1
+ a
1
b
2
e
1
e
2
+ a
2
b
1
e
2
e
1
+ a
2
b
2
e
2
e
2
(2.1)
By defining the following axioms:
e
1
e
1
= e
2
e
2
= 1 (2.2)
e
2
e
1
= - e
1
e
2
equation (2.1) can be written as:
ab = (a
1
b
1
+ a
2
b
2
) + (a
1
b
2
– a
2
b
1
)e
1
e
2
(2.3)
The product between two vectors results in the sum of a scalar term (a
1
b
1
+ a
2
b
2
) and a term (a
1
b
2
– a
2
b
1
)e
1
e
2
composed of a numeric coefficient and e
1
e
2
.
How can e
1
e
2
be defined?
3
Considering two orthogonal vectors ae
1
and be
2
in R
2
, their product is
abe
1
e
2
. The coefficient ab represents the area of the rectangle defined by the
two vectors, as depicted in Figure 1. With respect to e
1
e
2
, two considerations
can be introduced. First, (e
1
, e
2
) define the plane in which the area lies. Second,
the sign inversion in the second axiom of (2.2) can be interpreted by assigning
an orientation to the area. Let us explain this concept.
A vector is defined by its magnitude and direction; given a vector a, -a is
the vector with the same magnitude, but with opposite direction. Similarly, an
orientation can be assigned to an area. e
2
e
1
= -e
1
e
2
is the area element whose
orientation is opposite to e
1
e
2
, as depicted in Figure 2. Ultimately, e
1
e
2
represents the oriented area element in R
2
and it is called a bivector. While the
vector is a one-dimensional oriented subspace, the bivector is a two-
dimensional oriented subspace.
e
1
e
2
ae
1
be
2
ab
e
1
e
2
ae
1
be
2
ab
Figure 1. Product of two orthogonal vectors
e
1
e
2
a
-a e
1
e
2
e
2
e
1
= -e
1
e
2
e
1
e
2
a
-a e
1
e
2
e
2
e
1
= -e
1
e
2
Figure 2. Oriented subspaces
As described in (2.3), the product between two vectors in R
2
results in the
sum of a scalar term and a bivector term. If the idea to add heterogeneous
elements is accepted, the following expression (obtained by adding a scalar, a
vector and a bivector) can be written:
a
0
+ a
1
e
1
+ a
2
e
2
+ a
12
e
1
e
2
4
It represents the most general object that can be obtained combining the
basis vectors of R
2
and it is called a multivector.
The space containing all the 2D multivectors is called two-dimensional
Clifford space (Cl
2
) and represents an extension of the Euclidean vector space
R
2
. The sum and product operations between multivectors are defined in Cl
2
.
The algebra based on multivector operations is called Clifford algebra or
geometric algebra. The basis elements of Cl
2
are listed in Table 1 along with
their grades and multiplicities.
Table 1. Basis elements in Cl
2
Basis element
Multiplicity
1
1
e
1
, e
2
2
e
1
e
2
1
The grade of each element indicates the number of basis vectors it
contains. The multiplicity of each element represents the number of elements
of the same grade contained in the generic multivector. A 2D multivector is a
linear combination with real coefficients of the basis elements listed in Table 1.
2.2. Multiplication of vectors in R
3
In section 2.1 the product between two vectors in R
2
has been calculated.
In this section the product between two vectors in R
3
is introduced.
Considering an orthonormal basis {e
1
, e
2
, e
3
} of a Euclidean vector space R
3
,
two generic vectors a and b of R
3
can be expressed as linear combinations of
the basis elements:
a = a
1
e
1
+ a
2
e
2
+ a
3
e
3
b = b
1
e
1
+ b
2
e
2
+ b
3
e
3
Multiplying the two vectors a and b, it is obtained:
ab = (a
1
e
1
+ a
2
e
2
+ a
3
e
3
) (b
1
e
1
+ b
2
e
2
+ b
3
e
3
) = (2.4)
a
1
b
1
e
1
e
1
+ a
1
b
2
e
1
e
2
+ a
1
b
3
e
1
e
3
+
a
2
b
1
e
2
e
1
+ a
2
b
2
e
2
e
2
+ a
2
b
3
e
2
e
3
+
a
3
b
1
e
3
e
1
+ a
3
b
2
e
3
e
2
+ a
3
b
3
e
3
e
3
By introducing the following axioms:
e
1
e
1
= e
2
e
2
= e
3
e
3
= 1 (2.5)
e
2
e
1
= - e
1
e
2
e
3
e
1
= - e
1
e
3
e
3
e
2
= - e
2
e
3
equation (2.4) can be written as:
5
ab = (a
1
b
1
+ a
2
b
2
+ a
3
b
3
) + (a
1
b
2
– a
2
b
1
)e
1
e
2
+
(2.6)
(a
1
b
3
– a
3
b
1
)e
1
e
3
+ (a
2
b
3
– a
3
b
2
)e
2
e
3
In three dimensions, the product between two vectors also results in the
sum of a scalar term and a bivector term. Each of the terms e
1
e
2
, e
1
e
3
and
e
2
e
3
can be interpreted as the oriented area element which lies on the plane defined
by the basis vectors (e
1
,e
2
), (e
1
,e
3
) and
(e
2
,e
3
), respectively (see Figure 3). In R
3
another element can be introduced which derives from the product of the
three basis vectors: e
1
e
2
e
3
.
How can e
1
e
2
e
3
be defined?
e
1
e
2
e
3
represents the oriented volume element in R
3
and it is called a trivector
(see Figure 3). While the vector is a one-dimensional oriented subspace and the
bivector is a two-dimensional oriented subspace, the trivector is a three-
dimensional oriented subspace.
e
3
e
2
e
3
e
1
e
2
e
1
e
3
e
1
e
2
e
3
e
2
e
1
e
3
trive c to r
e
3
e
2
e
3
e
1
e
2
e
1
e
3
e
1
e
2
e
3
e
2
e
1
e
3
trive c to r
Figure 3. Oriented subspaces in 3D Clifford space
In R
3
the generic multivector can be written as:
a
0
+ a
1
e
1
+ a
2
e
2
+ a
3
e
3
+ a
12
e
1
e
2
+ a
13
e
1
e
3
+ a
23
e
2
e
3
+ a
123
e
1
e
2
e
3
The space containing all the 3D multivectors is called three-dimensional
Clifford space (Cl
3
) and represents an extension of the Euclidean vector space
R
3
. The basis elements of Cl
3
are listed in Table 2 along with their grades and
multiplicities. A 3D multivector is a linear combination with real coefficients of
the basis elements listed in Table 2.
Table 2. Basis elements in Cl
3
Basis element
Multiplicity
1
1
e
1
, e
2
, e
3
3
e
1
e
2
,
e
1
e
3
,
e
2
e
3
3
e
1
e
2
e
3
1
6
2.3. Subspaces of the n-dimensional Clifford algebra
In this section the concepts intuitively introduced in the sections 2.1 and
2.2 are formalized and generalized in the case of an n-dimensional vector
space.
Considering an orthonormal basis {e
1
, e
2
, , e
n
} of a Euclidean vector
space R
n
, the corresponding basis of n-dimensional Clifford space Cl
n
consists
of all k-dimensional subspaces with k n, for all the possible combinations of
the n basis vectors, as listed in Table 3.
Table 3. Basis elements in Cl
n
Basis element
Grade
Multiplicity
1
0 (scalar)
!
!
"
#
$
$
%
&
0
n
=1
e
1
, e
2
, e
3
,…, e
n
1 (vector)
!
!
"
#
$
$
%
&
1
n
=n
e
1
e
2
, e
1
e
3
,…, e
1
e
n
,…, e
2
e
3
,…,
e
2
e
n
,…, e
n-1
e
n
2 (bivector)
2
)1(
2
=
"
"
#
$
%
%
&
'
nn
n
e
1
e
2
e
3
, e
1
e
2
e
4
,…, e
1
e
2
e
n
,…, e
n-
2
e
n-1
e
n
3 (trivector)
6
)2)(1(
3
=
"
"
#
$
%
%
&
'
nnn
n
e
1
e
2
e
3
e
n
n (pseudoscalar)
!
!
"
#
$
$
%
&
n
n
=1
Clifford algebra subspaces are called blades: for example, bivectors are
blades of grade 2 (or 2-blades); trivectors are blades of grade 3 (or 3-blades) and so
on. According to this formalism, vectors are 1-blades and scalars are 0-blades. In
Cl
n
the total number of these subspaces is 2
n
, while the number of k-
dimensional subspaces is given by the binomial coefficient
)!(!
!
knk
n
k
n
=
"
"
#
$
%
%
&
'
It can be observed that in the n-dimensional space the multiplicity of the
scalar and the multiplicity of the element of grade n are equal to 1;
consequently, the blade of grade n e
1
e
2
e
n
is called the pseudoscalar.
The generic element of the algebra or multivector is a linear combination
with real coefficients of the 2
n
basis elements listed in Table 3.
7
3. Clifford algebra operators
This section introduces the basic operators of Clifford algebra: the
geometric product, the outer product, the left and right contractions and the
unary operators (dual, reverse, coniugate and grade involution).
3.1. The geometric product
Clifford algebra introduces a linear, invertible product called geometric product
or Clifford product that is the fundamental product of the algebra, since other
useful products, as the inner product and the outer product, can be derived
from it.
Table 4 lists the axioms of the geometric product.
Table 4. Geometric product axioms
e
i
e
i
= ±1
i = 1, 2, …, n
e
i
e
j
= - e
j
e
i
i j = 1, 2, …, n
λe
i
= e
i
λ
i = 1, 2, …, n
The geometric product is an operator for multivectors. Though the rules
that are introduced in this section are general, the demonstrations are
presented for the two-dimensional case. In the two-dimensional Clifford
space Cl
2
, two generic multivectors can be written as:
a = a
0
+ a
1
e
1
+ a
2
e
2
+ a
12
e
1
e
2
b = b
0
+ b
1
e
1
+ b
2
e
2
+ b
12
e
1
e
2
The geometric product between two multivectors is performed multiplying
each component of an operand with each one of the other operand and
simplifying the resulting terms by means of the set of axioms listed in Table 4.
Using the geometric product to multiply a and b, it is obtained:
ab = (a
0
+a
1
e
1
+a
2
e
2
+a
12
e
1
e
2
)(b
0
+b
1
e
1
+b
2
e
2
+b
12
e
1
e
2
) = (3.1)
a
0
b
0
+ a
0
b
1
e
1
+ a
0
b
2
e
2
+ a
0
b
12
e
1
e
2
+
a
1
b
0
e
1
+ a
1
b
1
e
1
e
1
+ a
1
b
2
e
1
e
2
+ a
1
b
12
e
1
e
1
e
2
+
a
2
b
0
e
2
+ a
2
b
1
e
2
e
1
+ a
2
b
2
e
2
e
2
+ a
2
b
12
e
2
e
1
e
2
+
a
12
b
0
e
1
e
2
+ a
12
b
1
e
1
e
2
e
1
+ a
12
b
2
e
1
e
2
e
2
+ a
12
b
12
e
1
e
2
e
1
e
2
Studying equation (3.1), it can be observed that the geometric product of
two generic multivectors can be expressed as a linear combination of
geometric products of basis blades. Therefore, it is sufficient to understand
how to calculate geometric products between basis blades.
This section explains the rules to calculate the Clifford algebra products
between two arbitrary basis blades. Let A be the index set of basis vectors of
the first blade and B the index set of basis vectors of the second blade.
8
Considering the geometric product between two basis blades, the result
contains the basis vectors that are present only in one of the basis blades.
Thus, if an index i is present in both A and B, it is not present in the result,
while the result contains the basis vectors whose indices belong to A, but not
to B and vice versa.
Returning to equation (3.1), the products between two arbitrary blades can
be calculated by a three-step process. First, the scalar values associated to the
input blades are multiplied to yield the coefficient of the result. Second, the
blade of the result is computed according to the rules described above. Third,
the sign of the result depends on the input blades, according to the axioms
listed in Table 4. Hence, the sign is the result of three contributions: coefficient
signs, algebra signature and blade multiplication. The algebra signature is the
pair of integers (p, q), where p is the number of basis elements which square to
+1 and q is the number of basis elements which square to -1.
Finally, equation (3.1) results in
ab = (a
0
b
0
+ a
1
b
1
+ a
2
b
2
a
12
b
12
) + (3.2)
(a
0
b
1
+ a
1
b
0
a
2
b
12
+ a
12
b
2
) e
1
+
(a
0
b
2
+ a
2
b
0
+ a
1
b
12
a
12
b
1
) e
2
+
(a
0
b
12
+ a
12
b
0
+ a
1
b
2
a
2
b
1
) e
1
e
2
that is the geometric product of the two multivectors a and b.
3.2. The other products
The other products of Clifford algebra are the outer product (), the left
contraction (" ) and the right contraction ( #).
3.2.1. The outer product
The outer product can be interpreted as the opposite of the traditional dot
product from linear algebra. While the dot product of two vectors projects a
vector onto the other one, the outer product of two vectors extends a vector
along the other one. The (wedge) symbol is used to denote this operator that
is also called wedge product. As depicted in Figure 4a, the outer product of
two vectors a and b results in a two-dimensional subspace or bivector. It has
an area equal to the size of the parallelogram spanned by a and b and an
orientation depicted by the clockwise arc.
The outer product is anticommutative, which means that
a b = - b a
From this it derives that
a a = 0
9
a b
a b c
a)
b)
Figure 4. The outer or wedge product
The outer product of two vectors consists in extending a one-dimensional
subspace along another to obtain a two-dimensional subspace or bivector.
Similarly, if we extend a two-dimensional subspace a b along a third vector c,
we obtain a three-dimensional subspace or trivector, which represents an
oriented volume element, as depicted in Figure 4b.
The outer product of two vectors is a blade of grade 2 or a bivector. The
outer product of three vectors is a blade of grade 3 or a trivector.
In general, a generic blade of grade k is an outer product of k vectors.
As the geometric product, the outer product is distributive and linear. The
outer product of two generic multivectors can be expressed as a linear
combination of outer products of basis blades. Therefore, we provide the rules
to calculate the outer product between two arbitrary basis blades.
Let A be the index set of basis vectors of the first blade and B the index set
of basis vectors of the second blade. The rules to calculate the outer product
between the two blades can be expressed as follows: if A and B have a non-
empty intersection, the result of the outer product is 0, otherwise the result
contains the basis vectors whose indices belong to A, but not to B and vice
versa.
3.2.2. The left and right contractions
The left contraction and the right contraction are two of the various
versions of the so called inner product, which in turn is the generalization of the
traditional dot product (·) defined for vectors in linear algebra. In this paper, we
use the left contraction as the specific inner product. In the equations
involving only vectors, the left contraction is sometimes written as a dot
product.
We use a geometric intuition to explain how the left contraction works.
Figure 5 shows how to compute the left contraction between a vector a and a
2-blade B. First, a is orthogonally projected onto B (Figure 5a); then the
oriented orthogonal complement with respect to B of the projection is
10
computed (Figure 5b). Figure 5c shows the orthogonal angle between the
projection and the left contraction a " B.
a)
b)
c)
Figure 5. The left contraction [10]
As the geometric product and the outer product, the left and right
contractions are distributive and linear. The left (right) contraction of two
generic multivectors can be expressed as a linear combination of left (right)
contractions of basis blades. Therefore, we provide the rules to calculate the
left and right contraction between two generic basis blades.
Let A be the index set of basis vectors of the first blade and B the index set
of basis vectors of the second blade.
The result of the left contraction between two basis blades contains the
basis vectors whose indices belong to B, but not to A, while the result is 0 if
there are elements of A that do not belong to B. Conversely, the result of the
right contraction between two basis blades contains the basis vectors whose
indices belong to A, but not to B, while the result is 0 if there are elements of
B that do not belong to A.
3.2.3. The relation between the algebra products
Let us consider two vectors a and b of the two-dimensional Clifford space
Cl
2
:
a = a
1
e
1
+ a
2
e
2
b = b
1
e
1
+ b
2
e
2
The geometric product, outer product and inner product of a and b can be
expressed as:
ab = (a
1
b
1
+ a
2
b
2
) + (a
1
b
2
– a
2
b
1
)e
1
e
2
(3.3)
a b = (a
1
b
2
– a
2
b
1
)e
1
e
2
(3.4)
a · b = a
1
b
1
+ a
2
b
2
(3.5)
Equation (3.4) shows that the outer product of two vectors a and b is a
bivector representing the oriented area of the parallelogram spanned by a and
b (see Figure 4a).
It is possible to express the outer product and the inner product of two
vectors in terms of their geometric product:
11
a b = ½ (abba) (3.6)
a · b = ½ (ab + ba) (3.7)
Equations (3.6) and (3.7) are true only for vectors. From (3.6) and (3.7) the
following equation can be derived:
ab = a b + a · b (3.8)
The geometric product for vectors can be expressed as a combination of
the outer and inner products. The outer product is anti-commutative, while the
inner product is commutative, which means that:
a b = - b a (3.9)
a · b = b · a (3.10)
It is observed that the geometric product is, in general, not commutative
(ab ba), nor is it anti-commutative (ab -ba). This is a consequence of the
fact that the anti-commutative outer product and the commutative dot product
are both part of the geometric product.
3.3. The unary operators
3.3.1. Dual
The dual of a generic blade A is defined as:
A
*
= A " I
n
-1
(3.11)
where I
n
is the blade with respect to which the dualization is performed. I
n
is often the pseudoscalar of the space.
The dualization of a blade consists in taking the orthogonal complement of
the blade. The dual of A is the part of the space I
n
that is not contained in A.
3.3.2. Reverse
The reverse of an arbitrary blade consists in reversing the order of the
factors of the blade. For instance, the reverse of a blade a b is
(a b)
= b a
The reversion only changes the orientation of a blade that is its sign.
In general, the reverse of a blade A
k
of grade k is defined as
A
k
( )
k
2
)1k(k
A1
=
(3.12)
12
3.3.3. Coniugate
The coniugate of a generic blade A is defined as
( )
k
conk
A 1)( =
A
k
(3.13)
3.3.4. Grade involution
The grade involution toggles the orientation of a blade if its grade is odd:
( )
k
k
k
A1A
ˆ
=
(3.14)
3.4. Implementation of Clifford blades and operators
How can the basis blades of a Clifford space be represented?
Considering an orthonormal basis {e
1
, e
2
, e
3
,…, e
n
} of a Euclidean vector
space R
n
, the corresponding n-dimensional Clifford space Cl
n
is defined by 2
n
basis elements, for all possible combinations of the n basis vectors. To
represent them, a n-bit mask can be associated to each basis element, where
each bit is associated to a basis vector e
i
, i [1,n], with e
1
the least significant
bit. As example, the blades of Cl
3
and their corresponding bit masks are listed
in Table 5.
Table 5. Blade bit masks in Cl
3
Blade
Bit mask
e
3
e
2
e
1
1
0 0 0
e
1
0 0 1
e
2
0 1 0
e
1
e
2
0 1 1
e
3
1 0 0
e
1
e
3
1 0 1
e
2
e
3
1 1 0
e
1
e
2
e
3
1 1 1
A product operation between two basis blades gives as result another basis
blade. According to the rules described in sections 3.1 and 3.2, the following
technique can be used to calculate geometric products, outer products and left
or right contractions between two basis blades. The bit mask of the result is
computed according to the following cases:
for geometric products, the result bit mask is the XOR of the two
input bit masks;
for outer products, the result bit mask is the XOR of the two input
bit masks with the exception that the result will be zeroed if the
bitwise AND of the two blades is different from zero.
13
for left (right) contractions, the result bit mask is the XOR of the two
input bit masks with the exception that the result will be zeroed if the
bitwise AND between the first (second) blade and the complemented
second (first) blade is different from zero.
4. Geometric transformations
Clifford algebra operators have a very great representational power. As
demonstrated in the following sections, the geometric transformations in 3D
space, such as reflections and rotations, can be expressed by the algebraic
operators introduced in section 3.
4.1. Reflections
Let us suppose to have to reflect a vector a in a plane with unit-normal m.
Let a’ be the reflected vector, as depicted in Figure 6.
aa
a
||
a
m
aa
a
||
a
m
Figure 6. Reflection of a vector a
Pre-multiplying and post-multiplying a by m and sign-inverting, it is
obtained:
- mam
a can be decomposed in two parts: one part is orthogonal to m (a
) and
the other is collinear with m (a
||
):
a = a
+ a
||
(4.1)
Using equation (4.1), the following equation can be written:
- mam = - m(a
+ a
||
)m (4.2)
and therefore:
- mam = - ma
m - ma
||
m (4.3)
14
Since a
and m are orthogonal vectors, their product is anti-commutative:
a
m = - ma
(4.4)
Conversely, a
||
and m are collinear vectors; therefore, their product is
commutative:
a
||
m = ma
||
(4.5)
Using equations (4.4) and (4.5), equation (4.3) becomes:
- mam = m
2
a
- m
2
a
||
(4.6)
Since m is a unit-vector, m
2
equals 1. Thus equation (4.6) can be rewritten
as:
- mam = a
- a
||
(4.7)
a
- a
||
represents the reflected vector a
. Therefore the reflected vector a
can be expressed as:
a
= - mam (4.8)
From (4.8) it can be observed that the reflection of a vector a in a plane
with unit-normal m is obtained by using the geometric product. In fact it is
sufficient to pre-multiply and post-multiply a by m and sign-invert the result.
4.2. Rotations
Let us suppose to have to rotate a vector a in the plane generated by the
unitary vectors m and n (see Figure 7). The rotated vector a’’ can be obtained
by two reflections: the first one in the plane with unit-normal m and the
second one in the plane with unit-normal n. Recalling equation (4.8), the first
reflection gives as result:
a’ = - mam, (4.9)
while the second reflection gives as result:
a = - na’n = - n(- mam)n = (nm)a(mn) (4.10)
15
m n
m
n
aa
a
θ
2θ
m n
m
n
aa
a
θ
2θ
Figure 7. Rotation of a vector a
It can be demonstrated that, if θ is the angle between m and n, the angle
between the original vector a and the rotated vector a’’ is 2θ. Using the
following settings:
R = nm and R
= mn (4.11)
equation (4.10) can be written as:
a = RaR
(4.12)
where R
is the reverse of R. R is called rotor. From equation (4.12) it can be
observed that rotations are handled through an interesting “sandwiching
product” using geometric products. A rotation of a vector a in the plane
defined by two unitary vectors m and n is obtained by sandwiching the vector
between the rotor R = nm and its reverse.
Rotors are used to perform rotation of any dimensional subspaces. Thus,
equation (4.12), obtained for vectors in 3D space, can be applied to any
dimensional subspaces and in any dimensional spaces. Interestingly, equation
(4.11) shows that a generic rotor can be derived from the geometric product
between two unitary vectors that define both the rotation plane and the
rotation angle, where the rotation angle is twice the angle between the two
vectors. Since the rotor derives from the geometric product between two
vectors, it is a particular multivector, formed by a scalar element and a bivector
element.
In three dimensions, a rotor can be expressed as
R = (s, b) = q
0
+ q
1
e
0
e
1
+ q
2
e
0
e
2
+ q
3
e
1
e
2
.
A 3D rotation of a generic vector v = a
0
e
0
+ a
1
e
1
+ a
2
e
2
can be expressed as:
v’ = R v R
where v’ is the rotated vector and R
is the reverse of R,
16
R
= (s, – b) = q
0
– q
1
e
0
e
1
– q
2
e
0
e
2
– q
3
e
1
e
2
.
In three dimensions, rotors are exactly quaternions.
5. The homogeneous model
Clifford algebra can be used to implement the most important models of
geometry used in computer science applications, such as the homogeneous
model and the conformal model. Clifford algebra can represent these standard
geometric models increasing their expressive power. In particular, four-
dimensional Clifford algebra implements the homogeneous model, while five-
dimensional Clifford algebra implements the conformal model, also known as
double homogeneous model.
The homogeneous model implemented by 4D Clifford algebra is an
extension of the homogeneous coordinates traditionally used to model
geometry in three-dimensional space.
The elements of Clifford algebra introduced in the previous sections
represent oriented subspaces through the origin. In order to use the elements
of the algebra to represent geometric objects, as points, lines and planes, more
structured approaches, such as the homogeneous model or the more powerful
conformal model, have to be used.
To represent a geometric object, such as a line or a plane, a point on the
object is required to define its position in 3D space. For example, a line is
described by a direction vector and a position vector, as well as a plane is
described by a bivector, which defines its orientation, and a coordinate-vector,
which defines its position. To avoid the need for a supporting position, the
homogeneous model can be used. The homogeneous model consists in
embedding an n-dimensional space in an n+1-dimensional space, adding an
extra dimension. Thus, geometric objects from the n-dimensional base space
can be represented by pure blades of the (n+1)-dimensional representational
space without the need for a supporting position [7].
Figure 8. Homogeneous coordinates
17
By separating the origin of the algebra from the origin of the represented
space, the homogeneous model can identify points, lines and planes with pure
blades. For example, let us suppose to embed the Euclidean plane (that is the
base space) in the three-dimensional homogeneous space (that represents the
embedding space), as depicted in Figure 8. The base space, in this case the
Euclidean space, is put at a unit distance from the algebraic origin. To
represent the line g through points a and b in the Euclidean plane, the
direction vector a-b and a supporting coordinate a or b are required.
Conversely, in the 3D homogeneous space, it is sufficient to use the bivector
G=ab. The bivector represents a plane; the intersection of this plane with the
Euclidean plane defines the line g through points a and b (see Figure 8). The
bivector ab defines the line through a and b, while ba defines the line with
opposite direction. Many benefits derive from the use of homogeneous
coordinates. If a line has to be rotated, instead of having to rotate two objects
(the direction vector and the position vector), it is sufficient to rotate the
bivector. Furthermore, the intersection of two lines can be obtained by
applying the “meet” operator to two bivectors. As an example, considering
two lines in the 3D homogeneous space (the first one through points a and b
and the second one through points c and d), the intersection of the two lines
can be expressed as the meet operator between bivectors ab and cd, as
depicted in Figure 9.
a
b
d
c
a ^ b
c ^ d
e
3
e
1
e
2
meet
a
b
d
c
a ^ b
c ^ d
e
3
e
1
e
2
meet
Figure 9. Intersection of two lines
The meet operator between two arbitrary blades A and B is the inner
product of the dual of A with B, as described in equation (5.1).
A B = A* · B (5.1)
The meet operator gives as result the smallest common subspace of blades
A and B. The definition of the dual of an arbitrary multivector A has been
given in equation (3.11).
18
6. The conformal model
Five-dimensional geometric algebra (5D GA), also known as conformal
geometric algebra (CGA), implements the conformal model, that is the most
powerful and elegant model of 3D Euclidean geometry. The conformal model
is also called the double homogeneous model. The homogeneous model
consists in embedding an n-dimensional space in an (n+1)-dimensional space,
adding one more dimension, which is called the point at origin. The conformal
model, on the other hand, consists in embedding an n-dimensional space in an
(n+2)-dimensional space, adding two extra dimensions, which are called the
point at origin (o) and the point at infinity ().
The conformal model is more powerful than the homogeneous model.
Compared to the homogeneous model, the conformal model extends the
number of geometric objects that can be directly represented by the algebra
elements. While homogeneous model can represent only flat geometric
objects, the conformal model can represent also round objects, such as circles
and spheres, as blades. In the conformal model, all types of geometric objects
have a direct association with the blades of the algebra.
Conformal means angle-preserving. In the conformal model, the angle-
preserving geometric transformations, such as rotations, reflections,
translations, and uniform scaling, can be directly represented by geometric
products with five-dimensional rotors.
These are the most basic transformations used in computer graphics, and
they would classically be represented with 4 x 4 matrices, while in the
conformal model the natural choice to handle Euclidean transformations is
using rotors.
Conformal geometric algebra is a truly coordinate-free model of 3D
Euclidean space, in which all geometric operations can be specified without
ever referring to an origin.
In the conformal model, geometric objects in the n-dimensional base space
can be directly represented through blades of the (n+2)-dimensional
embedding space and vice versa blades of the (n+2)-dimensional
representational space can be interpreted as geometric objects of the n-
dimensional base space. The blade interpretation process in the conformal
model is depicted in Figure 10 [10].
First, the blades in the (n+2)-dimensional embedding space are intersected
with a hyper-plane. The result of this intersection is a flat in the (n+1)-
dimensional space. Then, these flats of the (n+1)-dimensional space are
intersected with an n-dimensional paraboloid, the horosphere. The conic
resulting from the intersection of the flat with the horosphere is projected
onto an n-dimensional hyper-plane orthogonal to the axis of symmetry of the
horosphere. These projections represent geometric objects in the n-
dimensional space (lines, planes, circles, spheres and so on). In this blade
interpretation process two dimensions are lost. So, in the conformal model, to
represent an n-dimensional geometry, we have to use an (n+2)-dimensional
19
geometric algebra. In particular, to model the three-dimensional Euclidean
geometry we have to use five-dimensional geometric algebra.
b)
c)
a)
d)
Figure 10. The blade interpretation process in the conformal model [10]
In Figure 10a the blade interpretation process is described in the case of n
= 2. The figure shows the basis of the conformal space (except the point at
origin o). The direction of the point at infinity () is the axis of symmetry of
the horosphere. As shown in the figure, the flat in (n+1)-dimensional space is
intersected with the horosphere. The resulting conic is projected onto the
Euclidean space spanned by the basis vectors e
1
and e
2
. In this case, the result
of this projection is a circle.
As depicted in Figure 10b, in the conformal model points are represented
by null vectors on the horosphere. Figure 10c shows that lines are represented
by planes parallel to the axis of symmetry of the horosphere, while Figure 10d
shows that circles are represented by planes which are not parallel to the axis
of symmetry of the horosphere.
20
Line L = a c
Circle C = a b c
Plane P = a b c
Sphere S = a b c d
Figure 11. Representation of geometric objects in the conformal model
As shown in Figure 11, a line is created as the outer product of two points
on the line and infinity, a circle is the outer product of three points on the
circle, a plane is the outer product of three points on the plane and infinity and
a sphere is obtained as the outer product of four points on the sphere. Flat
subspaces are represented as spheres through infinity.
As shown in Figure 12, the circle deriving from the intersection of two
spheres S
1
and S
2
can be obtained as the outer product of the two spheres
S
1
S
2
.
Sphere S
1
Sphere S
2
Circle = S
1
S
2
Sphere S
1
Sphere S
2
Circle = S
1
S
2
Figure 12. Intersection of two spheres in the conformal model
The conformal geometric algebra is based on the Minkowski metric R
n+1,1
,
which is also used in physics for space-time. In particular, the conformal
model of the 3D Euclidean space, that is the 5D geometric algebra, is based on
the R
4,1
Minkowski metric.
In general, the notation R
p,q
means that p is the number of basis vectors
which square to +1 and q is the number of basis vectors which square to -1.
21
For the conformal model of 3-D Euclidean space, we use R
4,1
, to denote that
four basis vectors square to 1 and one squares to -1.
Conversely, the notation R
n
is used for a space with n positive and no
negative dimensions.
The metric of a vector space can be specified by a metric matrix, which is a
simple look up table defining the inner product for each combination of basis
vectors. In a Euclidean metric, all diagonal metric factors are 1.
For example, the metric matrix for an orthogonal 3D Euclidean basis e
0
,
e
1
, e
2
of R
3
, is the diagonal matrix shown in Table 6.
Table 6. Euclidean metric for 3D space
e
0
e
1
e
2
e
0
1
0
0
e
1
0
1
0
e
2
0
0
1
According to the Minkowski metric R
4,1
, the metric multiplication table is
as shown in Table 7.
Table 7. Minkowsky metric in the conformal model
e
0
e
1
e
2
e
3
e
4
e
0
1
0
0
0
0
e
1
0
1
0
0
0
e
2
0
0
1
0
0
e
3
0
0
0
1
0
e
4
0
0
0
0
-1
The relation between the basis vectors and the points at origin (o) and at
infinity () is as follows:
o =
2
1
(e
3
+ e
4
)
=
2
1
(- e
3
+ e
4
)
7. Conclusions
Geometric or Clifford algebra is a new powerful computing paradigm
which offers a natural way to model geometric objects independently from
their coordinates. Clifford algebra adds to classical linear algebra concepts,
22
such as scalars and vectors, two-, three-, or higher-dimensional subspaces and
defines the operators to perform calculations with them. It is possible, in fact,
to add and subtract subspaces of different dimensions, and even multiply
them, resulting in powerful expressions that can express any geometric
relations and concepts. Geometric objects have a direct representation in
geometric algebra and their transformations can be expressed directly by the
new powerful operators of the algebra. Clifford algebra is applied to different
fields of research as computer graphics, CAD/CAM, robotics, physics and
everywhere the description and the manipulation of geometric entities are very
important. However, Clifford algebra has been introduced in these fields only
in recent years, while the traditional methods have been used for years.
Consequently, a lot of work has still to be done to find efficient
implementations of Clifford algebra that allows us to benefit from its
expressiveness and elegance without sacrificing performance.
References
[1] W. K. Clifford, On the classification of geometric algebras”, in Mathematical
Papers (1882), Tucker R., (Ed.), Macmillian, London, pp. 397–401.
[2] S. Mann, N. Litke, T. DeRose, A Coordinate-Free Geometry ADT”,
Research Report CS-97-15, University of Waterloo, 1997.
[3] L. Dorst, Honing geometric algebra for its use in the computer sciences”, in
Geometric Computing with Clifford Algebra, G. Sommer, editor, Springer
ISBN 3-540-41198-4, 2001.
[4] L. Dorst, The Inner Products of Geometric Algebra”, appeared in Applications
of Geometric Algebra in Computer Science and Engineering (Dorst,
Doran, Lasenby, eds), Birkhauser, 2002, pp. 34-46.
[5] L. Dorst, S. Mann, “Geometric Algebra: a computational framework for geometrical
applications (part 1: algebra)”, IEEE Computer Graphics and Applications,
Volume 22, Issue 4, July-August 2002, pp. 58 - 67.
[6] L. Dorst, S. Mann, “Geometric Algebra: a computational framework for geometrical
applications (part 2: applications)”, in IEEE Computer Graphics and
Applications, Volume 22, Issue 3, May-June 2002, pp. 24 - 31.
[7] J. Suter, Geometric Algebra Primer”,
http://www.jaapsuter.com/paper/ga_primer.pdf, March 2003.
[8] D. Hildenbrand , D. Fontijne , C. Perwass and L. Dorst, “Geometric Algebra
and its Application to Computer Graphics”, Tutorial 3, in Proc. of 25th Annual
Conference of the European Association for Computer Graphics,
“Interacting with Virtual Worlds”, Grenoble, France, INRIA and
Eurographics Association, ISSN 1017-4656.
[9] Fontijne D., Dorst L., Modeling 3D Euclidean geometry”, in IEEE Computer
Graphics and Applications, Volume 23, Issue 2, Mar/Apr 2003, pp. 68
78.
23
[10] D. Fontijne, Efficient implementation of geometric algebra”, Ph.D. Thesis,
University of Amsterdam, 2007.
[11] D. Hestenes, New Foundations For Classical Mechanics”, Kluwer Academic
Publishing, Dordrecht, 1986.
[12] D. Hestenes, G. Sobcyk, Clifford Algebra to Geometric Calculus: A Unified
Language for Mathematics and Physics”, Kluwer Academic Publishing,
Dordrecht, 1987.
[13] D. Fontijne, T. Bouma, L. Dorst, GAIGEN: a Geometric Algebra
Implementation Generator”, University of Amsterdam, NL, July 2002.
http://www.science.uva.nl/ga/gaigen/
[14] C. Perwass, C. Gebken, G. Sommer, “Implementation of a Clifford Algebra Co-
Processor Design on a Field-Programmable Gate Array”, in Clifford Algebras -
Applications to Mathematics, Physics, and Engineering, Series: Progress in
Mathematical Physics , Vol. 34, Ablamowicz, Rafal (Ed.) 2004.
[15] Silvia Franchini, Antonio Gentile, Filippo Sorbello, Giorgio Vassallo,
Salvatore Vitabile, An Embedded, FPGA-based Computer Graphics Coprocessor
with Native Geometric Algebra Support”, Integration, The VLSI Journal, Vol.
42, No. 3, June 2009, pp. 346-355, ISSN: 0167-9260,
doi:10.1016/j.vlsi.2008.09.010.
[16] S. Franchini, A. Gentile, F. Sorbello, G. Vassallo, S. Vitabile, An FPGA
Implementation of a Quadruple-Based Multiplier for 4D Clifford Algebra”,
Proceedings of the 11
th
IEEE Euromicro Conference on Digital System
Design - Architectures, Methods and Tools (DSD 2008), Parma, Italy,
September 3-5, 2008, pp. 743-751, ISBN: 978-0-7695-3277-6, doi:
10.1109/DSD.2008.91, IEEE Computer Society Press.
[17] Silvia Franchini, Giorgio Vassallo, Filippo Sorbello, 4D Clifford algebra
based on fixed-size representation”, Atti dell'Accademia Nazionale di Scienze,
Lettere e Arti di Palermo, Serie V, Volume XXIV, Anni Accademici 2004-
2008, Tomo I: Scienze, 2008, pp. 249-273.
[18] S.Franchini, A.Gentile, M.Grimaudo, C.A.Hung, S.Impastato, F.Sorbello,
G.Vassallo, S.Vitabile, A Sliced Coprocessor for Native Clifford Algebra
Operations”, Proceedings of the 10
th
IEEE Euromicro Conference on
Digital System Design - Architectures, Methods and Tools (DSD 2007),
Lubeck, Germany, August 29-31, 2007, pp. 436-439, ISBN/ISSN: 0-7695-
2978-X, doi:10.1109/DSD.2007.4341505, IEEE Computer Society Press.
[19] A. Gentile, S. Segreto, F. Sorbello, G. Vassallo, S. Vitabile, V. Vullo,
“CliffoSor: a Parallel Embedded Architecture for Geometric Algebra and Computer
Graphics”, Proceedings of the IEEE International Workshop on Computer
Architecture for Machine Perception (CAMP 2005), pp. 90-95, IEEE
Computer Society Press.
[20] A. Gentile, S. Segreto, F. Sorbello, G. Vassallo, S. Vitabile, V. Vullo,
“CliffoSor, an innovative FPGA-based architecture for geometric algebra”,
Proceedings of the International Conference on Engineering of
Reconfigurable Systems and Algorithms (ERSA 2005), pp. 211–217.
... A Clifford Algebra is a unitary and associative algebra over a vector space endowed with a geometric product [12]. Unlike standard vector analysis whose primitives are scalars and vectors for representing points and lines, Clifford Algebra has additional spatial primitives for representing plane and volume segments in two and three dimensions, and can even be extended to higher dimensions by the same basic scheme. ...
... It is also common to represent the quaternion as two components, the vector component (i, j, and k) and the scalar component (denoted by q 0 ). The purpose of the scalar component is to provide an additional, C (0, 2,0) q e 0 1 e 1 i e 2 j e 12 k redundant parameter that keeps the quaternion fully defined in the event that a singularity may occur. This keeps the quaternion singularity free. ...
... In the last few decades, Geometric Algebra (GA), also known as Clifford Algebra (CA), has emerged as an alternative to classical linear algebra for its direct and intuitive way to represent geometric objects and transformations [8] [16]. GA integrates and relates the frameworks of linear algebra, vector calculus, homogeneous coordinates, quaternions, Plücker coordinates, offering a unified framework for all mathematics related to geometry. ...
... This section gives a brief introduction to GA basic concepts. Further details can be found in [9] [16]. ...
Article
Medical imaging involves important computational geometric problems, such as image segmentation and analysis, shape approximation, three-dimensional (3D) modeling, and registration of volumetric data. In the last few years, Conformal Geometric Algebra (CGA), based on five-dimensional (5D) Clifford Algebra, is emerging as a new paradigm that offers simple and universal operators for the representation and solution of complex geometric problems. However, the widespread use of CGA has been so far hindered by its high dimensionality and computational complexity. This paper proposes a simplified formulation of the conformal geometric operations (reflections, rotations, translations, and uniform scaling) aimed at a parallel hardware implementation. A specialized coprocessing architecture (ConformalALU) that offers direct hardware support to the new CGA operators, is also presented. The ConformalALU has been prototyped as a complete System-on-Programmable-Chip (SoPC) on the Xilinx ML507 FPGA board, containing a Virtex-5 FPGA device. Experimental results show average speedups of one order of magnitude for CGA rotations, translations, and dilations with respect to the geometric algebra software library Gaigen running on the general-purpose PowerPC processor embedded in the target FPGA device. A suite of medical imaging applications, including segmentation, 3D modeling and registration of medical data, has been used as testbench to evaluate the coprocessor effectiveness.
... On the other hand, it can be easily extended to higher dimensional space for geometric calculations and analysis [13]. It has become an important research tool in theoretical mathematics and physics [11] [14]. The most popular algebraic structure today for Euclidean n-space is the inner product space . ...
Conference Paper
Full-text available
Recently, several applications are mainly depending on wireless sensor networks. So it became more important research side and this resulted in large number of studies to wireless sensor networks from different points of view. Most of researches done about wireless sensor networks are to obtain better target coverage in order to reduce energy and cost of the network. Also detection of targets in three-dimension space is a main research side due to its valuable and redundant usage in many applications. In this paper, three dimensional rotation matrix based on Clifford algebra is introduced that will provide simple and easy calculations when representing a detected moving target formulation. Then, a method for detecting the path for a moving target in a wireless sensor network is proposed by solving the moving target formulation and collecting the information about target states such as velocity and direction from each node in the network. Also, the information from each node is used to inform the neighbor node to start tracking target and estimate target path. The calculations of detecting target path using rotation operator and Clifford algebra are more simple.
... To that end, we base our model on the Clifford algebra [39] and more specifically its power of geometrically manipulating objects in high dimensions 1 . Its basic components include vectors, bivectors and trivectors, while its basic geometrical product denoted with a simple juxtaposition between two compnents, say v 1 and v 2 , emerges from the summation of other two products, viz. the inner ( ) and the outer (∧) products [40]: ...
Article
Full-text available
One of the most prominent attributes of Neural Networks (NNs) constitutes their capability of learning to extract robust and descriptive features from high dimensional data, like images. Hence, such an ability renders their exploitation as feature extractors particularly frequent in an abundant of modern reasoning systems. Their application scope mainly includes complex cascade tasks, like multi-modal recognition and deep Reinforcement Learning (RL). However, NNs induce implicit biases that are difficult to avoid or to deal with and are not met in traditional image descriptors. Moreover, the lack of knowledge for describing the intra-layer properties -and thus their general behavior- restricts the further applicability of the extracted features. With the paper at hand, a novel way of visualizing and understanding the vector space before the NNs output layer is presented, aiming to enlighten the deep feature vectors properties under classification tasks. Main attention is paid to the nature of overfitting in the feature space and its adverse effect on further exploitation. We present the findings that can be derived from our models formulation, and we evaluate them on realistic recognition scenarios, proving its prominence by improving the obtained results.
... where the wedge product  fg is a bivector and it means the area of the parallelogram built on the vectors f and g . The value of this area is e e e e  , Eq. (15) is obtained as the sum of dot product and wedge product as below [9]: ...
... To that end, we base our model on the Clifford algebra [39] and more specifically its power of geometrically manipulating objects in high dimensions 1 . Its basic components include vectors, bivectors and trivectors, while its basic geometrical product denoted with a simple juxtaposition between two compnents, say v 1 and v 2 , emerges from the summation of other two products, viz. the inner ( ) and the outer (∧) products [40]: ...
Preprint
Full-text available
One of the most prominent attributes of Neural Networks (NNs) constitutes their capability of learning to extract robust and descriptive features from high dimensional data, like images. Hence, such an ability renders their exploitation as feature extractors particularly frequent in an abundant of modern reasoning systems. Their application scope mainly includes complex cascade tasks, like multi-modal recognition and deep Reinforcement Learning (RL). However, NNs induce implicit biases that are difficult to avoid or to deal with and are not met in traditional image descriptors. Moreover, the lack of knowledge for describing the intra-layer properties -- and thus their general behavior -- restricts the further applicability of the extracted features. With the paper at hand, a novel way of visualizing and understanding the vector space before the NNs' output layer is presented, aiming to enlighten the deep feature vectors' properties under classification tasks. Main attention is paid to the nature of overfitting in the feature space and its adverse effect on further exploitation. We present the findings that can be derived from our model's formulation, and we evaluate them on realistic recognition scenarios, proving its prominence by improving the obtained results.
Article
Full-text available
The discretizable molecular distance geometry problem (DMDGP) is related to the determination of 3D protein structure using distance information detected by nuclear magnetic resonance (NMR) experiments. The chemistry of proteins and the NMR distance information allow us to define an atomic order \({v_{1},\ldots,v_{n}}\) such that the distances related to the pairs \({\{v_{i-3},v_{i}\},\{v_{i-2},v_{i}\},\{v_{i-1},v_{i}\}}\), for \({i > 3}\), are available, which implies that the search space can be represented by a tree. A DMDGP solution can be represented by a path from the root to a leaf node of this tree, found by an exact method, called branch-and-prune (BP). Because of uncertainty in NMR data, some of the distances related to the pairs \({\{v_{i-3},v_{i}\}}\) may not be precise values, being represented by intervals of real numbers \({[\underline{d}_{i-3,i},\overline{d}_{i-3,i}]}\). In order to apply BP algorithm in this context, sample values from those intervals should be taken. The main problem of this approach is that if we sample many values, the search space increases drastically, and for small samples, no solution can be found. We explain how geometric algebra can be used to model uncertainties in the DMDGP, avoiding sample values from intervals \({[\underline{d}_{i-3,i},\overline{d}_{i-3,i}]}\) and eliminating the heuristic characteristics of BP when dealing with interval distances.
Article
Resumen El objetivo de este artículo es explorar la implementación de una reconstrucción real de imágenes en 3D utilizando el álgebra geométrica (AG). Con ello queremos mostrar la utilidad del AG para la representación de estructuras y el desarrollo de algoritmos para las aplicaciones de computer graphics, y especialmente para otras aplicaciones de ingeniería, como el modelado de imágenes en 3D. Una primera consecuencia es la obtención de un eficiente entorno de modelado para su implementación en un hardware programable. Los resultados obtenidos muestran que utilizando AG, los cálculos son menos complejos y se materializan como simples operaciones geométricas. El modelo obtenido para el hardware puede ser implementado como un paso siguiente en la reconstrucción de imágenes en 3D. Este artículo pone de manifiesto el potencial del AG para optimizaciones e implementaciones altamente eficientes.
Article
Geometric or Clifford algebra (CA) is a powerful mathematical tool that offers a natural and intuitive way to model geometric facts in a number of research fields, such as robotics, machine vision and computer graphics. Operating in higher-dimensional spaces, its practical use is hindered, however, by a significant computational cost, only partially addressed by dedicated software libraries and hardware/software codesigns. For low dimensional algebras, several dedicated hardware accelerators and coprocessing architectures have been already proposed in literature. This paper introduces the architecture of CliffordALU5, an embedded coprocessing core conceived for native execution of up to five-dimensional (5D) CA operations. CliffordALU5 exploits a novel, hardware-oriented representation of the algebra elements that allows for faster execution of Clifford operations. In this paper, a prototype implementation of a complete SOC based on CliffordALU5 is presented. This prototype integrates an embedded processing soft-core based on the PowerPC 405 and a CliffordALU5 coprocessor on a Xilinx XUPV2P FPGA board. Test results show a 5× average speedup for 4D Clifford products and a 4× average speedup for 5D Clifford products against the same operations in Gaigen 2, a CA software library generator running on the general-purpose PowerPC processor. The paper also presents an execution analysis of three different applications in three diverse domains, namely inverse kinematics of a robot, optical motion capture, and raytracing, showing an average speedup between 3× to 4× with respect to the baseline Gaigen 2 implementation. Lastly, a multi-core approach to higher dimensional CA based on CliffordALU5 is discussed.
Article
Full-text available
We present the design of a Clifiord algebra co-processor and its implementation on a Field Programmable Gate Array (FPGA). To the best of our knowledge this is the flrst such design developed. The design is scalable in both the Clifiord algebra dimension and the bit width of the numerical factors. Both aspects are only limited by the hardware resources. Furthermore, the signature of the underlying vector space can be changed without reconflguring the FPGA. High calculation speeds are achieved through a pipeline architecture. Keywords: Clifiord co-processor, FPGA.
Article
Full-text available
Abstract Early in the development,of computer,graphics it was realized that projective geometry is suited quite well to represent points and transformations. Now, maybe another change of paradigm is lying ahead of us based on Geometric Algebra. If you already use quaternions or Lie algebra in additon to the well-known vector algebra, then you may already be familiar with some of the algebraic ideas that will be presented in this tutorial. In fact, quaternions can be represented by Geometric Algebra, next to a number of other algebras like complex numbers, dual-quaternions, Grassmann algebra and Grassmann-Cayley algebra. In this half day tutorial we will emphasize that Geometric Algebra • is a unified language for a lot of mathematical systems used in Computer Graphics,
Article
This is a textbook on classical mechanics at the intermediate level, but its main purpose is to serve as an introduction to a new mathematical language for physics called geometric algebra. Mechanics is most commonly formulated today in terms of the vector algebra developed by the American physicist J. Willard Gibbs, but for some applications of mechanics the algebra of complex numbers is more efficient than vector algebra, while in other applica­ tions matrix algebra works better. Geometric algebra integrates all these algebraic systems into a coherent mathematical language which not only retains the advantages of each special algebra but possesses powerful new capabilities. This book covers the fairly standard material for a course on the mechanics of particles and rigid bodies. However, it will be seen that geometric algebra brings new insights into the treatment of nearly every topic and produces simplifications that move the subject quickly to advanced levels. That has made it possible in this book to carry the treatment of two major topics in mechanics well beyond the level of other textbooks. A few words are in order about the unique treatment of these two topics, namely, rotational dynamics and celestial mechanics.
Article
Abstract Geometric algebra is a consistent computational,framework,in which to define geometric primitives and their relationships. This algebraic approach contains all geometric operators and permits specification of constructions in a coordinate-free manner. Thus, the ideas of geometric algebra are important for developers of CAD systems. This paper gives an introduction to the elements of geometric algebra, which contains primitives of any dimensionality (rather than just vectors), and an introduction to three of the products of geometric algebra, the geometric product, the inner product, and the outer product. These products are illustrated by using them to solve simple geometric problems. Keywords: geometric algebra, Clifford algebra, subspaces, blades, geometric product,
Article
Geometric algebra (also known as Clifford algebra) is a powerful mathematical tool that offers a natural and direct way to model geometric objects and their transformations. It is gaining growing attention in different research fields as physics, robotics, CAD/CAM and computer graphics. In particular, 4D geometric algebra implements homogeneous coordinates, which are used to model 3D scenery in most computer graphics applications. The research work on Clifford algebra is actually aimed at finding efficient implementations of the algebra. This paper wants to give a contribution to this research effort by proposing a direct hardware support for geometric algebra operators. The paper introduces a 4D Clifford algebra based on fixed-size elements and demonstrates that this choice leads to a simple and compact hardware implementation of geometric algebra operations.
Conference Paper
Geometric Algebra (GA) is an algebra that encodes geometry much better than standard techniques, which are mainly based on linear algebra with various extensions. Compared to standard techniques, GA has clearer semantics and a richer, more consistent language. This expresses itself, among others, in a much greater genericity of functions over the algebra. Exploiting this genericity efficiently is a problem that can be solved through generative programming. This paper describes our Geometric Algebra Implementation Generator Gaigen 2. Gaigen 2 synthesizes highly efficient GA implementations from the specification of the algebra. Functions over such algebras can be defined in a high-level coordinate-free domain-specific language, and Gaigen 2 transforms these functions into low-level coordinate-based code. This code can be emitted in any target language through a custom back-end. Benchmarks of our implementation show that the combination of GA and Gaigen 2 can rival the performance of standard geometry techniques, despite the greater abstraction and genericity of GA. To obtain this high performance, Gaigen 2 must adapt the gener- ated code to the program that links to it. This is done via a profiling feedback loop. While running, the generated code makes a connec- tion to the code generator. The generated code sends information about functions that should be optimized. The code generator reg- isters this information and sends back new type information. Af- ter the program terminates, the code is regenerated according to the recorded profile. This profiling feedback technique may also be useful to implement other types of algebras.