# curveClassRepresentativeM0nbar -- creates an object of type CurveClassRepresentativeM0nbar

## Description

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 F_{I_1,I_2,I_3,I_4}$ 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

## For the programmer

The object curveClassRepresentativeM0nbar is .