print "Ideal: " + str(f) print startLog() rg = f.GB() print "seq GB:", rg print #p = t**16 + 272 * t**12 - 7072 * t**8 + 3207424 * t**4 + 12960000; p = t - x - 2 * y #p = p * (y**4 + 4); p = abs(p) n = f.reduction(p) print "p = %s, n = %s " % (p, n) print n = rg.reduction(p) print "p = %s, n = %s " % (p, n) print N = rg.lift(p) print "p = %s, N = %s " % (p, [str(a) for a in N]) print pp = sum([ci * RingElem(ni) for ci, ni in zip(N, rg.list)]) print "N * rg == p:", pp == p #terminate();
ff = [ a*c, b*c ]; print "ff = " + str([ str(f) for f in ff ]); print ii = pt.ideal( "", ff ); print "SolvableIdeal: " + str(ii); print; #exit(0); rgl = ii.leftGB(); print "seq left GB: " + str(rgl); print "isLeftGB: " + str(rgl.isLeftGB()); print; p = RingElem(rgl.list.get(0)); print "p = " + str(p); print "c-p = " + str(c-p); #print "monic(p) = " + str(p.monic()); pp = p * p; print "p*p = " + str(pp); print "p*y*z = " + str(p*y*z); print "p*t = " + str(p*t); print "t*p = " + str(t*p); print; #no: fl = [ p, p*x ]; # x non existent #fl = [ p, p*y ]; #no: fl = [ p, p*z ]; #fl = [ p, p*t, p*y ]; #bad: fl = [ p, p*t, p*p ];
r = WordPolyRing(PolyRing(ZZ(), "a, c, b", PolyRing.lex), "y2, y1, z1, z2, x") print "Ring: " + str(r) print one, a, c, b, y2, y1, z1, z2, x = r.gens() p1 = x + 2 * y1 * z1 + 3 * a * y1**2 + 5 * y1**4 + 2 * c * y1 p2 = x + 2 * y2 * z2 + 3 * a * y2**2 + 5 * y2**4 + 2 * c * y2 p3 = 2 * z2 + 6 * a * y2 + 20 * y2**3 + 2 * c p4 = 3 * z1**2 + y1**2 + b p5 = 3 * z2**2 + y2**2 + b F = [p1, p2, p3, p4, p5] # make all variables commute cm = [RingElem(q) for q in r.ring.commute()] print "commute: " + str([str(q) for q in cm]) print g = r.ideal("", F + cm) print "Ideal: " + str(g) print startLog() rg = g.GB() print "GB: " + str(rg) print bg = rg.isGB() print "isGB: " + str(bg)
if False: rg = f.parGB(tnum) for th in range(tnum, 0, -1): rg = f.parGB(th) #print "par Output:", rg; #print; rg = f.GB() #print "seq Output:", rg; print arri = arris_algorithm() ggv1 = ggv_first_implementation() ff5 = f5z() F = [RingElem(e) for e in f.list] print "F:", str([str(e) for e in F]) print if False: ##gg = staglinbasis(F); #gg = staglinbasis(F); t = System.currentTimeMillis() gg = staglinbasis(F) t = System.currentTimeMillis() - t print "stag executed in " + str(t) + " milliseconds" if not r.ideal(list=gg).isGB(): print "stag no GB" print "stag Output:" + str([str(ggg) for ggg in gg]) print
print ii = pt.ideal( "", ff ); print "SolvableIdeal: " + str(ii); print; #exit(0); #startLog(); rgl = ii.leftGB(); print "seq left GB: " + str(rgl); print "isLeftGB: " + str(rgl.isLeftGB()); print; #p = RingElem(rgl.list.get(0)); p = RingElem(rgl.list[0]); print "p = " + str(p); print "c = " + str(c); #print "c-p = " + str(c-p); d = c.monic(); print "d=monic(c) = " + str(d); print "d-p = " + str(d-p); print; #exit(0); #no: fl = [ p, p*x ]; # x non existent #no: fl = [ p, p*z ]; #bad: fl = [ p, p*t, p*p ]; #bad: fl = [ p, p*p ]; #fl = [ p, p*t ];
print "x: " + str(x); print "x == b: " + str(x == b); print; L, U, P = a.decompLU(); print "P: " + str(P); print; if P.elem.size() != 0: print "L: " + str(L); print; print "U: " + str(U); print; Us = RingElem(a.elem.getUpperScaled()); print "scale(U): " + str(Us); print; x = a.solveLU(P, c); print "x: " + str(x); print "x == b: " + str(x == b); print; d = a.determinant(P) print "det(A): " + str(d) + " ~= " + str(d.elem.getDecimal()); #print "det(A): " + str(d) + " ~= " + str(d.elem.getSymmetricVal()); print;
print ii = pt.ideal("", ff) print "SolvableIdeal: " + str(ii) print #exit(0); startLog() rgl = ii.leftGB() print "seq left GB: " + str(rgl) print "isLeftGB: " + str(rgl.isLeftGB()) print #p = RingElem(rgl.list.get(0)); p = RingElem(rgl.list[0]) print "p = " + str(p) print "c = " + str(c) print "c-p = " + str(c - p) d = c.monic() print "d = " + str(d) print "d-p = " + str(d - p) #print "monic(p) = " + str(p.monic()); #pp = p * p; #print "p*p = " + str(pp); #print "p*y*z = " + str(p*y*z); #print "p*t = " + str(p*t); #print "t*p = " + str(t*p); print #exit(0);