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

heuristicSmoothness -- Check whether an affine curve is smooth

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";
 -- setting random seed to 1644814534404491274313411285186041988099567563905780374824086062516559438
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))
 -- 5.25241s elapsed

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

o4 : Tally

Ways to use heuristicSmoothness:

  • heuristicSmoothness(Ideal)

For the programmer

The object heuristicSmoothness is a method function with options.


The source of this document is in NumericalSemigroups.m2:2744:0.