From 5141e7e6bc5a97af2091f479ba8c400411edbf49 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Fri, 8 Apr 2016 13:34:17 +0200
Subject: [PATCH] use natural unsigned type

---
 .../determinize/DeterminizeNFTAPart.cxx          | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
index 02f19dbc1a..0f467bddf2 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
@@ -20,11 +20,11 @@ std::set<State> getTransitionRightSide(const NFTA & nfta, const alphabet::Ranked
 	for (const auto & transition : nfta.getTransitions()) {
 		if (transition.first.first != symbol) continue;
 
-		int i = (int) symbol.getRank().getData() - 1; //TODO az budou testy predelat na unsigned
-		for (; i >= 0; i--)
-			if (!recreateNFAStates(states[i]).count(transition.first.second[i])) break;
+		unsigned i = symbol.getRank().getData();
+		for (; i > 0; i--)
+			if (!recreateNFAStates(states[i - 1]).count(transition.first.second[i - 1])) break;
 
-		if (i == -1) res.insert(transition.second.begin(), transition.second.end());
+		if (i == 0) res.insert(transition.second.begin(), transition.second.end());
 	}
 	return res;
 }
@@ -52,7 +52,7 @@ DFTA Determinize::determinize(const NFTA & nfta) {
 		std::set<State> nftaStates = recreateNFAStates(currentState);
 
 		std::deque<std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, State> > transitions;
-		std::deque<int> stops;
+		std::deque<unsigned> stops;
 		for (const auto & transition : res.getTransitions()) {
 			transitions.push_back(transition);
 			stops.push_back(0);
@@ -60,12 +60,12 @@ DFTA Determinize::determinize(const NFTA & nfta) {
 
 		while(!transitions.empty()) {
 			auto transition = transitions.front();
-			int stop = stops.front();
+			unsigned stop = stops.front();
 			transitions.pop_front();
 			stops.pop_front();
 			const std::vector<State> & states = transition.first.second;
 
-			for (int i = stop; i < (int) states.size(); i++) {
+			for (unsigned i = stop; i < states.size(); i++) {
 				if (recreateNFAStates(states[i]).size() != 1) continue;
 				State nftaState = *recreateNFAStates(states[i]).begin();
 				if (nftaStates.count(nftaState)) {
@@ -76,7 +76,7 @@ DFTA Determinize::determinize(const NFTA & nfta) {
 					if (!newNextStates.empty()) {
 						State newNextState = createDFAState(newNextStates);
 						if (res.addState(newNextState)) todo.push_back(newNextState);
-						if (res.addTransition(transition.first.first, newStates, newNextState) && i != (int) states.size()-1) {
+						if (res.addTransition(transition.first.first, newStates, newNextState) && i + 1!= states.size()) {
 							transitions.push_back(std::make_pair(std::make_pair(transition.first.first, newStates), newNextState));
 							stops.push_back(i + 1);
 						}
-- 
GitLab