X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_algebra.py;h=a2adbb2bed47499aea53b38fe175547b887fb2a9;hb=e6bb7aba7677a04c3aaa4d1fdd9dd45185db2067;hp=587d8e339463adaafb0a390ec164e76a6e5ca0c4;hpb=cf5e64b70869df65c7bb38888de54b1083e60d45;p=sage.d.git diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index 587d8e3..a2adbb2 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -1988,6 +1988,14 @@ class RealSymmetricEJA(MatrixEJA, RationalBasisEJA, ConcreteEJA): A = MatrixSpace(field, n) super().__init__(A, **kwargs) + from mjo.eja.eja_cache import real_symmetric_eja_coeffs + a = real_symmetric_eja_coeffs(self) + if a is not None: + if self._rational_algebra is None: + self._charpoly_coefficients.set_cache(a) + else: + self._rational_algebra._charpoly_coefficients.set_cache(a) + class ComplexHermitianEJA(MatrixEJA, RationalBasisEJA, ConcreteEJA): @@ -2070,6 +2078,13 @@ class ComplexHermitianEJA(MatrixEJA, RationalBasisEJA, ConcreteEJA): A = ComplexMatrixAlgebra(n, scalars=field) super().__init__(A, **kwargs) + from mjo.eja.eja_cache import complex_hermitian_eja_coeffs + a = complex_hermitian_eja_coeffs(self) + if a is not None: + if self._rational_algebra is None: + self._charpoly_coefficients.set_cache(a) + else: + self._rational_algebra._charpoly_coefficients.set_cache(a) @staticmethod def _max_random_instance_size(): @@ -2150,6 +2165,15 @@ class QuaternionHermitianEJA(MatrixEJA, RationalBasisEJA, ConcreteEJA): A = QuaternionMatrixAlgebra(n, scalars=field) super().__init__(A, **kwargs) + from mjo.eja.eja_cache import quaternion_hermitian_eja_coeffs + a = quaternion_hermitian_eja_coeffs(self) + if a is not None: + if self._rational_algebra is None: + self._charpoly_coefficients.set_cache(a) + else: + self._rational_algebra._charpoly_coefficients.set_cache(a) + + @staticmethod def _max_random_instance_size(): @@ -2281,9 +2305,9 @@ class OctonionHermitianEJA(MatrixEJA, RationalBasisEJA, ConcreteEJA): A = OctonionMatrixAlgebra(n, scalars=field) super().__init__(A, **kwargs) - if n == 3: - from mjo.eja.eja_cache import albert_eja_coeffs - a = albert_eja_coeffs(self.coordinate_polynomial_ring()) + from mjo.eja.eja_cache import octonion_hermitian_eja_coeffs + a = octonion_hermitian_eja_coeffs(self) + if a is not None: if self._rational_algebra is None: self._charpoly_coefficients.set_cache(a) else: