]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/clan/normal_decomposition.py: special case for rank zero
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 4 Mar 2026 13:03:21 +0000 (08:03 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 4 Mar 2026 13:03:21 +0000 (08:03 -0500)
mjo/clan/normal_decomposition.py

index 89ca02536f7b2c812f877f630957a827de274977..fb9d8bf61ad89eb1d6b63f4357a9c3b822daf14b 100644 (file)
@@ -30,11 +30,14 @@ class NormalDecomposition(Clan):
 
         category = Clans(scalar_field).or_subcategory(category).Unital()
 
-        # The normal decomposition assumes that we already have a
-        # lower-triangular (Ishi) basis of the form (i,j,k).
-        self._rank = 1 + max( k[0]
-                              for k in vector_space.indices()
-                              if k[0] == k[1] )
+        if vector_space.dimension().is_zero():
+            self._rank = 0
+        else:
+            # The normal decomposition assumes that we already have a
+            # lower-triangular (Ishi) basis of the form (i,j,k).
+            self._rank = 1 + max( k[0]
+                                  for k in vector_space.indices()
+                                  if k[0] == k[1] )
 
         super().__init__(vector_space,
                          clan_product,