diff options
| author | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2019-07-30 17:46:03 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2019-07-30 17:46:03 +0200 |
| commit | b98adb4b1a388dfa66a654b4a84f08cc72e4c660 (patch) | |
| tree | 50751a763dfa4d285d2aa90b102ec397d152c289 | |
| parent | 5cc5667c32570d57cb751b525ad51954711be1f6 (diff) | |
| download | kummer-degrees-b98adb4b1a388dfa66a654b4a84f08cc72e4c660.tar.gz kummer-degrees-b98adb4b1a388dfa66a654b4a84f08cc72e4c660.zip | |
Improved text output message (instructions on how to read the table)
| -rw-r--r-- | kummer_degree.sage | 46 |
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. |
| 341 | def compute_vl( p, n, m, r ): | 339 | def 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: |
