Class | JAS::SolvPolyRing |
In: |
examples/jas.rb
|
Parent: | SolvableRing |
Ring constructor.
coeff = factory for coefficients, vars = string with variable names, order = term order, rel = triple list of relations. (e,f,p,…) with e * f = p as relation.
# File examples/jas.rb, line 2647 2647: def initialize(coeff,vars,order,rel=nil) 2648: if coeff == nil 2649: raise ValueError, "No coefficient given." 2650: end 2651: cf = coeff; 2652: if coeff.is_a? RingElem 2653: cf = coeff.elem.factory(); 2654: end 2655: if coeff.is_a? Ring 2656: cf = coeff.ring; 2657: end 2658: if vars == nil 2659: raise ValueError, "No variable names given." 2660: end 2661: names = vars; 2662: if vars.is_a? String 2663: names = GenPolynomialTokenizer.variableList(vars); 2664: end 2665: nv = names.size; 2666: to = PolyRing.lex; 2667: if order.is_a? TermOrder 2668: to = order; 2669: end 2670: ring = GenSolvablePolynomialRing.new(cf,nv,to,names); 2671: if rel != nil 2672: #puts "rel = " + str(rel); 2673: table = ring.table; 2674: ll = []; 2675: for x in rel 2676: if x.is_a? RingElem 2677: x = x.elem; 2678: end 2679: ll << x; 2680: end 2681: #puts "rel = " + str(ll); 2682: (0..ll.size-1).step(3) { |i| 2683: #puts "type " + str(ll[i].class); 2684: table.update( ll[i], ll[i+1], ll[i+2] ); 2685: } 2686: end 2687: @ring = ring; 2688: #puts "SolvPolyRing to super()"; 2689: super("",@ring) 2690: end