spot/tests/core/566.test
Alexandre Duret-Lutz 1e512d422b dualize: improve performance on small automata with large |AP|
For issue #566.

* spot/twaalgos/dualize.cc (dualizer::copy_edges): Implement another
loop to be used when the number of outgoing edges of a state is
smaller than the number of AP.
* tests/core/566.test: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the improvement.
2024-03-17 22:36:01 +01:00

137 lines
7.7 KiB
Bash
Executable file

#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) by the Spot authors, see the AUTHORS file for details.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. ./defs
set -e
cat >21.hoa <<EOF
HOA: v1 States: 5 Start: 0 AP: 21 "__ap6" "__ap10" "__ap57" "__ap61"
"__ap63" "__ap67" "__ap97" "__ap94" "__ap96" "__ap111" "__ap114" "__ap117"
"__ap120" "__ap121" "__ap124" "__ap125" "__ap128" "__ap129" "__ap132"
"__ap133" "__ap135" acc-name: Buchi Acceptance: 1 Inf(0) properties:
trans-labels explicit-labels state-acc very-weak --BODY-- State: 0
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&20
|
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
1
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&17&!18&!19&!20
|
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
2
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&20
|
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
3
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&17&!18&!19&!20
|
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&!8&9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&!7&8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&!6&7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&!5&6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&!4&5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&!3&4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&!2&3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&!1&2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
!0&1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20 |
0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
4 State: 1
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
1
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
2 State: 2 {0}
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
2 State: 3
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
1
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
2
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
3
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
4 State: 4
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
2
[!0&!1&!2&!3&!4&!5&!6&!7&!8&!9&!10&!11&!12&!13&!14&!15&!16&!17&!18&!19&!20]
4 --END--
EOF
# The real test would be to check that this result is instantaneous,
# but it is difficult to test so in the test suite.
res=`autfilt --dualize 21.hoa --stats='%S %E %T %s %e %t'`
test "$res" = "5 13 85 6 13 12582912"