kummer-degrees

Compute the degree of Kummer extensions
git clone https://git.tronto.net/kummer-degrees
Download | Log | Files | Refs | README | LICENSE

commit b98adb4b1a388dfa66a654b4a84f08cc72e4c660
parent 5cc5667c32570d57cb751b525ad51954711be1f6
Author: Sebastiano Tronto <sebastiano.tronto@gmail.com>
Date:   Tue, 30 Jul 2019 17:46:03 +0200

Improved text output message (instructions on how to read the table)

Diffstat:
Mkummer_degree.sage | 46++++++++++++++++++++++++++++------------------
1 file changed, 28 insertions(+), 18 deletions(-)

diff --git a/kummer_degree.sage b/kummer_degree.sage @@ -335,8 +335,6 @@ def parameters_Q4( gb, l ): return parameters_Q( gb, 2 ) - - # Uses Theorem 18 to compute the degree of Kummer extensions. def compute_vl( p, n, m, r ): h = [ x[1] for x in p ] @@ -625,26 +623,39 @@ def print_total_table( data ): print "M_0 =", M0 print "N_0 =", N0 print "" - print "The following table shows the total failure of Kummer degrees", + print "The following table shows the total failure of Kummer", + if torsion: + print "degrees in case the quotient M/N is EVEN." + else: + print "degrees." + print "The degree of the Kummer extension (M,N) is e / f, where", if torsion: - print "in\n case the quotient M/N is EVEN." + print "e = phi(M)*N^rank(G) if N is odd and e = 2*phi(M)*N^rank(G)", + print "if N is even", else: - print "." - print "Columns correspond to values of M, rows to values of N" + print "e = phi(M)*N^rank(G)", + print "and f is the entry of the table below at the row labelled with", + print "gcd(N,N0) and the column labelled with gcd(M,M0)." print "" - print "The degree of the Kummer extension (M,N) can be extracted by taking" - print "the value f (failure) of the entry at (gcd(N,N0),gcd(M,M0)) and" - print "simply computing ed(M,N) / f, where ed(M,N) is the expected degree" - print "of the Kummer extension." + + #print "Columns correspond to values of M, rows to values of N." + #print "" + #print "The degree of the Kummer extension (M,N) can be extracted by taking" + #print "the value f (failure) of the entry at (gcd(N,N0),gcd(M,M0)) and" + #print "simply computing ed(M,N) / f, where ed(M,N) is the expected degree" + #print "of the Kummer extension." + #if torsion: + # print "In this case (-1 is in G), we have ed(M,N) = 2^e*phi(M)*N^r," + # print "where e=1 if N is even and e=0 if N is odd." + #else: + # print "In this case (G is torsion-free) we have ed(M,N) = phi(M)*N^r," + #print "where r is the rank of G." + #print "" + if torsion: - print "In this case (-1 is in G), we have ed(M,N) = 2^e*phi(M)*N^r," - print "where e=1 if N is even and e=0 if N is odd." FT1 = torsion_table_even( data ) else: - print "In this case (G is torsion-free) we have ed(M,N) = phi(M)*N^r," FT1 = FT - print "where r is the rank of G." - print "" tt = [ ["","|"] + divs_M0 ] tt.append( "-" * (len(divs_M0)+2) ) @@ -654,9 +665,8 @@ def print_total_table( data ): print "" if torsion: - print "The following table shows the total failure of Kummer degrees in" - print "case the quotient M/N is ODD." - print "This table can be read exactly as the first one." + print "The following table shows the total failure of Kummer degrees", + print "in case the quotient M/N is ODD and is read as the previous one." print "" # A good strategy is the following: