tom.library.sl
Class Pselect

java.lang.Object
  extended by tom.library.sl.AbstractStrategy
      extended by tom.library.sl.AbstractStrategyCombinator
          extended by tom.library.sl.Pselect
All Implemented Interfaces:
Strategy, Visitable

public class Pselect
extends AbstractStrategyCombinator

Pselect(p,q,v1,v2) = v1 with probability p/q

Pselect(p,q,v1,v2) = v2 with probability 1-(p/q)

Visitor combinator with a probability and two arguments, that select a argument according to the probability p/q The strategy fails if the selected strategy fails

Note that any side-effects of v1 are not undone when it fails.


Field Summary
static int FIRST
           
static int THEN
           
 
Fields inherited from class tom.library.sl.AbstractStrategyCombinator
arguments
 
Fields inherited from class tom.library.sl.AbstractStrategy
environment
 
Constructor Summary
Pselect(int p, int q, Strategy first, Strategy then)
           
 
Method Summary
 int getP()
           
 int getQ()
           
 int visit(Introspector introspector)
          Visit the current subject (found in the environment) and place its result in the environment.
<T> T
visitLight(T subject, Introspector introspector)
          Visit the subject any in a light way (without environment)
 
Methods inherited from class tom.library.sl.AbstractStrategyCombinator
getChildAt, getChildCount, getChildren, getVisitor, getVisitors, initSubterm, initSubterm, initSubterm, initSubterm, initSubterm, setChildAt, setChildren
 
Methods inherited from class tom.library.sl.AbstractStrategy
getAncestor, getEnvironment, getPosition, getRoot, getSubject, init, init, setEnvironment, setRoot, setSubject, visit, visit, visit, visit, visitLight
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FIRST

public static final int FIRST
See Also:
Constant Field Values

THEN

public static final int THEN
See Also:
Constant Field Values
Constructor Detail

Pselect

public Pselect(int p,
               int q,
               Strategy first,
               Strategy then)
Method Detail

getP

public int getP()

getQ

public int getQ()

visitLight

public <T> T visitLight(T subject,
                        Introspector introspector)
             throws VisitFailure
Description copied from interface: Strategy
Visit the subject any in a light way (without environment)

Parameters:
subject - the subject to visit.
Throws:
VisitFailure - in case of failure.

visit

public int visit(Introspector introspector)
Description copied from interface: Strategy
Visit the current subject (found in the environment) and place its result in the environment. Sets the environment flag to Environment.FAILURE in case of failure

Parameters:
introspector - the introspector