| jordan-package | R Documentation |
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". To cite the package in publications, please use Hankin (2023) <doi:10.48550/arXiv.2303.06062>.
A Jordan algebra is a non-associative algebra over the reals with a multiplication that satisfies the following identities:
xy=yx
(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 x\circ y. Package idiom is to use an
asterisk, as in x*y. There are five types of Jordan algebras:
Real symmetric matrices, class real_symmetric_matrix,
abbreviated in the package to rsm
Complex Hermitian matrices, class complex_herm_matrix,
abbreviated to chm
Quaternionic Hermitian matrices, class
quaternion_herm_matrix, abbreviated to qhm
Albert algebras, the space of 3\times 3
octonionic matrices, class albert
Spin factors, class spin
(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 S4
class is “jordan_matrix”). The fifth class, spin
factors, is not matrix based.
One can extract the symmetric or Hermitian matrix from objects of
class jordan_matrix using as.list(), which will return a
list of symmetric or Hermitian matrices. A function name preceded by
a “1” (for example as.1matrix() or vec_to_qhm1())
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
n\times n has only n(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 <hankin.robin@gmail.com>
K. McCrimmon 1978. “Jordan algebras and their applications”. Bulletin of the American Mathematical Society, Volume 84, Number 4.
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.