From 1f6939367cc2ef2f25f8798cc0d36d1d393040e2 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 8 Apr 2026 20:27:25 -0400 Subject: [PATCH] mjo/matrix_algebra.py: use Sage's octonions in all tests --- mjo/matrix_algebra.py | 51 +++++++++++-------------------------------- 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/mjo/matrix_algebra.py b/mjo/matrix_algebra.py index 5df5c21..e2b5168 100644 --- a/mjo/matrix_algebra.py +++ b/mjo/matrix_algebra.py @@ -298,7 +298,6 @@ class MatrixAlgebra(CombinatorialFreeModule): SETUP:: - sage: from mjo.hurwitz import Octonions sage: from mjo.matrix_algebra import MatrixAlgebra EXAMPLES: @@ -311,27 +310,6 @@ class MatrixAlgebra(CombinatorialFreeModule): Octonions:: - sage: A = MatrixAlgebra(1, Octonions(), QQ) - sage: e = A.entry_algebra_gens() - sage: A._entry_algebra_element_to_vector(e[0]) - (1, 0, 0, 0, 0, 0, 0, 0) - sage: A._entry_algebra_element_to_vector(e[1]) - (0, 1, 0, 0, 0, 0, 0, 0) - sage: A._entry_algebra_element_to_vector(e[2]) - (0, 0, 1, 0, 0, 0, 0, 0) - sage: A._entry_algebra_element_to_vector(e[3]) - (0, 0, 0, 1, 0, 0, 0, 0) - sage: A._entry_algebra_element_to_vector(e[4]) - (0, 0, 0, 0, 1, 0, 0, 0) - sage: A._entry_algebra_element_to_vector(e[5]) - (0, 0, 0, 0, 0, 1, 0, 0) - sage: A._entry_algebra_element_to_vector(e[6]) - (0, 0, 0, 0, 0, 0, 1, 0) - sage: A._entry_algebra_element_to_vector(e[7]) - (0, 0, 0, 0, 0, 0, 0, 1) - - Sage OctonionAlgebra:: - sage: O = OctonionAlgebra(QQ) sage: A = MatrixAlgebra(1, O, QQ) sage: e = A.entry_algebra_gens() @@ -391,22 +369,21 @@ class MatrixAlgebra(CombinatorialFreeModule): SETUP:: - sage: from mjo.hurwitz import Octonions sage: from mjo.matrix_algebra import MatrixAlgebra TESTS:: - sage: O = Octonions(QQ) - sage: e = O.gens() - sage: e[2]*e[1] - -e3 - sage: A = MatrixAlgebra(2,O,QQ) - sage: A.product_on_basis( (0,0,e[2]), (0,0,e[1]) ) - ┌─────┬───┐ - │ -e3 │ 0 │ - ├─────┼───┤ - │ 0 │ 0 │ - └─────┴───┘ + sage: O = OctonionAlgebra(QQ) + sage: i,j,k,l = O.gens() + sage: k*j + i + sage: A = MatrixAlgebra(2, O, QQ) + sage: A.product_on_basis( (0,0,k), (0,0,j) ) + ┌───┬───┐ + │ i │ 0 │ + ├───┼───┤ + │ 0 │ 0 │ + └───┴───┘ """ (i,j,e1) = mon1 @@ -485,10 +462,8 @@ class MatrixAlgebra(CombinatorialFreeModule): # to/from_vector() methods are available. return self.entry_algebra()(e_ij) except TypeError: - # We have to pass through vectors to convert from the - # given entry algebra to ours. Otherwise we can fail to - # convert an element of (for example) Octonions(QQ) to - # Octonions(AA). + # Pass through vectors as a generic way to convert + # from the given entry algebra to ours. return self.entry_algebra().from_vector(e_ij.to_vector()) def entry_to_element(i,j,entry): -- 2.53.0