codesimian
Class AddressShape.Linear

java.lang.Object
  extended by codesimian.CS
      extended by codesimian.DefaultCS
          extended by codesimian.AddressShape
              extended by codesimian.AddressShape.Linear
All Implemented Interfaces:
CodeSimian, java.io.Serializable
Enclosing class:
AddressShape

public static class AddressShape.Linear
extends AddressShape

Fast. Similar to Fractal, except there is no recursion or traversing of the graph. I replace my param number ADDRESS_START with one of its own params.
Which of its params to use is specified by P(ADDRESS_NUMBER).D(), which must return a value 0.0 or above.
If its in that range (non-negative), the address was not found yet. If its outside that range, the address is the current value of my P(ADDRESS_START).

I replace my own param 0 with one of param0's params.
I return the new address relative to my new param 0.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class codesimian.AddressShape
AddressShape.Fractal, AddressShape.Linear, AddressShape.Root
 
Field Summary
 
Fields inherited from class codesimian.AddressShape
ADDRESS_NUMBER, ADDRESS_START
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER
 
Constructor Summary
AddressShape.Linear()
           
 
Method Summary
 double chanceOfError()
          Returns .9 (very high) because P(1).D() is required to be in range 0.0 (inclusive) to 1.0 (exclusive), and if it isnt, an error could happen.
 double DForProxy()
          Returns a value less than 0 or greater or equal to 1, because it never traverses more than 1 level deep.
 int minP()
          For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, deleteP, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, keyword, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addP, addP, addP, addP, addP, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, IForProxy, isIllusion, javaCode, JForProxy, L, L, L, L, L, maxD, maxP, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, setB, setC, setCost, setDescription, setF, setHeap, setI, setJ, setL, setL, setParent, setParsePriority, setProxyOf, setPType, setS, setTester, setZ, SForProxy, tester, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AddressShape.Linear

public AddressShape.Linear()
Method Detail

minP

public int minP()
Description copied from class: DefaultCS
For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.

Overrides:
minP in class DefaultCS

chanceOfError

public double chanceOfError()
Returns .9 (very high) because P(1).D() is required to be in range 0.0 (inclusive) to 1.0 (exclusive), and if it isnt, an error could happen. Of course, if you obey that restriction, the chance of error is 0.


DForProxy

public double DForProxy()
Returns a value less than 0 or greater or equal to 1, because it never traverses more than 1 level deep. Returns 1.0 if the the parameter was copied over my param number ADDRESS_START, or returns -1.0 if that could not be done.

In similar CSs, the return value is usually for setting up the next param to be traversed. Or if the parameter could not be found, returns P(ADDRESS_NUMBER).D().

Specified by:
DForProxy in class DefaultCS