A Jordan algebra is an algebraic object originally designed to study observables in quantum mechanics. Jordan algebras are commutative but non-associative; they satisfy the Jordan identity. The package follows the ideas and notation of K. McCrimmon (2004, ISBN:0-387-95447-3) "A Taste of Jordan Algebras".
A Jordan algebra is a non-associative algebra over the reals with a multiplication that satisfies the following identities:\mjsdeqn
(xy)(xx) = x(y(xx))
(the second identity is known as the Jordan identity). In literature
one usually indicates multiplication by juxtaposition but one
sometimes sees \mjeqnx\circ yx o y. Package idiom is to use an
asterisk, as in
x*y. There are five types of Jordan algebras:
Real symmetric matrices, class
abbreviated in the package to
Complex Hermitian matrices, class
Quaternionic Hermitian matrices, class
quaternion_herm_matrix, abbreviated to
Albert algebras, the space of \mjeqn3\times 33*3
octonionic matrices, class
Spin factors, class
(of course, the first two are special cases of the next). The
jordan package provides functionality to manipulate jordan
objects using natural R idiom.
Objects of all these classes are stored in dataframe (technically, a matrix) form with columns being elements of the jordan algebra.
The first four classes are matrix-based in the sense that the
algebraic objects are symmetric or Hermitian matrices (the
class is “
jordan_matrix”). The fifth class, spin
factors, is not matrix based.
One can extract the symmetric or Hermitian matrix from objects of
as.list(), which will return a
list of symmetric or Hermitian matrices. A function name preceded by
a “1” (for example
means that it deals with a single (symmetric or Hermitian) matrix.
Algebraically, the matrix form of
jordan_matrix objects is
redundant (for example, a
real_symmetric_matrix of size
\mjeqnn\times nn*n has only \mjseqnn(n+1)/2 independent entries,
corresponding to the upper triangular elements).
Robin K. S. Hankin [aut, cre] (<https://orcid.org/0000-0001-5982-0415>)
Maintainer: Robin K. S. Hankin <email@example.com>
K. McCrimmon 1978. “Jordan algebras and their applications”. Bulletin of the American Mathematical Society, Volume 84, Number 4.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
rrsm() # Random Real Symmetric matrices rchm() # Random Complex Hermitian matrices rqhm() # Random Quaternionic Hermitian matrices ralbert() # Random Albert algebra rspin() # Random spin factor x <- rqhm(n=1) y <- rqhm(n=1) z <- rqhm(n=1) x/1.2 + 0.3*x*y # Arithmetic works as expected ... x*(y*z) -(x*y)*z # ... but '*' is not associative ## Verify the Jordan identity for type 3 algebras: LHS <- (x*y)*(x*x) RHS <- x*(y*(x*x)) diff <- LHS-RHS # zero to numerical precision diff[1,drop=TRUE] # result in matrix form
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.