module JAS
jruby interface to JAS.
Constants
- CC
complex big rational numbers
- CR
generic complex numbers
- DD
big decimal numbers
big rational numbers
- ZZ
define some shortcuts big integers
Public Instance Methods
Create JAS AlgebraicNumber as ring element.
# File examples/jas.rb, line 2116 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.is_a? 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
Create JAS BigComplex as ring element.
# File examples/jas.rb, line 313 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
Create JAS generic Complex as ring element.
# File examples/jas.rb, line 363 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
Create JAS BigDecimal as ring element.
# File examples/jas.rb, line 411 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
Create JAS Finite Field element as ring element. #FF has p<sup>n</sup> elements.
# File examples/jas.rb, line 2157 def FF(p,n,z=0) if p.is_a? RingElem p = p.elem; end if n.is_a? RingElem n = n.elem; end if z.is_a? RingElem z = z.elem; end if z.is_a? AlgebraicNumber z = z.val; #puts "z = " + z.ring.toScript(); end if p == 0 raise ArgumentError, "No finite ring." end if n == 0 raise ArgumentError, "No finite ring." end field = true; if !PrimeInteger.isPrime(p) field = false; #raise ArgumentError, "{p} not prime." end mf = $finiteFields[ [p,n] ]; if mf == nil cf = GF(p).ring; mf = PolyUfdUtil.algebraicNumberField(cf,n); $finiteFields[ [p,n] ] = mf; #puts "mf = " + mf.toScript(); end if z == 0 r = AlgebraicNumber.new(mf); else r = AlgebraicNumber.new(mf,z); #puts "r = " + r.toScript(); end return RingElem.new(r); end
Create JAS ModInteger as field element.
# File examples/jas.rb, line 259 def GF(m,z=0) return ZM(m,z,true); end
Create JAS ModInt as field element.
# File examples/jas.rb, line 273 def GFI(m,z=0) return ZM(m,z,true); end
Create JAS ModLong as field element.
# File examples/jas.rb, line 266 def GFL(m,z=0) return ZM(m,z,true); end
Create JAS polynomial Local as ring element.
# File examples/jas.rb, line 2391 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.is_a? 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
Create JAS MultiVarPowerSeries as ring element.
# File examples/jas.rb, line 5426 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
Create JAS GenMatrix ring element.
# File examples/jas.rb, line 5490 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
Create JAS BigOctonion as ring element.
# File examples/jas.rb, line 479 def Oct(ro=0,io=0) cf = BigQuaternionRing.new(); if ro == 0 ro = BigQuaternion.new(cf); end if io == 0 io = BigQuaternion.new(cf); 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
Create JAS UnivPowerSeries as ring element.
# File examples/jas.rb, line 5360 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
Create JAS BigRational as ring element.
# File examples/jas.rb, line 280 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
Create JAS BigQuaternion as ring element.
# File examples/jas.rb, line 431 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 cf = BigQuaternionRing.new(); c = BigQuaternion.new(cf, re,im,jm,km); return RingElem.new(c); end
Create JAS polynomial Residue as ring element.
# File examples/jas.rb, line 2360 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.is_a? 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
Create JAS rational function Quotient as ring element.
# File examples/jas.rb, line 2258 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
Create JAS regular ring Product as ring element.
# File examples/jas.rb, line 2562 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.is_a? 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
Create JAS RealAlgebraicNumber as ring element.
# File examples/jas.rb, line 2214 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.is_a? 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
Create JAS polynomial SolvableLocal as ring element.
# File examples/jas.rb, line 2467 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.is_a? 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
Create JAS polynomial SolvableLocalResidue as ring element.
# File examples/jas.rb, line 2512 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.is_a? 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
Create JAS polynomial SolvableResidue as ring element.
# File examples/jas.rb, line 2436 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.is_a? 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
Create JAS rational function SolvableQuotient as ring element.
# File examples/jas.rb, line 2297 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
Create JAS GenVector ring element.
# File examples/jas.rb, line 5465 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
Create JAS polynomial WordResidue as ring element.
# File examples/jas.rb, line 5914 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.is_a? 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
Create JAS ModInteger as ring element.
# File examples/jas.rb, line 204 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 m < ModIntRing::MAX_INT if field mf = ModIntRing.new(m,field); else mf = ModIntRing.new(m); end r = ModInt.new(mf,z); else if field mf = ModLongRing.new(m,field); else mf = ModLongRing.new(m); end r = ModLong.new(mf,z); end 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
Create JAS ModInt as ring element.
# File examples/jas.rb, line 252 def ZMI(m,z=0,field=false) return ZM(m,z,field); end
Create JAS ModLong as ring element.
# File examples/jas.rb, line 245 def ZML(m,z=0,field=false) return ZM(m,z,field); end
Create JAS BigInteger as ring element.
# File examples/jas.rb, line 187 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 variables for generators in given environment.
# File examples/jas.rb, line 64 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" if env.generators[ ivl ] != nil #puts "redefining global variable #{ivl}"; redef << ivl; end env.instance_eval( "def #{ivl}; @generators[ '#{ivs}' ]; end" ) end end rescue => 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 variables: " + env.generators.keys().join(", "); if redef.size > 0 puts "WARN: redefined variables: " + redef.join(", "); end end
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 2661 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
Get a meaningful name from a value.
i ist the given value.
# File examples/jas.rb, line 115 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("+",""); #ivs = ivs.gsub("*",""); ivs = ivs.gsub("/","div"); #ivs = ivs.gsub("|","div"); ivs = ivs.gsub("{",""); ivs = ivs.gsub("}",""); ivs = ivs.gsub("[",""); ivs = ivs.gsub("]",""); i = ivs.index("BigO"); if i #and i > 0 ivs = ivs[0,i]; #puts "BigO index = #{i}"; end 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
Turn off automatic parallel threads usage.
# File examples/jas.rb, line 54 def noThreads() puts "nt = ", ComputerThreads.NO_THREADS; ComputerThreads.setNoThreads(); #NO_THREADS = #0; #1; #true; puts "\nnt = ", ComputerThreads.NO_THREADS; puts end
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 2616 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 e.is_a? 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
Configure the log4j system and start logging.
BasicConfigurator from log4j version 1 is no more supported, please use log4j2 configuration.
# File examples/jas.rb, line 27 def startLog() #puts "BasicConfigurator from log4j version 1 is no more supported, please use log4j2 configuration"; end
Mimic Python str() function.
# File examples/jas.rb, line 36 def str(s) return s.to_s; end
Terminate the running thread pools.
# File examples/jas.rb, line 45 def terminate() ComputerThreads.terminate(); end