43 std::string filename =
46 "n" + std::to_string(
m_nCount) +
".txt";
71 bool unfinished =
true;
94 for(
size_t i=toplevel; i<
m_nDepth; i++)
#define oddfloor(n)
If even, round down to make odd.
#define odd(n)
Oddness test.
Interface for the searchable sorting network CSearchable.
Sorting network in first normal form.
bool Sorts()
Does it sort all inputs?
size_t m_nComparator[MAXDEPTH][MAXINPUTS]
Comparator array.
void Save(const std::string &)
Save to file.
void Initialize()
Initialize.
size_t m_nTop
Topmost level.
size_t m_nCount
Number of comparator networks found that sort.
size_t m_nNumMatchings
Number of matchings of this size.
virtual void Backtrack()
Backtracking search.
void InitMatchingRepresentations(size_t)
Initialize the two different matching representations.
CSearchable()
Constructor.
virtual void Save()
Save comparator network.
virtual void SetToS()
Set top of stack.
int m_nStack[MAXDEPTH]
Stack to remove recursion from search.
CMatching m_cMatching[MAXDEPTH]
Matchings that make up comparator network in a form that makes searching faster.
virtual void Process()
Process a candidate comparator network.
bool NextComparatorNetwork()
Change to next comparator network.
void SynchMatchingRepresentations(size_t)
Synchronize the two different matching representations.
void FirstComparatorNetwork(size_t)
Set to first comparator network.
void Search()
Do the actual search.
const size_t GetCount() const
Get count.
static size_t m_nWidth
Comparator network width.
static size_t m_nDepth
Comparator network depth.