Class JAS::EF
In: examples/jas.rb
Parent: Object

Extension field builder. Construction of extension field towers according to then builder pattern.

Methods

build   complexExtend   extend   new   polynomial   realExtend   to_s  

Attributes

builder  [R] 

Public Class methods

Constructor to set base field.

[Source]

      # File examples/jas.rb, line 3811
3811:     def initialize(base)
3812:         if base.is_a? RingElem
3813:             #factory = base.elem;
3814:             factory = base.ring;
3815:         else
3816:             factory = base;
3817:         end
3818:         begin
3819:             factory = factory.factory();
3820:         rescue
3821:             #pass
3822:         end
3823:         puts "extension field factory: " + factory.toScript(); # + " :: " + factory.toString();
3824:         if factory.is_a? ExtensionFieldBuilder
3825:             @builder = factory;
3826:         else
3827:             @builder = ExtensionFieldBuilder.new(factory);
3828:         end
3829:     end

Public Instance methods

Get extension field tower.

[Source]

      # File examples/jas.rb, line 3882
3882:     def build()
3883:         rf = @builder.build();
3884:         if rf.is_a? GenPolynomialRing
3885:             return PolyRing.new(rf.coFac,rf.getVars(),rf.tord);
3886:         else
3887:             return RingElem.new(rf.getZERO());
3888:         end
3889:     end

Create a complex extension field. Construct a complex algebraic extension field with an isolating rectangle for a complex root.

[Source]

      # File examples/jas.rb, line 3866
3866:     def complexExtend(vars,algebraic,rectangle)
3867:         ef = @builder.complexAlgebraicExtension(vars,algebraic,rectangle);
3868:         return EF.new(ef.build());
3869:     end

Create an extension field. If algebraic is given as string expression, then an algebraic extension field is constructed, else a transcendental extension field is constructed.

[Source]

      # File examples/jas.rb, line 3844
3844:     def extend(vars,algebraic=nil) 
3845:         if algebraic == nil
3846:             ef = @builder.transcendentExtension(vars);
3847:         else
3848:             ef = @builder.algebraicExtension(vars,algebraic);
3849:         end
3850:         return EF.new(ef.build());
3851:     end

Create an polynomial ring extension.

[Source]

      # File examples/jas.rb, line 3874
3874:     def polynomial(vars)
3875:         ef = @builder.polynomialExtension(vars);
3876:         return EF.new(ef.build());
3877:     end

Create a real extension field. Construct a real algebraic extension field with an isolating interval for a real root.

[Source]

      # File examples/jas.rb, line 3857
3857:     def realExtend(vars,algebraic,interval)
3858:         ef = @builder.realAlgebraicExtension(vars,algebraic,interval);
3859:         return EF.new(ef.build());
3860:     end

Create a string representation.

[Source]

      # File examples/jas.rb, line 3834
3834:     def to_s()
3835:         return @builder.toScript(); 
3836:         #return @builder.toString(); 
3837:     end

[Validate]