Macaulay2 » Documentation
Packages » WeierstrassSemigroups :: clearDenominators
next | previous | forward | backward | up | index | toc

clearDenominators -- Clear denominators

Description

Since we work at this point over a large prime field we might detect denominators for a lift to QQ by multiplying each equation by a factor such that the naive lifts are still small. The factors we try are have 2,3 and 5 as the only prime factors and are not so small.

i1 : L={7,8,17,19,20}

o1 = {7, 8, 17, 19, 20}

o1 : List
i2 : genus L

o2 = 12
i3 : I=semigroupIdeal(L,"BaseField"=>QQ);

o3 : Ideal of QQ[x ..x , x , x ..x ]
                  0   1   3   5   6
i4 : (answer,J,comp)=testBound(L,12,Verbose=>1);
# of coordinate linear subspace of the base = 21
# of linear subsets which leading to a point =21
i5 : (base1,family1)=getParameterFamily J;
i6 : base=last decompose base1


o6 = ideal (a      a       - a      a      , a      a       - a      a      ,
             {0, 2} {2, 3}    {0, 1} {1, 3}   {3, 4} {2, 3}    {1, 2} {1, 3}
  2
 a       - a      a      , a      a       - a      a      , a      a
  {0, 2}    {1, 2} {1, 3}   {0, 1} {0, 2}    {1, 2} {2, 3}   {3, 4} {0,
    - a      a      )
 1}    {1, 2} {0, 2}

 o6 : Ideal of QQ[a      , a      , a      , a      , a      , a      , a      ]
                  {1, 1}   {1, 2}   {3, 4}   {0, 1}   {0, 2}   {2, 3}   {1, 3}
 i7 : family=family1%sub(base,ring family1);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          10
 o7 : Matrix (QQ[x ..x , x , x ..x , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a       , a      , a      , a      , a      , a      , a       , a       , a      , a      , a      , a      , a       , a       , a      , a      , a      , a       , a       , a       , a       , a      , a      , a      ])  <-- (QQ[x ..x , x , x ..x , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a       , a      , a      , a      , a      , a      , a       , a       , a      , a      , a      , a      , a       , a       , a      , a      , a      , a       , a       , a       , a       , a      , a      , a      ])
                  0   1   3   5   6   {9, 0}   {8, 0}   {7, 0}   {6, 0}   {5, 0}   {4, 0}   {9, 1}   {7, 1}   {5, 1}   {4, 1}   {9, 3}   {9, 8}   {8, 7}   {6, 6}   {5, 5}   {4, 3}   {2, 2}   {1, 1}   {9, 9}   {8, 8}   {5, 6}   {4, 4}   {3, 3}   {1, 2}   {8, 9}   {7, 8}   {4, 5}   {3, 4}   {8, 10}   {7, 9}   {6, 8}   {5, 7}   {3, 5}   {0, 1}   {8, 11}   {7, 10}   {6, 9}   {5, 8}   {3, 6}   {0, 2}   {9, 14}   {6, 11}   {4, 8}   {3, 7}   {2, 3}   {9, 15}   {8, 14}   {6, 12}   {5, 11}   {4, 9}   {2, 4}   {1, 3}             0   1   3   5   6   {9, 0}   {8, 0}   {7, 0}   {6, 0}   {5, 0}   {4, 0}   {9, 1}   {7, 1}   {5, 1}   {4, 1}   {9, 3}   {9, 8}   {8, 7}   {6, 6}   {5, 5}   {4, 3}   {2, 2}   {1, 1}   {9, 9}   {8, 8}   {5, 6}   {4, 4}   {3, 3}   {1, 2}   {8, 9}   {7, 8}   {4, 5}   {3, 4}   {8, 10}   {7, 9}   {6, 8}   {5, 7}   {3, 5}   {0, 1}   {8, 11}   {7, 10}   {6, 9}   {5, 8}   {3, 6}   {0, 2}   {9, 14}   {6, 11}   {4, 8}   {3, 7}   {2, 3}   {9, 15}   {8, 14}   {6, 12}   {5, 11}   {4, 9}   {2, 4}   {1, 3}
 i8 : (worked,fiber)=solvingFlatteningRelations(base,family,I);
 # of coordinate linear subspace of the base = 2
 # of linear subsets which leading to a point =2
 i9 : p=nextPrime 10^5

 o9 = 100003
 i10 : kk=ZZ/p;
 i11 : SzFinite=kk[support J, Degrees=>apply(support J,m->degree m)]

 o11 = SzFinite

 o11 : PolynomialRing
 i12 : fibF=sub(fiber,SzFinite);

                      1             10
 o12 : Matrix SzFinite  <-- SzFinite
 i13 : fiber=fibF*diagonalMatrix({1/2_kk,2/3_kk,1/5_kk,4/3_kk,1/30_kk,2/5_kk,1/2_kk,1/3_kk,1/2_kk,1/3_kk})

 o13 = | -50001x_1^3+50001x_0x_3-50001x_1-50001x_0
  33335x_1x_5-33335x_0x_6+33335x_0^2+33335x_1-33335x_0
  -40001x_0^4+40001x_1x_6-40001x_0x_1-40001x_0^2+40001x_1
  -33333x_1^2x_3+33333x_0^2x_5+33333x_5-33333x_3-33333x_1^2-33333x_0x_1-
  33333x_0^2 -23334x_3^2+23334x_0^2x_6-23334x_0^3+23334x_6-23334x_1^2-
  46668x_0x_1+23334x_0^2-23334x_0+46668
  20001x_3x_5-20001x_1^2x_6+20001x_0x_1^2-20001x_6-20001x_5+20001x_3-
  20001x_1^2+20001x_0-40002
  -50001x_0^3x_1^2+50001x_3x_6-50001x_0x_3-50001x_0x_1^2-50001x_0^3-
  50001x_6+50001x_3-50001
  -33334x_0^3x_3+33334x_5^2-33334x_0^2x_1-33334x_0^3-33334x_6+33334x_0+
  33335 -50001x_0^2x_1x_3+50001x_5x_6-50001x_0x_5-50001x_0x_1^2-50001x_0^
  2x_1-50001x_0^3-50001x_6+50001x_5-50001
  -33334x_0^3x_5+33334x_6^2+33335x_0x_6-33334x_0x_5-33334x_0^3-33335x_6+
  33334x_0^2+x_0+33334 |

                      1             10
 o13 : Matrix SzFinite  <-- SzFinite
 i14 : (worked,fiber1)=clearDenominators fiber

 o14 = (true, | x_1^3-x_0x_3+x_1+x_0 2x_1x_5-2x_0x_6+2x_0^2+2x_1-2x_0
  x_0^4-x_1x_6+x_0x_1+x_0^2-x_1
  4x_1^2x_3-4x_0^2x_5-4x_5+4x_3+4x_1^2+4x_0x_1+4x_0^2
  x_3^2-x_0^2x_6+x_0^3-x_6+x_1^2+2x_0x_1-x_0^2+x_0-2
  2x_3x_5-2x_1^2x_6+2x_0x_1^2-2x_6-2x_5+2x_3-2x_1^2+2x_0-4
  x_0^3x_1^2-x_3x_6+x_0x_3+x_0x_1^2+x_0^3+x_6-x_3+1
  x_0^3x_3-x_5^2+x_0^2x_1+x_0^3+x_6-x_0+2
  x_0^2x_1x_3-x_5x_6+x_0x_5+x_0x_1^2+x_0^2x_1+x_0^3+x_6-x_5+1
  x_0^3x_5-x_6^2+2x_0x_6+x_0x_5+x_0^3-2x_6-x_0^2+3x_0-1 |)

o14 : Sequence

See also

Ways to use clearDenominators:

  • clearDenominators(Matrix)

For the programmer

The object clearDenominators is a method function with options.


The source of this document is in /build/reproducible-path/macaulay2-1.26.06+ds/M2/Macaulay2/packages/WeierstrassSemigroups.m2:2713:0.