To cite the jordan
package in publications please use Hankin (2023). Jordan algebras were originally
introduced by Pascual Jordan in 1933 as an attempt to axiomatize
observables in quantum mechanics. Formally, a Jordan algebra is
a non-associative algebra over the reals with a bilinear multiplication
that satisfies the following identities:
\[xy=yx\]
\[(xy)(xx)=x(y(xx))\]
(the second identity is known as the Jordan identity). In literature,
multiplication is usually indicated by juxtaposition but one sometimes
sees \(x\bullet y\). Package idiom is
to use an asterisk, as in x*y
. Following McCrimmon (1978), there are five types of Jordan
algebras:
real_symmetric_matrix
, abbreviated in the package to
rsm
complex_herm_matrix
, abbreviated to chm
quaternion_herm_matrix
, abbreviated to
qhm
albert
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 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.
The four matrix-based Jordan algebras have elements which are square matrices. The first three classes are real (symmetric) matrices, complex (Hermitian) matrices, and quaternionic (Hermitian); type 4 is considered separately at the end. Types 1,2, and 3 all behave in the same way from a package idiom perspective. Consider:
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 1.26 -0.41 -0.24
## [2,] -0.33 0.25 -0.54
## [3,] 1.33 -0.89 -0.43
## [4,] 1.27 0.44 -0.65
## [5,] 0.41 -1.24 0.73
## .......................
## [11,] 0.76 0.50 1.76
## [12,] -0.80 1.09 0.56
## [13,] -1.15 -0.69 -0.45
## [14,] -0.29 -1.28 -0.83
## [15,] -0.30 0.05 -1.17
Object x
is a three-element vector, with each element
being a column. Each element corresponds to a \(5\times 5\) symmetric matrix (because
rrsm()
has d=5
by default, specifying the size
of the matrix). Thus each element has \(5*(5+1)/2=15\) degrees of freedom, as
indicated by the row labelling. Addition and multiplication of a Jordan
object with a scalar are defined:
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 126 -41 -24
## [2,] -33 25 -54
## [3,] 133 -89 -43
## [4,] 127 44 -65
## [5,] 41 -124 73
## ....................
## [11,] 76 50 176
## [12,] -80 109 56
## [13,] -115 -69 -45
## [14,] -29 -128 -83
## [15,] -30 5 -117
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] -1.95 0.67 3.06
## [2,] -5.01 0.22 -0.12
## [3,] 4.81 -3.71 -0.79
## [4,] 3.76 0.08 -3.38
## [5,] -0.28 -3.67 -3.59
## .......................
## [11,] 1.51 0.56 0.50
## [12,] 1.06 1.87 3.56
## [13,] -1.66 -2.64 -1.29
## [14,] -6.95 -1.64 2.95
## [15,] -4.08 2.03 0.78
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 101.26 99.59 99.76
## [2,] 99.67 100.25 99.46
## [3,] 101.33 99.11 99.57
## [4,] 101.27 100.44 99.35
## [5,] 100.41 98.76 100.73
## ..........................
## [11,] 100.76 100.50 101.76
## [12,] 99.20 101.09 100.56
## [13,] 98.85 99.31 99.55
## [14,] 99.71 98.72 99.17
## [15,] 99.70 100.05 98.83
(the last line is motivated by analogy with M + x
, for
M
a matrix and x
a scalar). Jordan objects may
be multiplied using the rule \(x\bullet
y=(xy+yx)/2\):
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 0.76410 -0.73630 0.75020
## [2,] -2.95485 -0.11655 0.69915
## [3,] 0.75970 2.17000 -0.84630
## [4,] -0.74050 -0.61915 0.44255
## [5,] -0.99495 0.58665 -0.43270
## ................................
## [11,] 0.25850 1.06925 2.00600
## [12,] -0.20925 0.17605 -0.78365
## [13,] 1.54600 -1.09150 0.20655
## [14,] -3.00675 -0.94800 -0.24035
## [15,] 0.91130 0.92850 -1.85950
We may verify that the distributive law is obeyed:
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 0.000000e+00 0.000000e+00 0.000000e+00
## [2,] 0.000000e+00 -2.220446e-16 3.330669e-16
## [3,] 2.220446e-16 4.440892e-16 0.000000e+00
## [4,] -2.220446e-16 0.000000e+00 0.000000e+00
## [5,] 0.000000e+00 -1.110223e-16 -5.551115e-17
## ...............................................
## [11,] 2.220446e-16 0.000000e+00 -1.110223e-16
## [12,] -6.661338e-16 2.220446e-16 -6.938894e-17
## [13,] -4.440892e-16 -2.220446e-16 4.440892e-16
## [14,] 0.000000e+00 -1.110223e-16 4.440892e-16
## [15,] 4.440892e-16 3.330669e-16 -1.110223e-16
(that is, zero to numerical precision). Further, we may observe that the resulting algebra is not associative:
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] -2.1017565 -1.19444550 0.7294260
## [2,] 0.9831145 1.50253975 -0.9596110
## [3,] -3.2116185 -0.89286100 -4.1190580
## [4,] 0.2891320 1.10998775 -1.5859828
## [5,] -1.8515115 -0.09683025 -0.8515705
## .......................................
## [11,] -0.2235020 -0.74325575 1.3072258
## [12,] -1.2445235 0.49372175 -0.2215460
## [13,] 0.1555398 0.27185050 -1.4434697
## [14,] -0.2530977 -0.70312400 -0.8658505
## [15,] 2.5612200 -0.15260950 1.8237820
showing numerically that \(x(yz)\neq(xy)z\). However, the Jordan identity \((xy)(xx) = x(y(xx))\) is satisfied:
## Vector of real symmetric matrices with entries
## [1] [2] [3]
## [1,] 5.329071e-15 -2.220446e-16 0.000000e+00
## [2,] 0.000000e+00 0.000000e+00 0.000000e+00
## [3,] -8.881784e-16 0.000000e+00 4.718448e-16
## [4,] 2.664535e-15 -4.440892e-16 -1.110223e-15
## [5,] 3.552714e-15 -4.440892e-16 8.881784e-16
## ...............................................
## [11,] 0.000000e+00 0.000000e+00 0.000000e+00
## [12,] 2.664535e-15 6.661338e-16 -8.881784e-16
## [13,] -1.776357e-15 0.000000e+00 1.332268e-15
## [14,] 3.552714e-15 -4.440892e-16 0.000000e+00
## [15,] 0.000000e+00 -8.881784e-16 -3.552714e-15
(the entries are zero to numerical precision). If we wish to work
with the matrix itself, a single element may be coerced with
as.1matrix()
:
## [,1] [,2] [,3] [,4] [,5]
## [1,] -0.41 0.25 0.44 0.38 0.50
## [2,] 0.25 -0.89 -1.24 0.13 1.09
## [3,] 0.44 -1.24 -0.22 0.80 -0.69
## [4,] 0.38 0.13 0.80 -0.06 -1.28
## [5,] 0.50 1.09 -0.69 -1.28 0.05
(in the above, observe how the matrix is indeed symmetric). We may verify that the multiplication rule is indeed being correctly applied:
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0 0 0 0 0
## [2,] 0 0 0 0 0
## [3,] 0 0 0 0 0
## [4,] 0 0 0 0 0
## [5,] 0 0 0 0 0
It is also possible to verify that symmetry is closed under the Jordan operation:
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0 0 0 0 0
## [2,] 0 0 0 0 0
## [3,] 0 0 0 0 0
## [4,] 0 0 0 0 0
## [5,] 0 0 0 0 0
The other matrix-based Jordan algebras are similar but differ in the details of the coercion. Taking quaternionic matrices:
## [1,1] [2,1] [1,2] [2,2]
## Re -0.96 -0.96 -0.96 -1.23
## i 0.00 0.87 -0.87 0.00
## j 0.00 0.91 -0.91 0.00
## k 0.00 -0.74 0.74 0.00
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
above we see the matrix functionality of the onion
package being used. See how the matrix is Hermitian (elements
[1,2]
and [2,1]
are conjugate; elements
[1,1]
and [2,2]
are pure real). Verifying the
Jordan identity would be almost the same as above:
## Vector of quaternionic Hermitian matrices with entries
## [1] [2] [3]
## [1,] 3.552714e-15 1.421085e-14 0.000000e+00
## [2,] -2.131628e-14 1.421085e-14 3.552714e-15
## [3,] 0.000000e+00 0.000000e+00 0.000000e+00
## [4,] 5.329071e-15 -2.664535e-15 -7.105427e-15
## [5,] 0.000000e+00 0.000000e+00 2.842171e-14
## ...............................................
## [41,] 8.437695e-15 8.881784e-15 0.000000e+00
## [42,] -1.421085e-14 0.000000e+00 5.329071e-15
## [43,] -7.105427e-15 1.421085e-14 8.881784e-15
## [44,] -3.552714e-15 -7.105427e-15 0.000000e+00
## [45,] -1.421085e-14 0.000000e+00 7.105427e-15
Above, we see that the difference is very small.
The first four types of Jordan algebras are all matrix-based with either real, complex, quaternionic, or octonionic entries.
The fifth type, spin factors, are slightly different from a package idiom perspective. Mathematically, elements are of the form \(\mathbb{R}\oplus\mathbb{R}^n\), with addition and multiplication defined by
\[\alpha(a,\mathbf{a}) = (\alpha a,\alpha\mathbf{a})\]
\[(a,\mathbf{a}) + (b,\mathbf{b}) = (a+b,\mathbf{a} + \mathbf{b})\]
\[(a,\mathbf{a}) \times (b,\mathbf{b}) = (ab+\left\langle\mathbf{a},\mathbf{b}\right\rangle,a\mathbf{b} + b\mathbf{a})\]
where \(a,b,\alpha\in\mathbb{R}\), and \(\mathbf{a},\mathbf{b}\in\mathbb{R}^n\). Here \(\left\langle\cdot,\cdot\right\rangle\) is an inner product defined on \(\mathbb{R}^n\) (by default we have \(\left\langle(x_1,\ldots, x_n),(y_1,\ldots, y_n)\right\rangle=\sum x_iy_i\) but this is configurable in the package).
So if we have \(\mathcal{I},\mathcal{J},\mathcal{K}\) spin factor elements it is clear that \(\mathcal{I}\mathcal{J}=\mathcal{J}\mathcal{I}\) and \(\mathcal{I}(\mathcal{J}+\mathcal{K}) = \mathcal{I}\mathcal{J} + \mathcal{I}\mathcal{K}\). The Jordan identity is not as easy to see but we may verify all the identities numerically:
## Vector of spin objects with entries
## [1] [2] [3]
## r 0.14 0.91 -1.80
## [1] -0.34 1.14 0.37
## [2] 0.61 0.01 -0.38
## [3] 1.34 -1.11 0.65
## [4] 0.77 -0.03 2.06
## [5] 0.19 -0.16 -1.80
## Vector of spin objects with entries
## [1] [2] [3]
## r 0 0 0
## [1] 0 0 0
## [2] 0 0 0
## [3] 0 0 0
## [4] 0 0 0
## [5] 0 0 0
## Vector of spin objects with entries
## [1] [2] [3]
## r 4.440892e-16 0.000000e+00 1.776357e-15
## [1] 5.551115e-17 -8.881784e-16 0.000000e+00
## [2] 1.110223e-16 0.000000e+00 0.000000e+00
## [3] 4.440892e-16 -2.220446e-16 0.000000e+00
## [4] 2.220446e-16 4.440892e-16 0.000000e+00
## [5] 2.775558e-17 4.440892e-16 0.000000e+00
## Vector of spin objects with entries
## [1] [2] [3]
## r -2.220446e-16 -4.440892e-16 0.000000
## [1] -3.900790e-01 -1.625974e+00 -1.756489
## [2] 8.775930e-01 8.771170e-01 -5.327674
## [3] 2.349792e+00 -1.888707e+00 5.749035
## [4] 1.525986e+00 -1.707510e-01 3.378938
## [5] 4.767830e-01 5.984960e-01 -3.509500
## Vector of spin objects with entries
## [1] [2] [3]
## r 6.661338e-16 0.000000e+00 0.000000e+00
## [1] -2.220446e-16 0.000000e+00 0.000000e+00
## [2] 0.000000e+00 8.881784e-16 -1.776357e-15
## [3] 4.440892e-16 0.000000e+00 0.000000e+00
## [4] 2.220446e-16 -8.881784e-16 0.000000e+00
## [5] 0.000000e+00 0.000000e+00 1.421085e-14
Type 4 Jordan algebra corresponds to \(3\times 3\) Hermitian matrices with
octonions for entries. This is class albert
in the package.
Note that octonionic Hermitian matrices of order 4 or above do not
satisfy the Jordan identity and are therefore not Jordan algebras: there
is a numerical illustration of this fact in the onion
package vignette. We may verify the Jordan identity for \(3\times 3\) octonionic Hermitian matrices
using package class albert
:
## Vector of Albert matrices with entries
## [1] [2] [3]
## d1 -0.18 -0.26 0.03
## d2 1.45 -0.06 -1.03
## d3 -0.61 -0.45 -0.98
## Re(o1) 0.68 0.07 0.00
## i(o1) -0.09 -0.15 -0.23
## j(o1) -0.49 -0.83 -0.50
## k(o1) 1.41 0.76 1.55
## l(o1) -0.22 -0.58 0.09
## il(o1) -0.21 -0.63 1.32
## jl(o1) 0.70 0.48 -0.98
## kl(o1) 0.92 1.70 -0.25
## Re(o2) -0.92 -1.76 -1.40
## i(o2) 1.15 0.20 1.44
## j(o2) -0.64 0.40 -0.98
## k(o2) -0.89 0.03 1.47
## l(o2) -2.33 2.56 -0.99
## il(o2) -0.15 1.26 -0.09
## jl(o2) 0.32 -0.53 -2.88
## kl(o2) -0.71 -0.63 -0.25
## Re(o3) 1.24 0.91 0.01
## i(o3) 0.62 1.01 -1.92
## j(o3) 0.10 0.72 -0.29
## k(o3) 1.81 -0.60 -0.35
## l(o3) -1.50 0.54 -1.84
## il(o3) 0.29 -0.08 0.90
## jl(o3) 0.85 1.85 -1.21
## kl(o3) -1.00 -0.85 -0.22
## Vector of Albert matrices with entries
## [1] [2] [3]
## d1 1.421085e-14 -7.105427e-15 0.000000e+00
## d2 1.421085e-14 -1.421085e-14 0.000000e+00
## d3 2.842171e-14 1.421085e-14 0.000000e+00
## Re(o1) -1.776357e-15 8.881784e-16 2.131628e-14
## i(o1) -7.105427e-15 -1.065814e-14 1.421085e-14
## j(o1) 7.105427e-15 3.552714e-15 7.105427e-15
## k(o1) 0.000000e+00 0.000000e+00 -7.105427e-15
## l(o1) 7.105427e-15 0.000000e+00 5.329071e-15
## il(o1) 7.105427e-15 -3.552714e-15 -1.421085e-14
## jl(o1) 0.000000e+00 -7.105427e-15 -7.105427e-15
## kl(o1) -7.105427e-15 -1.421085e-14 -1.421085e-14
## Re(o2) 1.065814e-14 -1.421085e-14 0.000000e+00
## i(o2) 0.000000e+00 -7.105427e-15 -7.105427e-15
## j(o2) 0.000000e+00 0.000000e+00 1.421085e-14
## k(o2) 1.421085e-14 -8.881784e-16 -2.842171e-14
## l(o2) -7.105427e-15 0.000000e+00 -7.105427e-15
## il(o2) -7.105427e-15 0.000000e+00 0.000000e+00
## jl(o2) -3.552714e-15 -3.552714e-15 -1.421085e-14
## kl(o2) 3.552714e-15 1.776357e-15 9.769963e-15
## Re(o3) 3.552714e-15 0.000000e+00 -1.421085e-14
## i(o3) -1.065814e-14 1.065814e-14 2.842171e-14
## j(o3) -3.552714e-15 0.000000e+00 -7.105427e-15
## k(o3) -5.107026e-15 -3.552714e-15 -7.105427e-15
## l(o3) 8.881784e-15 1.421085e-14 -7.105427e-15
## il(o3) 1.776357e-14 -7.105427e-15 -1.421085e-14
## jl(o3) 0.000000e+00 0.000000e+00 1.421085e-14
## kl(o3) 7.105427e-15 0.000000e+00 -1.065814e-14
In 1963, C. M. Glennie discovered a pair of identities satisfied by special Jordan algebras but not the Albert algebra. Defining
\[ U_x(y) = 2x(xy)-(xx)y \]
\[ \left\lbrace x,y,z\right\rbrace= 2(x(yz)+(xy)z - (xz)y) \]
(it can be shown that Jacobson’s identity \(U_{U_x(y)}=U_xU_yU_x\) holds), Glennie’s identities are
\[ H_8(x,y,z)=H_8(y,x,z)\qquad H_9(x,y,z)=H_9(y,x,z) \]
(see McCrimmon 2004 for details), where
\[ H_8(x,y,z)= \left\lbrace U_x U_y(z),z, xy\right\rbrace-U_xU_yU_z(xy) \]
and \[ H_9(x,y,z)= 2U_x(z) U_{y,x}U_z(yy)-U_x U_z U_{x,y} U_y(z) \]
We may verify Jacobson’s identity:
U <- function(x){function(y){2*x*(x*y)-(x*x)*y}}
diff <- function(x,y,z){
LHS <- U(x)(U(y)(U(x)(z)))
RHS <- U(U(x)(y))(z)
return(LHS-RHS) # zero if Jacobson holds
}
Then we may numerically verify Jacobson for type 3-5 Jordan algebras:
## Vector of Albert matrices with entries
## [1] [2] [3]
## d1 4.547474e-13 2.273737e-13 1.818989e-12
## d2 7.958079e-13 1.591616e-12 0.000000e+00
## d3 1.250555e-12 -4.547474e-13 3.637979e-12
## Re(o1) -1.136868e-13 -1.364242e-12 4.547474e-13
## i(o1) -4.547474e-13 -2.273737e-13 -1.818989e-12
## j(o1) -3.410605e-13 2.273737e-13 1.591616e-12
## k(o1) -5.115908e-13 0.000000e+00 -1.364242e-12
## l(o1) 2.273737e-13 -1.136868e-13 0.000000e+00
## il(o1) 5.684342e-13 -4.547474e-13 9.094947e-13
## jl(o1) -9.094947e-13 7.105427e-13 -1.364242e-12
## kl(o1) -6.821210e-13 -6.252776e-13 -1.818989e-12
## Re(o2) 1.136868e-13 0.000000e+00 -9.094947e-13
## i(o2) 4.547474e-13 7.958079e-13 0.000000e+00
## j(o2) 2.273737e-13 -1.136868e-13 -1.818989e-12
## k(o2) 1.136868e-13 3.410605e-13 4.092726e-12
## l(o2) 1.136868e-13 2.273737e-13 4.547474e-12
## il(o2) 2.273737e-13 -2.273737e-13 1.932676e-12
## jl(o2) 1.136868e-13 6.821210e-13 -4.547474e-13
## kl(o2) 2.273737e-13 2.273737e-13 -6.821210e-13
## Re(o3) -2.273737e-13 2.273737e-13 9.094947e-13
## i(o3) -7.105427e-15 -9.094947e-13 -1.818989e-12
## j(o3) -1.136868e-12 0.000000e+00 4.547474e-13
## k(o3) -4.547474e-13 -4.547474e-13 4.547474e-13
## l(o3) 1.364242e-12 -1.136868e-13 4.547474e-13
## il(o3) 5.684342e-13 -3.410605e-13 -9.094947e-13
## jl(o3) 0.000000e+00 -5.684342e-13 -1.136868e-12
## kl(o3) 1.136868e-13 -1.136868e-13 0.000000e+00
## Vector of quaternionic Hermitian matrices with entries
## [1] [2] [3]
## [1,] 2.728484e-12 -3.183231e-12 -4.547474e-12
## [2,] 4.774847e-12 2.728484e-12 -4.547474e-12
## [3,] 0.000000e+00 -5.911716e-12 -5.911716e-12
## [4,] 1.818989e-12 -2.728484e-12 -7.275958e-12
## [5,] -3.637979e-12 -5.456968e-12 -9.094947e-13
## ...............................................
## [41,] 1.364242e-12 4.092726e-12 -9.094947e-13
## [42,] 3.637979e-12 1.818989e-12 0.000000e+00
## [43,] -1.818989e-12 1.818989e-12 -9.094947e-13
## [44,] 2.273737e-13 -1.364242e-12 3.183231e-12
## [45,] -1.818989e-12 1.818989e-12 4.547474e-12
## Vector of spin objects with entries
## [1] [2] [3]
## r 1.421085e-14 -5.151435e-14 0.000000e+00
## [1] -7.105427e-15 2.131628e-14 2.273737e-13
## [2] 0.000000e+00 -3.552714e-15 -1.136868e-13
## [3] 7.105427e-15 1.998401e-14 1.136868e-13
## [4] 0.000000e+00 5.329071e-15 2.131628e-13
## [5] 0.000000e+00 -7.105427e-15 -5.684342e-14
showing agreement to numerical accuracy (the output is close to zero). We can now verify Glennie’s \(G_8\) and \(G_9\) identities.
B <- function(x,y,z){2*(x*(y*z) + (x*y)*z - (x*z)*y)} # bracket function
H8 <- function(x,y,z){B(U(x)(U(y)(z)),z,x*y) - U(x)(U(y)(U(z)(x*y)))}
G8 <- function(x,y,z){H8(x,y,z)-H8(y,x,z)}
and so we verify for type 3 and type 5 Jordans:
## Vector of quaternionic Hermitian matrices with entries
## [1]
## [1,] 0.000000e+00
## [2,] 4.547474e-13
## [3,] -5.456968e-12
## [4,] -9.094947e-13
## [5,] 2.182787e-11
## ...................
## [41,] -1.818989e-11
## [42,] -5.456968e-12
## [43,] 4.547474e-12
## [44,] -1.818989e-12
## [45,] -1.455192e-11
## Vector of spin objects with entries
## a
## r -7.105427e-15
## [1] 0.000000e+00
## [2] -7.105427e-15
## [3] -7.105427e-15
## [4] -1.421085e-14
## [5] 2.842171e-14
again showing acceptable accuracy. The identity is not true for Albert algebras:
## Vector of Albert matrices with entries
## [1]
## d1 -3548.756
## d2 4725.027
## d3 -1176.271
## Re(o1) -9656.596
## i(o1) 2084.501
## j(o1) -3042.062
## k(o1) -11955.928
## l(o1) 9874.819
## il(o1) 13939.995
## jl(o1) 2402.327
## kl(o1) 10258.985
## Re(o2) -1897.960
## i(o2) -18147.457
## j(o2) -9749.166
## k(o2) -5105.221
## l(o2) 9852.301
## il(o2) -19952.518
## jl(o2) -8786.434
## kl(o2) -5976.901
## Re(o3) 12797.129
## i(o3) -5849.865
## j(o3) -11008.285
## k(o3) -6832.751
## l(o3) 12261.710
## il(o3) 5024.401
## jl(o3) -12186.564
## kl(o3) -637.169
L <- function(x){function(y){x*y}}
U <- function(x){function(y){2*x*(x*y)-(x*x)*y}}
U2 <- function(x,y){function(z){L(x)(L(y)(z)) + L(y)(L(x)(z)) - L(x*y)(z)}}
H9 <- function(x,y,z){2*U(x)(z)*U2(y,x)(U(z)(y*y)) - U(x)(U(z)(U2(x,y)(U(y)(z))))}
G9 <- function(x,y,z){H9(x,y,z)-H9(y,x,z)}
Then we may verify the G9()
identity for type 3
Jordans:
## Vector of quaternionic Hermitian matrices with entries
## [1]
## [1,] 1.164153e-10
## [2,] 2.037268e-10
## [3,] -1.455192e-10
## [4,] 2.619345e-10
## [5,] 2.328306e-10
## ...................
## [41,] -5.820766e-11
## [42,] 0.000000e+00
## [43,] 8.731149e-11
## [44,] -4.365575e-11
## [45,] -1.455192e-10
However, the Albert algebra does not satisfy the identity:
## Vector of Albert matrices with entries
## [1]
## d1 -7266.86356
## d2 -8376.22006
## d3 -176129.29514
## Re(o1) 63698.82453
## i(o1) -113610.70700
## j(o1) 18397.47508
## k(o1) -18360.14034
## l(o1) -53650.05517
## il(o1) 1693.22231
## jl(o1) 39312.82572
## kl(o1) 17003.00532
## Re(o2) -43832.17576
## i(o2) 15565.01374
## j(o2) -15984.80486
## k(o2) -5800.22870
## l(o2) -39014.58190
## il(o2) -53929.49807
## jl(o2) -47641.08428
## kl(o2) 7133.31837
## Re(o3) 12983.12738
## i(o3) -32369.08213
## j(o3) -85.85214
## k(o3) 997.06029
## l(o3) 44319.51887
## il(o3) -32342.86674
## jl(o3) 46682.35665
## kl(o3) 40460.20737