rcliff | R Documentation |
Random Clifford algebra elements, intended as quick
“get you going” examples of clifford
objects
rcliff(n=9, d=6, g=4, include.fewer=TRUE)
rclifff(n=100,d=20,g=10,include.fewer=TRUE)
rblade(d=7, g=3)
n |
Number of terms |
d |
Dimensionality of underlying vector space |
g |
Maximum grade of any term |
include.fewer |
Boolean, with |
Function rcliff()
gives a quick nontrivial Clifford object,
typically with terms having a range of grades (see ‘grade.Rd’);
argument include.fewer=FALSE
ensures that all terms are of the
same grade. Function rclifff()
is the same but returns a more
complicated object by default.
Function rblade()
gives a Clifford object that is a
blade (see ‘term.Rd’). It returns the wedge product of a
number of 1-vectors, for example
\left(e_1+2e_2\right)\wedge\left(e_1+3e_5\right)
.
Perwass gives the following lemma:
Given blades A_{\langle r\rangle}, B_{\langle s\rangle},
C_{\langle t\rangle}
, then
\langle
A_{\langle r\rangle}
B_{\langle s\rangle}
C_{\langle t\rangle}
\rangle_0
=
\langle
C_{\langle t\rangle}
A_{\langle r\rangle}
B_{\langle s\rangle}
\rangle_0
In the proof he notes in an intermediate step that
\langle
A_{\langle r\rangle}
B_{\langle s\rangle}
\rangle_t *
C_{\langle t\rangle}
=
C_{\langle t\rangle} *
\langle
A_{\langle r\rangle}
B_{\langle s\rangle}
\rangle_t
=
\langle
C_{\langle t\rangle}
A_{\langle r\rangle}
B_{\langle s\rangle}
\rangle_0.
Package idiom is shown in the examples.
If the grade exceeds the dimensionality, g>d
, then
the result is arguably zero; rcliff()
returns an error.
Robin K. S. Hankin
term
,grade
rcliff()
rcliff(d=3,g=2)
rcliff(3,10,7)
rcliff(3,10,7,include=TRUE)
x1 <- rcliff()
x2 <- rcliff()
x3 <- rcliff()
x1*(x2*x3) == (x1*x2)*x3 # should be TRUE
rblade()
# We can invert blades easily:
a <- rblade()
ainv <- rev(a)/scalprod(a)
zap(a*ainv) # 1 (to numerical precision)
zap(ainv*a) # 1 (to numerical precision)
# Perwass 2009, lemma 3.9:
A <- rblade(d=9,g=4)
B <- rblade(d=9,g=5)
C <- rblade(d=9,g=6)
grade(A*B*C,0)-grade(C*A*B,0) # zero to numerical precision
# Intermediate step
x1 <- grade(A*B,3) %star% C
x2 <- C %star% grade(A*B,3)
x3 <- grade(C*A*B,0)
max(x1,x2,x3) - min(x1,x2,x3) # zero to numerical precision
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.