diff --git a/Hazard/Hazard/Implikant_localisation.h b/Hazard/Hazard/Implikant_localisation.h new file mode 100644 index 0000000..bf9036a --- /dev/null +++ b/Hazard/Hazard/Implikant_localisation.h @@ -0,0 +1,38 @@ +#include "stdafx.h" +#include +#include +#include "PrimImplikant.h" + +using namespace std; + +extern uint dimension; +extern uint numElements; +extern bool KNF; + +#ifndef IMPLIKANT_LOC +#define IMPLIKANT_LOC + + +class Implikant_localisation{ + +private: + uint currentI; + uint w; + uint h; + const uint numVarX; + + +public: + void setElement(uint currentI){ + this->currentI = currentI; + this->w = (currentI & ((0x1 << (this->numVarX)) - 1)) ^ ((currentI & ((0x1 << (this->numVarX)) - 1)) / 2); // w^=w/2 + this->h = (currentI >> this->numVarX) ^ ((currentI >> this->numVarX) / 2); + } + + Implikant_localisation(uint currentI) :numVarX(((uint)floor(dimension / 2.0f))){ + + setElement(currentI); + } +}; + +#endif; diff --git a/Hazard/Hazard/PrimImplikant.h b/Hazard/Hazard/PrimImplikant.h index b3bc08e..5e16447 100644 --- a/Hazard/Hazard/PrimImplikant.h +++ b/Hazard/Hazard/PrimImplikant.h @@ -40,7 +40,9 @@ public: bool PrimImplikant::valueAt(uint position); void PrimImplikant::parser(string input); + void add(Implikant_localisation* &I); vector implikanten; + vector I_Vector; }; #endif \ No newline at end of file diff --git a/Hazard/Hazard/PrimImplikantCollection.cpp b/Hazard/Hazard/PrimImplikantCollection.cpp index f7b7522..f591bde 100644 --- a/Hazard/Hazard/PrimImplikantCollection.cpp +++ b/Hazard/Hazard/PrimImplikantCollection.cpp @@ -13,6 +13,7 @@ void PrimImplikantCollection::add(PrimImplikant* &PI) void PrimImplikantCollection::add(string input) { PrimImplikant* PI = new PrimImplikant(input); + PI->id = this->size(); this->add(PI); }