25 mpStepMatrixColumn(NULL)
29 const std::vector< CStepMatrixColumn * > & patterns):
35 mpStepMatrixColumn(NULL)
38 switch (patterns.size())
46 std::vector< CStepMatrixColumn * >::const_iterator it = patterns.begin();
58 std::vector< CStepMatrixColumn * >::const_iterator it = patterns.begin();
59 std::vector< CStepMatrixColumn * >::const_iterator end = patterns.end();
63 for (; it != end; ++it)
79 for (++it; it != end; ++it)
118 std::vector< CStepMatrixColumn * > SetPatterns;
119 std::vector< CStepMatrixColumn * > UnsetPatterns;
121 while (UnsetPatterns.empty() || SetPatterns.empty())
124 UnsetPatterns.clear();
129 std::vector< CStepMatrixColumn * >::const_iterator it = patterns.begin();
130 std::vector< CStepMatrixColumn * >::const_iterator end = patterns.end();
132 for (; it != end; ++it)
136 if ((*it)->getZeroSet().isSet(Bit))
138 SetPatterns.push_back((*it));
142 UnsetPatterns.push_back((*it));
const CStepMatrixColumn * getStepMatrixColumn() const
const CZeroSet & getZeroSet() const
CBitPatternTreeNode * mpUnsetChild
size_t nextAvailableIndex() const
virtual ~CBitPatternTreeNode(void)
CStepMatrixColumn * mpStepMatrixColumn
const CZeroSet & getZeroSet() const
CBitPatternTreeNode * mpSetChild
size_t getChildrenCount() const
void splitPatterns(const std::vector< CStepMatrixColumn * > &patterns)