From: Michael Orlitzky Date: Fri, 10 Apr 2026 13:38:27 +0000 (-0400) Subject: mjo/clan/normal_decomposition_element.py: test a claim from my paper X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=05cf816bdc93a0ecbd0bf41f5d17449656f9cc53;p=sage.d.git mjo/clan/normal_decomposition_element.py: test a claim from my paper In the off-diagonal components of the r^th row, Ishi orthogonality == 0 is equivalent to x*y == 0. --- diff --git a/mjo/clan/normal_decomposition_element.py b/mjo/clan/normal_decomposition_element.py index b577109..b36ce86 100644 --- a/mjo/clan/normal_decomposition_element.py +++ b/mjo/clan/normal_decomposition_element.py @@ -9,6 +9,30 @@ class NormalDecompositionElement(ClanElement): Ishi convention with the components (i,j) being ordered lexicographically and then within each component the basis elements (i,j,k) ordered arbitrarily. + + SETUP:: + + sage: from mjo.clan.random import random_clan + + TESTS: + + In my "Automorphisms of hyperbolic polynomials" paper, I claim + that the following inner product is zero if and only if the clan + product itself is zero:: + + sage: C = random_clan(nontrivial=True) + sage: while C.rank() < 2: + ....: # need rank >= 2 for the off-diagonal to exist + ....: C = random_clan(nontrivial=True) + sage: r = C.rank() - 1 + sage: j = ZZ.random_element(r) + sage: xs = ( C.random_element().elt(r,j) for _ in range(10) ) + sage: ys = ( C.random_element().elt(r,j) for _ in range(10) ) + sage: all( x.inner_product(y).is_zero() == (x*y).is_zero() + ....: for x in xs + ....: for y in ys ) + True + """ def tr(self):