]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/clan/unital_clan.py: add hand computations for the Vinberg clan
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 16 Feb 2026 23:36:24 +0000 (18:36 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 16 Feb 2026 23:36:24 +0000 (18:36 -0500)
mjo/clan/unital_clan.py

index 626918345e8510c41c5fb9efa2ca0121daaab76f..3bc8b5d8fb4db2748ea10cf4200dad999ca869f4 100644 (file)
@@ -618,6 +618,41 @@ class VinbergClan(NormalDecomposition):
         ....:      if not i in [j,k] )
         True
 
+    The multiplication in this clan (verified by hand) is as
+    follows)::
+
+        sage: C = VinbergClan()
+        sage: x = C.random_element()
+        sage: y = C.random_element()
+        sage: z = x*y
+        sage: x = x.to_vector()
+        sage: y = y.to_vector()
+        sage: z = z.to_vector()
+        sage: z[0] == x[0]*y[0]
+        True
+        sage: z[1] == y[1]*(x[0] + x[2])/QQ(2) + y[0]*x[1]
+        True
+        sage: z[2] == 2*x[1]*y[1] + x[2]*y[2]
+        True
+        sage: z[3] == y[3]*(x[0] + x[4])/QQ(2) + y[0]*x[3]
+        True
+        sage: z[4] == 2*x[3]*y[3] + x[4]*y[4]
+        True
+
+    The Ishi inner product in this clan (verified by hand) is as
+    follows::
+
+        sage: C = VinbergClan()
+        sage: x = C.random_element()
+        sage: y = C.random_element()
+        sage: actual = x.inner_product(y)
+        sage: x = x.to_vector()
+        sage: y = y.to_vector()
+        sage: expected = ( x[0]*y[0] + x[2]*y[2] + x[4]*y[4] +
+        ....:              2*x[1]*y[1] + 2*x[3]*y[3] ) / QQ(2)
+        sage: actual == expected
+        True
+
     """
     def _unlift(self, pair):
         A,B = pair