diff --git a/src/sage/modular/btquotients/btquotient.py b/src/sage/modular/btquotients/btquotient.py index 29d4db2fbba..e0e049649ae 100644 --- a/src/sage/modular/btquotients/btquotient.py +++ b/src/sage/modular/btquotients/btquotient.py @@ -45,6 +45,7 @@ from sage.interfaces.magma import magma from sage.matrix.constructor import Matrix from sage.matrix.matrix_space import MatrixSpace +from sage.matrix.special import column_matrix from sage.misc.cachefunc import cached_method from sage.misc.latex import latex from sage.misc.lazy_attribute import lazy_attribute @@ -2273,9 +2274,7 @@ def _compute_embedding_matrix(self, prec, force_computation=False): else: phi = self._local_splitting_map(prec) B = self.get_eichler_order_basis() - return Matrix(Zmod(self._p ** prec), 4, 4, - [phi(B[kk])[ii, jj] for ii in range(2) - for jj in range(2) for kk in range(4)]) + return column_matrix(Zmod(self._p ** prec), 4, 4, [phi(b).list() for b in B]) @cached_method def get_extra_embedding_matrices(self): @@ -2441,12 +2440,10 @@ def get_embedding_matrix(self, prec=None, exact=False): verbose('self._prec = %s, prec = %s' % (self._prec, prec)) Iotamod = self._compute_embedding_matrix(prec) self._Iotainv_lift = Iotamod.inverse().lift() - self._Iota = Matrix(self._R, 4, 4, [Iotamod[ii, jj] - for ii in range(4) - for jj in range(4)]) + self._Iota = Matrix(self._R, Iotamod) self._prec = prec - self._Iotainv = self._Mat_44([self._Iotainv_lift[ii, jj] % self._pN for ii in range(4) for jj in range(4)]) + self._Iotainv = self._Mat_44(self._Iotainv_lift.apply_map(lambda x: x % self._pN)) return self._Iota def embed_quaternion(self, g, exact=False, prec=None): @@ -3153,8 +3150,7 @@ def _find_lattice(self, v1, v2, as_edges, m): v1adj = v1.adjugate() R = self._Mat_44 vecM = [v2 * X[ii] * v1adj for ii in range(4)] - M = self._Iotainv * R([[vecM[ii][jj, kk] for ii in range(4)] - for jj in range(2) for kk in range(2)]) + M = self._Iotainv * column_matrix(4, 4, [m.list() for m in vecM]) M = M.augment(R(self._pN)).transpose() E = M.echelon_form().submatrix(0, 0, 4, 4) Et = E.transpose()