From f69c89ed86f1e6fd4ee44f5e7df73680801ed6f2 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 28 Jul 2019 13:26:57 -0400 Subject: [PATCH] eja: clean up imports. --- mjo/eja/eja_algebra.py | 37 ++++++++++++++++++++++++------------- mjo/eja/eja_operator.py | 2 +- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index 8ab6afa..ed8c85c 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -5,11 +5,22 @@ are used in optimization, and have some additional nice methods beyond what can be supported in a general Jordan Algebra. """ -from sage.all import * + from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra import FiniteDimensionalAlgebra from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element import FiniteDimensionalAlgebraElement +from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra from sage.categories.finite_dimensional_algebras_with_basis import FiniteDimensionalAlgebrasWithBasis +from sage.functions.other import sqrt +from sage.matrix.constructor import matrix +from sage.misc.cachefunc import cached_method +from sage.misc.prandom import choice +from sage.modules.free_module import VectorSpace +from sage.modules.free_module_element import vector +from sage.rings.integer_ring import ZZ +from sage.rings.number_field.number_field import QuadraticField +from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing +from sage.rings.rational_field import QQ from sage.structure.element import is_Matrix from sage.structure.category_object import normalize_names @@ -176,7 +187,7 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): self._multiplication_table, rank=r) - idmat = identity_matrix(J.base_ring(), n) + idmat = matrix.identity(J.base_ring(), n) W = self._charpoly_basis_space() W = W.change_ring(R.fraction_field()) @@ -196,10 +207,10 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): # We want the middle equivalent thing in our matrix, but use # the first equivalent thing instead so that we can pass in # standard coordinates. - x = J(vector(R, R.gens())) - l1 = [column_matrix(W.coordinates((x**k).vector())) for k in range(r)] + x = J(W(R.gens())) + l1 = [matrix.column(W.coordinates((x**k).vector())) for k in range(r)] l2 = [idmat.column(k-1).column() for k in range(r+1, n+1)] - A_of_x = block_matrix(R, 1, n, (l1 + l2)) + A_of_x = matrix.block(R, 1, n, (l1 + l2)) xr = W.coordinates((x**r).vector()) return (A_of_x, x, xr, A_of_x.det()) @@ -401,7 +412,7 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): The identity in `S^n` is converted to the identity in the EJA:: sage: J = RealSymmetricEJA(3) - sage: I = identity_matrix(QQ,3) + sage: I = matrix.identity(QQ,3) sage: J(I) == J.one() True @@ -1208,10 +1219,10 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): sage: A = matrix(QQ, 1, [x_vec.inner_product(x_vec)]) sage: B = 2*x0*x_bar.row() sage: C = 2*x0*x_bar.column() - sage: D = identity_matrix(QQ, n-1) + sage: D = matrix.identity(QQ, n-1) sage: D = (x0^2 - x_bar.inner_product(x_bar))*D sage: D = D + 2*x_bar.tensor_product(x_bar) - sage: Q = block_matrix(2,2,[A,B,C,D]) + sage: Q = matrix.block(2,2,[A,B,C,D]) sage: Q == x.quadratic_representation().matrix() True @@ -1854,7 +1865,7 @@ def _embed_complex_matrix(M): blocks.append(matrix(field, 2, [[a,b],[-b,a]])) # We can drop the imaginaries here. - return block_matrix(field.base_ring(), n, blocks) + return matrix.block(field.base_ring(), n, blocks) def _unembed_complex_matrix(M): @@ -1970,7 +1981,7 @@ def _embed_quaternion_matrix(M): # We should have real entries by now, so use the realest field # we've got for the return value. - return block_matrix(quaternions.base_ring(), n, blocks) + return matrix.block(quaternions.base_ring(), n, blocks) def _unembed_quaternion_matrix(M): @@ -2266,13 +2277,13 @@ class JordanSpinEJA(FiniteDimensionalEuclideanJordanAlgebra): @staticmethod def __classcall_private__(cls, n, field=QQ): Qs = [] - id_matrix = identity_matrix(field, n) + id_matrix = matrix.identity(field, n) for i in xrange(n): ei = id_matrix.column(i) - Qi = zero_matrix(field, n) + Qi = matrix.zero(field, n) Qi.set_row(0, ei) Qi.set_column(0, ei) - Qi += diagonal_matrix(n, [ei[0]]*n) + Qi += matrix.diagonal(n, [ei[0]]*n) # The addition of the diagonal matrix adds an extra ei[0] in the # upper-left corner of the matrix. Qi[0,0] = Qi[0,0] * ~field(2) diff --git a/mjo/eja/eja_operator.py b/mjo/eja/eja_operator.py index b225b29..1f10048 100644 --- a/mjo/eja/eja_operator.py +++ b/mjo/eja/eja_operator.py @@ -1,4 +1,4 @@ -from sage.all import matrix +from sage.matrix.constructor import matrix from sage.categories.all import FreeModules from sage.categories.map import Map -- 2.43.2