# This program is called Res6point. # File1=testschemes is a list of test schemes Z # Change the line below to "verbose = 0" to # disable printing out all of the negative curves. # Each line of testschemes should be of the form: # 12 1 2 2 3 3 4 # The 12 represents which config out of the 90 possible # to use. The rest of the numbers are the 6 multiplicities. # Run this as: # awk -f Res6pointNEF-K testschemes BEGIN {verbose = 1 # Make an array of all 6 point (-1)-classes E[1]="0 1 0 0 0 0 0" E[2]="0 0 1 0 0 0 0" E[3]="0 0 0 1 0 0 0" E[4]="0 0 0 0 1 0 0" E[5]="0 0 0 0 0 1 0" E[6]="0 0 0 0 0 0 1" E[7]="1 -1 -1 0 0 0 0" E[8]="1 -1 0 -1 0 0 0" E[9]="1 -1 0 0 -1 0 0" E[10]="1 -1 0 0 0 -1 0" E[11]="1 -1 0 0 0 0 -1" E[12]="1 0 -1 -1 0 0 0" E[13]="1 0 -1 0 -1 0 0" E[14]="1 0 -1 0 0 -1 0" E[15]="1 0 -1 0 0 0 -1" E[16]="1 0 0 -1 -1 0 0" E[17]="1 0 0 -1 0 -1 0" E[18]="1 0 0 -1 0 0 -1" E[19]="1 0 0 0 -1 -1 0" E[20]="1 0 0 0 -1 0 -1" E[21]="1 0 0 0 0 -1 -1" E[22]="2 0 -1 -1 -1 -1 -1" E[23]="2 -1 0 -1 -1 -1 -1" E[24]="2 -1 -1 0 -1 -1 -1" E[25]="2 -1 -1 -1 0 -1 -1" E[26]="2 -1 -1 -1 -1 0 -1" E[27]="2 -1 -1 -1 -1 -1 0" En=27 C[1]="0 0 0 0 0 0 0" C[2]="0 1 -1 0 0 0 0" C[3]="1 -1 -1 -1 0 0 0" C[4]="2 -1 -1 -1 -1 -1 -1" C[5]="0 1 -1 0 0 0 0" C[6]="0 0 0 1 -1 0 0" C[7]="0 1 -1 0 0 0 0" C[8]="1 -1 -1 -1 0 0 0" C[9]="0 0 0 0 1 -1 0" C[10]="1 -1 -1 -1 0 0 0" C[11]="0 1 -1 0 0 0 0" C[12]="2 -1 -1 -1 -1 -1 -1" C[13]="1 -1 -1 -1 0 0 0" C[14]="1 -1 0 0 -1 -1 0" C[15]="0 1 -1 0 0 0 0" C[16]="0 0 1 -1 0 0 0" C[17]="0 0 0 1 -1 0 0" C[18]="1 -1 -1 -1 0 0 0" C[19]="1 -1 -1 -1 0 0 0" C[20]="1 0 0 0 -1 -1 -1" C[21]="0 1 -1 0 0 0 0" C[22]="0 0 0 1 -1 0 0" C[23]="0 0 0 0 0 1 -1" C[24]="0 1 -1 0 0 0 0" C[25]="0 0 0 0 1 -1 0" C[26]="1 -1 -1 -1 0 0 0" C[27]="0 0 1 -1 0 0 0" C[28]="1 -1 -1 -1 0 0 0" C[29]="1 -1 0 0 -1 -1 0" C[30]="0 1 -1 0 0 0 0" C[31]="0 0 0 1 -1 0 0" C[32]="2 -1 -1 -1 -1 -1 -1" C[33]="1 -1 -1 -1 0 0 0" C[34]="1 -1 0 0 -1 -1 0" C[35]="1 0 -1 0 -1 0 -1" C[36]="0 1 -1 0 0 0 0" C[37]="0 0 1 -1 0 0 0" C[38]="0 0 0 0 1 -1 0" C[39]="0 1 -1 0 0 0 0" C[40]="0 0 1 -1 0 0 0" C[41]="1 -1 -1 -1 0 0 0" C[42]="0 1 -1 0 0 0 0" C[43]="0 0 1 -1 0 0 0" C[44]="1 0 0 0 -1 -1 -1" C[45]="0 1 -1 0 0 0 0" C[46]="0 0 0 1 -1 0 0" C[47]="1 -1 -1 -1 0 0 0" C[48]="0 0 0 1 -1 0 0" C[49]="0 0 0 0 0 1 -1" C[50]="1 -1 -1 -1 0 0 0" C[51]="0 0 0 1 -1 0 0" C[52]="1 -1 -1 -1 0 0 0" C[53]="1 -1 0 0 0 -1 -1" C[54]="0 1 -1 0 0 0 0" C[55]="1 -1 -1 -1 0 0 0" C[56]="1 -1 0 0 -1 -1 0" C[57]="0 1 -1 0 0 0 0" C[58]="1 -1 -1 -1 0 0 0" C[59]="1 0 0 0 -1 -1 -1" C[60]="0 1 -1 0 0 0 0" C[61]="0 0 1 -1 0 0 0" C[62]="2 -1 -1 -1 -1 -1 -1" C[63]="0 1 -1 0 0 0 0" C[64]="0 0 1 -1 0 0 0" C[65]="0 0 0 1 -1 0 0" C[66]="0 0 0 1 -1 0 0" C[67]="0 0 0 0 1 -1 0" C[68]="1 -1 -1 -1 0 0 0" C[69]="0 1 -1 0 0 0 0" C[70]="0 0 0 0 1 -1 0" C[71]="1 -1 0 -1 -1 0 0" C[72]="0 1 0 0 0 0 -1" C[73]="1 -1 -1 -1 0 0 0" C[74]="1 -1 0 0 -1 -1 0" C[75]="0 0 1 -1 0 0 0" C[76]="0 0 0 1 -1 0 0" C[77]="1 -1 -1 -1 0 0 0" C[78]="0 0 1 -1 0 0 0" C[79]="0 0 0 0 1 -1 0" C[80]="1 -1 -1 -1 0 0 0" C[81]="1 -1 0 0 -1 -1 0" C[82]="0 1 -1 0 0 0 0" C[83]="0 0 0 1 -1 0 0" C[84]="0 0 0 0 0 1 -1" C[85]="2 -1 -1 -1 -1 -1 -1" C[86]="1 -1 -1 -1 0 0 0" C[87]="1 -1 0 0 -1 -1 0" C[88]="1 0 -1 0 -1 0 -1" C[89]="1 0 0 -1 0 -1 -1" C[90]="0 1 -1 0 0 0 0" C[91]="0 0 1 -1 0 0 0" C[92]="0 0 0 0 1 -1 0" C[93]="1 -1 -1 -1 0 0 0" C[94]="0 1 -1 0 0 0 0" C[95]="0 0 0 1 -1 0 0" C[96]="0 0 0 0 0 1 -1" C[97]="1 -1 -1 -1 0 0 0" C[98]="0 1 -1 0 0 0 0" C[99]="0 0 0 0 1 -1 0" C[100]="1 -1 -1 -1 0 0 0" C[101]="1 0 0 0 -1 -1 -1" C[102]="0 1 -1 0 0 0 0" C[103]="0 0 0 0 1 -1 0" C[104]="0 0 0 0 0 1 -1" C[105]="1 -1 -1 -1 0 0 0" C[106]="0 1 -1 0 0 0 0" C[107]="0 0 0 0 1 -1 0" C[108]="1 -1 -1 -1 0 0 0" C[109]="1 -1 0 0 -1 -1 0" C[110]="0 0 1 0 0 0 -1" C[111]="0 0 0 0 1 -1 0" C[112]="1 -1 -1 -1 0 0 0" C[113]="1 -1 0 0 -1 -1 0" C[114]="0 1 0 -1 0 0 0" C[115]="1 -1 -1 -1 0 0 0" C[116]="1 -1 0 0 -1 -1 0" C[117]="1 0 -1 0 -1 0 -1" C[118]="0 1 -1 0 0 0 0" C[119]="0 0 1 -1 0 0 0" C[120]="0 0 0 0 1 -1 0" C[121]="2 -1 -1 -1 -1 -1 -1" C[122]="0 1 -1 0 0 0 0" C[123]="0 0 1 -1 0 0 0" C[124]="0 0 0 1 -1 0 0" C[125]="0 0 0 0 0 1 -1" C[126]="0 1 -1 0 0 0 0" C[127]="0 0 0 1 -1 0 0" C[128]="0 0 0 0 1 -1 0" C[129]="1 -1 -1 -1 0 0 0" C[130]="0 1 -1 0 0 0 0" C[131]="0 0 0 0 1 0 -1" C[132]="1 -1 -1 -1 0 0 0" C[133]="1 -1 0 0 -1 -1 0" C[134]="0 1 -1 0 0 0 0" C[135]="0 0 1 -1 0 0 0" C[136]="1 -1 -1 -1 0 0 0" C[137]="1 -1 0 0 -1 -1 0" C[138]="0 1 0 0 0 0 -1" C[139]="0 0 1 -1 0 0 0" C[140]="1 -1 -1 -1 0 0 0" C[141]="1 -1 0 0 -1 -1 0" C[142]="0 0 1 -1 0 0 0" C[143]="0 0 0 1 -1 0 0" C[144]="1 -1 -1 -1 0 0 0" C[145]="1 0 0 0 -1 -1 -1" C[146]="0 0 1 -1 0 0 0" C[147]="0 0 0 1 -1 0 0" C[148]="0 0 0 0 0 1 -1" C[149]="1 -1 -1 -1 0 0 0" C[150]="0 1 -1 0 0 0 0" C[151]="0 0 1 -1 0 0 0" C[152]="0 0 0 1 -1 0 0" C[153]="2 -1 -1 -1 -1 -1 -1" C[154]="0 1 -1 0 0 0 0" C[155]="0 0 1 -1 0 0 0" C[156]="0 0 0 0 1 -1 0" C[157]="0 0 0 0 0 1 -1" C[158]="0 1 -1 0 0 0 0" C[159]="0 0 0 1 0 0 -1" C[160]="1 -1 -1 -1 0 0 0" C[161]="1 -1 0 0 -1 -1 0" C[162]="0 1 -1 0 0 0 0" C[163]="0 0 1 -1 0 0 0" C[164]="1 -1 -1 -1 0 0 0" C[165]="1 0 0 0 -1 -1 -1" C[166]="0 1 -1 0 0 0 0" C[167]="0 0 1 -1 0 0 0" C[168]="0 0 0 1 -1 0 0" C[169]="0 0 0 0 1 -1 0" C[170]="0 1 -1 0 0 0 0" C[171]="0 0 0 1 -1 0 0" C[172]="0 0 0 0 1 -1 0" C[173]="1 -1 0 -1 -1 0 0" C[174]="0 1 -1 0 0 0 0" C[175]="0 0 1 -1 0 0 0" C[176]="0 0 0 0 0 1 -1" C[177]="1 -1 0 0 -1 -1 0" C[178]="0 0 0 1 -1 0 0" C[179]="0 0 0 0 1 -1 0" C[180]="0 0 0 0 0 1 -1" C[181]="1 -1 -1 -1 0 0 0" C[182]="0 0 1 -1 0 0 0" C[183]="0 0 0 1 -1 0 0" C[184]="1 -1 -1 -1 0 0 0" C[185]="1 0 -1 0 0 -1 -1" C[186]="0 1 -1 0 0 0 0" C[187]="0 0 1 -1 0 0 0" C[188]="0 0 0 1 -1 0 0" C[189]="1 -1 -1 -1 0 0 0" C[190]="0 0 1 -1 0 0 0" C[191]="0 0 0 1 -1 0 0" C[192]="0 0 0 0 1 -1 0" C[193]="1 -1 -1 -1 0 0 0" C[194]="0 1 -1 0 0 0 0" C[195]="0 0 0 1 -1 0 0" C[196]="0 0 0 0 0 1 -1" C[197]="1 -1 0 -1 0 -1 0" C[198]="0 1 -1 0 0 0 0" C[199]="0 0 1 -1 0 0 0" C[200]="0 0 0 0 1 -1 0" C[201]="0 0 0 0 0 1 -1" C[202]="1 -1 -1 -1 0 0 0" C[203]="0 1 -1 0 0 0 0" C[204]="0 0 0 1 0 0 -1" C[205]="0 0 0 0 1 -1 0" C[206]="1 -1 -1 -1 0 0 0" C[207]="1 -1 0 0 -1 -1 0" C[208]="0 1 -1 0 0 0 0" C[209]="0 0 1 -1 0 0 0" C[210]="0 0 0 0 1 -1 0" C[211]="1 -1 -1 -1 0 0 0" C[212]="1 0 0 0 -1 -1 -1" C[213]="0 1 -1 0 0 0 0" C[214]="0 0 0 1 -1 0 0" C[215]="1 -1 -1 -1 0 0 0" C[216]="1 -1 0 0 0 -1 -1" C[217]="1 0 0 -1 -1 -1 0" C[218]="0 1 -1 0 0 0 0" C[219]="0 0 1 -1 0 0 0" C[220]="0 0 0 0 1 -1 0" C[221]="0 0 0 0 0 1 -1" C[222]="2 -1 -1 -1 -1 -1 -1" C[223]="0 0 1 -1 0 0 0" C[224]="0 0 0 1 -1 0 0" C[225]="0 0 0 0 0 1 -1" C[226]="1 -1 -1 -1 0 0 0" C[227]="1 -1 0 0 0 -1 -1" C[228]="0 1 0 0 -1 0 0" C[229]="0 0 0 1 0 -1 0" C[230]="1 -1 -1 -1 0 0 0" C[231]="1 -1 0 0 -1 0 -1" C[232]="1 0 0 -1 0 -1 -1" C[233]="0 1 -1 0 0 0 0" C[234]="0 0 1 -1 0 0 0" C[235]="0 0 0 0 1 -1 0" C[236]="1 -1 -1 -1 0 0 0" C[237]="1 -1 0 0 -1 -1 0" C[238]="0 1 0 0 0 0 -1" C[239]="0 0 1 -1 0 0 0" C[240]="0 0 0 0 1 -1 0" C[241]="1 -1 -1 -1 0 0 0" C[242]="1 -1 0 0 -1 -1 0" C[243]="0 0 1 -1 0 0 0" C[244]="0 0 0 1 0 0 -1" C[245]="0 0 0 0 1 -1 0" C[246]="1 -1 -1 -1 0 0 0" C[247]="1 -1 0 0 -1 -1 0" C[248]="0 1 -1 0 0 0 0" C[249]="0 0 1 -1 0 0 0" C[250]="0 0 0 1 -1 0 0" C[251]="0 0 0 0 0 1 -1" C[252]="2 -1 -1 -1 -1 -1 -1" C[253]="0 1 -1 0 0 0 0" C[254]="0 0 1 -1 0 0 0" C[255]="0 0 0 1 -1 0 0" C[256]="0 0 0 0 0 1 -1" C[257]="1 -1 -1 -1 0 0 0" C[258]="0 1 -1 0 0 0 0" C[259]="0 0 0 1 -1 0 0" C[260]="0 0 0 0 1 -1 0" C[261]="0 0 0 0 0 1 -1" C[262]="1 -1 -1 -1 0 0 0" C[263]="0 1 -1 0 0 0 0" C[264]="0 0 0 0 1 -1 0" C[265]="0 0 0 0 0 1 -1" C[266]="1 -1 -1 -1 0 0 0" C[267]="1 -1 0 0 -1 -1 0" C[268]="0 1 -1 0 0 0 0" C[269]="0 0 1 0 0 0 -1" C[270]="0 0 0 0 1 -1 0" C[271]="1 -1 -1 -1 0 0 0" C[272]="1 -1 0 0 -1 -1 0" C[273]="0 1 -1 0 0 0 0" C[274]="0 0 1 -1 0 0 0" C[275]="0 0 0 0 0 1 -1" C[276]="1 -1 -1 -1 0 0 0" C[277]="1 -1 0 0 -1 -1 0" C[278]="0 1 -1 0 0 0 0" C[279]="0 0 1 -1 0 0 0" C[280]="0 0 0 1 -1 0 0" C[281]="0 0 0 0 1 -1 0" C[282]="2 -1 -1 -1 -1 -1 -1" C[283]="0 1 -1 0 0 0 0" C[284]="0 0 1 -1 0 0 0" C[285]="0 0 0 1 -1 0 0" C[286]="0 0 0 0 1 -1 0" C[287]="0 0 0 0 0 1 -1" C[288]="0 1 -1 0 0 0 0" C[289]="0 0 1 -1 0 0 0" C[290]="0 0 0 0 1 -1 0" C[291]="0 0 0 0 0 1 -1" C[292]="1 -1 0 0 -1 -1 0" C[293]="0 1 -1 0 0 0 0" C[294]="0 0 1 -1 0 0 0" C[295]="0 0 0 1 -1 0 0" C[296]="1 -1 -1 -1 0 0 0" C[297]="1 -1 0 0 0 -1 -1" C[298]="0 0 1 -1 0 0 0" C[299]="0 0 0 1 -1 0 0" C[300]="0 0 0 0 1 -1 0" C[301]="0 0 0 0 0 1 -1" C[302]="1 -1 -1 -1 0 0 0" C[303]="0 1 -1 0 0 0 0" C[304]="0 0 0 1 -1 0 0" C[305]="0 0 0 0 1 -1 0" C[306]="0 0 0 0 0 1 -1" C[307]="1 -1 0 -1 -1 0 0" C[308]="0 1 -1 0 0 0 0" C[309]="0 0 1 -1 0 0 0" C[310]="0 0 0 1 -1 0 0" C[311]="0 0 0 0 1 -1 0" C[312]="1 -1 -1 -1 0 0 0" C[313]="0 1 -1 0 0 0 0" C[314]="0 0 1 -1 0 0 0" C[315]="0 0 0 0 1 -1 0" C[316]="0 0 0 0 0 1 -1" C[317]="1 -1 -1 -1 0 0 0" C[318]="1 0 0 0 -1 -1 -1" C[319]="0 1 -1 0 0 0 0" C[320]="0 0 0 1 -1 0 0" C[321]="0 0 0 0 0 1 -1" C[322]="1 -1 -1 -1 0 0 0" C[323]="1 -1 0 0 0 -1 -1" C[324]="1 0 0 -1 -1 -1 0" C[325]="0 1 -1 0 0 0 0" C[326]="0 0 1 -1 0 0 0" C[327]="0 0 0 0 1 -1 0" C[328]="0 0 0 0 0 1 -1" C[329]="1 -1 -1 -1 0 0 0" C[330]="1 -1 0 0 -1 -1 0" C[331]="0 1 -1 0 0 0 0" C[332]="0 0 1 -1 0 0 0" C[333]="0 0 0 1 0 0 -1" C[334]="0 0 0 0 1 -1 0" C[335]="1 -1 -1 -1 0 0 0" C[336]="1 -1 0 0 -1 -1 0" C[337]="0 1 -1 0 0 0 0" C[338]="0 0 1 -1 0 0 0" C[339]="0 0 0 1 -1 0 0" C[340]="0 0 0 0 1 -1 0" C[341]="0 0 0 0 0 1 -1" C[342]="2 -1 -1 -1 -1 -1 -1" C[343]="0 1 -1 0 0 0 0" C[344]="0 0 1 -1 0 0 0" C[345]="0 0 0 1 -1 0 0" C[346]="0 0 0 0 1 -1 0" C[347]="0 0 0 0 0 1 -1" C[348]="1 -1 -1 -1 0 0 0" Start[1]=1 Finish[1]=1 Start[2]=2 Finish[2]=2 Start[3]=3 Finish[3]=3 Start[4]=4 Finish[4]=4 Start[5]=5 Finish[5]=6 Start[6]=7 Finish[6]=8 Start[7]=9 Finish[7]=10 Start[8]=11 Finish[8]=12 Start[9]=13 Finish[9]=14 Start[10]=15 Finish[10]=16 Start[11]=17 Finish[11]=18 Start[12]=19 Finish[12]=20 Start[13]=21 Finish[13]=23 Start[14]=24 Finish[14]=26 Start[15]=27 Finish[15]=29 Start[16]=30 Finish[16]=32 Start[17]=33 Finish[17]=35 Start[18]=36 Finish[18]=38 Start[19]=39 Finish[19]=41 Start[20]=42 Finish[20]=44 Start[21]=45 Finish[21]=47 Start[22]=48 Finish[22]=50 Start[23]=51 Finish[23]=53 Start[24]=54 Finish[24]=56 Start[25]=57 Finish[25]=59 Start[26]=60 Finish[26]=62 Start[27]=63 Finish[27]=65 Start[28]=66 Finish[28]=68 Start[29]=69 Finish[29]=71 Start[30]=72 Finish[30]=74 Start[31]=75 Finish[31]=77 Start[32]=78 Finish[32]=81 Start[33]=82 Finish[33]=85 Start[34]=86 Finish[34]=89 Start[35]=90 Finish[35]=93 Start[36]=94 Finish[36]=97 Start[37]=98 Finish[37]=101 Start[38]=102 Finish[38]=105 Start[39]=106 Finish[39]=109 Start[40]=110 Finish[40]=113 Start[41]=114 Finish[41]=117 Start[42]=118 Finish[42]=121 Start[43]=122 Finish[43]=125 Start[44]=126 Finish[44]=129 Start[45]=130 Finish[45]=133 Start[46]=134 Finish[46]=137 Start[47]=138 Finish[47]=141 Start[48]=142 Finish[48]=145 Start[49]=146 Finish[49]=149 Start[50]=150 Finish[50]=153 Start[51]=154 Finish[51]=157 Start[52]=158 Finish[52]=161 Start[53]=162 Finish[53]=165 Start[54]=166 Finish[54]=169 Start[55]=170 Finish[55]=173 Start[56]=174 Finish[56]=177 Start[57]=178 Finish[57]=181 Start[58]=182 Finish[58]=185 Start[59]=186 Finish[59]=189 Start[60]=190 Finish[60]=193 Start[61]=194 Finish[61]=197 Start[62]=198 Finish[62]=202 Start[63]=203 Finish[63]=207 Start[64]=208 Finish[64]=212 Start[65]=213 Finish[65]=217 Start[66]=218 Finish[66]=222 Start[67]=223 Finish[67]=227 Start[68]=228 Finish[68]=232 Start[69]=233 Finish[69]=237 Start[70]=238 Finish[70]=242 Start[71]=243 Finish[71]=247 Start[72]=248 Finish[72]=252 Start[73]=253 Finish[73]=257 Start[74]=258 Finish[74]=262 Start[75]=263 Finish[75]=267 Start[76]=268 Finish[76]=272 Start[77]=273 Finish[77]=277 Start[78]=278 Finish[78]=282 Start[79]=283 Finish[79]=287 Start[80]=288 Finish[80]=292 Start[81]=293 Finish[81]=297 Start[82]=298 Finish[82]=302 Start[83]=303 Finish[83]=307 Start[84]=308 Finish[84]=312 Start[85]=313 Finish[85]=318 Start[86]=319 Finish[86]=324 Start[87]=325 Finish[87]=330 Start[88]=331 Finish[88]=336 Start[89]=337 Finish[89]=342 Start[90]=343 Finish[90]=348 } {config=$1 testscheme=$2" "$3" "$4" "$5" "$6" "$7 print ".........................................." print "Configuration: "config print ".........................................." print " " # Find the minus 1 curves k=0 for(i=1;i<=En;i++) { j=Start[config] test=0 while(test==0 && j<=Finish[config]) { if(dot(E[i],C[j]) < 0) test=1 j=j+1 } if(test==0) { k=k+1 M1[k]=i M1n=k } } if(verbose==1) { print "The exceptional curves are:" for(i=1;i<=M1n;i++) print " "E[M1[i]] print "The other negative curves are:" for(i=Start[config];i<=Finish[config];i++) print " "C[i] } print "Scheme: Z = "testscheme Ftmp=0" "testscheme flg=1 flag=0 while(flg==1) { flg=0 for(i=1;i<=M1n;i++) if(dot("1 0 0 0 0 0 0",E[M1[i]])==0 && dot(Ftmp,E[M1[i]]) > 0) { Ftmp=subtract(Ftmp,mult(E[M1[i]],-1)) flg=1 flag=1} for(i=Start[config];i<=Finish[config];i++) if(dot("1 0 0 0 0 0 0",C[i])==0 && dot(Ftmp,C[i]) > 0) { Ftmp=subtract(Ftmp,mult(C[i],-1)) flg=1 flag=1} } if(flag==1) { split(Ftmp, D, " ") testscheme=D[2]" "D[3]" "D[4]" "D[5]" "D[6]" "D[7] print "Your Z does not satisfy the proximity inequalities." print "Subtracting off components of blow ups to get a Z" print "which does, turns your Z into: Z = "testscheme } h0=0 deg=-1 fflag=1 while(h0==0) { deg=deg+1 testclass=deg" "mult(testscheme,-1) split(h0andh1(testclass), hh, " ") h0=hh[1] h1=hh[2] fflag=fixedflag(testclass)} alpha=deg print "alpha: "alpha while(fflag==1) { deg=deg+1 testclass=deg" "mult(testscheme,-1) fflag=fixedflag(testclass)} print "FCfree in degree: "deg delta=deg+1 h1=1 deg=alpha-2 while(h1>0) { deg=deg+1 testclass=deg" "mult(testscheme,-1) split(h0andh1(testclass), hh, " ") h0=hh[1] h1=hh[2]} tau=deg print "tau: "tau for(j=alpha;j<=delta+2;j++) { testclass=j" "mult(testscheme,-1) split(h0andh1(testclass), hh, " ") hilb[j-alpha+1]=hh[1] } for(j=alpha;j<=delta+1;j++) { testclass=j" "mult(testscheme,-1) myclass=subtract(getFreepart(testclass),"-1 0 0 0 0 0 0") split(h0andh1(myclass), hh, " ") hilbfree[j-alpha+2]=hh[1] } gens[1]=hilb[1] for(j=alpha+1;j<=delta+2;j++) { gens[j-alpha+1]=hilb[j-alpha+1]-hilbfree[j-alpha+1] if(hilbfree[j-alpha+1]>3*hilb[j-1-alpha+1]) gens[j-alpha+1]=gens[j-alpha+1]+hilbfree[j-alpha+1]-3*hilb[j-1-alpha+1] } syz[1]=gens[1]-hilb[1] syz[2]=gens[2]-hilb[2]+3*hilb[1] syz[3]=gens[3]-hilb[3]+3*hilb[2]-3*hilb[1] for(j=alpha+3;j<=delta+2;j++) { syz[j-alpha+1]=gens[j-alpha+1]-hilb[j-alpha+1]+3*hilb[j-alpha]-3*hilb[j-alpha-1]+hilb[j-alpha-2] } print "deg hilb_I gens syz hilb_Z" for(j=alpha;j<=delta+2;j++) print j" "hilb[j-alpha+1]" "gens[j-alpha+1]" "syz[j-alpha+1]" "(j+1)*(j+2)/2-hilb[j-alpha+1] # end of testschemes loop print ".........................................." print " " } function fixedflag(F, flg,i) # return 1 if fixed part is nonempty, 0 otherwise {flg=0 for(i=1;i<=M1n;i++) if(dot(F,E[M1[i]]) < 0) { flg=1} for(i=Start[config];i<=Finish[config];i++) if(dot(F,C[i]) < 0) { flg=1} return flg } function getFreepart(F, Ftmp,n,D,flg,i) {Ftmp=F n=split(F, D, " ") flg=0 while(D[1]>=0 && flg==0) { flg=1 for(i=1;i<=M1n;i++) if(dot(Ftmp,E[M1[i]]) < 0) { Ftmp=subtract(Ftmp,E[M1[i]]) flg=0} for(i=Start[config];i<=Finish[config];i++) if(dot(Ftmp,C[i]) < 0) { Ftmp=subtract(Ftmp,C[i]) flg=0} split(Ftmp, D, " ") } return Ftmp } # F must be a class for at least 3 blow ups function h0andh1(F, n, D, Ftmp, i, vdim, dim, flg) {Ftmp=F n=split(F, D, " ") vdim=(D[1]+1)*(D[1]+2) for(i=2;i<=n;i++) vdim=vdim-(-D[i]+1)*(-D[i]) i=int(vdim/2)-1 while(i*2=0 && flg==0) { flg=1 for(i=1;i<=M1n;i++) if(dot(Ftmp,E[M1[i]]) < 0) { Ftmp=subtract(Ftmp,E[M1[i]]) flg=0} for(i=Start[config];i<=Finish[config];i++) if(dot(Ftmp,C[i]) < 0) { Ftmp=subtract(Ftmp,C[i]) flg=0} split(Ftmp, D, " ") } # The divisor has now been reduced if(D[1]<0) dim=0 else { dim=(D[1]+1)*(D[1]+2) for(i=2;i<=n;i++) { dim=dim-(-D[i]+1)*(-D[i])} i=int(dim/2)-1 while(i*2