Hi, I'm trying to run a simple script that basically loops through a long list of polynomials, does some things with them in Axiom, and imports the results back to Sage. After running for a while (60-90 minutes) it will hang with the message "Axiom crashed -- automatically restarting." At this point I have to Interrupt and manually restart the loop at the point where it failed.
Is there any way to catch this error automatically so I can continue processing without having to manually restart? I'd like to be able to leave it running overnight or for days at a time, and manually restarting it every hour is at best annoying. I've tested and the crash doesn't happen at any specific point in the input or even on a specific axiom command, but it does seem to occur after the same amount of time roughly (1-1.5 hours) even with different input, so I don't believe it's a coding flaw (even though that would probably be the easiest thing to fix). I'm more interested in finding a way to handle this error, though, than preventing it from happening. Running Sage 4.0.1 and Fricas 1.0.3 on Windows Vista. Here's the actual code I'm running, if it helps: var('x,y') axiom.set('Q', 'FRAC INT') axiom.set('Qx', 'UnivariatePolynomial(x,Q)') axiom.set('Qxy', 'UnivariatePolynomial(y,FRAC Qx)') def find_generator(D) : if (gcd(D,diff(D,x)) != 1): return [0,0] axiom.set('F', D) axiom.set('R', 'RadicalFunctionField(Q, Qx, Qxy, F :: Qx, 2)') axiom.set('V', 'FiniteDivisor(Q,Qx,Qxy,R)') axiom.set('S', 'PointsOfFiniteOrderRational(Qx, Qxy, R)') axiom.set('G', 'torsionIfCan(divisor(0,1)$V - divisor(0,-1)$V)$S') n = axiom('(G case "failed" => 0; G.order)').sage() if (n == 0) : return [0,0] # Needs .replace(' ','') since strings longer than 244 characters get extra spaces put into # them for some reason, which messes things up. f = sage_eval(axiom('lift(G.function) :: EXPR FRAC INT').unparsed_input_form().replace(' ',''), locals={'x':x, 'y':y}) return([n,f]) #---------------------------------------------------------- for a in range(-10,11) : for b in range(-10,11) : for c in range(-10,11) : D = x^4+a*x^3+b*x^2+c*x+1 G = find_generator(D) if (G != [0,0]): print(D,G) --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---