1 #ifndef __FILTERING_H__
2 #define __FILTERING_H__
4 #include "../../data_structures/bm/blockmodel.h"
5 #include "constraint.h"
6 #include "../../data_structures/bm/blocksel.h"
54 virtual string XMLHeading(
const unsigned int & identation_level=0)
const;
55 virtual string XMLBody(
const unsigned int & identation_level=0)
const;
56 virtual string XMLFooting(
const unsigned int & identation_level=0)
const;
99 virtual string XMLHeading(
const unsigned int & identation_level=0)
const;
100 virtual string XMLBody(
const unsigned int & identation_level=0)
const;
101 virtual string XMLFooting(
const unsigned int & identation_level=0)
const;
112 vector<unsigned int> _affdest;
170 virtual string XMLHeading(
const unsigned int & identation_level=0)
const;
171 virtual string XMLBody(
const unsigned int & identation_level=0)
const;
172 virtual string XMLFooting(
const unsigned int & identation_level=0)
const;
180 vector<double> _capacities;
181 map<BlockIndexType,unsigned int> _min_extract_period;
182 map<BlockIndexType,float> _cone_val;
183 map<BlockIndexType,float> _cone_weight;
186 BlockIndexType _attr_pos;
189 vector<string> _dest;
190 vector<string> _val_attr;
192 typedef struct node2 {
193 set<BlockIndexType> precedenceSet;
194 set<BlockIndexType> succSet;
195 vector<bool> fullprecedenceSet;
196 BlockIndexType number;
200 typedef struct node1 {
201 set<BlockIndexType> precedenceSet;
202 set<BlockIndexType> succSet;
203 set<BlockIndexType> fullprecedenceSet;
204 BlockIndexType number;
208 typedef struct node3 {
209 set<BlockIndexType> precedenceSet;
210 set<BlockIndexType> succSet;
211 set<BlockIndexType> fullprecedenceSet;
212 BlockIndexType number;
269 float GetConeVal(
const delphos::BlockIndexType
id)
const;
292 const double GetCapacity(
const unsigned int period)
const;
307 virtual string XMLHeading(
const unsigned int & identation_level=0)
const;
308 virtual string XMLBody(
const unsigned int & identation_level=0)
const;
309 virtual string XMLFooting(
const unsigned int & identation_level=0)
const;
Abstracts a set of blocks (subset of a blockmodel).
Definition: blocksel.h:33
A constraint limiting the period at which a block should be mined.
Definition: filtering.h:62
A constraint that prevents certain blocks to be sent to given processes.
Definition: filtering.h:107
A base class for constraints that apply to subsets of blocks.
Definition: constraint.h:158
virtual bool Check(const delphos::Schedule &sch) const
checks if the constraint is satisfied by the schedule.
Definition: filtering.cpp:145
Abstracts a container of blocks as a table with arbitrary number of attributes that can be accessed b...
Definition: blockmodel.h:62
Implements a precedence as an explicit set of arcs between blocks. Provides utility functions...
Definition: precs.h:22
A constraint that forces a block to be mined before or at some period.
Definition: filtering.h:19
virtual bool Check(const Schedule &sch) const
checks if the constraint is satisfied by the schedule.
Definition: filtering.cpp:40
Defines a fractional scheduling of blocks.
Definition: fractional_schedule.h:22
const unsigned int GetAffectedDestination(const unsigned int i) const
Return the index of the i-th destinations affected by the constraint.
Definition: filtering.cpp:265
DoNotSendToConstraint(const string &name, const vector< int > &affdestinations, delphos::BlockSelection *bs)
A constraints that prevents blocks to be sent to given processes.
Definition: filtering.cpp:251
DoNotMineBeforeConstraint(const string &name, const unsigned int &period, delphos::BlockSelection *bs)
Creates a constraints limiting the period at which a block should be mined.
Definition: filtering.cpp:126
const unsigned int NumAffectedDestinations() const
Return the number of destinations affected by the constraint.
Definition: filtering.cpp:269
Defines a constraint that limits processing periods or destinations for blocks.
Definition: constraint.h:234
virtual bool Check(const delphos::Schedule &sch) const
checks if the constraint is satisfied by the schedule.
Definition: filtering.cpp:297
ForceMiningByConstraint(const string &name, const unsigned int &period, delphos::BlockSelection *bs)
Creates a constraint limiting the period at which a block should be mined.
Definition: filtering.cpp:21
Defines a scheduling of blocks.
Definition: schedule.h:23
const unsigned int GetNumAffectedDestinations() const
Return the number of destinations affected by the constraint.
Definition: filtering.cpp:273