Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Spot
Spot
Commits
073334df
Commit
073334df
authored
Sep 05, 2013
by
Alexandre Duret-Lutz
Browse files
* src/tgbaalgos/dtbasat.cc: Skip clauses for trivial SCCs.
parent
88cd81c5
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/tgbaalgos/dtbasat.cc
View file @
073334df
...
...
@@ -250,6 +250,9 @@ namespace spot
{
d
.
prodid
[
state_pair
(
j
,
i
)]
=
++
d
.
nvars
;
if
(
sm_
.
trivial
(
i_scc
))
continue
;
for
(
dict
::
state_map
::
const_iterator
k2
=
seen
.
begin
();
k2
!=
seen
.
end
();
++
k2
)
{
...
...
@@ -407,13 +410,18 @@ namespace spot
int
q1
=
pit
->
first
.
a
;
int
q1p
=
pit
->
first
.
b
;
dout
<<
"(2) states Cand["
<<
q1
<<
"] and Ref["
<<
q1p
<<
"] are 0-length paths
\n
"
;
path
p
(
q1
,
q1p
,
q1
,
q1p
);
dout
<<
pit
->
first
<<
" → ("
<<
p
<<
"R ∧ "
<<
p
<<
"C)
\n
"
;
out
<<
-
pit
->
second
<<
" "
<<
d
.
pathid_ref
[
p
]
<<
" 0
\n
"
;
out
<<
-
pit
->
second
<<
" "
<<
d
.
pathid_cand
[
p
]
<<
" 0
\n
"
;
nclauses
+=
2
;
unsigned
q1p_scc
=
sm
.
scc_of_state
(
d
.
int_to_state
[
q1p
]);
if
(
!
sm
.
trivial
(
q1p_scc
))
{
dout
<<
"(2) states Cand["
<<
q1
<<
"] and Ref["
<<
q1p
<<
"] are 0-length paths
\n
"
;
path
p
(
q1
,
q1p
,
q1
,
q1p
);
dout
<<
pit
->
first
<<
" → ("
<<
p
<<
"R ∧ "
<<
p
<<
"C)
\n
"
;
out
<<
-
pit
->
second
<<
" "
<<
d
.
pathid_ref
[
p
]
<<
" 0
\n
"
;
out
<<
-
pit
->
second
<<
" "
<<
d
.
pathid_cand
[
p
]
<<
" 0
\n
"
;
nclauses
+=
2
;
}
dout
<<
"(3) augmenting paths based on Cand["
<<
q1
<<
"] and Ref["
<<
q1p
<<
"]
\n
"
;
...
...
@@ -459,6 +467,8 @@ namespace spot
for
(
int
q1p
=
1
;
q1p
<=
ref_size
;
++
q1p
)
{
unsigned
q1p_scc
=
sm
.
scc_of_state
(
d
.
int_to_state
[
q1p
]);
if
(
sm
.
trivial
(
q1p_scc
))
continue
;
for
(
int
q2p
=
1
;
q2p
<=
ref_size
;
++
q2p
)
{
// We are only interested in transition that can form a
...
...
@@ -550,6 +560,8 @@ namespace spot
for
(
int
q1p
=
1
;
q1p
<=
ref_size
;
++
q1p
)
{
unsigned
q1p_scc
=
sm
.
scc_of_state
(
d
.
int_to_state
[
q1p
]);
if
(
sm
.
trivial
(
q1p_scc
))
continue
;
for
(
int
q2p
=
1
;
q2p
<=
ref_size
;
++
q2p
)
{
// We are only interested in transition that can form a
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment