aboutsummaryrefslogtreecommitdiff
path: root/kummer_degree.sage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--kummer_degree.sage46
1 files changed, 28 insertions, 18 deletions
diff --git a/kummer_degree.sage b/kummer_degree.sage
index 6f3dab9..f592461 100644
--- a/kummer_degree.sage
+++ b/kummer_degree.sage
@@ -335,8 +335,6 @@ def parameters_Q4( gb, l ):
335 335
336 return parameters_Q( gb, 2 ) 336 return parameters_Q( gb, 2 )
337 337
338
339
340# Uses Theorem 18 to compute the degree of Kummer extensions. 338# Uses Theorem 18 to compute the degree of Kummer extensions.
341def compute_vl( p, n, m, r ): 339def compute_vl( p, n, m, r ):
342 h = [ x[1] for x in p ] 340 h = [ x[1] for x in p ]
@@ -625,26 +623,39 @@ def print_total_table( data ):
625 print "M_0 =", M0 623 print "M_0 =", M0
626 print "N_0 =", N0 624 print "N_0 =", N0
627 print "" 625 print ""
628 print "The following table shows the total failure of Kummer degrees", 626 print "The following table shows the total failure of Kummer",
627 if torsion:
628 print "degrees in case the quotient M/N is EVEN."
629 else:
630 print "degrees."
631 print "The degree of the Kummer extension (M,N) is e / f, where",
629 if torsion: 632 if torsion:
630 print "in\n case the quotient M/N is EVEN." 633 print "e = phi(M)*N^rank(G) if N is odd and e = 2*phi(M)*N^rank(G)",
634 print "if N is even",
631 else: 635 else:
632 print "." 636 print "e = phi(M)*N^rank(G)",
633 print "Columns correspond to values of M, rows to values of N" 637 print "and f is the entry of the table below at the row labelled with",
638 print "gcd(N,N0) and the column labelled with gcd(M,M0)."
634 print "" 639 print ""
635 print "The degree of the Kummer extension (M,N) can be extracted by taking" 640
636 print "the value f (failure) of the entry at (gcd(N,N0),gcd(M,M0)) and" 641 #print "Columns correspond to values of M, rows to values of N."
637 print "simply computing ed(M,N) / f, where ed(M,N) is the expected degree" 642 #print ""
638 print "of the Kummer extension." 643 #print "The degree of the Kummer extension (M,N) can be extracted by taking"
644 #print "the value f (failure) of the entry at (gcd(N,N0),gcd(M,M0)) and"
645 #print "simply computing ed(M,N) / f, where ed(M,N) is the expected degree"
646 #print "of the Kummer extension."
647 #if torsion:
648 # print "In this case (-1 is in G), we have ed(M,N) = 2^e*phi(M)*N^r,"
649 # print "where e=1 if N is even and e=0 if N is odd."
650 #else:
651 # print "In this case (G is torsion-free) we have ed(M,N) = phi(M)*N^r,"
652 #print "where r is the rank of G."
653 #print ""
654
639 if torsion: 655 if torsion:
640 print "In this case (-1 is in G), we have ed(M,N) = 2^e*phi(M)*N^r,"
641 print "where e=1 if N is even and e=0 if N is odd."
642 FT1 = torsion_table_even( data ) 656 FT1 = torsion_table_even( data )
643 else: 657 else:
644 print "In this case (G is torsion-free) we have ed(M,N) = phi(M)*N^r,"
645 FT1 = FT 658 FT1 = FT
646 print "where r is the rank of G."
647 print ""
648 659
649 tt = [ ["","|"] + divs_M0 ] 660 tt = [ ["","|"] + divs_M0 ]
650 tt.append( "-" * (len(divs_M0)+2) ) 661 tt.append( "-" * (len(divs_M0)+2) )
@@ -654,9 +665,8 @@ def print_total_table( data ):
654 print "" 665 print ""
655 666
656 if torsion: 667 if torsion:
657 print "The following table shows the total failure of Kummer degrees in" 668 print "The following table shows the total failure of Kummer degrees",
658 print "case the quotient M/N is ODD." 669 print "in case the quotient M/N is ODD and is read as the previous one."
659 print "This table can be read exactly as the first one."
660 print "" 670 print ""
661 671
662 # A good strategy is the following: 672 # A good strategy is the following:

Generated with cgit - Back to sebastiano.tronto.net