codesimian
Class AddressShape.Fractal

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.AddressShape
              extended by codesimian.AddressShape.Fractal
All Implemented Interfaces:
CodeSimian
Enclosing class:
AddressShape

public static class AddressShape.Fractal
extends AddressShape

The first 0-.5 means to stop. The second range .5-1 means to traverse the childs.
GetParam(ADDRESS_NUMBER).D() must always be in range 0.0 (inclusive) - 1.0 (exclusive).
If its in that range, the address was not found yet. If its outside that range, the address is the current value of my P(ADDRESS_START).
You might use this with CS.addressShape, but you dont have to use this type.
I replace my own param 0 with one of param0's params.
I return the new address relative to my new param 0.
I do not update my param1 to be that address, but its likely some external code will do it to me (CS.findAddress()).

Fractal and Linear are intentionally not a subclass of something like AddressShape. They extend CS directly. Any CS might work a similar way, depending on how its built.

Returns the new address relative to the new CS (still same range 0-1), or returns -1.0 if an error occurs or the target has been found.


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, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
AddressShape.Fractal()
           
 
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()
          Execute this CS and cast to double.
 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, setPType, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, 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, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AddressShape.Fractal

public AddressShape.Fractal()
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()
Description copied from class: CS
Execute this CS and cast to double.

D() and DForProxy() are the 2 most important functions in CS. They execute this CS. All other execute functions, by default, return DForProxy cast to their own type.

For example, J() calls the proxy which calls JForProxy() which calls DForProxy(). D() calls the proxy which calls DForProxy().

By default, all other primitive EXECUTE functions defer to D.
Functions that EXECUTE this CS: L(Class) L(int,Class,int) Z() B() C() S() I() J() F() D() V()

Specified by:
DForProxy in class DefaultCS