|
|
A266322
|
|
Genera of complete intersection curves.
|
|
1
|
|
|
0, 1, 3, 4, 5, 6, 9, 10, 13, 15, 16, 17, 19, 21, 25, 28, 31, 33, 36, 37, 41, 45, 46, 49, 51, 55, 61, 64, 65, 66, 73, 76, 78, 81, 85, 91, 97, 99, 100, 101, 105, 106, 109, 113, 120, 121, 129, 136, 141, 144, 145, 148, 153, 161, 163, 166, 169, 171, 176, 181, 190
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
LINKS
|
|
|
PROG
|
(Sage)
def genus(degrees):
n = len(degrees) + 1
return 1 + 1 / 2 * prod(degrees) * (sum(degrees) - n - 1)
"""
Generate a list of all genera of complete intersection curves up to a cutoff.
Observe that the genus strictly increases if we increase the degree of a defining equation, while adding a hyperplane section keeps the degree fixed.
So we can obtain all low genera starting from the line in P^2, and increasing the number of equations and the degrees of the defining equations
"""
def listOfGenera(cutoff):
queue = [(1, )]
genera = []
while len(queue) > 0:
degrees = queue.pop()
g = genus(degrees)
if g < cutoff:
# if we haven't found this one yet we add it to the list
if g not in genera:
genera.append(g)
# use this to get information on how to realize a curve
# print (g, degrees)
# add all valid (d_1, ..., d_i+1, ..., d_{n-1})
for i in range(len(degrees)):
new = list(degrees)
new[i] = new[i] + 1
# we only look at increasing lists of degrees
if sorted(new) == new:
queue.append(tuple(new))
# add (d_1, ..., d_{n-1}, 2): with , 1 at the end genus is constant
queue.append(degrees + (2, ))
return sorted(genera)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|