Merge lp:~verifydtapn-contributers/verifydtapn/win-compile into lp:verifydtapn
- win-compile
- Merge into trunk
Proposed by
Jiri Srba
Status: | Merged |
---|---|
Approved by: | Jiri Srba |
Approved revision: | 342 |
Merged at revision: | 335 |
Proposed branch: | lp:~verifydtapn-contributers/verifydtapn/win-compile |
Merge into: | lp:verifydtapn |
Diff against target: |
314 lines (+91/-40) 9 files modified
makefile.osx32 (+2/-2) makefile.osx64 (+2/-2) makefile.win32 (+4/-3) makefile.win64 (+20/-0) src/Core/ArgsParser.cpp (+15/-17) src/Core/ArgsParser.hpp (+2/-3) src/DiscreteVerification/Util/IntervalOps.cpp (+22/-4) src/DiscreteVerification/Util/IntervalOps.hpp (+23/-8) src/DiscreteVerification/VerificationTypes/TimeDartVerification.cpp (+1/-1) |
To merge this branch: | bzr merge lp:~verifydtapn-contributers/verifydtapn/win-compile |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jiri Srba | Approve | ||
Review via email: mp+330911@code.launchpad.net |
Commit message
Description of the change
Allows to cross compile for windows.
To post a comment you must log in.
Revision history for this message
Jiri Srba (srba) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'makefile.osx32' | |||
2 | --- makefile.osx32 2015-05-27 12:24:10 +0000 | |||
3 | +++ makefile.osx32 2017-09-18 13:36:53 +0000 | |||
4 | @@ -8,8 +8,8 @@ | |||
5 | 8 | CUT = cut | 8 | CUT = cut |
6 | 9 | 9 | ||
7 | 10 | # Compiler and linker flags | 10 | # Compiler and linker flags |
10 | 11 | COMMONFLAGS = -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -O3 -Wall -mtune=core2 -mmacosx-version-min=10.9 -m32 | 11 | COMMONFLAGS = -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -O3 -Wall -mtune=core2 -mmacosx-version-min=10.9 -m32 -std=c++14 |
11 | 12 | CFLAGS = $(COMMONFLAGS) -I. -I -I/usr/local/include -I/opt/local/include -I | 12 | CFLAGS = $(COMMONFLAGS) -I. -I/usr/local/include -I/opt/local/include |
12 | 13 | LDFLAGS = $(COMMONFLAGS) -lstdc++ | 13 | LDFLAGS = $(COMMONFLAGS) -lstdc++ |
13 | 14 | 14 | ||
14 | 15 | # Input files | 15 | # Input files |
15 | 16 | 16 | ||
16 | === modified file 'makefile.osx64' | |||
17 | --- makefile.osx64 2015-05-27 12:24:10 +0000 | |||
18 | +++ makefile.osx64 2017-09-18 13:36:53 +0000 | |||
19 | @@ -8,8 +8,8 @@ | |||
20 | 8 | CUT = cut | 8 | CUT = cut |
21 | 9 | 9 | ||
22 | 10 | # Compiler and linker flags | 10 | # Compiler and linker flags |
25 | 11 | COMMONFLAGS = -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -O3 -Wall -mtune=core2 -mmacosx-version-min=10.9 -m64 | 11 | COMMONFLAGS = -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -O3 -Wall -mtune=core2 -mmacosx-version-min=10.9 -m64 -std=c++14 |
26 | 12 | CFLAGS = $(COMMONFLAGS) -I. -I -I/usr/local/include -I/opt/local/include -I | 12 | CFLAGS = $(COMMONFLAGS) -I. -I/usr/local/include -I/opt/local/include -I/usr/local/ |
27 | 13 | LDFLAGS = $(COMMONFLAGS) -lstdc++ | 13 | LDFLAGS = $(COMMONFLAGS) -lstdc++ |
28 | 14 | 14 | ||
29 | 15 | # Input files | 15 | # Input files |
30 | 16 | 16 | ||
31 | === modified file 'makefile.win32' | |||
32 | --- makefile.win32 2014-08-07 21:45:35 +0000 | |||
33 | +++ makefile.win32 2017-09-18 13:36:53 +0000 | |||
34 | @@ -8,12 +8,13 @@ | |||
35 | 8 | CUT = cut | 8 | CUT = cut |
36 | 9 | 9 | ||
37 | 10 | # Compiler and linker flags | 10 | # Compiler and linker flags |
40 | 11 | CFLAGS = -static -static-libgcc -static-libstdc++ -O3 -L. -Wl,--enable-stdcall-fixup -I ${HOME}/dev/iaw32/include -I | 11 | CFLAGS = -flto -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -static -static -static-libgcc -static-libstdc++ -Wall -I../iaw32 |
41 | 12 | LDFLAGS = -static -static-libgcc -static-libstdc++ -O3 -L. -Wl,--enable-stdcall-fixup -I ${HOME}/dev/iaw32/include -I | 12 | |
42 | 13 | LDFLAGS = -flto=4 -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -static -static -static-libgcc -static-libstdc++ -Wall | ||
43 | 13 | 14 | ||
44 | 14 | # Input files | 15 | # Input files |
45 | 15 | SOURCES = $(shell find * -name "*.cpp") | 16 | SOURCES = $(shell find * -name "*.cpp") |
46 | 16 | OBJECTS = $(SOURCES:.cpp=.o) | 17 | OBJECTS = $(SOURCES:.cpp=.o) |
48 | 17 | TARGET = verifydtapn-win32.exe | 18 | TARGET = verifydtapn-win32 |
49 | 18 | 19 | ||
50 | 19 | include rules.mk | 20 | include rules.mk |
51 | 20 | 21 | ||
52 | === added file 'makefile.win64' | |||
53 | --- makefile.win64 1970-01-01 00:00:00 +0000 | |||
54 | +++ makefile.win64 2017-09-18 13:36:53 +0000 | |||
55 | @@ -0,0 +1,20 @@ | |||
56 | 1 | # For bash on OS X, as /bin/sh is compiled with --enable-strict-posix-default | ||
57 | 2 | SHELL = /bin/bash | ||
58 | 3 | |||
59 | 4 | # Programs for processing | ||
60 | 5 | LEX = flex | ||
61 | 6 | YACC = bison | ||
62 | 7 | CC = x86_64-w64-mingw32-g++ | ||
63 | 8 | CUT = cut | ||
64 | 9 | |||
65 | 10 | # Compiler and linker flags | ||
66 | 11 | CFLAGS = -flto -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -static -static -static-libgcc -static-libstdc++ -Wall -I../iaw64 | ||
67 | 12 | |||
68 | 13 | LDFLAGS = -flto=4 -DBOOST_DISABLE_THREADS -DNDEBUG -DDISABLE_ASSERTX -static -static -static-libgcc -static-libstdc++ -Wall | ||
69 | 14 | |||
70 | 15 | # Input files | ||
71 | 16 | SOURCES = $(shell find * -name "*.cpp") | ||
72 | 17 | OBJECTS = $(SOURCES:.cpp=.o) | ||
73 | 18 | TARGET = verifydtapn-win64 | ||
74 | 19 | |||
75 | 20 | include rules.mk | ||
76 | 0 | 21 | ||
77 | === modified file 'src/Core/ArgsParser.cpp' | |||
78 | --- src/Core/ArgsParser.cpp 2015-06-24 13:25:59 +0000 | |||
79 | +++ src/Core/ArgsParser.cpp 2017-09-18 13:36:53 +0000 | |||
80 | @@ -3,7 +3,6 @@ | |||
81 | 3 | #include <sstream> | 3 | #include <sstream> |
82 | 4 | #include "boost/algorithm/string.hpp" | 4 | #include "boost/algorithm/string.hpp" |
83 | 5 | #include "boost/lexical_cast.hpp" | 5 | #include "boost/lexical_cast.hpp" |
84 | 6 | #include "boost/make_shared.hpp" | ||
85 | 7 | #include <iomanip> | 6 | #include <iomanip> |
86 | 8 | #include "boost/tokenizer.hpp" | 7 | #include "boost/tokenizer.hpp" |
87 | 9 | 8 | ||
88 | @@ -135,52 +134,52 @@ | |||
89 | 135 | // Each line in the description is assumed to fit within the remaining width | 134 | // Each line in the description is assumed to fit within the remaining width |
90 | 136 | // of the console, so keep descriptions short, or implement manual word-wrapping :). | 135 | // of the console, so keep descriptions short, or implement manual word-wrapping :). |
91 | 137 | parsers.push_back( | 136 | parsers.push_back( |
93 | 138 | boost::make_shared<SwitchWithArg > ("k", KBOUND_OPTION, | 137 | new SwitchWithArg ("k", KBOUND_OPTION, |
94 | 139 | "Max tokens to use during exploration.", 0)); | 138 | "Max tokens to use during exploration.", 0)); |
95 | 140 | parsers.push_back( | 139 | parsers.push_back( |
97 | 141 | boost::make_shared<SwitchWithArg > ("o", SEARCH_OPTION, | 140 | new SwitchWithArg ("o", SEARCH_OPTION, |
98 | 142 | "Specify the desired search strategy.\n - 0: Breadth-First Search\n - 1: Depth-First Search\n - 2: Random Search\n - 3: Heuristic Search\n - 4: Default", | 141 | "Specify the desired search strategy.\n - 0: Breadth-First Search\n - 1: Depth-First Search\n - 2: Random Search\n - 3: Heuristic Search\n - 4: Default", |
99 | 143 | 4)); | 142 | 4)); |
100 | 144 | parsers.push_back( | 143 | parsers.push_back( |
102 | 145 | boost::make_shared<SwitchWithArg > ("m", VERIFICATION_OPTION, | 144 | new SwitchWithArg ("m", VERIFICATION_OPTION, |
103 | 146 | "Specify the desired verification method.\n - 0: Default (discrete)\n - 1: Time Darts", | 145 | "Specify the desired verification method.\n - 0: Default (discrete)\n - 1: Time Darts", |
104 | 147 | 0)); | 146 | 0)); |
105 | 148 | parsers.push_back( | 147 | parsers.push_back( |
107 | 149 | boost::make_shared<SwitchWithArg > ("p", MEMORY_OPTIMIZATION_OPTION, | 148 | new SwitchWithArg ("p", MEMORY_OPTIMIZATION_OPTION, |
108 | 150 | "Specify the desired memory optimization.\n - 0: None \n - 1: PTrie", | 149 | "Specify the desired memory optimization.\n - 0: None \n - 1: PTrie", |
109 | 151 | 0)); | 150 | 0)); |
110 | 152 | parsers.push_back( | 151 | parsers.push_back( |
112 | 153 | boost::make_shared<SwitchWithArg > ("t", TRACE_OPTION, | 152 | new SwitchWithArg ("t", TRACE_OPTION, |
113 | 154 | "Specify the desired trace option.\n - 0: none\n - 1: some\n - 2: fastest", | 153 | "Specify the desired trace option.\n - 0: none\n - 1: some\n - 2: fastest", |
114 | 155 | 0)); | 154 | 0)); |
115 | 156 | parsers.push_back( | 155 | parsers.push_back( |
117 | 157 | boost::make_shared<Switch > ("d", KEEP_DEAD, | 156 | new Switch ("d", KEEP_DEAD, |
118 | 158 | "Do not discard dead tokens\n(used for boundedness checking)")); | 157 | "Do not discard dead tokens\n(used for boundedness checking)")); |
119 | 159 | parsers.push_back( | 158 | parsers.push_back( |
121 | 160 | boost::make_shared<Switch > ("g", MAX_CONSTANT_OPTION, | 159 | new Switch ("g", MAX_CONSTANT_OPTION, |
122 | 161 | "Use global maximum constant for \nextrapolation (as opposed to local \nconstants).")); | 160 | "Use global maximum constant for \nextrapolation (as opposed to local \nconstants).")); |
123 | 162 | parsers.push_back( | 161 | parsers.push_back( |
125 | 163 | boost::make_shared<Switch > ("s", LEGACY, | 162 | new Switch ("s", LEGACY, |
126 | 164 | "Legacy option (no effect).")); | 163 | "Legacy option (no effect).")); |
127 | 165 | 164 | ||
128 | 166 | parsers.push_back( | 165 | parsers.push_back( |
130 | 167 | boost::make_shared<Switch > ("x", XML_TRACE_OPTION, | 166 | new Switch ("x", XML_TRACE_OPTION, |
131 | 168 | "Output trace in xml format for TAPAAL.")); | 167 | "Output trace in xml format for TAPAAL.")); |
132 | 169 | 168 | ||
133 | 170 | parsers.push_back( | 169 | parsers.push_back( |
135 | 171 | boost::make_shared<Switch >("c", GCD, | 170 | new Switch("c", GCD, |
136 | 172 | "Enable lowering the guards by the greatest common divisor")); | 171 | "Enable lowering the guards by the greatest common divisor")); |
137 | 173 | 172 | ||
138 | 174 | parsers.push_back( | 173 | parsers.push_back( |
140 | 175 | boost::make_shared<SwitchWithArg > ("w", WORKFLOW, | 174 | new SwitchWithArg ("w", WORKFLOW, |
141 | 176 | "Workflow mode.\n - 0: Disabled\n - 1: Soundness (and min)\n - 2: Strong Soundness (and max)", | 175 | "Workflow mode.\n - 0: Disabled\n - 1: Soundness (and min)\n - 2: Strong Soundness (and max)", |
142 | 177 | 0)); | 176 | 0)); |
143 | 178 | parsers.push_back( | 177 | parsers.push_back( |
145 | 179 | boost::make_shared<SwitchWithArg > ("b", STRONG_WORKFLOW_BOUND, | 178 | new SwitchWithArg ("b", STRONG_WORKFLOW_BOUND, |
146 | 180 | "Maximum delay bound for strong workflow analysis", | 179 | "Maximum delay bound for strong workflow analysis", |
147 | 181 | 0)); | 180 | 0)); |
148 | 182 | parsers.push_back( | 181 | parsers.push_back( |
150 | 183 | boost::make_shared<Switch> ("n", CALCULATE_CMAX, | 182 | new Switch ("n", CALCULATE_CMAX, |
151 | 184 | "Calculate the place bounds")); | 183 | "Calculate the place bounds")); |
152 | 185 | 184 | ||
153 | 186 | }; | 185 | }; |
154 | @@ -194,9 +193,8 @@ | |||
155 | 194 | << "Displays this help message." << std::endl; | 193 | << "Displays this help message." << std::endl; |
156 | 195 | std::cout << std::setw(WIDTH) << std::left << "-v [ --version ]" | 194 | std::cout << std::setw(WIDTH) << std::left << "-v [ --version ]" |
157 | 196 | << "Displays version information." << std::endl; | 195 | << "Displays version information." << std::endl; |
161 | 197 | for (parser_vec::const_iterator arg = parsers.begin(); arg != parsers.end(); | 196 | for (auto& p : parsers) { |
162 | 198 | arg++) { | 197 | std::cout << *p; |
160 | 199 | std::cout << **arg; | ||
163 | 200 | } | 198 | } |
164 | 201 | } | 199 | } |
165 | 202 | ; | 200 | ; |
166 | 203 | 201 | ||
167 | === modified file 'src/Core/ArgsParser.hpp' | |||
168 | --- src/Core/ArgsParser.hpp 2015-08-31 12:42:10 +0000 | |||
169 | +++ src/Core/ArgsParser.hpp 2017-09-18 13:36:53 +0000 | |||
170 | @@ -5,7 +5,6 @@ | |||
171 | 5 | #include <map> | 5 | #include <map> |
172 | 6 | #include <string> | 6 | #include <string> |
173 | 7 | #include <iosfwd> | 7 | #include <iosfwd> |
174 | 8 | #include "boost/smart_ptr.hpp" | ||
175 | 9 | #include "VerificationOptions.hpp" | 8 | #include "VerificationOptions.hpp" |
176 | 10 | #include "boost/lexical_cast.hpp" | 9 | #include "boost/lexical_cast.hpp" |
177 | 11 | 10 | ||
178 | @@ -78,10 +77,10 @@ | |||
179 | 78 | }; | 77 | }; |
180 | 79 | 78 | ||
181 | 80 | class ArgsParser { | 79 | class ArgsParser { |
183 | 81 | typedef std::vector< boost::shared_ptr<Switch> > parser_vec; | 80 | typedef std::vector< Switch* > parser_vec; |
184 | 82 | public: | 81 | public: |
185 | 83 | ArgsParser() : parsers(), version(3,2,0) { initialize(); }; | 82 | ArgsParser() : parsers(), version(3,2,0) { initialize(); }; |
187 | 84 | virtual ~ArgsParser() {}; | 83 | virtual ~ArgsParser() { for( auto p : parsers) delete p; }; |
188 | 85 | 84 | ||
189 | 86 | VerificationOptions parse(int argc, char* argv[]) const; | 85 | VerificationOptions parse(int argc, char* argv[]) const; |
190 | 87 | private: | 86 | private: |
191 | 88 | 87 | ||
192 | === modified file 'src/DiscreteVerification/Util/IntervalOps.cpp' | |||
193 | --- src/DiscreteVerification/Util/IntervalOps.cpp 2013-04-23 10:51:59 +0000 | |||
194 | +++ src/DiscreteVerification/Util/IntervalOps.cpp 2017-09-18 13:36:53 +0000 | |||
195 | @@ -12,7 +12,6 @@ | |||
196 | 12 | namespace Util { | 12 | namespace Util { |
197 | 13 | 13 | ||
198 | 14 | using namespace std; | 14 | using namespace std; |
199 | 15 | using namespace boost::numeric; | ||
200 | 16 | 15 | ||
201 | 17 | vector<interval > setIntersection(const vector<interval >& first, const vector<interval >& second){ | 16 | vector<interval > setIntersection(const vector<interval >& first, const vector<interval >& second){ |
202 | 18 | vector<interval > result; | 17 | vector<interval > result; |
203 | @@ -29,7 +28,7 @@ | |||
204 | 29 | 28 | ||
205 | 30 | interval intersection = intersect(first.at(i), second.at(j)); | 29 | interval intersection = intersect(first.at(i), second.at(j)); |
206 | 31 | 30 | ||
208 | 32 | if(!empty(intersection)){ | 31 | if(!intersection.empty()){ |
209 | 33 | result.push_back(intersection); | 32 | result.push_back(intersection); |
210 | 34 | } | 33 | } |
211 | 35 | 34 | ||
212 | @@ -44,6 +43,25 @@ | |||
213 | 44 | return result; | 43 | return result; |
214 | 45 | } | 44 | } |
215 | 46 | 45 | ||
216 | 46 | interval intersect(const interval& l, const interval r) | ||
217 | 47 | { | ||
218 | 48 | if(l.empty()) return l; | ||
219 | 49 | if(r.empty()) return r; | ||
220 | 50 | interval n(std::max(l.low, r.low), std::min(l.high, r.high)); | ||
221 | 51 | return n; | ||
222 | 52 | } | ||
223 | 53 | |||
224 | 54 | interval hull(const interval& l, const interval r) | ||
225 | 55 | { | ||
226 | 56 | return interval(std::min(l.low, r.low), std::max(l.high, r.high)); | ||
227 | 57 | } | ||
228 | 58 | |||
229 | 59 | bool overlap(const interval& l, const interval r) | ||
230 | 60 | { | ||
231 | 61 | auto i = intersect(l, r); | ||
232 | 62 | return !i.empty(); | ||
233 | 63 | } | ||
234 | 64 | |||
235 | 47 | void setAdd(vector< interval >& first, const interval& element){ | 65 | void setAdd(vector< interval >& first, const interval& element){ |
236 | 48 | 66 | ||
237 | 49 | for(unsigned int i = 0; i < first.size(); i++){ | 67 | for(unsigned int i = 0; i < first.size(); i++){ |
238 | @@ -55,13 +73,13 @@ | |||
239 | 55 | } else if(overlap(element, first.at(i))){ | 73 | } else if(overlap(element, first.at(i))){ |
240 | 56 | interval u = hull(element, first.at(i)); | 74 | interval u = hull(element, first.at(i)); |
241 | 57 | // Merge with node | 75 | // Merge with node |
243 | 58 | first.at(i).assign(u.lower(), u.upper()); | 76 | first[i] = u; |
244 | 59 | // Clean up | 77 | // Clean up |
245 | 60 | for(i++; i < first.size(); i++){ | 78 | for(i++; i < first.size(); i++){ |
246 | 61 | if(first.at(i).lower() <= u.upper()){ | 79 | if(first.at(i).lower() <= u.upper()){ |
247 | 62 | // Merge items | 80 | // Merge items |
248 | 63 | if(first.at(i).upper() > u.upper()){ | 81 | if(first.at(i).upper() > u.upper()){ |
250 | 64 | first.at(i-1).assign(first.at(i-1).lower(), first.at(i).upper()); | 82 | first[i-1] = interval(first.at(i-1).lower(), first.at(i).upper()); |
251 | 65 | } | 83 | } |
252 | 66 | first.erase(first.begin()+i); | 84 | first.erase(first.begin()+i); |
253 | 67 | i--; | 85 | i--; |
254 | 68 | 86 | ||
255 | === modified file 'src/DiscreteVerification/Util/IntervalOps.hpp' | |||
256 | --- src/DiscreteVerification/Util/IntervalOps.hpp 2013-04-23 10:51:59 +0000 | |||
257 | +++ src/DiscreteVerification/Util/IntervalOps.hpp 2017-09-18 13:36:53 +0000 | |||
258 | @@ -9,20 +9,35 @@ | |||
259 | 9 | #define INTERVALOPS_HPP_ | 9 | #define INTERVALOPS_HPP_ |
260 | 10 | 10 | ||
261 | 11 | #include <vector> | 11 | #include <vector> |
263 | 12 | #include "boost/numeric/interval.hpp" | 12 | #include <limits> |
264 | 13 | 13 | ||
265 | 14 | namespace VerifyTAPN { | 14 | namespace VerifyTAPN { |
266 | 15 | namespace DiscreteVerification { | 15 | namespace DiscreteVerification { |
267 | 16 | namespace Util { | 16 | namespace Util { |
268 | 17 | 17 | ||
273 | 18 | typedef boost::numeric::interval_lib::rounded_math< int > rounding_policy; | 18 | struct interval { |
274 | 19 | typedef boost::numeric::interval_lib::checking_no_nan< int > checking_policy; | 19 | int low, high; |
275 | 20 | typedef boost::numeric::interval_lib::policies< rounding_policy, checking_policy > interval_policies; | 20 | interval(int l, int h) : low(l), high(h) |
276 | 21 | typedef boost::numeric::interval< int, interval_policies > interval; | 21 | { |
277 | 22 | if(low > high) | ||
278 | 23 | { | ||
279 | 24 | low = std::numeric_limits<int>::max(); | ||
280 | 25 | high = std::numeric_limits<int>::min(); | ||
281 | 26 | } | ||
282 | 27 | }; | ||
283 | 28 | auto upper() const {return high; } | ||
284 | 29 | auto lower() const {return low; } | ||
285 | 30 | auto empty() const { return high < low; } | ||
286 | 31 | }; | ||
287 | 22 | 32 | ||
291 | 23 | void setAdd(std::vector< interval >& first, const interval& element); | 33 | interval intersect(const interval& l, const interval r); |
292 | 24 | std::vector<interval > setIntersection(const std::vector<interval >& first, | 34 | interval hull(const interval& l, const interval r); |
293 | 25 | const std::vector<interval >& second); | 35 | bool overlap(const interval& l, const interval r); |
294 | 36 | |||
295 | 37 | |||
296 | 38 | void setAdd(std::vector< interval >& first, const interval& element); | ||
297 | 39 | std::vector<interval > setIntersection(const std::vector<interval >& first, | ||
298 | 40 | const std::vector<interval >& second); | ||
299 | 26 | 41 | ||
300 | 27 | } /* namespace Util */ | 42 | } /* namespace Util */ |
301 | 28 | } /* namespace DiscreteVerification */ | 43 | } /* namespace DiscreteVerification */ |
302 | 29 | 44 | ||
303 | === modified file 'src/DiscreteVerification/VerificationTypes/TimeDartVerification.cpp' | |||
304 | --- src/DiscreteVerification/VerificationTypes/TimeDartVerification.cpp 2015-08-18 08:10:19 +0000 | |||
305 | +++ src/DiscreteVerification/VerificationTypes/TimeDartVerification.cpp 2017-09-18 13:36:53 +0000 | |||
306 | @@ -88,7 +88,7 @@ | |||
307 | 88 | Util::interval arcGuard((*arc)->getInterval().getLowerBound(), (*arc)->getInterval().getUpperBound()); | 88 | Util::interval arcGuard((*arc)->getInterval().getLowerBound(), (*arc)->getInterval().getUpperBound()); |
308 | 89 | Util::interval invGuard(0, (*arc)->getDestination().getInvariant().getBound()); | 89 | Util::interval invGuard(0, (*arc)->getDestination().getInvariant().getBound()); |
309 | 90 | 90 | ||
311 | 91 | Util::interval arcInterval = boost::numeric::intersect(arcGuard, invGuard); | 91 | Util::interval arcInterval = Util::intersect(arcGuard, invGuard); |
312 | 92 | vector<Util::interval > intervals; | 92 | vector<Util::interval > intervals; |
313 | 93 | int range; | 93 | int range; |
314 | 94 | if (arcInterval.upper() == INT_MAX) { | 94 | if (arcInterval.upper() == INT_MAX) { |