Print

Print


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