For very small fields the auxiliar curve might not have enough kk-rational points. In that case the program might run into an infinite loop. However some printing will done for the various steps.
"Rao" means that the random construction of the Hartshorne-Rao module of E in P3 has to be repeated
"E" means that the construction of E from the Hartshorne-Rao module has to be repeated
"6 points" means that the selection of 6 distinct kk-rational points on E has to be repeated
"matrixFactorizationFromModule" means that we fail at the step from N to the matrix factorization (M0,M1)
"curveFromMatrixFactorization" means that we fail at the stage from (M0,M1) to C in sense that the curve has not the right dimension, degree or genus.
In case of certify=>true we check for smoothness. "singular curve" means that we have to repeat the construction to get a smooth curve. We do this at most k times if attempts=>k. If we fail every time we return null.
The default values of the options are certify=>true and attempts=>1.
In a future release we will improve the construction of the 6 points to cover also very small fields.
i1 : kk=ZZ/10007; |
i2 : S=kk[x_0..x_4] o2 = S o2 : PolynomialRing |
i3 : time C=randomCurveOfGenus15(S,certify=>false,attempts=>1); -- used 2.46193 seconds o3 : Ideal of S |
i4 : time (isSmoothCurve C, degree C, genus C)==(true,16,15) -- used 5.48719 seconds o4 = true |
i5 : time C=randomCurveOfGenus15(S,certify=>true,attempts=>1); -- used 6.84502 seconds o5 : Ideal of S |