set.seed(0) knitr::opts_chunk$set(echo = TRUE) library("clifford")
knitr::include_graphics(system.file("help/figures/clifford.png", package = "clifford"))
To cite the freealg
package in publications, please use
@hankin2022_clifford. This short document introduces the dot object
and shows how it can be used to work with commutators and verify the
Jacobi identity. In the clifford
package, we define
$\left[A,B\right] := (AB-BA)/2$. The factor of $\frac{1}{2}$ is to
consistentify the Lie bracket with the cross product $A\times B$. The
prototypical dot.Rmd
is that of the freealg
package
[@hankin2022_freealg]. The dot object is a (trivial) S4
object of
class dot
:
`.` <- new("dot")
The point of the dot (!) is that it allows one to calculate the Lie
bracket $[x,y]=(xy-yx)/2$ using R idiom .[x,y]
in the clifford
package. Thus:
(x <- 1 + 3*e(2)) (y <- 5*e(3) - 7*e(1:3)) .[x,y]
We see that these two clifford objects do not commute. It is possible
to apply the dot construction .[x,y]
to more complicated examples.
Here I show that the Lie bracket is nonassociative:
z <- 3 - e(1:4) .[x,.[y,z]] .[.[x,y],z] .[x,.[y,z]] == .[.[x,y],z]
However, it does satisfy the Jacobi identity $\left[x,\left[y,z\right]\right]+\left[y,\left[z,x\right]\right]+ \left[z,\left[x,y\right]\right]=0$:
.[x,.[y,z]] + .[y,.[z,x]] + .[z,.[x,y]]
It is an interesting, useful, and nontrivial fact that the commutator of two bivectors is a bivector:
(a <- rcliff(d=9,g=2,include.fewer=FALSE)) (b <- rcliff(d=9,g=2,include.fewer=FALSE)) .[a,b] grades(.[a,b])
Following lines create dot.rda
, residing in the data/
directory
of the package.
save(`.`,file="dot.rda")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.