In Files

JAS

jruby interface to JAS.

Constants

CC

complex big rational numbers

CR

generic complex numbers

DD

big decimal numbers

QQ

big rational numbers

ZZ

define some shortcuts big integers

Public Instance Methods

AN(m,z=0,field=false,pr=nil) click to toggle source

Create JAS AlgebraicNumber as ring element.

# File examples/jas.rb, line 1907
def AN(m,z=0,field=false,pr=nil)
    if m.is_a? RingElem
        m = m.elem;
    end
    if z.is_a? RingElem
        z = z.elem;
    end
    if z != 0 and ( z == true or z == false )
        field = z;
        z = 0;
    end
    #puts "m.getClass() = " + str(m.getClass().getName());
    #puts "field = " + str(field);
    if m.getClass().getSimpleName() == "AlgebraicNumber"
        mf = AlgebraicNumberRing.new(m.factory().modul,m.factory().isField());
    else
        if field
            mf = AlgebraicNumberRing.new(m,field);
        else
            mf = AlgebraicNumberRing.new(m);
        end
    end
    #puts "mf = " + mf.toString();
    if z == 0
        r = AlgebraicNumber.new(mf);
    else
        r = AlgebraicNumber.new(mf,z);
    end
    return RingElem.new(r);
end
CC(re=BigRational.new(),im=BigRational.new()) click to toggle source

Create JAS BigComplex as ring element.

# File examples/jas.rb, line 273
def CC(re=BigRational.new(),im=BigRational.new())
    if re == 0
        re = BigRational.new();
    end
    if im == 0
        im = BigRational.new();
    end
    if re.is_a? Array 
        if re[0].is_a? Array 
            if re.size > 1
                im = QQ( re[1] );
            end
            re = QQ( re[0] );
        else
            re = QQ(re);
#        re = makeJasArith( re );
        end
    end
    if im.is_a? Array 
        im = QQ( im );
#        im = makeJasArith( im );
    end
    if re.is_a? Numeric
        re = QQ(re);
    end
    if im.is_a? Numeric
        im = QQ(im);
    end
    if re.is_a? RingElem
        re = re.elem;
    end
    if im.is_a? RingElem
        im = im.elem;
    end
    if im.isZERO()
        if re.isZERO()
            c = BigComplex.new();
        else
            c = BigComplex.new(re);
        end
    else
        c = BigComplex.new(re,im);
    end
    return RingElem.new(c);
end
CR(re=BigRational.new(),im=BigRational.new(),ring=nil) click to toggle source

Create JAS generic Complex as ring element.

# File examples/jas.rb, line 323
def CR(re=BigRational.new(),im=BigRational.new(),ring=nil)
    if re == 0
        re = BigRational.new();
    end
    if im == 0
        im = BigRational.new();
    end
    if re.is_a? Array 
        if re[0].is_a? Array 
            if re.size > 1
                im = QQ( re[1] );
            end
            re = QQ( re[0] );
        else
            re = QQ(re);
#        re = makeJasArith( re );
        end
    end
    if im.is_a? Array 
        im = QQ( im );
#        im = makeJasArith( im );
    end
    if re.is_a? RingElem
        re = re.elem;
    end
    if im.is_a? RingElem
        im = im.elem;
    end
    if ring == nil
        ring = re.factory();
    end
    r = ComplexRing.new(ring);
    if im.isZERO()
        if re.isZERO()
            c = Complex.new(r);
        else
            c = Complex.new(r,re);
        end
    else
        c = Complex.new(r,re,im);
    end
    return RingElem.new(c);
end
DD(d=0) click to toggle source

Create JAS BigDecimal as ring element.

# File examples/jas.rb, line 371
def DD(d=0)
    if d.is_a? RingElem
        d = d.elem;
    end
    if d.is_a? Float
        d = d.to_s;
    end
    #puts "d type(#{d}) = #{d.class}";
    if d == 0
       r = BigDecimal.new();
    else
       r = BigDecimal.new(d);
    end
    return RingElem.new(r);
end
GF(m,z=0) click to toggle source

Create JAS ModInteger as field element.

# File examples/jas.rb, line 226
def GF(m,z=0)
    return ZM(m,z,true);
end
GFL(m,z=0) click to toggle source

Create JAS ModLong as field element.

# File examples/jas.rb, line 233
def GFL(m,z=0)
    return ZM(m,z,true);
end
LC(ideal,d=0,n=1) click to toggle source

Create JAS polynomial Local as ring element.

# File examples/jas.rb, line 2128
def LC(ideal,d=0,n=1)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? SimIdeal
        ideal = Ideal.new(ideal.pset);
        #ideal.doGB();
    end
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if ideal.getList().get(0).ring.getClass().getSimpleName() == "LocalRing"
        lc = LocalRing.new( ideal.getList().get(0).ring.ideal );
    else
        lc = LocalRing.new(ideal);
    end
    if d.is_a? Array
        if n != 1
            puts "#{n} ignored\n";
        end
        if d.size > 1
            n = d[1];
        end
        d = d[0];
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if d == 0
        r = Local.new(lc);
    else
        if n == 1
            r = Local.new(lc,d);
        else
            r = Local.new(lc,d,n);
        end
    end
    return RingElem.new(r);
end
MPS(cofac,names,truncate=nil,&f) click to toggle source

Create JAS MultiVarPowerSeries as ring element.

# File examples/jas.rb, line 5165
def MPS(cofac,names,truncate=nil,&f)
    cf = cofac;
    if cofac.is_a? RingElem
        cf = cofac.elem.factory();
    elsif cofac.is_a? Ring
        cf = cofac.ring;
    end
    vars = names;
    if vars.is_a? String
       vars = GenPolynomialTokenizer.variableList(vars);
    end
    nv = vars.size;
    if truncate.is_a? RingElem
        truncate = truncate.elem;
    end
    if truncate == nil
        ps = MultiVarPowerSeriesRing.new(cf,nv,vars);
    else
        ps = MultiVarPowerSeriesRing.new(cf,nv,vars,truncate);
    end
    if f == nil
        r = ps.getZERO();
    else
        r = MultiVarPowerSeries.new(ps,MCoeff.new(ps,&f));
        #puts "r = " + str(r);
    end
    return RingElem.new(r);

end
Mat(cofac,n,m,v=nil) click to toggle source

Create JAS GenMatrix ring element.

# File examples/jas.rb, line 5229
def Mat(cofac,n,m,v=nil)
    cf = cofac;
    if cofac.is_a? RingElem
        cf = cofac.elem.factory();
    elsif cofac.is_a? Ring
        cf = cofac.ring;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if m.is_a? RingElem
        m = m.elem;
    end
    if v.is_a? RingElem
        v = v.elem;
    end
    #puts "cf type(#{cf}) = #{cf.class}";
    if v.is_a? Array
        v = rbarray2arraylist(v,cf,rec=2);
    end
    mr = GenMatrixRing.new(cf,n,m);
    if v == nil
        r = GenMatrix.new(mr);
    else
        r = GenMatrix.new(mr,v);
    end
    return RingElem.new(r);
end
Oct(ro=BigQuaternion.new(),io=BigQuaternion.new()) click to toggle source

Create JAS BigOctonion as ring element.

# File examples/jas.rb, line 438
def Oct(ro=BigQuaternion.new(),io=BigQuaternion.new())
    if ro == 0
        ro = BigQuaternion.new();
    end
    if io == 0
        io = BigQuaternion.new();
    end
    if ro.is_a? Array 
        if ro[0].is_a? Array 
            if ro.size > 1
                io = QQ( ro[1] );
            end
            ro = QQ( ro[0] );
        else
            ro = QQ(ro);
#        re = makeJasArith( re );
        end
    end
    if io.is_a? Array 
        io = QQ( io );
#        im = makeJasArith( im );
    end
    if ro.is_a? RingElem
        ro = ro.elem;
    end
    if io.is_a? RingElem
        io = io.elem;
    end
    c = BigOctonion.new(ro,io);
    return RingElem.new(c);
end
PS(cofac,name,truncate=nil,&f) click to toggle source

Create JAS UnivPowerSeries as ring element.

# File examples/jas.rb, line 5099
def PS(cofac,name,truncate=nil,&f) #=nil,truncate=nil)
    cf = cofac;
    if cofac.is_a? RingElem
        cf = cofac.elem.factory();
    end
    if cofac.is_a? Ring
        cf = cofac.ring;
    end
    if truncate.is_a? RingElem
        truncate = truncate.elem;
    end
    if truncate == nil
        ps = UnivPowerSeriesRing.new(cf,name);
    else
        ps = UnivPowerSeriesRing.new(cf,truncate,name);
    end
    #puts "ps type(#{ps}) = #{ps.class}\n";
    #puts "f  type(#{f}) = #{f.class}\n";
    if f == nil
        r = ps.getZERO();
    else
        #Bug in JRuby 1.5.6? move outside method
        r = UnivPowerSeries.new(ps,Coeff.new(cf,&f));
    end
    return RingElem.new(r);

end
QQ(d=0,n=1) click to toggle source

Create JAS BigRational as ring element.

# File examples/jas.rb, line 240
def QQ(d=0,n=1)
    if d.is_a? Rational 
        if n != 1
            puts "#{n} ignored\n";
        end
        if d.denominator != 1
            n = d.denominator;
        end
        d = d.numerator;
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if n == 1
        if d == 0
            r = BigRational.new();
        else
            r = BigRational.new(d);
        end
    else
        d = BigRational.new(d);
        n = BigRational.new(n);
        r = d.divide(n); # BigRational.new(d,n); only for short integers
    end
    return RingElem.new(r);
end
Quat(re=BigRational.new(),im=BigRational.new(),jm=BigRational.new(),km=BigRational.new()) click to toggle source

Create JAS BigQuaternion as ring element.

# File examples/jas.rb, line 391
def Quat(re=BigRational.new(),im=BigRational.new(),jm=BigRational.new(),km=BigRational.new())
    if re == 0
        re = BigRational.new();
    end
    if im == 0
        im = BigRational.new();
    end
    if jm == 0
        jm = BigRational.new();
    end
    if km == 0
        km = BigRational.new();
    end
    if re.is_a? Numeric 
        re = QQ(re);
#        re = makeJasArith( re );
    end
    if im.is_a? Numeric 
        im = QQ( im );
    end
    if jm.is_a? Numeric
        jm = QQ( jm );
    end
    if km.is_a? Numeric
       kim = QQ( km );
#        im = makeJasArith( im );
    end
    if re.is_a? RingElem
        re = re.elem;
    end
    if im.is_a? RingElem
        im = im.elem;
    end
    if jm.is_a? RingElem
        jm = jm.elem;
    end
    if km.is_a? RingElem
        km = km.elem;
    end
    c = BigQuaternion.new(re,im,jm,km);
    return RingElem.new(c);
end
RC(ideal,r=0) click to toggle source

Create JAS polynomial Residue as ring element.

# File examples/jas.rb, line 2097
def RC(ideal,r=0)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? SimIdeal
        #puts "ideal.pset = " + str(ideal.pset) + "\n";
        #ideal = Java::EduJasApplication::Ideal.new(ideal.ring,ideal.list);
        ideal = Ideal.new(ideal.pset);
        #ideal.doGB();
    end
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if ideal.getList().get(0).ring.getClass().getSimpleName() == "ResidueRing"
        rc = ResidueRing.new( ideal.getList().get(0).ring.ideal );
    else
        rc = ResidueRing.new(ideal);
    end
    if r.is_a? RingElem
        r = r.elem;
    end
    if r == 0
        r = Residue.new(rc);
    else
        r = Residue.new(rc,r);
    end
    return RingElem.new(r);
end
RF(pr,d=0,n=1) click to toggle source

Create JAS rational function Quotient as ring element.

# File examples/jas.rb, line 1995
def RF(pr,d=0,n=1)
    if d.is_a? Array
        if n != 1
            puts "#{} ignored\n";
        end
        if d.size > 1
            n = d[1];
        end
        d = d[0];
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if pr.is_a? RingElem
        pr = pr.elem;
    end
    if pr.is_a? Ring
        pr = pr.ring;
    end
    qr = QuotientRing.new(pr);
    if d == 0
        r = Quotient.new(qr);
    else
        if n == 1
            r = Quotient.new(qr,d);
        else
            r = Quotient.new(qr,d,n);
        end
    end
    return RingElem.new(r);
end
RR(flist,n=1,r=0) click to toggle source

Create JAS regular ring Product as ring element.

# File examples/jas.rb, line 2299
def RR(flist,n=1,r=0)
    if not n.is_a? Integer
        r = n;
        n = 1;
    end
    if flist == nil
        raise ArgumentError, "No list given."
    end
    if flist.is_a? Array
        flist = rbarray2arraylist( flist.map { |x| x.factory() }, rec=1);
        ncop = 0;
    else
        ncop = n;
    end
    if flist.is_a? RingElem
        flist = flist.elem;
        flist = flist.factory();
        ncop = n;
    end
    #puts "flist = " + str(flist);
    #puts "ncop  = " + str(ncop);
    if ncop == 0
        pr = ProductRing.new(flist);
    else
        pr = ProductRing.new(flist,ncop);
    end
    #puts "r type(#{r}) = #{r.class}\n";
    if r.is_a? RingElem
        r = r.elem;
    end
    begin
        #puts "r.class() = #{r.class}\n";
        if r.getClass().getSimpleName() == "Product"
            #puts "r.val = #{r.val}\n";
            r = r.val;
        end
    rescue
        #pass;
    end
    #puts "r = " + r.to_s;
    if r == 0
        r = Product.new(pr);
    else
        r = Product.new(pr,r);
    end
    return RingElem.new(r);
end
RealN(m,i,r=0) click to toggle source

Create JAS RealAlgebraicNumber as ring element.

# File examples/jas.rb, line 1951
def RealN(m,i,r=0)
    if m.is_a? RingElem
        m = m.elem;
    end
    if r.is_a? RingElem
        r = r.elem;
    end
    if i.is_a? Array
        il = BigRational.new(i[0]);
        ir = BigRational.new(i[1]);
        i = Interval.new(il,ir);
    end
    #puts "m.getClass() = " + m.getClass().getName().to_s;
    if m.getClass().getSimpleName() == "RealAlgebraicNumber"
        mf = RealAlgebraicRing.new(m.factory().algebraic.modul,i);
    else
        mf = RealAlgebraicRing.new(m,i);
    end
    if r == 0
        rr = RealAlgebraicNumber.new(mf);
    else
        rr = RealAlgebraicNumber.new(mf,r);
    end
    return RingElem.new(rr);
end
SLC(ideal,d=0,n=1) click to toggle source

Create JAS polynomial SolvableLocal as ring element.

# File examples/jas.rb, line 2204
def SLC(ideal,d=0,n=1)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? SolvIdeal
        ideal = SolvableIdeal.new(ideal.pset);
        #ideal.doGB();
    end
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if ideal.getList().get(0).ring.getClass().getSimpleName() == "SolvableLocalRing"
        lc = SolvableLocalRing.new( ideal.getList().get(0).ring.ideal );
    else
        lc = SolvableLocalRing.new(ideal);
    end
    if d.is_a? Array
        if n != 1
            puts "#{n} ignored\n";
        end
        if d.size > 1
            n = d[1];
        end
        d = d[0];
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if d == 0
        r = SolvableLocal.new(lc);
    else
        if n == 1
            r = SolvableLocal.new(lc,d);
        else
            r = SolvableLocal.new(lc,d,n);
        end
    end
    return RingElem.new(r);
end
SLR(ideal,d=0,n=1) click to toggle source

Create JAS polynomial SolvableLocalResidue as ring element.

# File examples/jas.rb, line 2249
def SLR(ideal,d=0,n=1)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? SolvIdeal
        ideal = SolvableIdeal.new(ideal.pset);
        #ideal.doGB();
    end
    cfr = ideal.getList().get(0).ring;
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if n == true
       isfield = true;
       n = 1;
    end
    if cfr.getClass().getSimpleName() == "SolvableLocalResidueRing"
        lc = SolvableLocalResidueRing.new( cfr.ideal );
    else
        lc = SolvableLocalResidueRing.new(ideal);
    end
    if d.is_a? Array
        if n != 1
            puts "#{n} ignored\n";
        end
        if d.size > 1
            n = d[1];
        end
        d = d[0];
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if d == 0
        r = SolvableLocalResidue.new(lc);
    else
        if n == 1
            r = SolvableLocalResidue.new(lc,d);
        else
            r = SolvableLocalResidue.new(lc,d,n);
        end
    end
    return RingElem.new(r);
end
SRC(ideal,r=0) click to toggle source

Create JAS polynomial SolvableResidue as ring element.

# File examples/jas.rb, line 2173
def SRC(ideal,r=0)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? SolvIdeal
        #puts "ideal.pset = " + str(ideal.pset) + "\n";
        #ideal = Java::EduJasApplication::Ideal.new(ideal.ring,ideal.list);
        ideal = SolvableIdeal.new(ideal.pset);
        #ideal.doGB();
    end
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if ideal.getList().get(0).ring.getClass().getSimpleName() == "SolvableResidueRing"
        rc = SolvableResidueRing.new( ideal.getList().get(0).ring.ideal );
    else
        rc = SolvableResidueRing.new(ideal);
    end
    if r.is_a? RingElem
        r = r.elem;
    end
    if r == 0
        r = SolvableResidue.new(rc);
    else
        r = SolvableResidue.new(rc,r);
    end
    return RingElem.new(r);
end
SRF(pr,d=0,n=1) click to toggle source

Create JAS rational function SolvableQuotient as ring element.

# File examples/jas.rb, line 2034
def SRF(pr,d=0,n=1)
    if d.is_a? Array
        if n != 1
            puts "#{} ignored\n";
        end
        if d.size > 1
            n = d[1];
        end
        d = d[0];
    end
    if d.is_a? RingElem
        d = d.elem;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if pr.is_a? RingElem
        pr = pr.elem;
    end
    if pr.is_a? Ring
        pr = pr.ring;
    end
    qr = SolvableQuotientRing.new(pr);
    #puts "qr is associative: " + qr.isAssociative().to_s;
    #if not qr.isAssociative()
    #   puts "warning: qr is not associative";
    #end
    if d == 0
        r = SolvableQuotient.new(qr);
    else
        if n == 1
            r = SolvableQuotient.new(qr,d);
        else
            r = SolvableQuotient.new(qr,d,n);
        end
    end
    return RingElem.new(r);
end
Vec(cofac,n,v=nil) click to toggle source

Create JAS GenVector ring element.

# File examples/jas.rb, line 5204
def Vec(cofac,n,v=nil)
    cf = cofac;
    if cofac.is_a? RingElem
        cf = cofac.elem.factory();
    elsif cofac.is_a? Ring
        cf = cofac.ring;
    end
    if n.is_a? RingElem
        n = n.elem;
    end
    if v.is_a? RingElem
        v = v.elem;
    end
    vr = GenVectorModul.new(cf,n);
    if v == nil
        r = GenVector.new(vr);
    else
        r = GenVector.new(vr,v);
    end
    return RingElem.new(r);
end
WRC(ideal,r=0) click to toggle source

Create JAS polynomial WordResidue as ring element.

# File examples/jas.rb, line 5653
def WRC(ideal,r=0)
    if ideal == nil
        raise ArgumentError, "No ideal given."
    end
    if ideal.is_a? WordPolyIdeal
        #puts "ideal = " + str(ideal) + "\n";
        #ideal = Java::EduJasApplication::WordIdeal.new(ideal.ring,ideal.list);
        ideal = ideal.ideal;
        #ideal.doGB();
    end
    if not ideal.is_a? WordIdeal
        raise ArgumentError, "No word ideal given."
    end
    #puts "ideal.getList().get(0).ring.ideal = #{ideal.getList().get(0).ring.ideal}\n";
    if ideal.getList().get(0).ring.getClass().getSimpleName() == "WordResidueRing"
        rc = WordResidueRing.new( ideal.getList().get(0).ring.ideal );
    else
        rc = WordResidueRing.new(ideal);
    end
    if r.is_a? RingElem
        r = r.elem;
    end
    if r == 0
        r = WordResidue.new(rc);
    else
        r = WordResidue.new(rc,r);
    end
    return RingElem.new(r);
end
ZM(m,z=0,field=false) click to toggle source

Create JAS ModInteger as ring element.

# File examples/jas.rb, line 187
def ZM(m,z=0,field=false)
    if m.is_a? RingElem
        m = m.elem;
    end
    if z.is_a? RingElem
        z = z.elem;
    end
    if z != 0 and ( z == true or z == false )
        field = z;
        z = 0;
    end
    if m < ModLongRing::MAX_LONG 
       if field
          mf = ModLongRing.new(m,field);
       else
          mf = ModLongRing.new(m);
       end
       r = ModLong.new(mf,z);
    else
       if field
          mf = ModIntegerRing.new(m,field);
       else
          mf = ModIntegerRing.new(m);
       end
       r = ModInteger.new(mf,z);
    end
    return RingElem.new(r);
end
ZML(m,z=0,field=false) click to toggle source

Create JAS ModLong as ring element.

# File examples/jas.rb, line 219
def ZML(m,z=0,field=false)
    return ZM(m,z,field);
end
ZZ(z=0) click to toggle source

Create JAS BigInteger as ring element.

# File examples/jas.rb, line 170
def ZZ(z=0)
    if z.is_a? RingElem
        z = z.elem;
    end
    if z == 0 
       r = Java::EduJasArith::BigInteger.new();
    else
       #puts "z = #{z} : #{z.class} " 
       r = Java::EduJasArith::BigInteger.new(z);
    end
    return RingElem.new(r);
end
inject_gens(env) click to toggle source

Inject variables for generators in given environment.

# File examples/jas.rb, line 62
def inject_gens(env) 
    env.class.instance_eval( "attr_accessor :generators;" )
    if env.generators == nil
       env.generators = {};
    end
    #puts "existing generators: " + env.generators.keys().join(", ");  
    redef = []
    for i in self.gens()
       begin 
          ivs = nameFromValue(i);
          if ivs == nil
             next
          end;
          #puts "string2: #{ivs} = " + ivs.class.to_s;
          #puts "string3: #{ivs} = " + (env.instance_eval( "#{ivs};" ));
          if env.generators[ ivs ] != nil
             #puts "redefining global variable #{ivs}";
             redef << ivs;
          end
          env.generators[ ivs ] = i;
          env.instance_eval( "def #{ivs}; @generators[ '#{ivs}' ]; end" )
          #puts "def #{ivs}; @generators[ '#{ivs}' ]; end"
          if self.class.auto_lowervar 
             first = ivs.slice(0,1);
             if first.count('A-Z') > 0
                first = first.downcase
                ivl = first + ivs.slice(1,ivs.length);
                puts "warning: '" + str(ivs) + "' additionaly renamed to '" + str(ivl) + "' to avoid constant semantics"
                env.instance_eval( "def #{ivl}; @generators[ '#{ivs}' ]; end" )
             end
          end
       rescue Exception => e 
          #puts "error: #{ivs} = " + i.to_s + ", class = " + i.class.to_s;
          puts "error: #{ivs} = " + i.to_s + ", e = " + e.to_s;
       end
    end
    puts "globally defined generators: " + env.generators.keys().join(", ");  
    if redef.size > 0
       puts "WARN: redefined generators: " + redef.join(", ");  
    end
 end
makeJasArith(item) click to toggle source

Construct a jas.arith object.

If item is an ruby array then a BigComplex is constructed. If item is a ruby float then a BigDecimal is constructed.

# File examples/jas.rb, line 2398
def makeJasArith(item)
    #puts "item type(#{item}) = #{item.class}\n";
    if item.is_a? Integer
        return BigInteger.new( item );
    end
    if item.is_a? Rational
        return BigRational.new( item.numerator ).divide( BigRational.new( item.denominator ) );
    end
    if item.is_a? Float  # ?? what to do ??
        return BigDecimal.new( item.to_s );
    end
    if item.is_a? Array
        if item.size > 2
            puts "len(item) > 2, remaining items ignored\n";
        end
        puts "item[0] type(#{item[0]}) = #{item[0].class}\n";
        if item.size > 1
            re = makeJasArith( item[0] );
            if not re.isField()
                re = BigRational.new( re.val );
            end
            im = makeJasArith( item[1] );
            if not im.isField()
                im = BigRational.new( im.val );
            end
            jasArith = BigComplex.new( re, im );
        else
            re = makeJasArith( item[0] );
            if not re.isField()
                re = BigRational.new( re.val );
            end
            jasArith = BigComplex.new( re );
        end
        return jasArith;
    end
    puts "unknown item type(#{item}) = #{item.class}\n";
    return item;
end
nameFromValue(i) click to toggle source

Get a meaningful name from a value.

i ist the given value.

# File examples/jas.rb, line 109
def nameFromValue(i) 
    ivs = i.to_s
    #puts "string1: #{ivs} = " + ivs.class.to_s;
    ivs = ivs.gsub(" ","");
    ivs = ivs.gsub("\n","");
    ivs = ivs.gsub(",","");
    ivs = ivs.gsub("(","");
    ivs = ivs.gsub(")","");
    ivs = ivs.gsub("/","div");
    #ivs = ivs.gsub("|","div");
    ivs = ivs.gsub("{","");
    ivs = ivs.gsub("}","");
    ivs = ivs.gsub("[","");
    ivs = ivs.gsub("]","");
    if ivs == "1"
       ivs = "one"
    end
    if ivs[0] == "1"[0] and not ivs.match(/\A[0-9].*/)
       r = ivs[1,ivs.size-1].to_s;
       ivs = "one"
       if r != nil 
          ivs = ivs + r
       end
    end
    #if ivs[0,2] == "0i1"[0,2] or ivs[0,2] == "0I1"[0,2] 
    if ivs == "0i1" or ivs == "0I1"
       ivs = "i"
    end
    #puts "string: #{ivs} of " + i.to_s;
    if ivs.include?("|") or ivs.match(/\A[0-9].*/)
       #puts "string2: #{ivs} = " + ivs.class.to_s;
       ivs = nil
    end
    return ivs
end
noThreads() click to toggle source

Turn off automatic parallel threads usage.

# File examples/jas.rb, line 52
def noThreads()
    puts "nt = ", ComputerThreads.NO_THREADS;
    ComputerThreads.setNoThreads(); #NO_THREADS = #0; #1; #true;
    puts "\nnt = ", ComputerThreads.NO_THREADS;
    puts
end
rbarray2arraylist(list,fac=nil,rec=1) click to toggle source

Convert a Ruby array to a Java ArrayList.

If list is a Ruby array, it is converted, else list is left unchanged.

# File examples/jas.rb, line 2353
def rbarray2arraylist(list,fac=nil,rec=1)
    #puts "list type(#{list}) = #{list.class}\n";
    if list.is_a? Array
       ll = ArrayList.new();
       for e in list
           t = true;
           if e.is_a? RingElem
               t = false;
               e = e.elem;
           end
           if e.is_a? Array
               if rec <= 1
                   e = makeJasArith(e);
               else
                   t = false;
                   e = rbarray2arraylist(e,fac,rec-1);
               end
           end
           begin
               n = e.getClass().getSimpleName();
               if n == "ArrayList"
                   t = false;
               end
           rescue
               #pass;
           end
           if t and fac != nil
               #puts "e.p(#{e}) = #{e.class}\n";
               e = fac.parse( str(e) ); #or makeJasArith(e) ?
           end
           ll.add(e);
       end
       list = ll;
    end
    #puts "list type(#{list}) = #{list.class}\n";
    return list
end
startLog() click to toggle source

Configure the log4j system and start logging.

# File examples/jas.rb, line 27
def startLog()
    BasicConfigurator.configure();
end
str(s) click to toggle source

Mimic Python str() function.

# File examples/jas.rb, line 36
def str(s)
    return s.to_s;
end
terminate() click to toggle source

Terminate the running thread pools.

# File examples/jas.rb, line 45
def terminate()
    ComputerThreads.terminate();
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.