" Oliver Labs RICAM (Linz, Austria) www.OliverLabs.net mail@OliverLabs.net www.ricam.oeaw.ac.at Oliver.Labs@oeaw.ac.at This Singular code verifies that the 99-nodal septic in our article has indeed 99 nodes. This version: November 2005, RICAM (Linz, Austria). Original version: August 2004, University of Mainz (Mainz, Germany). ----- "; LIB "all.lib"; option(redSB); // Often much faster for computations in algebraic extensions! // Notice that the order of the variables (x,y,z,w) results in 10 times slower computations! // Thanks to Christoph Lossen for these remarks. int startTime = rtimer; proc isTrue(int i) "Convert a boolean into a string FALSE or TRUE." { if(i==0) { return("FALSE"); } else { return("TRUE"); } } // If you want to see the code also in the output // then set echo = 1, else set echo = 0. echo = 0; int p = 0; // 0, or for faster checks, e.g.: 29, 32003 ring r = (p,alpha), (x,y,w,z), dp; minpoly = 7*alpha^3 + 7*alpha + 1; basering; poly a(1) = -12/7*alpha^2 - 384/49*alpha - 8/7; poly a(2) = -32/7*alpha^2 + 24/49*alpha - 4; poly a(3) = -4*alpha^2 + 24/49*alpha - 4; poly a(4) = -8/7*alpha^2 + 8/49*alpha - 8/7; poly a(5) = 49*alpha^2 - 7*alpha + 50; poly P = x*(x^6-3*7*x^4*y^2+5*7*x^2*y^4-7*y^6) + 7*z*((x^2+y^2)^3-2^3*z^2*(x^2+y^2)^2+2^4*z^4*(x^2+y^2)) - 2^6*z^7; poly C = a(1)*z^3+a(2)*z^2*w+a(3)*z*w^2+a(4)*w^3+(z+w)*(x^2+y^2); poly U = (z+a(5)*w)*C^2; poly S = P-U; "";"The following computation verifies that the total tjurina number of S_alpha is 99"; "and that all singularities are ordinary double points using the hessian criterion."; "";"Check the total tjurina number of the projective surface:"; ideal sl = jacob(S); "std..."; ideal newsl = std(sl); "dim:",dim(newsl)-1; "total tjurina:",mult(newsl); "time in seconds until now:",rtimer-startTime; "";"Check that all singularities are ordinary double points:"; matrix mHS = jacob(jacob(S)); ideal nonnodes = minor(mHS,2), sl; "std non-nodes..."; nonnodes = std(nonnodes); "dim:",dim(nonnodes),"mult:",mult(nonnodes); "If the dimension is zero, the projective dimension of nonnodes is -1."; "We can use this to verify that there are no non-nodes:"; "Are there only nodes?", isTrue(dim(nonnodes)==0); "time in seconds used:",rtimer-startTime; $;