This function creates an object of type CurveClassRepresentativeM0nbar. Here is a basic example:
i1 : L1= { {{{1,2},{3},{4},{5}},1}, {{{1,3},{2},{4},{5}},1} }; |
i2 : curveClassRepresentativeM0nbar(5,L1) o2 = CurveClassRepresentativeM0nbar{CurveExpression => HashTable{{{1, 2}, {3}, {4}, {5}} => 1}} {{1, 3}, {2}, {4}, {5}} => 1 NumberOfMarkedPoints => 5 o2 : CurveClassRepresentativeM0nbar |
The input can be a list or a hash table (see the documentation for (curveClassRepresentativeM0nbar,ZZ,HashTable)) . The elements of the list should be pairs I1,I2,I3,I4,c. This will add c FI1,I2,I3,I4 to the curve class expression. Equivalently, you can type I1,I2,I3,I4=> instead of I1,I2,I3,I4,c.
i3 : L2= { {{1,2},{3},{4},{5}}=>1, {{1,3},{2},{4},{5}}=>1 }; |
i4 : curveClassRepresentativeM0nbar(5,L2) o4 = CurveClassRepresentativeM0nbar{CurveExpression => HashTable{{{1, 2}, {3}, {4}, {5}} => 1}} {{1, 3}, {2}, {4}, {5}} => 1 NumberOfMarkedPoints => 5 o4 : CurveClassRepresentativeM0nbar |
The function does some minimal testing to make sure the expression makes sense. If you type "L2=new HashTable from {{{1,7},{2},{3},{4}}=>1 }" and then run "curveClassRepresentativeM0nbar(6,L2)", you will get an error that "The curve expression is invalid."
The function sorts the curve class labels. If sorting creates like terms, they are combined:
i5 : L3={ {{{1,2},{3},{4},{5}},1}, {{{1,3},{2},{4},{5}},1}, {{{3},{4},{2,1},{5}},1}}; |
i6 : curveClassRepresentativeM0nbar(5,L3) o6 = CurveClassRepresentativeM0nbar{CurveExpression => HashTable{{{1, 2}, {3}, {4}, {5}} => 2}} {{1, 3}, {2}, {4}, {5}} => 1 NumberOfMarkedPoints => 5 o6 : CurveClassRepresentativeM0nbar |
It deletes terms whose coefficient is zero.
i7 : L4={ {{{1,2},{3},{4},{5}},1}, {{{1,3},{2},{4},{5}},1}, {{{3},{4},{2,1},{5}},-1}}; |
i8 : curveClassRepresentativeM0nbar(5,L4) o8 = CurveClassRepresentativeM0nbar{CurveExpression => HashTable{{{1, 3}, {2}, {4}, {5}} => 1}} NumberOfMarkedPoints => 5 o8 : CurveClassRepresentativeM0nbar |