| CostEstimator | 
 Base class for all potential cost estimators
 
 TODO account for shared read-only matrices when computing aggregated stats 
 | 
| CostEstimatorHops | 
  | 
| CostEstimatorRuntime | 
 Cost estimator for runtime programs. 
 | 
| OptimizationWrapper | 
 Wrapper to ParFOR cost estimation and optimizer. 
 | 
| Optimizer | 
 Generic optimizer super class that defines the interface of all implemented optimizers. 
 | 
| OptimizerConstrained | 
 Rule-Based ParFor Optimizer (time: O(n)):
 Applied rule-based rewrites:
 - see base class. 
 | 
| OptimizerHeuristic | 
 Heuristic ParFor Optimizer: This optimizer extends the rule-based
 optimizer by a time-based cost estimate for execution type decisions. 
 | 
| OptimizerRuleBased | 
 Rule-Based ParFor Optimizer (time: O(n)):
 
 Applied rule-based rewrites
 - 1) rewrite set data partitioner (incl. 
 | 
| OptNode | 
 Internal representation of a plan alternative for program blocks and instructions 
 in order to enable efficient and simple recursive enumeration and plan changes. 
 | 
| OptTree | 
 Represents a complete plan of a top-level parfor. 
 | 
| OptTreeConverter | 
 Converter for creating an internal plan representation for a given runtime program
 and to modify/create the runtime program according to the optimized plan. 
 | 
| OptTreePlanMapping | 
  | 
| ProgramRecompiler | 
  |