class MStackingPlanner extends Object
Modifier and Type | Class and Description |
---|---|
(package private) class |
MStackingPlanner.Plan
Result type.
|
Modifier and Type | Field and Description |
---|---|
protected MCover.Parameters_divide |
parameters_divide
Parameters for the stacking and division stratgies.
|
Constructor and Description |
---|
MStackingPlanner(MCover.Parameters_divide parameters_divide)
Only constructor, sets the strategical parameters.
|
Modifier and Type | Method and Description |
---|---|
(package private) List<Integer> |
div_plan(PrimeFactors pf,
MTree.Parameters bracketParameters)
Split factor into a plan, according to global input parameters.
|
(package private) MStackingPlanner.Plan |
makePlan(MTree mt,
int eventToProcess,
int upto,
List<Rational> limits)
Central service provider; is only called when synthesizing is necessary
(= to add a new alterative to "mt").
|
protected final MCover.Parameters_divide parameters_divide
public MStackingPlanner(MCover.Parameters_divide parameters_divide)
MStackingPlanner.Plan makePlan(MTree mt, int eventToProcess, int upto, List<Rational> limits)
Performs a kind of spectral analysis: create a new node and memorize it for LATER
insertion, add quality values to THIS Cover and re-enter rh-generation
with a certain PLAN (=stacking order) for the necessary divisions.
Is only called from MCover.doSynthOrImplicit(MTree,MStackingPlanner.Plan)
.
Therefore it could be inlined, but is extracted to this class to be pluggable:
A different Plan factory can be employed when calling
MCover.process(MTree,Parameters_approximate,Parameters_divide,List,MStackingPlanner)
.
eventToProcess
- the lowest event, the END of which can not yet be processed:upto
- the last event the start of which falls into the mt/node to split
From EV{eventToProcess}.end=limits[eventToProcess+1]
to EV{upto}.start=limits[upto] all timepoints must be considered.mt
- the node which must be split.limits
- all timepoints.List<Integer> div_plan(PrimeFactors pf, MTree.Parameters bracketParameters)