![]() |
Sorting Network Verify and Draw
Check Whether Comparator Networks Sort and Draw Them
|
Min-bubblesort. More...
#include <Bubblesort.h>
Public Member Functions | |
| CBubbleSortMin (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... | |
Perform bubblesort from min to max. That is, first bubble the smallest value to the first channel, then the second-smallest value to the second channel, etc., making as much use of parallelism as possible.
Definition at line 37 of file Bubblesort.h.
| CBubbleSortMin::CBubbleSortMin | ( | const UINT | n | ) |
Construct a min-bubblesort sorting network.
| n | The number of inputs. |
Definition at line 81 of file Bubblesort.cpp.
|
private |
Create the comparators for min-bubblesort. Assumes that m_nInputs has been set to the number of inputs and that the matching array m_nMatch has been created and initialized.
Definition at line 97 of file Bubblesort.cpp.
| const std::wstring CBubbleSortMin::GetName | ( | ) | const |
Construct a wide string name from the type of sorting network and the number of inputs.
Definition at line 120 of file Bubblesort.cpp.