This function creates an object of type DivisorClassRepresentativeM0nbar. Here is a basic example:
i1 : L1= { {{1,3},1}, {{1,4},1} }
o1 = {{{1, 3}, 1}, {{1, 4}, 1}}
o1 : List
|
i2 : divisorClassRepresentativeM0nbar(6,L1)
o2 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 3} => 1}}
{1, 4} => 1
NumberOfMarkedPoints => 6
o2 : DivisorClassRepresentativeM0nbar
|
The input can be a list or a hash table (see the documentation for (divisorClassRepresentativeM0nbar,ZZ,HashTable)) . The elements of the list should be pairs I,c. This will add c δI to the divisor class expression. Equivalently, you can type I=>c instead of I,c.
i3 : L2= { {1,3}=>1, {1,4}=>1 }
o3 = {{1, 3} => 1, {1, 4} => 1}
o3 : List
|
i4 : divisorClassRepresentativeM0nbar(6,L2)
o4 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 3} => 1}}
{1, 4} => 1
NumberOfMarkedPoints => 6
o4 : DivisorClassRepresentativeM0nbar
|
The function divisorClassRepresentative does some minimal testing to make sure the expression makes sense. For instance, if you type "L={{1,7}=>1 }" and then run "divisorClassRepresentativeM0nbar(6,L)" you will get an error that "The divisor expression is invalid."
The function sorts the divisor class labels. If sorting creates like terms, they are combined:
i5 : L3={ {{1,3},1}, {{1,4},1}, {{3,1},1} };
|
i6 : divisorClassRepresentativeM0nbar(6,L3)
o6 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 3} => 2}}
{1, 4} => 1
NumberOfMarkedPoints => 6
o6 : DivisorClassRepresentativeM0nbar
|
If #Ic < # I the function will replace δI by δIc.
i7 : L4= { {{1,3},1}, {{1,4},1}, {{2,4,5,6},1} };
|
i8 : divisorClassRepresentativeM0nbar(6,L4)
o8 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 3} => 2}}
{1, 4} => 1
NumberOfMarkedPoints => 6
o8 : DivisorClassRepresentativeM0nbar
|
If #I = n/2 and 1 is not in I it will replace δI by δIc.
i9 : L5= { {{1,3},1}, {{1,4},1}, {{4,5,6},1} };
|
i10 : divisorClassRepresentativeM0nbar(6,L5)
o10 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 2, 3} => 1}}
{1, 3} => 1
{1, 4} => 1
NumberOfMarkedPoints => 6
o10 : DivisorClassRepresentativeM0nbar
|
It deletes terms whose coefficient is zero.
i11 : L6= { {{1,3},1}, {{1,4},1}, {{4,5,6},1},{{1,2,3},-1} };
|
i12 : divisorClassRepresentativeM0nbar(6,L6)
o12 = DivisorClassRepresentativeM0nbar{DivisorExpression => HashTable{{1, 3} => 1}}
{1, 4} => 1
NumberOfMarkedPoints => 6
o12 : DivisorClassRepresentativeM0nbar
|