The procedure starts by choosing
1) an ideal I of delta random points in ℙ2, and then returns
2) the principal ideal generated by an random element in the saturated square J=saturate(I2) of degree d.
If the procedure fails, for example if Jd=0, then the null is returned.
Under the option Certified=>true, the result is certified by establishing that
1) the points are distinct nodes, and that
2) the curve has ordinary nodes at these points
by using the Jacobian criterion applied to the singular locus of the curve.
Under the option Attempts=>n, the program makes n attempts in both steps to achieve the desired goal. Here n can be infinity. The default value is n=1.
i1 : R=ZZ/101[x_0..x_2]; |
i2 : F=(random nodalPlaneCurve)(8,5,R); o2 : Ideal of R |
i3 : (dim F, degree F) o3 = (2, 8) o3 : Sequence |
i4 : singF = F + ideal jacobian F; o4 : Ideal of R |
i5 : (dim singF,degree singF) o5 = (1, 5) o5 : Sequence |
Over very small fields the curves are often singular:
i6 : R=ZZ/3[x_0..x_2]; |
i7 : tally apply(3^4,i-> null===((random nodalPlaneCurve)(8,5,R,Certify=>true, Attempts=>1))) o7 = Tally{false => 12} true => 69 o7 : Tally |
The object nodalPlaneCurve is an object of class RandomObject.