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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---