Print

Print


More verification.

So, your <= and >= functions must look like this?

int <- <=(float,float)
int <- >=(float,float)

If so, why do you have nil in your int2c constraint?  Likewise for the
(apparently unused) gene1 constraint?

Sean

On Aug 24, 2005, at 7:35 AM, Allan de Brueker wrote:

> 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
>>