Algorithm
1.0
Invented by Tony Padula as part of his PhD thesis project (Software design for simulation-driven optimization, TR 05-11, CAAM, Rice University 2005).Abstracts iterative algorithm structure, provides a boolean framework for termination criteria.
Two main types:
-
RVLAlg::Algorithm - an absurdly simple abstraction. Public interface consists of one pure virtual method, run, which takes no arguments and returns no value - just "push the button".
-
RVLAlg::Terminator - almost as simple. Public interface also has one pure virtual method, query, which takes no arguments and returns a boolean, the answer to the question: "should this algorithm stop?"
Algorithms and Terminators can be combined to form a variety of other Algorithms and Terminators, which are subclasses of the abstract bases - lists, loops, conditional executions, etc. The class documentation describes exactly how this happens; here is a UML diagram of the principal Algorithm subclasses. Supplied subclasses of Terminator provide a boolean algebra, also various types of output and even interactive input ("would you like this algorithm to stop?").
RVL Home Page
Generated on 5 Jan 2017 for RvlAlg by
1.4.7