Macaulay2 » Documentation
Packages » NumericalSemigroups :: heuristicSmoothness
next | previous | forward | backward | up | index | toc

heuristicSmoothness -- Check whether an affine curve is smooth

Synopsis

Description

We check for smoothness using only some of the minors of the jacobian matrix. If we are lucky this establishes smoothness. With bad luck we might fail even in case when c is smooth.

i1 : kk=ZZ/2; S=kk[x_0..x_3]

o2 = S

o2 : PolynomialRing
i3 : setRandomSeed "some singular and some smooth curves";
i4 : elapsedTime tally apply(10,i-> (
             c=minors(2,random(S^2,S^{3:-2}));
             c=sub(c,x_0=>1);
             R=kk[support c];c=sub(c,R);
             heuristicSmoothness c))
 -- 1.96215s elapsed

o4 = Tally{false => 6}
           true => 4

o4 : Tally

Ways to use heuristicSmoothness:

For the programmer

The object heuristicSmoothness is a method function with options.