![]() |
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... | |
![]() | |
~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... | |
![]() | |
~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... | |
![]() | |
~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 | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
void | InsertComparator (UINT, UINT, UINT) |
Insert comparator. More... | |
void | CreateMatchArray (UINT, UINT) |
Create match array. More... | |
void | ComputeSize () |
Compute size. More... | |
![]() | |
CBinaryGrayCode * | m_pGrayCode = nullptr |
Gray code generator. More... | |
UINT ** | m_nValue = nullptr |
Values at each level when sorting. More... | |
![]() | |
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... | |
![]() | |
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.