Macaulay2 » Documentation
Packages » PencilsOfQuadrics :: randomLineBundle
next | previous | forward | backward | up | index | toc

randomLineBundle -- a random line bundle on the hyperelliptic curve

Synopsis

Description

Chooses a random line bundle on the hyperelliptic curve E of genus g given by the equation y^2-(-1)^{g}*f, where f is the branch equation of degree (2g+2). Input with an integer d gives a random line bundle of degree d on E.

Note that a line bundle on E is given by the y-action which is represented by a traceless 2x2 matrix

b c

a -b

whose determinant equals to (-1)^{g}*f. We find such a matrix over a finite ground field by picking randomly b, a homogeneous form of degree (g+1), since the binary form b^2 + (-1)^{g}*f frequently factors.

i1 : kk=ZZ/101;
i2 : g=1;
i3 : rNP=randNicePencil(kk,g);
i4 : cM=cliffordModule(rNP.matFact1,rNP.matFact2,rNP.baseRing);
i5 : f=cM.hyperellipticBranchEquation

          3       2 2        3      4
o5 = - 12s t - 50s t  - 16s*t  + 47t

o5 : kk[s, t]
i6 : L=randomLineBundle(f)

o6 = VectorBundleOnE{...1...}

o6 : VectorBundleOnE
i7 : degOnE L

o7 = -1
i8 : m=L.yAction

o8 = {-2} | 39s2+21st+34t2 44s3-34s2t+7st2+2t3 |
     {-1} | 32s+t          -39s2-21st-34t2     |

                      2               2
o8 : Matrix (kk[s, t])  <-- (kk[s, t])
i9 : (m)^2_(0,0)+(-1)^g*f==0

o9 = true
i10 : L0=randomLineBundle(0,f)

o10 = VectorBundleOnE{...1...}

o10 : VectorBundleOnE
i11 : degOnE L0

o11 = 0
i12 : orderInPic L0

o12 = 37

Caveat

The ground field kk has to be finite.

See also

Ways to use randomLineBundle :

For the programmer

The object randomLineBundle is a method function.