![]() |
Sorting Network Search
Backtracking for Small Sorting Networks
|
Perfect matching. More...
#include <Matching.h>
Public Member Functions | |
| CMatching () | |
| Void constructor. More... | |
| CMatching (const CMatching &) | |
| Copy constructor. More... | |
| void | Initialize () |
| Initialize. More... | |
| bool | Next () |
| Advance to next matching. More... | |
| void | Swap (const size_t, const size_t) |
| Swap. More... | |
| void | Normalize () |
| Normalize. More... | |
| size_t & | operator[] (const size_t) |
| Overloaded index operator. More... | |
| const size_t | operator[] (const size_t) const |
| Overloaded index operator. More... | |
| operator std::string () const | |
| Cast to a string. More... | |
Private Member Functions | |
| void | SwapPair (int[], size_t, size_t) |
| Swap pair. More... | |
Private Attributes | |
| size_t | m_nMatching [MAXINPUTS+1] = {0} |
| Matching. More... | |
| size_t | m_nMap [MAXINPUTS+1] = {0} |
| Matching index map. More... | |
| int | m_nStack [MAXINPUTS+1] = {0} |
| Stack to remove recursion from permutation. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from CSettings | |
| static void | SetWidth (const size_t) |
| Set width. More... | |
| static void | SetDepth (const size_t) |
| Set depth. More... | |
Static Protected Attributes inherited from CSettings | |
| static size_t | m_nWidth = 9 |
| Comparator network width. More... | |
| static size_t | m_nDepth = 6 |
| Comparator network depth. More... | |
CMatching represents a perfect matching... well, as perfect as it can be if its size is odd.
Definition at line 39 of file Matching.h.
| CMatching::CMatching | ( | ) |
Initialize the matching to the identity matching.
Definition at line 32 of file Matching.cpp.
| CMatching::CMatching | ( | const CMatching & | m | ) |
| void CMatching::Initialize | ( | ) |
Initialize to the identity matching.
Definition at line 50 of file Matching.cpp.
| bool CMatching::Next | ( | ) |
Get the next matching. Uses the stack to avoid recursing.
Definition at line 62 of file Matching.cpp.
| void CMatching::Normalize | ( | ) |
| CMatching::operator std::string | ( | ) | const |
Type cast to a string consisting of space-separated values from m_nMatching.
Definition at line 172 of file Matching.cpp.
| size_t & CMatching::operator[] | ( | const size_t | i | ) |
Index operator, used to access members of m_nMatching as an L-value.
| i | Index. |
Definition at line 185 of file Matching.cpp.
| const size_t CMatching::operator[] | ( | const size_t | i | ) | const |
Index operator, used to access members of m_nMatching as an R-value.
| i | Index. |
Definition at line 193 of file Matching.cpp.
| void CMatching::Swap | ( | const size_t | i, |
| const size_t | j | ||
| ) |
Swap two pairs of entries in the m_nMatching and m_nMap arrays.
| i | Index of first pair. |
| j | Index of second pair. |
Definition at line 148 of file Matching.cpp.
|
private |
Swap a pair of entries in an array.
| m | An array. |
| i | The first index. |
| j | The second index. |
Definition at line 99 of file Matching.cpp.
|
private |
Definition at line 42 of file Matching.h.
|
private |
Definition at line 41 of file Matching.h.
|
private |
Definition at line 43 of file Matching.h.