X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feuclidean_jordan_algebra.py;h=1e5ada2188c3b6b3834165f221ab20b56d5c1f98;hb=f2564c0412a2498ff32245a848ba61746124eaf8;hp=3cec4fad035e0330e22598bd77f6e5b1dc9b6074;hpb=5a2de76fe9fa3a4b25ad44f8b3a64ce12cea83b9;p=sage.d.git diff --git a/mjo/eja/euclidean_jordan_algebra.py b/mjo/eja/euclidean_jordan_algebra.py index 3cec4fa..1e5ada2 100644 --- a/mjo/eja/euclidean_jordan_algebra.py +++ b/mjo/eja/euclidean_jordan_algebra.py @@ -1182,13 +1182,13 @@ def _embed_complex_matrix(M): sage: x2 = F(1 + 2*i) sage: x3 = F(-i) sage: x4 = F(6) - sage: M = matrix(F,2,[x1,x2,x3,x4]) + sage: M = matrix(F,2,[[x1,x2],[x3,x4]]) sage: _embed_complex_matrix(M) - [ 4 2| 1 -2] - [-2 4| 2 1] + [ 4 -2| 1 2] + [ 2 4|-2 1] [-----+-----] - [ 0 1| 6 0] - [-1 0| 0 6] + [ 0 -1| 6 0] + [ 1 0| 0 6] """ n = M.nrows() @@ -1199,7 +1199,7 @@ def _embed_complex_matrix(M): for z in M.list(): a = z.real() b = z.imag() - blocks.append(matrix(field, 2, [[a,-b],[b,a]])) + blocks.append(matrix(field, 2, [[a,b],[-b,a]])) # We can drop the imaginaries here. return block_matrix(field.base_ring(), n, blocks) @@ -1216,8 +1216,17 @@ def _unembed_complex_matrix(M): ....: [ 9, 10, 11, 12], ....: [-10, 9, -12, 11] ]) sage: _unembed_complex_matrix(A) - [ -2*i + 1 -4*i + 3] - [ -10*i + 9 -12*i + 11] + [ 2*i + 1 4*i + 3] + [ 10*i + 9 12*i + 11] + + TESTS:: + + sage: set_random_seed() + sage: F = QuadraticField(-1, 'i') + sage: M = random_matrix(F, 3) + sage: _unembed_complex_matrix(_embed_complex_matrix(M)) == M + True + """ n = ZZ(M.nrows()) if M.ncols() != n: @@ -1238,7 +1247,7 @@ def _unembed_complex_matrix(M): raise ValueError('bad real submatrix') if submat[0,1] != -submat[1,0]: raise ValueError('bad imag submatrix') - z = submat[0,0] + submat[1,0]*i + z = submat[0,0] + submat[0,1]*i elements.append(z) return matrix(F, n/2, elements)