sage: from mjo.eja.eja_algebra import (JordanSpinEJA,
....: TrivialEJA,
+ ....: RealSymmetricEJA,
+ ....: ComplexHermitianEJA,
....: random_eja)
EXAMPLES::
sage: x,y = J.random_elements(2)
sage: (x*y).det() == x.det()*y.det()
True
+
+ The determinant in matrix algebras is just the usual determinant::
+
+ sage: set_random_seed()
+ sage: X = matrix.random(QQ,3)
+ sage: X = X + X.T
+ sage: J1 = RealSymmetricEJA(3)
+ sage: J2 = RealSymmetricEJA(3,field=QQ,orthonormalize=False)
+ sage: expected = X.det()
+ sage: actual1 = J1(X).det()
+ sage: actual2 = J2(X).det()
+ sage: actual1 == expected
+ True
+ sage: actual2 == expected
+ True
+
+ ::
+
+ sage: set_random_seed()
+ sage: J1 = ComplexHermitianEJA(3)
+ sage: J2 = ComplexHermitianEJA(3,field=QQ,orthonormalize=False)
+ sage: X = matrix.random(GaussianIntegers(),3)
+ sage: X = X + X.H
+ sage: expected = AA(X.det())
+ sage: actual1 = J1(J1.real_embed(X)).det()
+ sage: actual2 = J2(J2.real_embed(X)).det()
+ sage: expected == actual1
+ True
+ sage: expected == actual2
+ True
+
"""
P = self.parent()
r = P.rank()
zero, but we need the characteristic polynomial for the
determinant. The minimal polynomial is a lot easier to get,
so we use Corollary 2 in Chapter V of Koecher to check
- whether or not the paren't algebra's zero element is a root
+ whether or not the parent algebra's zero element is a root
of this element's minimal polynomial.
That is... unless the coefficients of our algebra's
sage: n_max = RealSymmetricEJA._max_random_instance_size()
sage: n = ZZ.random_element(1, n_max)
sage: J1 = RealSymmetricEJA(n)
- sage: J2 = RealSymmetricEJA(n,normalize_basis=False)
+ sage: J2 = RealSymmetricEJA(n,orthonormalize=False)
sage: X = random_matrix(AA,n)
sage: X = X*X.transpose()
sage: x1 = J1(X)