Actually it is int2c who does int <- float, float, and smallerorequal and greater or equal both go from comparing floats to an integer value(instead of a normal boolean like value but integers allows for easier further operations). It's a typo here. Regards, A. On 8/23/05, Sean Luke <[log in to unmask]> wrote: > On Aug 17, 2005, at 6:48 PM, Allan de Brueker wrote: > > > I'm trying to go from arrays of FP numbers to single FP numbers to > > integers > > I would like to have operators on integers (+,-,*,/), operators on > > floats(+,-,*,/), have declared them in seperate java files, two > > operators > > to switch between float and int (<=, >=) and I would like for my root > > to > > return an integer. > > Let's see if I have this correct. Your functions are (I made up some > names like i+): > > int <- i+(int,int) > int <- i*(int,int) > int <- i-(int,int) > int <- i/(int,int) > float <- f+(float, float) > float <- f*(float, float) > float <- f-(float, float) > float <- f/(float, float) > int <- <=(float) > float <- >=(int) > float <- gene() > > That's what it sounds like from your description above, yet your <= and > >= functions are quite different below. You're introducing a third > type, 'nil', though it appears you only have two types (notionally the > names 'int' and 'float'). So what's up with the constraint called > 'int2c'? What kind of function prototype is it trying to represent? > > Sean > > > > So Far I have got the following: > > > > #return type of the tree > > > > gp.tc.0.returns = int > > gp.tc.0.init = ec.gp.build.Uniform > > gp.tc.0.init.min-size = 5 > > gp.tc.0.init.max-size = 15 > > > > #3 atomic types > > gp.type.a.size = 3 > > gp.type.a.0.name = float > > gp.type.a.1.name = int > > gp.type.a.2.name = nil > > > > #different constraints set with the different atomic types > > gp.nc.size = 6 > > > > gp.nc.0 = ec.gp.GPNodeConstraints > > gp.nc.0.name = gene0 > > gp.nc.0.return = float > > gp.nc.0.size = 0 > > > > gp.nc.1 = ec.gp.GPNodeConstraints > > gp.nc.1.name = gene1 > > gp.nc.1.return = nil > > gp.nc.1.size = 1 > > gp.nc.1.child.0 = nil > > > > > > gp.nc.2 = ec.gp.GPNodeConstraints > > gp.nc.2.name = float2 > > gp.nc.2.return = float > > gp.nc.2.size = 2 > > gp.nc.2.child.0 = float > > gp.nc.2.child.1 = float > > > > gp.nc.3 = ec.gp.GPNodeConstraints > > gp.nc.3.name = int2c > > gp.nc.3.return = float > > gp.nc.3.size = 2 > > gp.nc.3.child.0 = nil > > gp.nc.3.child.1 = nil > > > > gp.nc.4 = ec.gp.GPNodeConstraints > > gp.nc.4.name = int2 > > gp.nc.4.return = int > > gp.nc.4.size = 2 > > gp.nc.4.child.0 = int > > gp.nc.4.child.1 = int > > > > > > # We have ... functions in the function set. They are: > > gp.fs.0.size = 11 > > > > gp.fs.0.func.0 = ec.app.simpleclassifier.func.GetGeneFloat > > gp.fs.0.func.0.nc = gene0 > > > > gp.fs.0.func.1 = ec.app.simpleclassifier.func.Add > > gp.fs.0.func.1.nc = float2 > > > > gp.fs.0.func.2 = ec.app.simpleclassifier.func.Sub > > gp.fs.0.func.2.nc = float2 > > > > gp.fs.0.func.3 = ec.app.simpleclassifier.func.Mult > > gp.fs.0.func.3.nc = float2 > > > > gp.fs.0.func.4 = ec.app.simpleclassifier.func.Div > > gp.fs.0.func.4.nc =float2 > > > > gp.fs.0.func.5 = ec.app.simpleclassifier.func.SmallerOrEqual > > gp.fs.0.func.5.nc = int2c > > > > gp.fs.0.func.6 = ec.app.simpleclassifier.func.GreaterOrEqual > > gp.fs.0.func.6.nc = int2c > > > > gp.fs.0.func.7 = ec.app.simpleclassifier.func.AddInt > > gp.fs.0.func.7.nc = int2 > > > > gp.fs.0.func.8 = ec.app.simpleclassifier.func.SubInt > > gp.fs.0.func.8.nc = int2 > > > > gp.fs.0.func.9 = ec.app.simpleclassifier.func.MultInt > > gp.fs.0.func.9.nc = int2 > > > > gp.fs.0.func.10 = ec.app.simpleclassifier.func.DivInt > > gp.fs.0.func.10.nc = int2 >