Fixed Gray calculation in KV_PiEleLoc

This commit is contained in:
Jonny007-MKD 2014-01-06 20:31:23 +01:00
parent ed1b206cff
commit ac7e6ff233
2 changed files with 5 additions and 7 deletions

View file

@ -1,6 +1,7 @@
#pragma once
#include "stdafx.h"
#include "Tools.h"
using namespace std;
@ -20,9 +21,9 @@ public:
this->i = i;
this->w = i & ((0x1 << (numVarX)) - 1); // get x coord
this->w ^= w/2; // make it gray
this->w = Tools::GrayToBinary(w);
this->h = i >> numVarX; // get y coord
this->h ^= h/2; // make it gray
this->h = Tools::GrayToBinary(h);
}
};

View file

@ -2,6 +2,7 @@
#include <string>
#include <algorithm>
#include <vector>
#include "Tools.h"
#include "PrimImplikant.h"
using namespace std;
@ -53,11 +54,7 @@ void PrimImplikant::sort()
bool PrimImplikant::compareGray(uint a, uint b)
{
for (uint i = 1; i < dimension; i++)
a ^= a / 2; // convert a from gray to binary
for (uint i = 1; i < dimension; i++)
b ^= b / 2; // convert b from gray to binary
return a < b;
return Tools::GrayToBinary(a) < Tools::GrayToBinary(b);
}
void PrimImplikant::makeLocations()