1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
#
# jruby examples for jas.
# $Id$
#
require "examples/jas"
# sparse polynomial powers
#r = Ring( "Mod 1152921504606846883 (x,y,z) G" );
#r = Ring( "Rat(x,y,z) G" );
#r = Ring( "C(x,y,z) G" );
r = PolyRing.new( ZZ(), "(x,y,z)", PolyRing.lex );
#r = SolvPolyRing.new( ZZ(), "(x,y,z)", PolyRing.lex );
puts "Ring: " + str(r);
puts;
#automatic: one,x,y,z = r.gens();
puts "one = " + str(one);
puts "x = " + str(x);
puts "y = " + str(y);
puts "z = " + str(z);
puts;
p1 = ( 1 + x**2147483647 + y**2147483647 + z**2147483647 );
p2 = ( 1 + x + y + z );
p3 = ( 10000000001 + 10000000001 * x + 10000000001 * y + 10000000001 * z );
puts "p1 = " + str(p1);
puts "p2 = " + str(p2);
puts "p3 = " + str(p3);
puts;
# unused:
ps = """
(
( 1 + x^2147483647 + y^2147483647 + z^2147483647 )
( 1 + x + y + z )
( 10000000001 + 10000000001 x + 10000000001 y + 10000000001 z )
)
""";
#f = Ideal.new( r, ps );
f = r.ideal( ps );
puts "Ideal: " + str(f);
puts;
plist = f.pset.list;
puts "plist: " + str(plist);
puts;
p = plist[0];
#p = plist[2];
p = p2;
#p = p1;
#p = p3;
puts "p: " + str(p);
puts;
q = p;
for i in 1..19
q = q * p;
end
puts "q: " + str(q.elem.length());
puts;
q1 = q + one;
#puts "q1:", q1;
puts "q1: " + str(q1.elem.length());
puts;
t = System.currentTimeMillis();
q2 = q * q1;
t = System.currentTimeMillis() - t;
puts "q2: " + str(q2.elem.length());
puts "time " + str(t) + " milliseconds";
puts;
puts "creations: " + str(r.ring.getCreations);
puts;
#puts "Integer.MAX_VALUE = " +str(Integer::MAX_VALUE);
|