def testRingZM(self): r = PolyRing( GF(17), "(t,x)", Order.INVLEX ); self.assertEqual(str(r),'PolyRing(GFI(17),"t,x",Order.INVLEX)'); [one,x,t] = r.gens(); self.assertTrue(one.isONE()); self.assertTrue(len(x)==1); self.assertTrue(len(t)==1); # f = 11 * x**4 - 13 * t * x**2 - 11 * x**2 + 2 * t**2 + 11 * t; f = f**2 + f + 3; #print "f = " + str(f); self.assertEqual(str(f),'( 4 * x**4 + 16 * t**2 * x**3 + 10 * x**3 + 9 * t**4 * x**2 + 10 * t**2 * x**2 + 4 * x**2 + 3 * t**6 * x + t**4 * x + 11 * x + 2 * t**8 + 13 * t**6 + 13 * t**4 + 6 * t**2 + 3 )');
# # jython examples for jas. # $Id$ # from java.lang import System from jas import PolyRing, ZM, GF, QQ from jas import terminate, startLog # polynomial examples: absolute factorization over Z_p #r = PolyRing(GF(19),"x",PolyRing.lex ); #r = PolyRing(GF(23),"x",PolyRing.lex ); r = PolyRing(GF(1152921504606846883), "(x)", PolyRing.lex) print "Ring: " + str(r) print #[one,x] = r.gens(); #f = x**4 - 1; #f = x**3 + 1; f = x**3 - x - 1 print "f = ", f print startLog() t = System.currentTimeMillis() #G = r.squarefreeFactors(f);
# $Id$ # import sys from java.lang import System from jas import Ring, PolyRing, QQ, ZM, GF, RF, AN from jas import terminate, startLog, noThreads # polynomial examples: ideal radical decomposition, modified from example 8.16 in GB book # noThreads(); # must be called very early prime = 5 cf = GF(prime) #cf = QQ(); ca = PolyRing(cf, "a", PolyRing.lex) #print "ca = " + str(ca); [ea, aa] = ca.gens() print "ea = " + str(ea) print "aa = " + str(aa) print #!#roota = aa**prime + 2; roota = aa**2 + 2 print "roota = " + str(roota) Q3a = AN(roota, field=True) print "Q3a = " + str(Q3a.factory())
import sys; from jas import SolvableRing, SolvPolyRing, PolyRing, SolvableIdeal from jas import QQ, ZZ, GF, RF, startLog, terminate startLog(); # solvable module example #mod=17; mod=32003; #mod=536870909; #mod=1152921504606846883; coeff = GF(mod) #coeff = QQ() p = PolyRing( RF(PolyRing(coeff,"b1,c1",PolyRing.lex)), "E,D1,D2,D3",PolyRing.grad); print "PolyRing: " + str(p); print; relations = [ ( D3 ), ( D1 ), ( D1 * D3 - c1 * E + b1 * E ), ( D3 ), ( D2 ), ( D2 * D3 - E + E ), ( D2 ), ( D1 ), ( D1 * D2 - c1 * E + b1 * E ) ]; print "relations: = " + str([ str(f) for f in relations ]);
# # jython examples for jas. # $Id$ # from java.lang import System from jas import Ring, PolyRing, QQ, ZM, GF from jas import terminate, startLog # polynomial examples: ideal radical decomposition, dim > 0, char p separable r = PolyRing(GF(5), "x,y,z", PolyRing.lex) print "Ring: " + str(r) print #automatic: [one,x,y,z] = r.gens(); #f1 = (x**2 - 5)**2; #f1 = (y**10 - x**5)**3; f2 = y**6 + 2 * x * y**4 + 3 * x**2 * y**2 + 4 * x**3 f2 = f2**5 f3 = z**10 - x**5 f4 = (y**2 - x)**3 #print "f1 = ", f1; print "f2 = ", f2 print "f3 = ", f3 #print "f4 = ", f4; print
## 3 z_1^2+y_1^2+b \& ## 3z_2^2+y_2^2+b \& ## \end{Equations} ## \end{PossoExample} import sys; from jas import Ring, PolyRing, ZM, GF from jas import startLog, terminate # Hawes & Gibson example 2 # modular rational function coefficients, token parsing #r = Ring( "ModFunc 17 (a, c, b) (y2, y1, z1, z2, x) G" ); r = PolyRing( PolyRing(GF(17),"a, c, b",PolyRing.lex), "y2, y1, z1, z2, x", PolyRing.grad ); print "Ring: " + str(r); print; ps = """ ( ( x + 2 y1 z1 + { 3 a } y1^2 + 5 y1^4 + { 2 c } y1 ), ( x + 2 y2 z2 + { 3 a } y2^2 + 5 y2^4 + { 2 c } y2 ), ( 2 z2 + { 6 a } y2 + 20 y2^3 + { 2 c } ), ( 3 z1^2 + y1^2 + { b } ), ( 3 z2^2 + y2^2 + { b } ) ) """; f = r.ideal( ps ); print "Ideal: " + str(f);
# # jython examples for jas. # $Id$ # from java.lang import System from jas import GF, PolyRing from jas import terminate, startLog # polynomial examples: factorization over Z_p #r = Ring( "Mod 1152921504606846883 (x) L" ); #r = Ring( "Mod 19 (x) L" ); r = PolyRing( GF(19), "x", PolyRing.lex ); print "Ring: " + str(r); print; #[one,x] = r.gens(); #f = x**15 - 1; #f = x * ( x + 1 )**2 * ( x**2 + x + 1 )**3; #f = x**6 - 3 * x**5 + x**4 - 3 * x**3 - x**2 - 3 * x+ 1; #f = x**(3*11*11) + 3 * x**(2*11*11) - x**(11*11); #f = x**(3*11*11*11) + 3 * x**(2*11*11*11) - x**(11*11*11); #f = (x**2+1)*(x-3)*(x-5)**3; #f = x**4 + 1; #f = x**12 + x**9 + x**6 + x**3 + 1; #f = x**24 - 1; #f = x**20 - 1; #f = x**22 - 1;
# # jython examples for jas. # $Id$ # import sys from java.lang import System from jas import Ring, PolyRing from jas import ZM, QQ, AN, RF, GF from jas import terminate, startLog # polynomial examples: factorization over Z_p(sqrt(2))(x)(sqrt(x))[y] Q = PolyRing(GF(5), "w2", PolyRing.lex) print "Q = " + str(Q) [e, a] = Q.gens() #print "e = " + str(e); print "a = " + str(a) root = a**2 - 2 print "root = " + str(root) Q2 = AN(root, field=True) print "Q2 = " + str(Q2.factory()) [one, w2] = Q2.gens() #print "one = " + str(one); #print "w2 = " + str(w2); print Qp = PolyRing(Q2, "x", PolyRing.lex)
- 91/800 A46^2 U3^3 - 5887/200000 A46 U3^3 - 343/128000 U3^3 ) ) """ f = r.ideal(ps) print "Ideal: " + str(f) print fi = f.toInteger() print "Ideal: " + str(fi) print # "1152921504606846883" #mf = ModIntegerRing( str(2**60-93), True ); #mf = ModIntegerRing( str(19), True ); mf = GF(2**60 - 93) fm = fi.toModular(mf) print "Ideal: " + str(fm) #sys.exit(); rm = fm.GB() #print "seq Output:", rm; #print; #rg = f.GB(); #print "seq Output:", rg; #print; #rgm = rg.toInteger().toModular(mf); #print "seq Output:", rgm;
# # jython examples for jas. # $Id$ # from java.lang import System from jas import PolyRing, QQ, ZM, RF, GF from jas import terminate, startLog # polynomial examples: squarefree: characteristic p, infinite r = PolyRing(RF(PolyRing(GF(5), "u, v", PolyRing.lex)), "x y z", PolyRing.lex) print "r = " + str(r) #automatic: [one,u,v,x,y,z] = r.gens(); print "one = " + str(one) print "u = " + str(u) print "v = " + str(v) print "x = " + str(x) print "y = " + str(y) print "z = " + str(z) print "Ring: " + str(r) print a = r.random(k=1, l=3) b = r.random(k=1, l=3) c = r.random(k=1, l=3) if a.isZERO():
# # jython examples for jas. # $Id$ # from java.lang import System from jas import PolyRing, QQ, ZM, ZZ, GF from jas import terminate, startLog # polynomial examples: squarefree: characteristic 0 #r = PolyRing(PolyRing(QQ(),"u,v",PolyRing.lex),"x, y",PolyRing.lex) #r = PolyRing(PolyRing(ZZ(),"u,v",PolyRing.lex),"x, y",PolyRing.lex) r = PolyRing(PolyRing(GF(7), "u,v", PolyRing.lex), "x, y", PolyRing.lex) print "Ring: " + str(r) print #automatic: [one,u,v,x,y] = r.gens(); a = r.random(k=1, l=3) b = r.random(k=1, l=3) c = r.random(k=1, l=3) if a.isZERO(): a = x if b.isZERO(): b = y if c.isZERO(): c = y
# $Id$ # import sys; from jas import QQ, GF, PolyRing from jas import startLog # example cyclic6, optimize term order # optimal is no change #r = Ring( "Rat (x6,x5,x4,x3,x2,x1) G" ); #r = Ring( "Mod 19 (x6,x5,x4,x3,x2,x1) G" ); #r = Ring( "Mod 3 (x6,x5,x4,x3,x2,x1) G" ); #r = PolyRing( QQ(), "(x6,x5,x4,x3,x2,x1)", PolyRing.grad ); r = PolyRing( GF(3), "(x6,x5,x4,x3,x2,x1)", PolyRing.grad ); print "Ring: " + str(r); print; ps = """ ( x1 + x2 + x3 + x4 + x5 + x6, x1*x2 + x1*x6 + x2*x3 + x3*x4 + x4*x5 + x5*x6, x1*x2*x3 + x1*x2*x6 + x1*x5*x6 + x2*x3*x4 + x3*x4*x5 + x4*x5*x6, x1*x2*x3*x4 + x1*x2*x3*x6 + x1*x2*x5*x6 + x1*x4*x5*x6 + x2*x3*x4*x5 + x3*x4*x5*x6, x1*x2*x3*x4*x5 + x1*x2*x3*x4*x6 + x1*x2*x3*x5*x6 + x1*x2*x4*x5*x6 + x1*x3*x4*x5*x6 + x2*x3*x4*x5*x6, x1*x2*x3*x4*x5*x6 - 1 ) """; F = [ x1 + x2 + x3 + x4 + x5 + x6,
# # jython examples for jas. # $Id$ # from java.lang import System from jas import PolyRing, QQ, ZM, AN, GF from jas import terminate, startLog # polynomial examples: squarefree: characteristic p, finite algebraic ar = PolyRing(GF(7), "i", PolyRing.lex) #automatic: [one,i] = ar.gens(); # irred for 7, 11, 19 r = PolyRing(AN(i**2 + 1, field=True), "x, y, z", PolyRing.lex) print "Ring: " + str(r) print #automatic: [one,i,x,y,z] = r.gens(); a = r.random(k=2, l=3) b = r.random(k=2, l=3) c = r.random(k=1, l=3) if a.isZERO(): a = x if b.isZERO(): b = y if c.isZERO():
# # jython examples for jas. # $Id$ # import sys from java.lang import System from jas import PolyRing, ZM, QQ, RF, GF from jas import terminate, startLog # polynomial examples: factorization over Z_p, with p-th root p = 5 cr = PolyRing(GF(p), "u", PolyRing.lex) print "Ring cr: " + str(cr) #[one,u] = cr.gens(); fu = (u**2 + u + 1)**p print "fu = ", fu print t = System.currentTimeMillis() G = cr.squarefreeFactors(fu) t = System.currentTimeMillis() - t #print "G = ", G; #.toScript(); print "factor time =", t, "milliseconds" for h, i in G.iteritems(): print "h**i = (", h, ")**" + str(i)
# jython examples for jas. # $Id$ # import sys from java.lang import System from jas import Ring, PolyRing, QQ, ZM, RF, GF from jas import terminate, startLog, noThreads # polynomial examples: ideal radical decomposition, inseparable cases, dim > 0 #noThreads(); # must be called very early cr = PolyRing(GF(5), "c", PolyRing.lex) print "coefficient Ring: " + str(cr) rf = RF(cr) print "coefficient quotient Ring: " + str(rf.ring) r = PolyRing(rf, "x,y,z", PolyRing.lex) print "Ring: " + str(r) print #automatic: [one,c,x,y,z] = r.gens(); print one, c, x, y, z #sys.exit(); #f1 = (x**2 - 5)**2; #f1 = (y**10 - x**5)**3;
import sys from jas import Ring, PolyRing, RF, ZZ, ZM, GF from jas import startLog, terminate #startLog(); # Lewis example # integral function coefficients #r = Ring( "IntFunc(a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3) (t1,t2,t3) G" ); #r = Ring( "RatFunc(a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3) (t1,t2,t3) G" ); #r = PolyRing( RF(PolyRing(ZZ(),"a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3",PolyRing.lex)), "t1,t2,t3", PolyRing.grad ); #r = PolyRing( RF(PolyRing(GF(163),"a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3",PolyRing.grad)), "t1,t2,t3", PolyRing.grad ); r = PolyRing( PolyRing(GF(163), "a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3", PolyRing.grad), "t1,t2,t3", PolyRing.grad) #no: r = PolyRing( RF(PolyRing(GF(5),"a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3",PolyRing.grad)), "t1,t2,t3", PolyRing.grad ); print "Ring: " + str(r) print ps = """ ( ( { a1 } * t1^2 * t2^2 + { b1 } * t1^2 + { 2 c1 } * t1 * t2 + { d1 } * t2^2 + { e1 } ), ( { a2 } * t2^2 * t3^2 + { b2 } * t2^2 + { 2 c2 } * t2 * t3 + { d2 } * t3^2 + { e2 } ), ( { a3 } * t1^2 * t3^2 + { b3 } * t1^2 + { 2 c3 } * t1 * t3 + { d3 } * t3^2 + { e3 } ) ) """ #a1 = e2 + s22 #+ s27
print "r1 = " + str(r1**3); r2 = r1**2 + (1,12345678901234567890); print "r2 = " + str(r2); print; print "------- ZM = ModInteger ------------"; m1 = ZM(19,12345678901234567890); print "m1 = " + str(m1); m2 = m1**2 + 12345678901234567890; print "m2 = " + str(m2); print; print "------- GF = ModInteger ------------"; m1 = GF(19,12345678901234567890); print "m1 = " + str(m1); m2 = m1**2 + 12345678901234567890; print "m2 = " + str(m2); print; print "------- DD = BigDecimal ------------"; d1 = DD(12345678901234567890); print "d1 = " + str(d1); d2 = (1/d1)**2; print "d2 = " + str(d2); print; print "------- CC = BigComplex ------------";
from basic_sigbased_gb import ggv_first_implementation, arris_algorithm, f5z from staggered_linear_basis import staglinbasis from edu.jas.gb import Cyclic # cyclic examples knum = 5 tnum = 2 k = Cyclic(knum) #r = Ring( "", k.ring ); #r = PolyRing( GF(23), k.ring.vars, Order.IGRLEX ); r = PolyRing(GF(32003), k.ring.vars, Order.IGRLEX) #r = PolyRing( GF(536870909), k.ring.vars, Order.IGRLEX ); #r = PolyRing( GF(4294967291), k.ring.vars, Order.IGRLEX ); #r = PolyRing( GF(9223372036854775783), k.ring.vars, Order.IGRLEX ); #r = PolyRing( GF(170141183460469231731687303715884105727), k.ring.vars, Order.IGRLEX ); print "Ring: " + str(r) print ps = k.polyList() #ps = k.cyclicPolys(); print "ps = " + str(ps) f = r.ideal(ps) print "Ideal: " + str(f) print
# # jython examples for jas. # $Id$ # from java.lang import System from jas import PolyRing, ZM, GF from jas import terminate, startLog # system biology examples: GB in Z_2 # see: Informatik Spektrum, 2009, February, # Laubenbacher, Sturmfels: Computer Algebra in der Systembiologie r = PolyRing(GF(2),"M, B, A, L, P",PolyRing.lex); print "PolyRing: " + str(r); print; #automatic: [one,M,B,A,L,P] = r.gens(); f1 = M - A; f2 = B - M; f3 = A - A - L * B - A * L * B; f4 = P - M; f5 = L - P - L - L * B - L * P - L * B * P; ## t1 = M - 1; ## t2 = B - 1; ## t3 = A - 1; ## t4 = L - 1; ## t5 = P - 1; #
# # jython examples for jas. # $Id$ # from jas import Ring, PolyRing, GF # logic example from Kreutzer JdM 2008 #r = Ring( "Mod 2 (a,f,p,u) G" ); r = PolyRing(GF(2), "(a,f,p,u)", PolyRing.grad) print "Ring: " + str(r) print ks = """ ( ( a^2 - a ), ( f^2 - f ), ( p^2 - p ), ( u^2 - u ) ) """ ps = """ ( ( p f + p ), ( p u + p + u + 1 ), ( a + u + 1 ), ( a + p + 1 ) ) """
print "s = " + str(s) print Fi = ri.ideal(list=[f1, f2]) print "Fi = " + str(Fi) print #not implemented: #Gi = Fi.GB(); #print "Gi = " + str(Gi); #print "isGB(Gi) = " + str(Gi.isGB()); #print; #exit(0); rp = WordPolyRing(GF(23), "x,y") print "WordPolyRing: " + str(rp) print [one, x, y] = rp.gens() print "one = " + str(one) print "x = " + str(x) print "y = " + str(y) print f1 = x * y - 10 f2 = y * x + x + y print "f1 = " + str(f1) print "f2 = " + str(f2) print
from java.lang import System from jas import WordRing, WordPolyRing, WordIdeal from jas import terminate, startLog from jas import QQ, ZZ, GF, ZM # non-commutative polynomial examples: C_4_1_7_X example #r = WordPolyRing(QQ,"x4,x3,x2,x1"); #r = WordPolyRing(GF(19),"x4,x3,x2,x1"); #r = WordPolyRing(QQ(),"x1,x2,x3,x4"); #r = WordPolyRing(ZZ(),"x1,x2,x3,x4"); #r = WordPolyRing(GF(19),"x1,x2,x3,x4"); #r = WordPolyRing(GF(32003),"x1,x2,x3,x4"); r = WordPolyRing(GF(2**29 - 3), "x1,x2,x3,x4") #r = WordPolyRing(GF(2**63-25),"x1,x2,x3,x4"); #r = WordPolyRing(GF(170141183460469231731687303715884105727),"x1,x2,x3,x4"); #r = WordPolyRing(GF(259117086013202627776246767922441530941818887553125427303974923161874019266586362086201209516800483406550695241733194177441689509238807017410377709597512042313066624082916353517952311186154862265604547691127595848775610568757931191017711408826252153849035830401185072116424747461823031471398340229288074545677907941037288235820705892351068433882986888616658650280927692080339605869308790500409503709875902119018371991620994002568935113136548829739112656797303241986517250116412703509705427773477972349821676443446668383119322540099648994051790241624056519054483690809616061625743042361721863339415852426431208737266591962061753535748892894599629195183082621860853400937932839420261866586142503251450773096274235376822938649407127700846077124211823080804139298087057504713825264571448379371125032081826126566649084251699453951887789613650248405739378594599444335231188280123660406262468609212150349937584782292237144339628858485938215738821232393687046160677362909315071),"x1,x2,x3,x4"); print "WordPolyRing: " + str(r) print #one,x4,x3,x2,x1 = r.gens(); one, x1, x2, x3, x4 = r.gens() print "one = " + str(one) print "x4 = " + str(x4) print "x3 = " + str(x3) print "x2 = " + str(x2) print "x1 = " + str(x1) print