File: polypower.rb

package info (click to toggle)
jas 2.7.200-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,732 kB
  • sloc: java: 164,370; python: 14,882; ruby: 14,509; xml: 583; makefile: 545; sh: 349
file content (86 lines) | stat: -rw-r--r-- 1,536 bytes parent folder | download
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);