Given a positive integer d, a non-negative integer g, and a ring F randomCurveP1P2 produces a random curve of bi-degree (d,d) and genus g in ℙ1×ℙ2. This is done by using the curve function from the SpaceCurves package to first generate a random curve of degree d and genus g in ℙ1×ℙ2, and then applying curveFromP3toP1P2 to produce a curve in ℙ1×ℙ2.
Since curveFromP3toP1P2 relies on projecting from the point [0:0:0:1] and the line [0:0:s:t], randomCurveP1P2 attempts to find a curve in ℙ3, which does not intersect the base locus of these projections. If the curve did intersect the base locus the resulting curve in ℙ1×ℙ2 would not have degree (d,d). The number of attempts used to try to find such curves is controlled by the Attempt option, which by default is set to 1000.
randomCurveP1P2(3,0); |
randomCurveP1P2(3,0,QQ); |
This creates a ring F[x0,0,x0,1,x1,0,x1,1,x1,2] in which the resulting ideal is defined.