[[1]Contents] _______________________________________________________
  Search
  Copyright © 2006 jsd

  Introduction to Clifford Algebra
  John Denker

[2]1  Preface: Why Clifford Algebra is Useful

  We begin by discussing why we should care about Clifford Algebra. (If
  you want an overview of how Clifford Algebra actually works, skip to
  [3]section 2.)

         [4]1.
         It is advantageous to use Clifford algebra, because it gives a
         unified view of things that otherwise would need to be
         understood separately:

         + The real numbers are a subalgebra of Clifford algebra: just
           throw away all elements with grade > 0. Alas this doesn’t tell
           us much beyond what we already knew.
         + Ordinary vector algebra is another subalgebra of Clifford
           algebra. Alas, again, this doesn’t tell us much beyond what we
           already knew.
         + The complex numbers are another subalgebra of Clifford
           algebra, as discussed in [5]reference 1. This gives useful
           insight into complex numbers and into rotations in two
           dimensions.
         + Quaternions can be understood in terms of another subalgebra
           of Clifford algebra, namely the subalgebra containing just
           scalars and bivectors. This is tremendously useful for
           describing rotations in three or more dimensions (including
           four-dimensional spacetime). See [6]reference 2. Note that the
           Pauli spin matrices are isomorphic to quaternions.

         [7]2.
         There is a cut-and-dried procedure for replacing cross products
         with the corresponding wedge products, as discussed in
         [8]section 5.3. It is advantages to make the change, because the
         wedge product is more powerful and more well-behaved:

  The cross product only makes sense in three dimensions.   The wedge
  product is well behaved in any number of dimensions, from zero on up.

  The cross product is defined in terms of a “right hand rule”.   A wedge
  product is defined without any notion of handedness, without any notion
  of chirality. This is discussed in more detail in [9]section 2.14. This
  is more important than it might seem, because it changes how we
  perceive the apparent symmetry of the laws of physics, as discussed in
  [10]reference 3.

    The cross product only applies when multiplying one vector by another.
    The wedge product can multiply any combination of scalars, vectors,
  or higher-grade objects.

         The wedge product of two vectors is antisymmetric, and involves
         the sine of the angle between two vectors ... and the same can
         be said of the cross product.

         [11]3.
         In all of physics, whenever you see an idea expressed as the
         cross product of vectors, you will usually be much better off if
         you re-express the idea in terms of a wedge product. Help stamp
         out cross products!

         + It is traditional to write down four Maxwell equations.
           However, by using Clifford algebra, we can express the same
           meaning in just one very compact, elegant equation:

  ∇ F =
  1
  c є[0]
   J              ([12]1)
           It is worth learning Clifford algebra just to see this
           equation. For details, see [13]reference 4.
           Also: In their traditional form, the Maxwell equations seem to
           be not left/right symmetric, because they involve cross
           products. However, we believe that classical electromagnetism
           does have a left/right symmetry. By rewriting the laws using
           geometric products, as in [14]equation 1, it becomes obvious
           that no right-hand rule is needed. A particularly pronounced
           example of this is Pierre’s puzzle, as discussed in
           [15]reference 3.
           Similarly: The traditional form of the Maxwell equations is
           not manifestly invariant with respect to special relativity,
           because it involves a particular observer’s time and space
           coordinates. However, we believe the underlying physical laws
           are relativistically invariant. Rewriting the laws using
           geometric products makes this invariance manifest, as in
           [16]equation 1.
           As an elegant application of the basic idea that the
           electromagnetic field is a bivector, [17]reference 5 explains
           why a field that is purely an electric field in one reference
           frame must be a combination of electric and magnetic fields
           when observed in another frame.
           As a more mathematical application of [18]equation 1,
           [19]reference 6 calculates the field surrounding a long
           straight wire.
         + The ideas of torque, angular momentum, and gyroscopic
           precession are particularly easy to understand when expressed
           in terms of bivectors, as mentioned in [20]section 2.3. See
           also [21]section 3.
         + You can calculate volume using wedge products, as discussed in
           [22]reference 7. This is much preferable to the so-called
           triple scalar product (A·B×C).

  Help Stamp Out Cross Products

[23]*   Contents

    * [24]1  Preface: Why Clifford Algebra is Useful
    * [25]2  Overview
         + [26]2.1  Visualizing Scalars, Vectors, Bivectors, et cetera
         + [27]2.2  Basic Scalar and Vector Arithmetic
         + [28]2.3  Addition
         + [29]2.4  Grade Selection
         + [30]2.5  Multiplication: Preliminaries
         + [31]2.6  Multiplying Vectors by Vectors
         + [32]2.7  Some Properties of the Dot Product (Vector Dot
           Vector)
         + [33]2.8  Parallel and Perpendicular
         + [34]2.9  Some Properties of the Wedge Product (Vector Wedge
           Vector)
         + [35]2.10  Other Wedge Products
         + [36]2.11  Other Dot Products
         + [37]2.12  Mixed Wedge and Dot Products
         + [38]2.13  Wedge Product as Painting
         + [39]2.14  Chirality
         + [40]2.15  More About the Geometric Product
         + [41]2.16  Spacelike, Timelike, and Null
         + [42]2.17  Reverse
         + [43]2.18  Gorm
         + [44]2.19  Basis Sets
         + [45]2.20  Components
         + [46]2.21  Dimensions; Number of Components
    * [47]3  Formulas for Angular Velocity and Angular Momentum
    * [48]4  Contractions : Generalizations of the Dot Product
    * [49]5  Hodge Dual and Cross Products
         + [50]5.1  Basic Properties of the Hodge Dual
         + [51]5.2  Remarks : Subspace Freedom, Or Not
         + [52]5.3  Recipe for Replacing Cross Products
    * [53]6  Pedagogical Remarks
         + [54]6.1  Visualizing Bivectors
         + [55]6.2  Symmetry
         + [56]6.3  Connections and Extensions
         + [57]6.4  Geometric Approach versus Components
    * [58]7  Outer Product
    * [59]8  Clifford Algebra Desk Calculator
    * [60]9  References

[61]2  Overview

  The purpose of this section is to provide a simple introduction to
  Clifford algebra, also known as geometric algebra. I assume that you
  have at least some prior exposure to the idea of vectors and scalars.
  (You do not need to know anything about matrices.)

  For a discussion of why Clifford algebra is useful, see [62]section 1.

    This document is also available in [63]PDF format. You may find this
    advantageous if your browser has trouble displaying standard HTML
    math symbols.

 [64]2.1  Visualizing Scalars, Vectors, Bivectors, et cetera

  In addition to scalars and vectors, we will find it useful to consider
  more-general objects, including bivectors, trivectors, et cetera. Each
  of these objects has a clear geometric interpretation, as summarized in
  [65]figure 1.

  blades
  [66]Figure 1: Scalar, Vector, Bivector, and Trivector

  That is, a scalar can be visualized as an ideal point in space, which
  has no geometric extent. A vector can be visualized as line segment,
  which has length and orientation. A bivector can be visualized as a
  patch of flat surface, which has area and orientation. Continuing down
  this road, a trivector can be visualized as a piece of
  three-dimensional space, which has a volume and an orientation.

  Each such object has a grade, according to how many dimensions are
  involved in its geometric extent. Therefore we say Clifford algebra is
  a graded algebra. The situation is summarized in the following table.

  object       visualized as       geometric extent          grade
  scalar       point               no geometric extent       0
  vector       line segment        extent in 1 direction     1
  bivector     patch of surface    extent in 2 directions    2
  trivector    piece of space      extent in 3 directions    3
  etc.

  For any vector V you can visualize 2V as being twice as much length,
  and for any bivector B you can visualize 2B as having twice as much
  area. Alas this system of geometric visualization breaks down for
  scalars; geometrically all scalars “look” equally pointlike. Perhaps
  for a scalar s you can visualize 2s as being twice as hot, or something
  like that.

  For another important visualization idea, see [67]section 2.13.

  As mentioned in [68]section 1 and [69]section 6, bivectors make cross
  products obsolete; any math or physics you could have done using cross
  products can be done more easily and more logically using a wedge
  product instead.

 [70]2.2  Basic Scalar and Vector Arithmetic

  The scalars in Clifford algebra are the familiar real numbers. They
  obey the familiar laws of addition, subtraction, multiplication, et
  cetera. Addition of scalars is associative and commutative.
  Multiplication of scalars is associative and commutative, and
  distributes over addition.

  The vectors in Clifford algebra can be added to each other, and can be
  multiplied by scalars in the usual way. Addition of vectors is
  associative and commutative. Multiplication by scalars distributes over
  vector addition. We will introduce multiplication of vectors in
  [71]section 2.5.

 [72]2.3  Addition

  Presumably you are familiar with the idea of adding scalars to scalars,
  and adding vectors to vectors (tip to tail). We now introduce the idea
  that any element of the Clifford algebra can be added to any other.
  This includes adding scalars to vectors, adding vectors to bivectors,
  and every other combination. So it would not be unusual to find an
  element C such that:

  C = s + V + B              ([73]2)

  where s is a scalar, V is a vector, and B is a bivector.

  This clearly sets Clifford algebra apart from ordinary algebra.

  Remark: Sometimes non-experts find this disturbing. Adding scalars to
  vectors is like adding apples to oranges. Well, so be it: people add
  apples to oranges all the time; it’s called fruit salad. In contrast,
  it is proverbially unwise to compare apples to oranges, and indeed we
  will not be comparing scalars to vectors. Addition (s + V) is allowed;
  comparison (s < V) is not.

  Terminology: The most general element of the Clifford algebra we will
  call a clif. In the literature, the same concept is called a
  multivector, but we avoid that term because it is misleading, for
  reasons discussed near the end of [74]section 2.9.

  Presumably you already know how to add vectors graphically, by placing
  them tip-to-tail as shown in [75]figure 2. By extending this idea, we
  can also add bivectors graphically, by placing them edge-to-edge as
  shown in [76]figure 3.

             add-vectors                        add-bivectors
  [77]Figure 2: Addition of Vectors   [78]Figure 3: Addition of Bivectors

  We add bivectors edge-to-edge, in analogy to the way we add ordinary
  vectors tip-to-tail. In this example, edge b adds tip-to-tail to edge x
  to form the top edge of the sum. Similarly, edge z adds tip-to-tail to
  edge d to form the bottom edge of the sum. Edge c cancels^[79]1 edge w
  since they are equal and opposite. Edges a and y survive unchanged to
  become the vertical edges of the sum.

  As a concrete example of addition of bivectors, consider a gyroscopic
  precession problem, as follows: The green bivector is the initial
  angular momentum of the system, and the small purple bivector is
  torque∧time. Then the yellow bivector is the new angular momentum,
  which has a new orientation due to precession.

  The formula for angular momentum is given in [80]section 3.

 [81]2.4  Grade Selection

  Given any clif C, we can talk about the grade-0 piece of it, the
  grade-1 piece of it, et cetera.

  Notation: The grade-N piece of C is denoted ⟨C⟩[N].

  We will often be particularly interested in the scalar piece, ⟨C⟩[0].

    Note: If you are familiar with complex numbers, you can understand
    the ⟨⋯⟩ operator as analogous to the ℜ() and ℑ() operators that
    select the real and imaginary parts. However, there is one
    difference: You might think that the imaginary part of a complex
    number would be imaginary (or zero), but that’s not how it is
    defined. According to long-established convention, ℑ(z) is a real
    number, for any complex z. Clifford algebra is more logical: The
    vector part of any clif is a vector (or zero), the bivector part of
    any clif is a bivector (or zero), et cetera. See [82]reference 1 for
    more on this.

 [83]2.5  Multiplication: Preliminaries

  Axiom: We postulate that there is a geometric product operator that can
  be used to multiply any element of the Clifford algebra by any other.

  Notation: The geometric product of A and B is written AB. That is, we
  simply juxtapose the multiplicands, without using any operator symbol.

  As we shall see in [84]section 2.6, the geometric product AB is
  distinct from the dot product A·B and also from the wedge product A∧B.

  We further postulate that the geometric product is associative and
  distributes over addition:

  (AB)C    =   A(BC) = ABC
  A(B+C)   =   AB + AC
               ([85]3)

  where A, B, and C are any clifs.

  Multiplication is not commutative in general, as we shall see in
  [86]section 2.6 and elsewhere, but we remark that the special case of
  multiplying by scalars is commutative:
    * As a special case of the geometric product, multiplying one scalar
      by another is straightforward. This is just the familiar
      multiplication of real numbers. In this case, multiplication is
      commutative.
    * As another special case, multiplying vectors by scalars is also
      straightforward, and is presumably familiar from ordinary vector
      algebra. This is another case where multiplication is commutative;
      that is, sV = Vs for any scalar s and any vector V.
    * For that matter, it is easy to multiply any clif by a scalar. This
      is always commutative; that is, sC = Cs for any scalar s and any
      clif C.

 [87]2.6  Multiplying Vectors by Vectors

  We have already asserted that any clif can be multiplied by any other
  clif. Multiplying a vector by a vector is a particularly interesting
  case. At this point Clifford algebra makes a dramatic departure from
  ordinary vector algebra.

  Given two vectors P and Q, we know that the geometric product PQ
  exists, but (so far) that’s about all we know. However, based on this
  mere existence, plus what we already know about addition and
  subtraction, we can define two new products, namely the dot product P·Q
  and the wedge product P∧Q, as follows:

  P·Q   :=
  PQ + QP
  2
        where P and Q have grade=1      ([88]4a)
  P∧Q   :=
  PQ − QP
  2
        where P and Q have grade≤1      ([89]4b)

  [90]Equation 4a is a very useful formula, but you should not become
  overly attached to it, because it only applies to grade=1 vectors. It
  doesn’t work for higher or lower grades. See [91]section 2.10 for a
  more general formula.

  [92]Equation 4b is only slightly more general. It works for any
  combination of vectors and/or scalars (grade≤1). See [93]section 2.11
  for some more general formulas.

  As an immediate corollary of [94]equation 4, we can re-express the
  geometric product of two vectors as:

  PQ   =   P·Q + P∧Q       where P and Q have grade=1
               ([95]5)

  This useful formula only works when both P and Q are vectors. I keep
  mentioning this, because some authors take [96]equation 5 to be the
  “definition” of geometric product (based on some sort of pre-existing
  notion of dot and wedge). They can get away with that for the product
  of two plain old vectors, but it fails for higher (or lower) grades,
  and creates lots of confusion.

  As another corollary of [97]equation 4, we see that the dot product of
  two vectors is symmetric, while the wedge product of two vectors is
  antisymmetric:

  P·Q   =   Q·P        where P and Q have grade=1      ([98]6a)
  P∧Q   =   −Q∧P       where P and Q have grade≤1      ([99]6b)


  Terminology: The wedge product is sometimes called the exterior
  product. (This is not to be confused with the tensor product ⊗, which
  is sometimes called the outer product.)

  Exterior product ≠ outer product.
  Exterior derivative ≠ gradient.

  In this document we prefer to call it the wedge product. We shall not
  be concerned with derivatives of any kind, exterior or otherwise.

  Beware: [100]Reference 8 introduces the term “antisymmetric outer
  product” to refer to the wedge product, and then shorthands it as
  “outer product”, which is highly ambiguous and nonstandard. It
  conflicts with the longstanding notion of outer product, as discussed
  in [101]section 7.

 [102]2.7  Some Properties of the Dot Product (Vector Dot Vector)

  Let’s investigate the properties of the dot product. We restrict
  attention to ordinary grade=1 vectors. We will show that the dot
  product defined here behaves just like the dot product you recall from
  ordinary vector algebra. For starters, we are going to argue that P·P
  behaves like a scalar.

  One characteristic behavior of a scalar (in the geometric sense) is
  that if you rotate it, nothing happens. This is very unlike a vector,
  which changes if you rotate it (unless the plane of rotation is
  perpendicular to the vector).

  As an introductory special case, consider rotating P by 180 degrees,
  assuming P lies in the plane of rotation. That’s easy to do: a 180
  degree rotation transforms P into −P. We are pleased to see that this
  transformation leaves P·P unchanged. This is easy to prove, using the
  definition ([103]equation 4) and using the fact that multiplication by
  scalars is commutative: Just factor out two factors of -1 from the
  product (−P)·(−P).

  It’s also obvious that a rotation in a plane perpendicular to P leaves
  P·P unchanged, which is reassuring, although it doesn’t help
  distinguish scalars from anything else.

    Tangential remark: More generally, we assert without proof that P·P
    is in fact invariant under any rotation (i.e. any amount of rotation
    in any plane). We are not ready to prove this, since we haven’t yet
    formally defined what we mean by rotation ... but we will pretty
    much insist that rotation leave P·P invariant, because we want P·P
    to be a scalar, and we want √(P·P) to be the length of P, and we
    want rotations to be length-preserving transformations. (This isn’t
    a proof, but it is an argument for plausibility and
    self-consistency.)

  If P·P is a scalar, it is easy to show that P·Q is a scalar, for any
  vectors P and Q. Just define R := P + Q and then take the dot product
  of each side with itself:

  R·R = P·P + 2 P·Q + Q·Q              ([104]7)

  where every term except 2 P·Q is manifestly a scalar, so the remaining
  term must be a scalar as well.

  This leaves us pretty much convinced that the dot product between any
  two vectors is a scalar. It can’t be a vector or anything else we know
  about. To get here, we didn’t do much more than postulate the existence
  of the geometric product, and then do a bunch of arithmetic.

 [105]2.8  Parallel and Perpendicular

  Terminology: If vector Q is equal to P, or is equal to P multiplied by
  any nonzero scalar, we say that P and Q are parallel and we symbolize
  this as P ∥ Q.

  Based on what we already know (mainly the symmetry properties,
  [106]equation 6) we can deduce that if P and Q are parallel, then P∧Q =
  0 and PQ = P·Q; that is:

  PQ = QP = P·Q      iff P ∥ Q              ([107]8)

  which gives us a useful test for detecting parallel vectors.

  Terminology: If P·Q = 0, we say that vectors P and Q are perpendicular
  or equivalently orthogonal and we symbolize this as P ⊥ Q.

  If vectors P and Q are orthogonal, then P·Q = 0 and PQ = P∧Q; that is:

  PQ = −QP = P∧Q     iff P ⊥ Q              ([108]9)


  In general, in the case where P and Q are not necessarily parallel or
  perpendicular, the geometric product will have two terms, in accordance
  with [109]equation 5.

  Lemma: We can resolve any vector P into a component P[Q] which is
  parallel to vector Q, plus another component (P−P[Q]) which is
  perpendicular to Q. Proof by construction:

  P[Q] := Q
  P·Q
  Q·Q
               ([110]10)

  This lemma is conceptually valuable, and frequently useful in practice.
  (See e.g. [111]section 2.19.)

  P[Q] is called the projection of P onto the direction of Q, or the
  projection of P in the Q-direction.

  It is an easy exercise to show the following:

  (P[Q])·Q     =   P·Q                   P[Q] is parallel to Q
  (P[Q])∧Q     =   0
  (P−P[Q])·Q   =   0                     P−P[Q] is perpendicular to Q
  (P−P[Q])∧Q   =   P∧Q
               ([112]11)

 [113]2.9  Some Properties of the Wedge Product (Vector Wedge Vector)

  Now, let’s investigate the properties of the wedge product of two
  vectors. We anticipate that it will be a bivector (or zero). We use the
  same line of reasoning as in [114]section 2.7. We begin by considering
  the case where P∧Q is nonzero.

  You can easily show that the wedge product P∧Q is invariant with
  respect to 180 degree rotation in the PQ plane. That is, just replace P
  by −P and Q by −Q and observe that nothing happens to the wedge
  product. This tells us the product is not a vector in the PQ plane. We
  remark without proof that this result is invariant under any rotation
  (however small or large) in the PQ plane.

  Things get more interesting if we have more than two dimensions,
  because that allows us to investigate additional planes of rotation.

  To make things easy to visualize, let us replace Q by Q′, where Q′ is
  the projection of Q in the directions perpendicular to P. We can always
  do this, using the methods discussed in [115]section 2.8. According to
  [116]equation 11, we know P∧Q′ is equal to P∧Q.

  Choose any vector R perpendicular to both P and Q′. Rotate both vectors
  in the PR plane by 180 degrees. This transforms P into −P, but leaves
  Q′ unchanged (since it is perpendicular to the plane of rotation). That
  means the rotation flips sign of the wedge product, P∧Q.

  Similarly a rotation in the QR plane flips the sign of the wedge
  product. As a final check, we perform an inversion, i.e. the operation
  that transforms any vector V into −V, not limited to any plane of
  rotation. This leaves the wedge product unchanged.

  Taking all these observations together, we find that P∧Q behaves
  exactly as we would expect a bivector to behave, based on the
  description given in [117]section 2.1: a patch of surface with a
  direction of circulation around its edge. That is: the area is
  unchanged if we rotate things in the plane of the surface, but if we
  rotate things 180 degrees in a plane perpendicular to the surface, the
  surface flips over, reversing the sense of circulation.

  The idea of wedge product generalizes to more than two vectors. For
  example, with three vectors, we generalize [118]equation 4 as follows:

  P∧Q∧R :=
  1
  6
  (PQR + QRP + RPQ − RQP − QPR − PRQ)              ([119]12)

  You can skip the following equation if you’re not interested, but if
  you want the fully general expression, it is:

  q[1]∧q[2]∧q[3]⋯q[r] :=
  1
  r!

  ∑
  π
  sign(π) q[π(1)] q[π(2)] q[π(3)]⋯ q[π(r)]              ([120]13)

  where the sum runs over all possible permutations π. There are r! such
  permutations, and sign(π) is defined to be +1 for even permutations and
  −1 for odd permutations. This will be an object of grade r if all the
  vectors q[1]⋯q[r] are linearly independent; otherwise it will be zero.

  People like to say “the wedge product is antisymmetric” ... but you
  have to be careful. It is antisymmetric with respect to interchange of
  any two vectors ... not any two clifs. For example:

  s∧C   =   C∧s     (not antisymmetric)
               ([121]14)

  for any scalar s and any clif C.

  Terminology: A blade is defined to be any scalar, any vector, or the
  wedge product of any number of vectors.

  Terminology: Any clif that has a definite grade is called homogeneous.
  It is necessarily either a blade or the sum of blades, all of the same
  grade.

  Example: The sum s + V (where s is a scalar and V is a vector) is not
  homogenous. It does not have any definite grade. It is certainly not a
  blade.

  Example: In four dimensions, the quantity γ[0] γ[1] + γ[2] γ[3] is
  homogeneous but is not a blade. It has grade=2, but cannot be written
  as just the wedge product between two vectors.

  Terminology: As previously mentioned, we use the term clif to cover the
  most general element of the Clifford algebra. In the literature, the
  same concept is called a multivector, but we avoid that term because it
  is misleading. The problem may be due in part to the etymology
  suggested by the sequence:

  vector,   bivector,   trivector, ⋯,  multivector     (WRONG)
     ([122]15)

  in contrast to the correct sequence:

  vector,   bivector,   trivector, ⋯,  blade             (RIGHT)
       ([123]16)


  Terminology: Do not confuse a trivector with a 3-vector. A trivector is
  visualized as the 3-dimensional region spanned by three vectors. This
  region may be embedded in a space that is 3-dimensional or higher. In
  contrast, a 3-vector is a single vector that lives in a space with
  exactly 3 dimensions.

  Terminology: To describe the grade of a blade, the recommended approach
  is to mention the grade explicitly. For example, we say a bivector has
  grade=2, while a trivector has grade=3, and so on.

    There is another, non-recommended approach, in which a bivector is
    called a 2-blade, while a trivector is called a 3-blade, and so on.
    This is risky because of possible confusion as to whether the number
    refers to grade or dimension. Note that a 3-blade has grade=3, while
    a 3-vector has dimension=3, so confusion is to be expected.

 [124]2.10  Other Wedge Products

  We have already defined the wedge product of arbitrarily many vectors,
  according to [125]equation 13.

  We now define the wedge product between any blade and any blade. The
  rule is simple: unpack each blade as a wedge product, remove the
  parentheses, and apply [126]equation 13:

  P∧(Q∧R)   :=   P∧Q∧R
  (P∧Q)∧R   :=   P∧Q∧R
               ([127]17)

  where the RHS is defined by [128]equation 13. As an obvious corollary
  of this definition, the wedge product has the associative property.

  It is easy to see that for any two blades P and Q, which are of grade p
  and q respectively, the grade of P∧Q will be p+q (unless the product
  happens to be zero, in which case its grade is zero).

  We can use that idea in the other direction, as follows: As discussed
  in [129]section 2.15, the full geometric product PQ is liable to
  contain terms of all grades from |p−q| to p+q inclusive (counting by
  twos). The wedge product consists of just those terms with the highest
  possible grade. In symbols:

  If       P     =    ⟨P⟩[p]
  and      Q     =    ⟨Q⟩[q]
  then     P∧Q   :=   ⟨PQ⟩[p+q]
               ([130]18)

  Given this definition of blade wedge blade, we can generalize to any
  clif wedge clif, simply by saying the wedge product distributes over
  addition:

  V∧(A + B) = V∧A + V∧B              ([131]19)

 [132]2.11  Other Dot Products

  We hereby define the dot product of two blades to be the lowest-grade
  part of the geometric product. That is, if P has grade p and Q has
  grade q, then the dot product will have grade |p−q|. In symbols:

  If       P     =    ⟨P⟩[p]
  and      Q     =    ⟨Q⟩[q]
  then     P·Q   :=   ⟨PQ⟩[|p−q|]
               ([133]20)

  Just as the wedge product was the top-grade part of the geometric
  product, the dot product is the bottom-grade part.

  Let’s be clear: The definition of dot product depends more on its grade
  than on its symmetry. The dot product of two vectors is symmetric,
  while the dot product of a vector with a bivector is antisymmetric:

  V·X   =   X·V
  V·B   =   −B·V
               ([134]21)

  You can check that this more-general definition of dot product is
  consistent with what we said back in [135]section 2.6 about the dot
  product of vectors.

  Given this definition of blade dot blade, we can generalize to any clif
  dot clif, simply by saying that the dot product distributes over
  addition. That is,

  V·(A + B) = V·A + V·B              ([136]22)

 [137]2.12  Mixed Wedge and Dot Products

  Suppose P, Q, and R are grade=1 vectors. Then P ∧ (Q·R) is simple. It’s
  just a vector parallel to P, magnified by the scalar quantity (Q · R).

  In contrast, (P ∧ Q) · R is more interesting. Here are some important
  special cases:

  (x ∧ y) · z   =   0
  (x ∧ y) · x   =   −y
  (x ∧ y) · y   =   x
               ([138]23)

  where x, y, and z are a set of orthonormal vectors, perhaps basis
  vectors. You can verify these results using [139]equation 24. Other
  cases can be figured out using linear combinations of the above.

  We can summarize the situation as follows: We can consider (P ∧ Q) · R
  to be an operator acting on the vector R. It is partly a projection
  operator, partly a rotation operator, and partly a scale factor. That
  is to say:
    * The part of the R-vector that is perpendicular to the P∧Q plane
      gets thrown away;
    * The vector rotated 90^∘ in that plane; and
    * The vector is scaled by a factor, namely the magnitude of the P∧Q
      bivector.

  Those three operations can be performed in any order.

  You can handle the general case by expanding everything in terms of the
  full geometric product, using the definition of wedge ([140]equation 4b
  or [141]equation 18) and the definition of dot ([142]equation 20):

  (P ∧ Q) · R   =
  ⟨
  PQR − QPR
  2
  ⟩[1]
               ([143]24)

  The dot product between a vector and a bivector is antisymmetric:

  (P ∧ Q) · R   =   − R · (P ∧ Q)
               ([144]25)

  Beware: [145]Equation 25 may come as a surprise, since the dot product
  between two vectors would be symmetric.

  Also beware: A combination of wedge and dot does not exhibit the
  associative property:

  (P ∧ Q) · R   ≠   P ∧ (Q · R)
               ([146]26)

  Further beware: Wedge does not distribute over dot, nor vice versa:

  (P ∧ Q) · R   ≠   (P · R) ∧ (Q · R)
  P ∧ (Q · R)   ≠   (P ∧ Q) · (P ∧ R)
               ([147]27)

  We really shouldn’t expect it to. We expect products to distribute over
  sums, but both wedge and dot are products (not sums).

 [148]2.13  Wedge Product as Painting

  There is a very interesting way to visualize the wedge product.
  Consider the product C∧V, where C is a clif of any grade and V is a
  vector. The idea is to use C as a paintbrush, dragging C along V. The
  dragging motion is specified by the direction and magnitude of V. We
  keep C parallel to itself during the process. For instance, in
  [149]figure 1 or [150]figure 4, we form the parallelogram P∧Q by
  dragging the vector P along Q. Similarly in [151]figure 1 we form the
  parallelepiped P∧Q∧R by dragging the parallelogram P∧Q along R.

  The paintbrush picture is a little dodgy in the case where C is a
  scalar, but we can repair it by rewriting s∧V as 1∧(sV), for any scalar
  s. That is, we take the scalar 1 (which is pointlike) and drag it for a
  distance |sV| in the V direction. It just paints a copy of sV.

  The orientation of the bivector P∧Q can be thought of as a “direction
  of circulation” marked on the parallelogram, namely moving in the P
  direction then moving in the Q direction. In [152]figure 4, Q∧P = − P∧Q
  because they have the opposite direction of circulation. (They have the
  same magnitude, just opposite orientation.)

  bivectors
  [153]Figure 4: Bivectors: Direction of Circulation

 [154]2.14  Chirality

  Chirality is a fancy word for handedness. It describes a situation
  where we can define the difference between right-handed and
  left-handed. The foundations of Clifford algebra do not require any
  notion of handedness. This is important, because many of the
  fundamental laws of physics are invariant with respect to reflection,
  and Clifford algebra allows us to write these laws in a way that makes
  manifest this invariance.

    The exception is the Hodge dual, which requires a notion of
    handedness, as discussed in [155]section 5. This can be considered
    an optional feature, added onto the basic Clifford algebra package.

  The following three concepts are all optional, and are all equivalent:
  (1) A notion of “front” versus “back” side of the bivector; (2) a
  notion of chirality such as the “right-hand rule”; and (3) a notion of
  “clockwise” circulation.

  We emphasize that for most purposes, we do not need to define any of
  these three concepts. We are just saying that if you did define them,
  they would all be equivalent. Except in [156]section 5, we are not
  going to rely on any notion of clockwise or right-handedness or
  front-versus-back. Instead, we rely on orientation as specified by
  circulation around the edge of the bivector, which is completely
  geometrical and completely non-chiral.

  We make a point of keeping things non-chiral, to the extent possible,
  because it tells us something about the symmetry of the fundamental
  laws of physics, as discussed in [157]reference 3.

 [158]2.15  More About the Geometric Product

  In general, if you multiply an object of grade r by an object of grade
  s, the geometric product is liable to contain terms of all grades from
  |r−s| to |r+s|, counting by twos, as we see in the following:

  Example: Let {γ[1], γ[2], γ[3], γ[4]} be a set of orthonormal spacelike
  vectors, as discussed in [159]section 2.19, and define:

  A   :=   γ[1]∧γ[2]
  B   :=   (γ[2] + γ[3])∧(γ[4] + γ[1])
               ([160]28)

  Both A and B are homogeneous of grade 2. Indeed they are 2-blades. It
  is easy to calculate the geometric product:

  AB   =   1 + γ[1]γ[4] + γ[2]γ[3] +  γ[1] γ[2] γ[3] γ[4]
               ([161]29)

  and therefore

  A·B   =   ⟨AB⟩[0]  =  1                           ([162]30a)
            ⟨AB⟩[2]  =  γ[1]γ[4] + γ[2]γ[3]         ([163]30b)
  A∧B   =   ⟨AB⟩[4]  =  γ[1] γ[2] γ[3] γ[4]         ([164]30c)

  For high-grade clifs A and B, the geometric product AB generally leaves
  us with a lot of terms. As discussed in [165]section 2.11 the
  bottom-grade term is the dot product (e.g. [166]equation 30a).
  Meanwhile, as discussed in [167]section 2.10, the top-grade term is the
  wedge product (e.g. [168]equation 30c). Alas, there are no special
  names for the other terms, such as the middle term in the previous
  example (e.g. [169]equation 30b).

  If we temporarily restrict attention to plain old vectors (grade=1
  only), we reach the remarkable conclusion that the geometric product of
  two vectors has only two terms, a scalar term and a bivector term
  (assuming the bivector term is nonzero):

  VW    =   V·W +   V∧W
  V·W   =   ⟨VW⟩[0]
  V∧W   =   ⟨VW⟩[2]
               ([170]31)

  which we can compare and contrast with [171]equation 4, which we
  reproduce here:

  V·W   :=
  VW + WV
  2

  V∧W   :=
  VW − WV
  2
               ([172]32)

  still assuming V and W are vectors.

  Sometimes one sees introductory discussions that start by presenting
  the properties of the dot product and wedge product, and then “define”
  the geometric product as

  VW   :=   V·W + V∧W         (allegedly)
               ([173]33)

  which turns the discussion on its head relative to what we have done
  here. We started by postulating the existence of the geometric product,
  and then used it to work out the properties of dot and wedge.

  They can get away with [174]equation 33 when talking about vectors, but
  it doesn’t generalize well to objects of any grade higher or lower than
  1, and it gets students started off on the wrong foot conceptually.
  Here is a simple counterexample:

  sC   =   s·C
       =   s∧C
       ≠   s·C + s∧C
               ([175]34)

  where s is any scalar and C is any clif. Here is another important
  example:

  If        A     :=   γ[1]γ[2]
            B     :=   γ[2]γ[3]
  then      AB    :=   γ[1]γ[3]
                  ≠    A·B + A∧B
  since     A·B   =    0
            A∧B   =    0
               ([176]35)

 [177]2.16  Spacelike, Timelike, and Null

  In ordinary Euclidean space, whenever you compute the dot product of a
  vector with itself, the result is positive; that is, S·S > 0. In
  general, whenever this dot product is positive, we say that the vector
  S is spacelike.

  In special relativity, i.e. in Minkowski space, we find that some
  vectors have the property that T·T < 0. In that case, we say that the
  vector T is timelike.

  In a space where spacelike and timelike vectors exist, there will be
  other vectors with the property that N·N = 0. We say that such a vector
  N is null or equivalently lightlike.

  I define the gorm of a vector to be dot the product of a vector with
  itself. The gorm is bilinear, unlike the norm which is linear. For a
  spacelike vector, the norm is √(S·S), and corresponds to the notion of
  proper length. Meanwhile, for a timelike vector, the norm is √(−T·T),
  which corresponds to the notion of proper time interval. For a null
  vector, the norm is zero.

  For a more general definition of gorm, see [178]section 2.18.

 [179]2.17  Reverse

  We define the reverse of a clif as follows: Express the clif as a sum
  of products, and within each term, reverse the order of the factors.
  For example, the reverse of (P + Q∧R) is (P + R∧Q), where P, Q, and R
  are vectors (or perhaps scalars).

  Notation: For any clif C, the reverse of C is denoted C^∼

  Reverse has no effect on individual scalars or vectors, but is
  important for bivectors and higher-grade objects. Reverse plays an
  important role in the description of rotations, as discussed in
  [180]reference 2. It also appears in the general definition of gorm, as
  discussed in [181]section 2.18

  Note: If you are familiar with complex numbers, you can understand the
  reverse as a generalization of the notion of complex conjugate. See
  [182]reference 1 for details.

 [183]2.18  Gorm

  In all generality, the gorm of any clif C is formed by multiplying C by
  the reverse of C, and keeping the scalar part of the product. That is:

  gorm(C) := ⟨C^∼ C⟩[0]              ([184]36)

  For example, if C = a + b γ[1] + c γ[2] + d γ[1] γ[2], then the gorm of
  C is a^2 + b^2 + c^2 + d^2 ... assuming γ[1] and γ[2] are spacelike
  basis vectors, as discussed in [185]section 2.19. You can almost
  consider this a generalization of the Pythagorean formula, where in a
  non-abstract sense γ[1] is perpendicular to γ[2], and in some much more
  abstract sense the terms of each grade are “orthogonal” to the terms of
  every other grade.

 [186]2.19  Basis Sets

  Given any set of d linearly-independent non-null vectors, we can create
  an orthonormal basis set, i.e. a set of d mutually-orthogonal unit
  vectors. Actually we can create arbitrarily many such sets.

  Proof by construction: Use the Gram-Schmidt renormalization algorithm.
  That is, use formulas like [187]equation 10 to project out
  mutually-orthogonal components. Then divide by the norm to normalize
  them.

  In Minkowski spacetime, any such basis will have the following
  properties:

  γ[0] γ[0] = −1              ([188]37)

  γ[1] γ[1] = γ[2] γ[2] =   γ[3] γ[3] = +1              ([189]38)

  and

  γ[i] γ[j] = − γ[j] γ[i]      for all i ≠ j              ([190]39)


  In this basis set, γ[0] is the timelike unit vector, while γ[1], γ[2],
  and γ[3] are the spacelike unit vectors.

  Remark: The minus sign in [191]equation 37 stands in contrast to the
  plus sign in [192]equation 38. This one difference in signs is
  essentially the only thing that sets special relativity apart from
  ordinary Euclidean geometry. This point is discussed more fully in
  [193]reference 9.

  In ordinary Euclidean space, the story is the same, except there are no
  timelike vectors, so you simply forget about γ[0] and [194]equation 37.

 [195]2.20  Components

  Given a basis, we can write any arbitrary vector V as a linear
  combination of the basis vectors:

  V = a γ[0] + b γ[1] + c γ[2] + d γ[3]              ([196]40)

  for suitable scalars a, b, c, and d.

  Terminology: These scalars (a, b, c, and d) are sometimes called the
  components of V in the chosen basis. They can also be called the matrix
  elements of V in the chosen basis.

  Terminology: The vector a γ[0] is sometimes called the component of V
  in the chosen γ[0] direction (and similarly for the other terms on the
  RHS of [197]equation 40). Such a vector can also be called the
  projection of V onto the chosen directions.

  It is usually obvious from context which definition of “component” is
  intended. If you want to avoid ambiguity in your writing, you can avoid
  the word “component” and instead say “matrix element” or “projection”
  as appropriate.

  We can also write the expansion of V as

  V = V^0 γ[0] + V^1 γ[1] + V^2 γ[2] + V^3 γ[3]              ([198]41)

  where again the V^i are called the components (or matrix elements) of V
  in the chosen basis.

  Beware: Even though V^i is a component of the vector V and is a scalar,
  please do not think of γ[i] in the same way. Each γ[i] is a vector unto
  itself, not a scalar. The i in γ[i] tells which vector, whereas the i
  in V^i tells which component of the vector. There is no advantage in
  imagining some super-vector that has the γ[i] vectors as its
  components.

  Given two vectors P and Q, the dot product can be expressed in terms of
  their components as follows:

  P·Q = −P^0 Q^0 + P^1 Q^1 + P^2 Q^2 + P^3 Q^3              ([199]42)

  assuming timelike γ[0] and spacelike γ[1], γ[2], and γ[3].

  Note that this is not the definition of dot product; it is merely a
  consequence of the earlier definition of dot product ([200]equation 5)
  and the definition of components ([201]equation 42).

  In particular: Non-experts sometimes think the dot product is “defined”
  by adding up the product of corresponding components, but that is not
  true in general, as you can see from the minus sign in front of the
  first term in [202]equation 42. The bogus definition is reinforced by
  software library routines that compute a so-called “dot product” by
  blithely multiplying corresponding elements. (If all the basis vectors
  are spacelike, then you can get away with just multiplying the
  corresponding components, but keep in mind that that’s not the
  definition, and not the general rule.)

  Useful tutorials on various aspects of Clifford algebra and its
  application to physics include [203]reference 10, [204]reference 11,
  and [205]reference 8.

 [206]2.21  Dimensions; Number of Components

  The number of components required to describe a clif depends on the
  number of dimensions involved. The first few cases are shown in this
  table:

           1s    1v                 D=1
        1s    2v    1b              D=2
     1s    3v    3b    1t           D=3
  1s    4v    6b    4t    1q        D=4
               ([207]43)

  where s means scalar, v means vector, b means bivector, t means
  trivector, and q means quadvector. You can see that it takes the form
  of Pascal’s triangle. On each row, the total number of components is
  2^D.

  When we speak of “the” dimension, it refers to the dimensionality of
  whatever space you are actually using. This includes the case where,
  for whatever reason, attention is restricted to some subspace of the
  natural universe. For example, if your universe contains three
  dimensions, but you are only considering a single plane of rotation,
  then the D=2 description applies. Similarly, if you live in
  four-dimensional spacetime, but are only considering rotations in the
  three spacelike directions, then the D=3 description applies.

  To say the same thing another way, Clifford algebra is remarkably
  agnostic about the existence (or non-existence) of dimensions beyond
  the ones you are actually using. (This makes the geometric product much
  more elegant than the old-fashioned vector cross product, which
  requires you to think about a third dimension, even if you only started
  out with two dimensions.)

  If you find that you need D dimensions to describe the laws of physics,
  that sets a lower bound on the dimensionality of the universe you live
  in. It is not an upper bound, i.e. it provides not the slightest
  evidence against the existence of additional, unseen dimensions, such
  as arise in string theory.

[208]3  Formulas for Angular Velocity and Angular Momentum

  This section doesn’t explain the physics. Sorry. The purpose here is
  just to collect some useful formulas. In particular, if you ever forget
  the sign conventions, this may serve as a reminder.

  The angular momentum of a pointlike object is given by

  L   :=   r ∧ p
               ([209]44)

  where r is the object’s position and p is its momentum (i.e. its
  ordinary linear momentum).

  The fundamental laws of physics say that both linear momentum and
  angular momentum are conserved.

  The object’s angular velocity is given by

  ω   :=   (1/r) ∧ v
      =
  r ∧ v
  r · r
               ([210]45)

  where v is the velocity.

  It is often useful to find the linear velocity (v) in terms of the
  angular velocity (ω) and the position:

  v   =     r ω
      =   − ω r
               ([211]46)

  as you can verify by plugging the definition of ω (from
  [212]equation 45) into the RHS of [213]equation 46. You will also need
  the definition of wedge product, i.e. [214]equation 4. Beware the minus
  sign in the last line of [215]equation 46; multiplying a vector times a
  bivector is not commutative.

[216]4  Contractions : Generalizations of the Dot Product

  This section should be skipped on first reading. For most purposes, the
  dot product – as defined by [217]equation 20 or [218]equation 47d – is
  the only type of dot product you need to know. On the other hand, there
  are occasionally situations where one of the other products defined in
  [219]equation 47 allow something to be expressed more simply; see
  [220]section 5.1 for an example.

  By way of background, recall the definition of the product P := A·B
  from elementary vector algebra. This is known as the dot product, inner
  product, or scalar product. The elementary definition applies only to
  the case where A and B are ordinary grade=1 vectors. In this case, the
  product has several interesting properties:
    * The grade of P is zero; P is a scalar.
    * The grade of P is equal to the difference: grade(A) - grade(B).
    * The grade of P is equal to the difference the other way around:
      grade(B) - grade(A).

  We wish to generalize this notion of product, so that it applies to
  arbitrary clifs. There are several ways of doing this, depending on
  which properties we are most interested in preserving.

  If
      A        =  ⟨A⟩[r]            (homogeneous of grade=r)
      B        =  ⟨B⟩[s]            (homogeneous of grade=s)
  Then
      A ⌟ B    := ⟨A B⟩[s−r]        (left contraction)           ([221]47a)
      A ⌞ B    := ⟨A B⟩[r−s]        (right contraction)          ([222]47b)
      A ∘ B    := ⟨A B⟩[0]          (scalar product)             ([223]47c)
      A • B    := ⟨A B⟩[|s−r|]      (dot product)                ([224]47d)
      A •[H] B := ⟨A B⟩[|s−r|]      provided r>0 and s>0         ([225]47e)
                                    (Hestenes inner product)

  Loosely speaking, these all try to capture the idea that the
  contraction is the lowest-grade piece of the geometric product. The
  Hestenes inner product is almost never a good idea; we mention it here
  just so you don’t get confused if you see it in the literature. Beware
  that people who like the Hestenes inner product typically write it with
  a simple •, so it can easily be confused with the more conventional dot
  product. Similarly, people who like the scalar product typically write
  it with a simple •, so now we have three different products represented
  by the same symbol. In cases where it is necessary to distinguish the
  conventional dot product (as defined in [226]equation 20 or
  [227]equation 47d) from other things, it can be called the “fat” dot
  product. For details, see [228]reference 12.

  Beware that the symbol ⌞ resembles the letter “L” but it stands for the
  right (not left) contraction. I don’t know of any good mnemonic for
  this.

  If A and B are not homogeneous, we extend these definitions by using
  the fact that each of these products distributes over addition. That
  gives us the following formulas:

  A ⌟ B   :=

  ∑
  r,s
  ⟨ ⟨A⟩[r] ⟨B⟩[s] ⟩[s−r]
       (left contraction)      ([229]48a)
  A ⌞ B   :=

  ∑
  r,s
  ⟨ ⟨A⟩[r] ⟨B⟩[s] ⟩[r−s]
       (right contraction)      ([230]48b)
  A ∘ B   :=

  ∑
  r,s
  ⟨ ⟨A⟩[r] ⟨B⟩[s] ⟩[0]
       (scalar product)      ([231]48c)
  A • B   :=

  ∑
  r,s
  ⟨ ⟨A⟩[r] ⟨B⟩[s] ⟩[|s−r|]
       (dot product)      ([232]48d)
  A •[H] B   :=

  ∑
  r≠0
  s≠0
  ⟨ ⟨A⟩[r] ⟨B⟩[s] ⟩[|s−r|]
       (Hestenes inner product)      ([233]48e)

[234]5  Hodge Dual and Cross Products

 [235]5.1  Basic Properties of the Hodge Dual

  The Hodge dual is a linear operator. In d dimensions, it maps a blade
  of grade g into a blade of d−g and vice versa. I call this the the
  grade-flipping property. Two particularly-common cases are illustrated
  in [236]figure 5 and [237]figure 6.

  hodge-flip-3
  [238]Figure 5: Hodge Dual in d=3

  As a first example, the Hodge dual always converts a scalar into the
  corresponding pseudoscalar. As another example, in d=3, it converts a
  bivector to a certain “corresponding” pseudovector. Meanwhile, in d=4,
  it converts a vector into the “corresponding” pseudovector.

  hodge-flip-4
  [239]Figure 6: Hodge Dual in d=4

  Let V be any vector (grade=1) and let C be an arbitrary blade
  (grade=g). Then the wedge product V∧C will have grade=g+1, unless the
  product vanishes. We can summarize this by saying that
  wedge-multiplying by a vector raises the grade by 1, roughly speaking.

  Similarly, let V be any vector (grade=1) as before, and let D be an
  arbitrary blade that is not a scalar (grade=g, where g>0). Then the dot
  product V·D will have grade=g−1, unless the product vanishes. We can
  summarize this by saying that dot-multiplying by a vector lowers the
  grade by 1, roughly speaking.

    Optional tangential remark: We can simplify the previous paragraph
    by using the left-contraction operator defined in [240]section 4.
    Let V be any vector (grade=1) as before, and let C be an arbitrary
    blade (grade=g), scalar or otherwise. Then the left-contraction
    V ⌟ C will have grade=g−1, unless the product vanishes. We can
    summarize this by saying that left-contracting with a vector lowers
    the grade by 1, roughly speaking.

  Combining these ideas, we can say that wedge-multiplying is in some
  sense the grade-flipped version of dot-multiplying. That is, we should
  be able to define a correspondence, where wedge-multiplying moves us
  downward in the left column of [241]figure 6, while dot-multiplying
  moves us upward in the right column. In fact, we can use this idea to
  define the Hodge dual. (Note that [242]figure 5 and [243]figure 6 do
  not fully define the Hodge dual; they merely describe some of its
  features.)

  Start with a blade B with grade=k. Let X denote the Hodge dual of B. We
  are not yet able to calculate X, but we know that whatever it is, it
  must have grade d−k. We now find some other blade A with the same grade
  as the original B, namely grade=k. The wedge product A∧X will be a
  pseudoscalar. That is to say, it will have the largest possible grade,
  namely grade=d.

  Meanwhile, we can also form the dot product, A·B. This will have the
  smallest possible grade, namely grade=0.

  Finally, we choose some unit pseudoscalar, which we denote i. If we
  have an ordered set of basis vectors, the obvious choice is to multiply
  all of them together in order, so that i = γ[1]γ[2]⋯γ[d]. (Note that by
  assigning an order to the basis vectors, we introduce a notion of
  chirality. This is significant addition, insofar as the foundations of
  Clifford algebra do not require chirality, as discussed in
  [244]section 2.14.)

  At this point we have all the tools needed to define the Hodge dual.

  If    A∧X        =   (A·B) i     for all A      ([245]49a)
  then  X          =   B§[i]                      ([246]49b)
  so   A∧(B§[i])   =   (A·B) i     for all A      ([247]49c)

  where B§[i] denotes the Hodge dual of B, namely the Hodge dual with
  respect to i. Under mild conditions, there is always one and only one X
  that satisfies [248]equation 49a, so the Hodge dual exists and is
  unique. We require that in some basis, every basis vector that appears
  in B must also appear in i.

  In a fairly wide range of practical applications, there is an obvious
  choice for i, which is then called the “preferred” pseudoscalar. In is
  therefore conventional to simplify the notation by writing the dual of
  B as *B, where this “*” is a unary prefix operator. This is
  conventional, but it is not entirely wise. That’s because sometimes we
  want to think about physics in four-dimensional Minkowski spacetime,
  and sometimes we want restrict attention to three-dimensional Euclidean
  space. The Hodge dual is very different in these two cases, because the
  relevant pseudoscalar is different.

  Example: Suppose B=7 (i.e. a scalar). Then B§[i]=7i (i.e. a
  pseudoscalar). This is true in any number of dimensions, from d=1 on
  up.

  Example: In d=3, suppose B = 5γ[1] γ[2] (i.e. a bivector in the xy
  plane). Then B§[i] = 5γ[3] = [0, 0, 5] (i.e. a vector in the z
  direction). This assumes i = γ[1]γ[2]γ[3].

  Remark: [249]equation 49 provides an implicit definition. There exist
  explicit cut-and-dried algorithms for calculating the Hodge dual of B,
  especially if B is known in terms of components in some basis. See the
  discussion in [250]reference 13, or see the actual code in
  [251]reference 14.

 [252]5.2  Remarks : Subspace Freedom, Or Not

  If you’re not using the Hodge dual, Clifford algebra has the following
  remarkable property, which I find starkly beautiful: Suppose you are
  working with three basis vectors, γ[1], γ[2], and γa. You know that
  your space must have at least three dimensions, but you have no way of
  knowing whether that is merely a subspace of some much larger space.
  That is, there could be other basis vectors that you do not know about,
  and do not need to know about. That’s because Clifford algebra is
  closed under the usual operations (dot product, wedge product,
  addition, et cetera). Furthermore, you do not need to arrange your
  basis vectors in order. You do not need to know whether γ[a] comes
  before the others, or after, or in between. You do not have a
  “right-hand rule” and you do not need one.

  I call this property “subspace freedom”.

  In contrast, if you write the Hodge dual in the form *B, it does not
  permit subspace freedom. That’s because *B implicitly depends on some
  specific, chosen, “preferred” unit pseudovector.

  According to the usual way of thinking about *B, the grade of the
  pseudoscalar tells you exactly how many basis vectors there are.
  Furthermore, the choice of pseudoscalar defines a notion of
  right-handed versus left-handed, because if you perform an odd
  permutation of the basis vectors, the sign of the “preferred”
  pseudoscalar changes.

  In contrast, writing the Hodge dual in the form B§[i] reveals the
  dependence on i and preserves subspace freedom. There could be other
  basis vectors you don’t know about and don’t need to know about, so
  long as they do not appear in B or in i.

 [253]5.3  Recipe for Replacing Cross Products

  In this subsection, we restrict attention to d=3. We choose our
  preferred unit pseudoscalar in the obvious way, namely i=γ[1]γ[2]γ[3].

  The cross product A×B is a pseudo-vector. It can be calculated in terms
  of the bivector A∧B as follows:

    A×B     =   (A∧B)§[i]      ([254]50a)
            ≡   *(A∧B)         ([255]50b)
    |A×B|   =   |A∧B|          ([256]50c)

  where in [257]equation 50a the operator §[i] is our representation for
  the Hodge dual, as defined in [258]section 5.1. Meanwhile,
  [259]equation 50b expresses exactly the same thing, using the more
  conventional unary prefix * notation.

  The Hodge dual operator is a linear operator. That means that if you
  are not planning on doing anything nonlinear with your cross products,
  you can pretty much ignore the Hodge dual operator in [260]equation 50.
  That leaves us with the following quick-and-dirty recipe:

  A×B     →   A∧B        (for simple linear applications)
  |A×B|   =   |A∧B|
               ([261]51)

  As part of this recipe, replace the notion of “axis of rotation” with
  “plane of rotation”. For example, rather than rotation around the Z
  axis, think in terms of rotation in the XY plane.

  You need to stick with the more general expression in [262]equation 50
  if you plan to multiply your bivectors by vectors or higher-grade
  clifs. As an example, consider the triple scalar product, representing
  the volume of the parallelepiped spanned by three vectors. We can write
  that as:

  A×B·C     =   A∧B∧C
  |A×B·C|   =   |A∧B∧C|
               ([263]52)

  In this case, A×B·C is strictly equal to A∧B∧C. They are two ways of
  calculating the same pseudoscalar. For more about the volume of a
  parallelepiped, see [264]reference 7.

  In more advanced situations such as electrodynamics, you often find
  that there is an equation involving a cross product and a “similar”
  equation involving a dot product. In this case you may need to combine
  the two equations and replace both products with the full geometric
  product. This generally requires more than a recipe, i.e. it may
  require actually understanding what the equations mean. For
  electrodynamics in particular, the right answer involves promoting the
  equations from 3D to 4D, and replacing two vector fields by one
  bivector field. See [265]reference 4.

[266]6  Pedagogical Remarks

 [267]6.1  Visualizing Bivectors

  I prefer the wedge product for several reasons

  First and foremost is the simplest of practical pedagogical reasons: I
  can get good results using wedge products. The more elementary the
  context, and the more unprepared the students, the more helpful wedge
  products are. I can visualize the wedge product, and I can get the
  students to visualize it. (This stands in stark contrast to the cross
  product, which tends to be very mysterious to students.)

  Specifically: Consider gyroscopic precession. I have done the
  pedagogical experiment more times than I care to count. I have tried it
  both ways, using cross products (pseudovectors) and/or using wedge
  products (bivectors). Precession can be understood using little more
  than the addition of bivectors, adding them edge-to-edge as described
  in [268]section 2.3. I can use my hands to represent the bivectors to
  be added, or (even better) I can show up with simple cardboard props.

  Getting students to visualize angular momentum as a bivector in the
  plane of rotation takes no time at all. In contrast, getting them to
  visualize it as a pseudovector along the axis of rotation is a big
  production; even a bright student is going to struggle with this, and
  the not-so-bright students are never going to get it.

    Maybe this just means I’m doing a lousy job of explaining cross
    products, but even if that’s true, I’ll bet there are plenty of
    teachers out there who find themselves in the same situation and
    would benefit from taking the bivector approach.

 [269]6.2  Symmetry

  Another reason for preferring the geometrical approach, i.e. the
  Clifford algebra approach, is that (compared to cross products) it does
  a much better job of modeling the symmetries of the real world.

  Remember, the real world is what it is and does what it does. When we
  write down an equation, it may or may not be an apt model of the real
  world. Often an equation involving a cross product will have a
  chirality (“handedness”) to it, even when the real-world physics is not
  chiral. For more on this, see [270]reference 3.

 [271]6.3  Connections and Extensions

  Additional reasons for preferring the geometric approach have to do
  with its connections to other mathematical and physical ideas, as
  discussed in [272]section 1. (This is in contrast to the cross product,
  which is not nearly so extensible.)

 [273]6.4  Geometric Approach versus Components

  There are always multiple ways of presenting the same material. In the
  case of Clifford algebra, it would have been possible to leap to the
  idea of a basis set very early on. The sequence would have been: (a)
  establish a few fundamental notions; (b) set forth the behavior of the
  basis vectors according to [274]equation 38 and [275]equation 39; (c)
  express all vectors, bivectors, etc. in terms of their components
  relative to this basis; and (d) derive the main results in terms of
  components. Let’s call this the basis+components approach.

  Some students prefer the basis+components approach because it is what
  they are expecting. They think a vector, by definition, is nothing more
  than a list of components.

  The alternative is to think of a vector as a thing unto itself, as an
  object with geometric properties, independent of any basis. Let’s call
  this the geometric approach.

  We must ask the question, which approach is more elementary, and which
  approach is more sophisticated? Also, which approach is more abstract,
  and which approach is more closely tied to physical reality?

  Actually those are trick questions; they look like dichotomies, but
  they really aren’t. The answer is that the geometric approach is more
  physical and more abstract. It is more elementary and more
  sophisticated.

  You can use a pointed stick as a physical model of a vector,
  independent of any basis. Wave it around in front of the class.   Show
  how vectors can be added by putting them tip-to-tail.

  Use a flat piece of cardboard as a physical model of a bivector.   Show
  how bivectors can be added by putting them edge-to-edge.

  In physics, almost everything worth knowing can be expressed
  independently of any basis. You should be suspicious of anything that
  appears to depend on a particular chosen basis. For more about this,
  see [276]reference 15. Observe that everything in [277]section 2 is
  done without reference to any basis; the definition of “basis” and
  “components” are not even mentioned until the very end.

  The real practical advantage of the basis+components approach is that
  it is well suited for numerical calculations, including computer
  programs. [278]Reference 2 includes a program that is useful for
  keeping track of compound rotations in D=3 space.

   [279]*   Summary of This Subsection

  Consider the contrast:

  The geometric approach is physical yet algebraic, axiomatic, and
  abstract; it is elementary yet sophisticated.   The basis+components
  approach is more numerical, i.e. more suited for computer programs.

  Some students have prior familiarity with one approach, or the other,
  or both, or neither.

[280]7  Outer Product

  By longstanding convention, the term “outer product” of two vectors (V
  and W) refers to the tensor product, namely

  T   =   V ⊗ W
               ([281]53)

  where T is a second-rank tensor.

  If we expand things in terms of components, relative to some basis, we
  can write:

  T[ij]   =   V[i]  W[j]
               ([282]54)

  For example:

  ⎡
  ⎢
  ⎢
  ⎣
  0
  1
  2
  ⎤
  ⎥
  ⎥
  ⎦ ⊗ ⎡
  ⎢
  ⎢
  ⎣
  2
  3
  4
  ⎤
  ⎥
  ⎥
  ⎦
    =
  ⎡
  ⎢
  ⎢
  ⎣
  0   0   0
  2   3   4
  4   6   8
  ⎤
  ⎥
  ⎥
  ⎦
               ([283]55)

  In general, T itself has no particular symmetry, but we can pick it
  apart into a symmetric piece plus an antisymmetric piece:

  T   =
  V ⊗ W + W ⊗ V
  2

          +
  V ⊗ W − W ⊗ V
  2

               ([284]56)

  The second term in on the RHS of [285]equation 56 is the wedge product
  V∧W. The Trace of the first term is the dot product.

  Beware: [286]Reference 8 introduces the term “antisymmetric outer
  product” to refer to the wedge product, and then shorthands it as
  “outer product”, which is highly ambiguous and nonstandard. It
  conflicts with the longstanding conventional definition of outer
  product, which consists of all of T, not just the antisymmetric part of
  T.

[287]8  Clifford Algebra Desk Calculator

  I wrote a “Clifford algebra desk calculator” program. It knows how to
  do addition, subtraction, dot product, wedge product, full geometric
  product, reverse, hodge dual, and so forth. Most of the features work
  in arbitrarily many dimensions.

  Here is the program’s help message. See also [288]reference 14.

Desk calculator for Clifford algebra in arbitrarily many
Euclidean dimensions.  (No Minkowski space yet; sorry.)

Usage:  ./cliffer [options]

Command-line options include
 -h      print this message (and exit immediately).
 -v      increase verbosity.
 -i fn   take input from file 'fn'.
 -pre fn take preliminary input from file 'fn'.
 --      take input from STDIN

If no input files are specified with -i or --, the default is an
implicit '--'.  Note that -i and -pre can be used multiple times.
All -pre files are processed before any -i files.

     Advanced usage: If you want to make an input file into a
     self-executing script, you can use "#! /path/to/cliffer -i" as
     the first line.  Similarly, if you want to do some
     initialization and then read from standard input, you can use
     "#! /path/to/cliffer -pre" as the first line.

Ordinary usage example:
 # compound rotation:  two 90 degree rotations
 # makes a 120 degree rotation about the 1,1,1 diagonal:
 echo -e "1 0 0 90° vrml 0 0 1 90° vrml mul @v" | cliffer
Result:
         0.57735 0.57735 0.57735 2.09440 = 120.0000°

Explanation:
 *) Push a rotation operator onto the stack, by
 giving four numbers in VRML format
    X Y Z theta
 followed by the "vrml" keyword.
 *) Push another rotation operator onto the stack,
 in the same way.
 *) Multiply them together using the "mul" keyword.
 *) Pop the result and print it in VRML format using
   the "@v" keyword

On input, we expect all angles to be in radians.  You can convert
 from degrees to radians using the "deg" operator, which can be
 abbreviated to "°" (the degree symbol).  Hint: Alt-0 on some
 keyboards.
 As a special case, on input, a number with suffix "d" (with no
 spaces between the number and the "d") is converted from degrees to
 radians.
   echo "90° sin @" | cliffer
   echo "90 ° sin @" | cliffer
   echo "90d sin @" | cliffer
 are each equivalent to
   echo "pi 2 div sin @" | cliffer

Input words can be spread across as many lines (or as few) as you
 wish.  If input is from an interactive terminal, any error causes
 the rest of the current line to be thrown away, but the program does
 not exit.  In the non-interactive case, any error causes the program
 to exit.

On input, a comma or tab is equivalent to a space.  Multiple spaces
are equivalent to a single space.

Note on VRML format:  X Y Z theta
 [X Y Z] is a vector specifying the axis of rotation,
 and theta specifies the amount of rotation around that axis.
 VRML requires [X Y Z] to be normalized as a unit vector,
 but we are more tolerant;  we will normalize it for you.
 VRML requires theta to be measured in radians.

Also note that on input, the VRML operator accepts either four
 numbers, or one 3-component vector plus one scalar, as in the
 following example.

Same as previous example, with more output:
 echo -e "[1 0 0] 90° vrml dup @v dup @m
          [0 0 1] -90° vrml rev mul dup @v @m" | cliffer
Result:
       1.00000 0.00000 0.00000 1.57080 =  90.0000°
          [  1.00000  0.00000  0.00000 ]
          [  0.00000  0.00000 -1.00000 ]
          [  0.00000  1.00000  0.00000 ]
       0.57735 0.57735 0.57735 2.09440 = 120.0000°
          [  0.00000  0.00000  1.00000 ]
          [  1.00000  0.00000  0.00000 ]
          [  0.00000  1.00000  0.00000 ]

Even fancier:  Multiply two vectors to create a bivector,
then use that to crank a vector:
 echo -e "[ 1 0 0 ] [ 1 1 0 ] mul normalize [ 0 1 0 ] crank @" \
  | ./cliffer
Result:
   [-1, 0, 0]

Another example:  Calculate the angle between two vectors:
 echo -e "[ -1 0 0 ] [ 1 1 0 ] mul normalize rangle @a" | ./cliffer
Result:
   2.35619 = 135.0000°

Example: Powers: Exponentiate a quaternion.  Find rotor that rotates
only half as much:
  echo -e "[ 1 0 0 ] [ 0 1 0 ] mul 2 mul dup rangle @a " \
       " .5 pow dup rangle @a @" | ./cliffer
Result:
   1.57080 =  90.0000°
   0.78540 =  45.0000°
   1 + [0, 0, 1]§

Example:  Take the 4th root using pow, then take the fourth
power using direct multiplication of quaternions:
 echo "[ 1 0 0 ] [ 0 1 0 ] mul dup @v
 .25 pow dup @v dup mul dup mul @v" | ./cliffer
Result
   0.00000 0.00000 1.00000 3.14159 = 180.0000°
   0.00000 0.00000 1.00000 0.78540 =  45.0000°
   0.00000 0.00000 1.00000 3.14159 = 180.0000°

More systematic testing:
  ./cliffer.test1

The following operators have been implemented:
help    help message
listops list all operators
=== Unary operators
pop     remove top item from stack
neg     negate: multiply by -1
deg     convert number from radians to degrees
dup     duplicate top item on stack
gorm    gorm i.e. scalar part of V~ V
norm    norm i.e. sqrt(gorm}
normalize divide top item by its norm
rev     clifford '~' operator, reverse basis vectors
hodge   hodge dual aka unary '§' operator; alt-' on some keyboards
gradesel given C and s, find the grade-s part of C
rangle  calculate rotor angle
=== Binary operators
exch    exchange top two items on stack
codot   multiply corresponding components, then sum
add     add top two items on stack
sub     sub top two items on stack
mul     multiply top two items on stack (in subspace if possible)
cmul    promote A and B to clifs, then multiply them
div     divide clif A by scalar B
dot     promote A and B to clifs, then take dot product
wedge   promote A and B to clifs, then take wedge product
cross   the hodge of the wedge (familiar as cross product in 3D)
crank   calculate R~ V R
pow     calculate Nth power of scalar or quat
sqrt    calculate square root of power of scalar or quat
=== Constructors
[       mark the beginning of a vector
]       construct vector by popping to mark
unpack  unpack a vector, quat, or clif; push its contents (normal order)
dimset  project object onto N-dimensional Clifford algebra
unbave  top unit basis vector in N dimensions
ups     unit pseudo-scalar in N dimensions
pi      push pi onto the stack
vrml    construct a quaternion from VRML representation x,y,z,theta
clif    take a vector in D=2**n, construct a clif in D=n
       Note:  You can do the opposite via '[ exch unpack ]'
=== Printout operators
setbasis set basis mode, 0=abcdef 1=xyzabc
dump    show everything on stack, leave it unchanged
@       compactly show item of any type, D=3 (then remove it)
@m      show quaternion, formatted as a rotation matrix (then remove it)
@v      show quaternion, formatted in VRML style (then remove it)
@a      show angle, formatted in radian and degrees (then remove it)
@x      print clif of any grade, row by row
=== Math library functions:
      sin    cos    tan    sec    csc    cot
      sinh   cosh   tanh   asin   acos   atan
      asinh  acosh  atanh  ln     log2   log10
      exp    atan2

  [289]cliffer.hlp     ([290]DL)

[291]9  References

         [292]1.
         John Denker,
         “Comparing Complex Numbers to Clifford Algebra”
         [293]www.av8n.com/physics/complex-clifford.htm

         [294]2.
         John Denker,
         “Multi-Dimensional Rotations, Including Boosts”
         [295]www.av8n.com/physics/rotations.htm

         [296]3.
         John Denker,
         “Pierre’s Puzzle”
         [297]www.av8n.com/physics/pierre-puzzle.htm

         [298]4.
         John Denker,
         “Electromagnetism using Geometric Algebra versus Components”
         [299]www.av8n.com/physics/maxwell-ga.htm

         [300]5.
         John Denker,
         “Origin of the Magnetic Field”
         [301]www.av8n.com/physics/magnet-relativity.htm

         [302]6.
         John Denker,
         “The Magnetic Field Bivector of a Long Straight Wire”
         [303]www.av8n.com/physics/straight-wire.htm

         [304]7.
         John Denker,
         “Area and Volume of Parallelograms and Parallelepipeds”
         [305]www.av8n.com/physics/area-volume.htm

         [306]8.
         David Hestenes,
         “Oersted Medal Lecture 2002: Reforming the Mathematical Language
         of Physics”
         Abstract: [307]http://geocalc.clas.asu.edu/html/Overview.html
         Full paper:
         [308]http://geocalc.clas.asu.edu/pdf/OerstedMedalLecture.pdf

         [309]9.
         John Denker,
         “The Geometry and Trigonometry of Spacetime”
         ahrefbib

         [310]10.
         Stephen Gull, Anthony Lasenby, and Chris Doran,
         “The Geometric Algebra of Spacetime”
         [311]http://www.mrao.cam.ac.uk/~clifford/introduction/intro/intr
         o.html

         [312]11.
         Richard E. Harke, “An Introduction to the Mathematics of the
         Space-Time Algebra”
         [313]http://www.harke.org/ps/intro.ps.gz

         [314]12.
         Leo Dorst,
         “The inner products of geometric algebra” pp. 35–46
         Birkhäuser (Boston, 2002).

         [315]13.
         Wikipedia article, “Hodge dual”
         [316]http://en.wikipedia.org/wiki/Hodge_dual

         [317]14.
         John Denker,
         “cliffer” – a desk calculator for Clifford Algebra
         in arbitrarily many Euclidean dimensions (from 1 on up)
         Main program: [318]./cat.cgi/cliffer.pl
         Required library: [319]./cat.cgi/clifford.pm
         Usage examples and tests: [320]./cat.cgi/cliffer.test1

         [321]15.
         John Denker,
         “Introduction to Vectors”
         [322]www.av8n.com/physics/vector-intro.htm
    __________________________________________________________________

  [323]1
         As we have just discussed, it is OK join c to w. Alternatively,
         you could join a to y and get the same answer. In contrast, it
         would not make sense to join c to y, for the following reasons:
         Edge y is not opposite to c, so this pair would not drop out of
         the sum. Also, this would make us unable to add z to d
         tip-to-tail; they woud be tail-to-tail. Similarly, it would make
         us unable to add x to b tip-to-tail; they would be tip-to-tip.

  [[324]Contents] _______________________________________________________
  Search
  Copyright © 2006 jsd

References

  Visible links
  1. https://www.av8n.com/physics/#contents
  2. https://www.av8n.com/physics/clifford-intro.htm#sec-rami
  3. https://www.av8n.com/physics/clifford-intro.htm#sec-overview
  4. https://www.av8n.com/physics/clifford-intro.htm#preface-unified
  5. https://www.av8n.com/physics/clifford-intro.htm#bib-complex-clifford
  6. https://www.av8n.com/physics/clifford-intro.htm#bib-rotations
  7. https://www.av8n.com/physics/clifford-intro.htm#preface-nocross
  8. https://www.av8n.com/physics/clifford-intro.htm#sec-cross-out-cross
  9. https://www.av8n.com/physics/clifford-intro.htm#sec-chiral
 10. https://www.av8n.com/physics/clifford-intro.htm#bib-pierre-puzzle
 11. https://www.av8n.com/physics/clifford-intro.htm#preface-physics-nocross
 12. https://www.av8n.com/physics/clifford-intro.htm#eq-max-ga
 13. https://www.av8n.com/physics/clifford-intro.htm#bib-maxwell-ga
 14. https://www.av8n.com/physics/clifford-intro.htm#eq-max-ga
 15. https://www.av8n.com/physics/clifford-intro.htm#bib-pierre-puzzle
 16. https://www.av8n.com/physics/clifford-intro.htm#eq-max-ga
 17. https://www.av8n.com/physics/clifford-intro.htm#bib-magnet-relativity
 18. https://www.av8n.com/physics/clifford-intro.htm#eq-max-ga
 19. https://www.av8n.com/physics/clifford-intro.htm#bib-straight-wire
 20. https://www.av8n.com/physics/clifford-intro.htm#sec-addition
 21. https://www.av8n.com/physics/clifford-intro.htm#sec-angular
 22. https://www.av8n.com/physics/clifford-intro.htm#bib-area-volume
 23. https://www.av8n.com/physics/clifford-intro.htm#sec-contents
 24. https://www.av8n.com/physics/clifford-intro.htm#sec-rami
 25. https://www.av8n.com/physics/clifford-intro.htm#sec-overview
 26. https://www.av8n.com/physics/clifford-intro.htm#sec-svbt
 27. https://www.av8n.com/physics/clifford-intro.htm#sec-basic-math
 28. https://www.av8n.com/physics/clifford-intro.htm#sec-addition
 29. https://www.av8n.com/physics/clifford-intro.htm#sec-grade-sel
 30. https://www.av8n.com/physics/clifford-intro.htm#sec-mul-prelim
 31. https://www.av8n.com/physics/clifford-intro.htm#sec-vec-times-vec
 32. https://www.av8n.com/physics/clifford-intro.htm#sec-dot
 33. https://www.av8n.com/physics/clifford-intro.htm#sec-para-perp
 34. https://www.av8n.com/physics/clifford-intro.htm#sec-wedge
 35. https://www.av8n.com/physics/clifford-intro.htm#sec-other-wedge
 36. https://www.av8n.com/physics/clifford-intro.htm#sec-other-dot
 37. https://www.av8n.com/physics/clifford-intro.htm#sec-mixed-wedge-dot
 38. https://www.av8n.com/physics/clifford-intro.htm#sec-paint
 39. https://www.av8n.com/physics/clifford-intro.htm#sec-chiral
 40. https://www.av8n.com/physics/clifford-intro.htm#sec-gp
 41. https://www.av8n.com/physics/clifford-intro.htm#sec-spacelike-timelike
 42. https://www.av8n.com/physics/clifford-intro.htm#sec-reverse
 43. https://www.av8n.com/physics/clifford-intro.htm#sec-gorm
 44. https://www.av8n.com/physics/clifford-intro.htm#sec-basis
 45. https://www.av8n.com/physics/clifford-intro.htm#sec-components
 46. https://www.av8n.com/physics/clifford-intro.htm#sec-dimensions
 47. https://www.av8n.com/physics/clifford-intro.htm#sec-angular
 48. https://www.av8n.com/physics/clifford-intro.htm#sec-contractions
 49. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-cross
 50. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge
 51. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-remarks
 52. https://www.av8n.com/physics/clifford-intro.htm#sec-cross-out-cross
 53. https://www.av8n.com/physics/clifford-intro.htm#sec-peda
 54. https://www.av8n.com/physics/clifford-intro.htm#sec-visualize
 55. https://www.av8n.com/physics/clifford-intro.htm#sec-peda-symmetry
 56. https://www.av8n.com/physics/clifford-intro.htm#sec-connect-extend
 57. https://www.av8n.com/physics/clifford-intro.htm#sec-peda-geometric
 58. https://www.av8n.com/physics/clifford-intro.htm#sec-outer
 59. https://www.av8n.com/physics/clifford-intro.htm#sec-cliffer
 60. https://www.av8n.com/physics/clifford-intro.htm#sec-ref
 61. https://www.av8n.com/physics/clifford-intro.htm#sec-overview
 62. https://www.av8n.com/physics/clifford-intro.htm#sec-rami
 63. https://www.av8n.com/physics/clifford-intro.pdf
 64. https://www.av8n.com/physics/clifford-intro.htm#sec-svbt
 65. https://www.av8n.com/physics/clifford-intro.htm#fig-blades
 66. https://www.av8n.com/physics/clifford-intro.htm#fig-blades
 67. https://www.av8n.com/physics/clifford-intro.htm#sec-paint
 68. https://www.av8n.com/physics/clifford-intro.htm#sec-rami
 69. https://www.av8n.com/physics/clifford-intro.htm#sec-peda
 70. https://www.av8n.com/physics/clifford-intro.htm#sec-basic-math
 71. https://www.av8n.com/physics/clifford-intro.htm#sec-mul-prelim
 72. https://www.av8n.com/physics/clifford-intro.htm#sec-addition
 73. https://www.av8n.com/physics/clifford-intro.htm#eq-clif
 74. https://www.av8n.com/physics/clifford-intro.htm#sec-misleading-multivector
 75. https://www.av8n.com/physics/clifford-intro.htm#fig-add-vectors
 76. https://www.av8n.com/physics/clifford-intro.htm#fig-add-bivectors
 77. https://www.av8n.com/physics/clifford-intro.htm#fig-add-vectors
 78. https://www.av8n.com/physics/clifford-intro.htm#fig-add-bivectors
 79. https://www.av8n.com/physics/clifford-intro.htm#note1
 80. https://www.av8n.com/physics/clifford-intro.htm#sec-angular
 81. https://www.av8n.com/physics/clifford-intro.htm#sec-grade-sel
 82. https://www.av8n.com/physics/clifford-intro.htm#bib-complex-clifford
 83. https://www.av8n.com/physics/clifford-intro.htm#sec-mul-prelim
 84. https://www.av8n.com/physics/clifford-intro.htm#sec-vec-times-vec
 85. https://www.av8n.com/physics/clifford-intro.htm#eq-ass-diss
 86. https://www.av8n.com/physics/clifford-intro.htm#sec-vec-times-vec
 87. https://www.av8n.com/physics/clifford-intro.htm#sec-vec-times-vec
 88. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-calc
 89. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-calc
 90. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-calc
 91. https://www.av8n.com/physics/clifford-intro.htm#sec-other-wedge
 92. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-calc
 93. https://www.av8n.com/physics/clifford-intro.htm#sec-other-dot
 94. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
 95. https://www.av8n.com/physics/clifford-intro.htm#eq-dot+wedge
 96. https://www.av8n.com/physics/clifford-intro.htm#eq-dot+wedge
 97. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
 98. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-symm
 99. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-symm
100. https://www.av8n.com/physics/clifford-intro.htm#bib-oersted
101. https://www.av8n.com/physics/clifford-intro.htm#sec-outer
102. https://www.av8n.com/physics/clifford-intro.htm#sec-dot
103. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
104. https://www.av8n.com/physics/clifford-intro.htm#eq-is-scalar
105. https://www.av8n.com/physics/clifford-intro.htm#sec-para-perp
106. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-symm
107. https://www.av8n.com/physics/clifford-intro.htm#eq-parallel
108. https://www.av8n.com/physics/clifford-intro.htm#eq-perp
109. https://www.av8n.com/physics/clifford-intro.htm#eq-dot+wedge
110. https://www.av8n.com/physics/clifford-intro.htm#eq-p-along-q
111. https://www.av8n.com/physics/clifford-intro.htm#sec-basis
112. https://www.av8n.com/physics/clifford-intro.htm#eq-para-dot-wedge
113. https://www.av8n.com/physics/clifford-intro.htm#sec-wedge
114. https://www.av8n.com/physics/clifford-intro.htm#sec-dot
115. https://www.av8n.com/physics/clifford-intro.htm#sec-para-perp
116. https://www.av8n.com/physics/clifford-intro.htm#eq-para-dot-wedge
117. https://www.av8n.com/physics/clifford-intro.htm#sec-svbt
118. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
119. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-3
120. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-all
121. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-symmetry
122. https://www.av8n.com/physics/clifford-intro.htm#eq-multivector
123. https://www.av8n.com/physics/clifford-intro.htm#eq-blade
124. https://www.av8n.com/physics/clifford-intro.htm#sec-other-wedge
125. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-all
126. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-all
127. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-ass
128. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-all
129. https://www.av8n.com/physics/clifford-intro.htm#sec-gp
130. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-wedge
131. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-distrib
132. https://www.av8n.com/physics/clifford-intro.htm#sec-other-dot
133. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-dot
134. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-grade-symmetry
135. https://www.av8n.com/physics/clifford-intro.htm#sec-vec-times-vec
136. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-distrib
137. https://www.av8n.com/physics/clifford-intro.htm#sec-mixed-wedge-dot
138. https://www.av8n.com/physics/clifford-intro.htm#eq-mixed-wedge-dot-ex
139. https://www.av8n.com/physics/clifford-intro.htm#eq-mixed-wedge-dot-general
140. https://www.av8n.com/physics/clifford-intro.htm#eq-wedge-calc
141. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-wedge
142. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-dot
143. https://www.av8n.com/physics/clifford-intro.htm#eq-mixed-wedge-dot-general
144. https://www.av8n.com/physics/clifford-intro.htm#eq-mixed-wedge-dot-symmetry
145. https://www.av8n.com/physics/clifford-intro.htm#eq-mixed-wedge-dot-symmetry
146. https://www.av8n.com/physics/clifford-intro.htm#eq-non-associative
147. https://www.av8n.com/physics/clifford-intro.htm#eq-non-distributive
148. https://www.av8n.com/physics/clifford-intro.htm#sec-paint
149. https://www.av8n.com/physics/clifford-intro.htm#fig-blades
150. https://www.av8n.com/physics/clifford-intro.htm#fig-bivectors
151. https://www.av8n.com/physics/clifford-intro.htm#fig-blades
152. https://www.av8n.com/physics/clifford-intro.htm#fig-bivectors
153. https://www.av8n.com/physics/clifford-intro.htm#fig-bivectors
154. https://www.av8n.com/physics/clifford-intro.htm#sec-chiral
155. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-cross
156. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-cross
157. https://www.av8n.com/physics/clifford-intro.htm#bib-pierre-puzzle
158. https://www.av8n.com/physics/clifford-intro.htm#sec-gp
159. https://www.av8n.com/physics/clifford-intro.htm#sec-basis
160. https://www.av8n.com/physics/clifford-intro.htm#eq-example-factors
161. https://www.av8n.com/physics/clifford-intro.htm#eq-example-terms
162. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-dot
163. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-noname
164. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-wedge
165. https://www.av8n.com/physics/clifford-intro.htm#sec-other-dot
166. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-dot
167. https://www.av8n.com/physics/clifford-intro.htm#sec-other-wedge
168. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-wedge
169. https://www.av8n.com/physics/clifford-intro.htm#eq-ex-noname
170. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-selector
171. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
172. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc2
173. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-plus-wedge
174. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-plus-wedge
175. https://www.av8n.com/physics/clifford-intro.htm#eq-not-dot-plus-wedge
176. https://www.av8n.com/physics/clifford-intro.htm#eq-count-by-two
177. https://www.av8n.com/physics/clifford-intro.htm#sec-spacelike-timelike
178. https://www.av8n.com/physics/clifford-intro.htm#sec-gorm
179. https://www.av8n.com/physics/clifford-intro.htm#sec-reverse
180. https://www.av8n.com/physics/clifford-intro.htm#bib-rotations
181. https://www.av8n.com/physics/clifford-intro.htm#sec-gorm
182. https://www.av8n.com/physics/clifford-intro.htm#bib-complex-clifford
183. https://www.av8n.com/physics/clifford-intro.htm#sec-gorm
184. https://www.av8n.com/physics/clifford-intro.htm#eq-gorm
185. https://www.av8n.com/physics/clifford-intro.htm#sec-basis
186. https://www.av8n.com/physics/clifford-intro.htm#sec-basis
187. https://www.av8n.com/physics/clifford-intro.htm#eq-p-along-q
188. https://www.av8n.com/physics/clifford-intro.htm#eq-basis0
189. https://www.av8n.com/physics/clifford-intro.htm#eq-basis123
190. https://www.av8n.com/physics/clifford-intro.htm#eq-basis-cross
191. https://www.av8n.com/physics/clifford-intro.htm#eq-basis0
192. https://www.av8n.com/physics/clifford-intro.htm#eq-basis123
193. https://www.av8n.com/physics/clifford-intro.htm#bib-spacetime-trig
194. https://www.av8n.com/physics/clifford-intro.htm#eq-basis0
195. https://www.av8n.com/physics/clifford-intro.htm#sec-components
196. https://www.av8n.com/physics/clifford-intro.htm#eq-components
197. https://www.av8n.com/physics/clifford-intro.htm#eq-components
198. https://www.av8n.com/physics/clifford-intro.htm#eq-comp
199. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-comp
200. https://www.av8n.com/physics/clifford-intro.htm#eq-dot+wedge
201. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-comp
202. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-comp
203. https://www.av8n.com/physics/clifford-intro.htm#bib-cam
204. https://www.av8n.com/physics/clifford-intro.htm#bib-harke
205. https://www.av8n.com/physics/clifford-intro.htm#bib-oersted
206. https://www.av8n.com/physics/clifford-intro.htm#sec-dimensions
207. https://www.av8n.com/physics/clifford-intro.htm#eq-dimensions
208. https://www.av8n.com/physics/clifford-intro.htm#sec-angular
209. https://www.av8n.com/physics/clifford-intro.htm#eq-angular-momentum-def
210. https://www.av8n.com/physics/clifford-intro.htm#eq-angular-velocity-def
211. https://www.av8n.com/physics/clifford-intro.htm#eq-velocity-from-angular
212. https://www.av8n.com/physics/clifford-intro.htm#eq-angular-velocity-def
213. https://www.av8n.com/physics/clifford-intro.htm#eq-velocity-from-angular
214. https://www.av8n.com/physics/clifford-intro.htm#eq-dot-wedge-calc
215. https://www.av8n.com/physics/clifford-intro.htm#eq-velocity-from-angular
216. https://www.av8n.com/physics/clifford-intro.htm#sec-contractions
217. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-dot
218. https://www.av8n.com/physics/clifford-intro.htm#eq-fat-dot-product
219. https://www.av8n.com/physics/clifford-intro.htm#eq-contractions
220. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge
221. https://www.av8n.com/physics/clifford-intro.htm#eq-left-contraction
222. https://www.av8n.com/physics/clifford-intro.htm#eq-right-contraction
223. https://www.av8n.com/physics/clifford-intro.htm#eq-scalar-prod
224. https://www.av8n.com/physics/clifford-intro.htm#eq-fat-dot-product
225. https://www.av8n.com/physics/clifford-intro.htm#eq-hestenes-inner-product
226. https://www.av8n.com/physics/clifford-intro.htm#eq-higher-dot
227. https://www.av8n.com/physics/clifford-intro.htm#eq-fat-dot-product
228. https://www.av8n.com/physics/clifford-intro.htm#bib-dorst
229. https://www.av8n.com/physics/clifford-intro.htm#eq-left-consum
230. https://www.av8n.com/physics/clifford-intro.htm#eq-right-consum
231. https://www.av8n.com/physics/clifford-intro.htm#eq-scalar-prodsum
232. https://www.av8n.com/physics/clifford-intro.htm#eq-fat-dot-prodsum
233. https://www.av8n.com/physics/clifford-intro.htm#eq-hestenes-inner-prodsum
234. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-cross
235. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge
236. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-3
237. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-4
238. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-3
239. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-4
240. https://www.av8n.com/physics/clifford-intro.htm#sec-contractions
241. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-4
242. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-3
243. https://www.av8n.com/physics/clifford-intro.htm#fig-hodge-flip-4
244. https://www.av8n.com/physics/clifford-intro.htm#sec-chiral
245. https://www.av8n.com/physics/clifford-intro.htm#eq-hodge-def-if
246. https://www.av8n.com/physics/clifford-intro.htm#eq-hodge-def-then
247. https://www.av8n.com/physics/clifford-intro.htm#eq-hodge-def-so
248. https://www.av8n.com/physics/clifford-intro.htm#eq-hodge-def-if
249. https://www.av8n.com/physics/clifford-intro.htm#eq-hodge-def
250. https://www.av8n.com/physics/clifford-intro.htm#bib-hodge-wiki
251. https://www.av8n.com/physics/clifford-intro.htm#bib-cliffer
252. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge-remarks
253. https://www.av8n.com/physics/clifford-intro.htm#sec-cross-out-cross
254. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-local
255. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-std
256. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-magnitude
257. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-local
258. https://www.av8n.com/physics/clifford-intro.htm#sec-hodge
259. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-std
260. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-dual
261. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge
262. https://www.av8n.com/physics/clifford-intro.htm#eq-cross-to-wedge-dual
263. https://www.av8n.com/physics/clifford-intro.htm#eq-triple-scalar
264. https://www.av8n.com/physics/clifford-intro.htm#bib-area-volume
265. https://www.av8n.com/physics/clifford-intro.htm#bib-maxwell-ga
266. https://www.av8n.com/physics/clifford-intro.htm#sec-peda
267. https://www.av8n.com/physics/clifford-intro.htm#sec-visualize
268. https://www.av8n.com/physics/clifford-intro.htm#sec-addition
269. https://www.av8n.com/physics/clifford-intro.htm#sec-peda-symmetry
270. https://www.av8n.com/physics/clifford-intro.htm#bib-pierre-puzzle
271. https://www.av8n.com/physics/clifford-intro.htm#sec-connect-extend
272. https://www.av8n.com/physics/clifford-intro.htm#sec-rami
273. https://www.av8n.com/physics/clifford-intro.htm#sec-peda-geometric
274. https://www.av8n.com/physics/clifford-intro.htm#eq-basis123
275. https://www.av8n.com/physics/clifford-intro.htm#eq-basis-cross
276. https://www.av8n.com/physics/clifford-intro.htm#bib-vector-intro
277. https://www.av8n.com/physics/clifford-intro.htm#sec-overview
278. https://www.av8n.com/physics/clifford-intro.htm#bib-rotations
279. https://www.av8n.com/physics/clifford-intro.htm#sec-sub-summary
280. https://www.av8n.com/physics/clifford-intro.htm#sec-outer
281. https://www.av8n.com/physics/clifford-intro.htm#eq-outer
282. https://www.av8n.com/physics/clifford-intro.htm#eq-outer-components
283. https://www.av8n.com/physics/clifford-intro.htm#eq-outer-example
284. https://www.av8n.com/physics/clifford-intro.htm#eq-outer-symmetries
285. https://www.av8n.com/physics/clifford-intro.htm#eq-outer-symmetries
286. https://www.av8n.com/physics/clifford-intro.htm#bib-oersted
287. https://www.av8n.com/physics/clifford-intro.htm#sec-cliffer
288. https://www.av8n.com/physics/clifford-intro.htm#bib-cliffer
289. https://www.av8n.com/physics/clifford-intro.htm#file-cliffer.hlp
290. https://www.av8n.com/physics/cliffer.hlp
291. https://www.av8n.com/physics/clifford-intro.htm#sec-ref
292. https://www.av8n.com/physics/clifford-intro.htm#bib-complex-clifford
293. https://www.av8n.com/physics/complex-clifford.htm
294. https://www.av8n.com/physics/clifford-intro.htm#bib-rotations
295. https://www.av8n.com/physics/rotations.htm
296. https://www.av8n.com/physics/clifford-intro.htm#bib-pierre-puzzle
297. https://www.av8n.com/physics/pierre-puzzle.htm
298. https://www.av8n.com/physics/clifford-intro.htm#bib-maxwell-ga
299. https://www.av8n.com/physics/maxwell-ga.htm
300. https://www.av8n.com/physics/clifford-intro.htm#bib-magnet-relativity
301. https://www.av8n.com/physics/magnet-relativity.htm
302. https://www.av8n.com/physics/clifford-intro.htm#bib-straight-wire
303. https://www.av8n.com/physics/straight-wire.htm
304. https://www.av8n.com/physics/clifford-intro.htm#bib-area-volume
305. https://www.av8n.com/physics/area-volume.htm
306. https://www.av8n.com/physics/clifford-intro.htm#bib-oersted
307. http://geocalc.clas.asu.edu/html/Overview.html
308. http://geocalc.clas.asu.edu/pdf/OerstedMedalLecture.pdf
309. https://www.av8n.com/physics/clifford-intro.htm#bib-spacetime-trig
310. https://www.av8n.com/physics/clifford-intro.htm#bib-cam
311. http://www.mrao.cam.ac.uk/~clifford/introduction/intro/intro.html
312. https://www.av8n.com/physics/clifford-intro.htm#bib-harke
313. http://www.harke.org/ps/intro.ps.gz
314. https://www.av8n.com/physics/clifford-intro.htm#bib-dorst
315. https://www.av8n.com/physics/clifford-intro.htm#bib-hodge-wiki
316. http://en.wikipedia.org/wiki/Hodge_dual
317. https://www.av8n.com/physics/clifford-intro.htm#bib-cliffer
318. https://www.av8n.com/physics/cat.cgi/cliffer.pl
319. https://www.av8n.com/physics/cat.cgi/clifford.pm
320. https://www.av8n.com/physics/cat.cgi/cliffer.test1
321. https://www.av8n.com/physics/clifford-intro.htm#bib-vector-intro
322. https://www.av8n.com/physics/vector-intro.htm
323. https://www.av8n.com/physics/clifford-intro.htm#text1
324. https://www.av8n.com/physics/#contents

  Hidden links:
326. https://www.av8n.com/physics/clifford-intro.htm#hi-stamp
327. https://www.av8n.com/physics/clifford-intro.htm#hi-outer-exterior