![]()  | 
  
    Sorting Network Verify and Draw
    
   Check Whether Comparator Networks Sort and Draw Them 
   | 
 
The pairwise sorting network. More...
#include <Pairwise.h>
  
Public Member Functions | |
| CPairwiseSort (const UINT) | |
| Constructor.  More... | |
| const std::wstring | GetName () const | 
| Get name.  More... | |
  Public Member Functions inherited from CSortingNetwork | |
| ~CSortingNetwork () | |
| Destructor.  More... | |
| bool | Read (LPWSTR) | 
| Read from file.  More... | |
| bool | sorts () | 
| Does it sort?  More... | |
| const UINT | GetUnused () const | 
| Get number of unused comparators.  More... | |
  Public Member Functions inherited from CRenderableComparatorNet | |
| ~CRenderableComparatorNet () | |
| Destructor.  More... | |
| void | Draw (const eDrawStyle) | 
Draw to a Gdiplus::Bitmap.  More... | |
| HRESULT | ExportToPNG (LPWSTR) | 
| Export in PNG format.  More... | |
| HRESULT | ExportToTex (LPWSTR) | 
| Export in TeX format.  More... | |
| HRESULT | ExportToSVG (LPWSTR) | 
| Export in SVG format.  More... | |
| Gdiplus::Bitmap * | GetBitmap () | 
| Get bitmap pointer.  More... | |
  Public Member Functions inherited from CComparatorNetwork | |
| ~CComparatorNetwork () | |
| Destructor.  More... | |
| virtual bool | Read (LPWSTR) | 
| Read from file.  More... | |
| void | Prune (const UINT) | 
| Prune down number of inputs.  More... | |
| const UINT | GetNumInputs () const | 
| Get number of inputs.  More... | |
| const UINT | GetDepth () const | 
| Get depth.  More... | |
| const UINT | GetSize () const | 
| Get size.  More... | |
| const bool | FirstNormalForm () const | 
| Test for first normal form.  More... | |
Private Member Functions | |
| void | CreateComparators () | 
| Create comparators.  More... | |
Additional Inherited Members | |
  Protected Member Functions inherited from CSortingNetwork | |
| void | initSortingTest () | 
| Initialize the sorting test.  More... | |
| bool | stillsorts (const int delta) | 
| Does it still sort when a bit is changed?  More... | |
| UINT | flipinput (UINT j, const UINT firstlayer, const UINT lastlayer) | 
| Recompute network values when a bit is changed.  More... | |
| void | initValues (const UINT firstlayer, const UINT lastlayer) | 
| Initialize the network values to the all zero input.  More... | |
| void | initUsage () | 
| Initialize usage array.  More... | |
| void | CreateValueArray () | 
| Make value array.  More... | |
| void | CreateUsageArray () | 
| Make usage array.  More... | |
  Protected Member Functions inherited from CRenderableComparatorNet | |
| Gdiplus::REAL | ComputeBitmapHeight () | 
| Compute bitmap height.  More... | |
| void | DrawChannels (const float fLen) | 
| Draw channels.  More... | |
| void | DrawComparator (const UINT, const UINT, const float, bool=false) | 
| Draw a comparator.  More... | |
| void | DrawComparators () | 
| Draw all comparators.  More... | |
  Protected Member Functions inherited from CComparatorNetwork | |
| void | InsertComparator (UINT, UINT, UINT) | 
| Insert comparator.  More... | |
| void | CreateMatchArray (UINT, UINT) | 
| Create match array.  More... | |
| void | ComputeSize () | 
| Compute size.  More... | |
  Protected Attributes inherited from CSortingNetwork | |
| CBinaryGrayCode * | m_pGrayCode = nullptr | 
| Gray code generator.  More... | |
| UINT ** | m_nValue = nullptr | 
| Values at each level when sorting.  More... | |
  Protected Attributes inherited from CRenderableComparatorNet | |
| const Gdiplus::REAL | m_fPenWidth = 2.0f | 
| Pen width in pixels.  More... | |
| const Gdiplus::REAL | m_fXDelta = 24.0f | 
| Gap between channels in pixels.  More... | |
| const Gdiplus::REAL | m_fYDelta = 16.0f | 
| Vertical comparator gap in pixels.  More... | |
| const Gdiplus::REAL | m_fYDelta2 = 8.0f | 
| Extra vertical gap between layers in pixels.  More... | |
| const Gdiplus::REAL | m_fDiameter = 8.0f | 
| Diameter of circles in pixels.  More... | |
| Gdiplus::Bitmap * | m_pBitmap = nullptr | 
| Pointer to a bitmap image.  More... | |
| eDrawStyle | m_eDrawStyle = eDrawStyle::Horizontal | 
| Drawing style.  More... | |
| Gdiplus::Graphics * | m_pGraphics = nullptr | 
| Pointer to graphics object.  More... | |
| Gdiplus::Pen * | m_pPen = nullptr | 
| Pointer to graphics pen.  More... | |
| Gdiplus::Pen * | m_pRedPen = nullptr | 
| Pointer to graphics pen.  More... | |
| Gdiplus::SolidBrush * | m_pBrush = nullptr | 
| Pointer to graphics brush.  More... | |
| Gdiplus::SolidBrush * | m_pRedBrush = nullptr | 
| Pointer to graphics brush.  More... | |
| FILE * | m_pOutput = nullptr | 
| File pointer.  More... | |
| eExport | m_eExportType = eExport::Png | 
| Export type.  More... | |
  Protected Attributes inherited from CComparatorNetwork | |
| UINT ** | m_nMatch = nullptr | 
| Matchings at each level.  More... | |
| bool ** | m_bUsed = nullptr | 
| Whether comparators are used when sorting.  More... | |
| UINT | m_nInputs = 0 | 
| Number of inputs.  More... | |
| UINT | m_nDepth = 0 | 
| Depth.  More... | |
| UINT | m_nSize = 0 | 
| Size.  More... | |
| bool | m_bSorts = false | 
| True if it sorts, false if it doesn't or unknown.  More... | |
The pairwise sorting network sorts by constructing a sequence of sorted pairs, then using a custom sequence of comparators to sort them. From
I. Parberry, "The pairwise sorting network", Parallel Processing Letters, Vol. 2, No. 2,3, pp. 205-211, 1992.
Definition at line 39 of file Pairwise.h.
| CPairwiseSort::CPairwiseSort | ( | const UINT | log2n | ) | 
Construct a pairwise sorting network with number of inputs a power of 2. Makes 2 copies of a half-sized pairwise sorting network created recursively and adds the required comparators before and after.
| log2n | Log base 2 of the number of inputs. | 
Definition at line 33 of file Pairwise.cpp.
      
  | 
  private | 
Create the comparators for pairwise sort. Assumes that m_nInputs has been set to the number of inputs and is a power of 2 and that the matching array m_nMatch has been created and initialized. This code was appropriated from the pairwise sorting network Wikipedia page https://en.wikipedia.org/wiki/Pairwise_sorting_network. 
Definition at line 52 of file Pairwise.cpp.
| const std::wstring CPairwiseSort::GetName | ( | ) | const | 
Construct a wide string name from the type of sorting network and the number of inputs.
Definition at line 92 of file Pairwise.cpp.