cutscc.hh 1.34 KB
Newer Older
1
// -*- coding: utf-8 -*-
2
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de
3
// l'Epita (LRDE).
Flix Abecassis's avatar
Flix Abecassis committed
4
5
6
7
8
//
// 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
9
// the Free Software Foundation; either version 3 of the License, or
Flix Abecassis's avatar
Flix Abecassis committed
10
11
12
13
14
15
16
17
// (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
18
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
Flix Abecassis's avatar
Flix Abecassis committed
19
20
21
22
23
24
25


#ifndef SPOT_TGBAALGOS_CUTSCC_HH
# define SPOT_TGBAALGOS_CUTSCC_HH

#include <set>
#include <vector>
26
#include "tgba/tgba.hh"
Flix Abecassis's avatar
Flix Abecassis committed
27
28
29
30
31
32
33
34
35
36
#include "tgbaalgos/scc.hh"

namespace spot
{
  struct sccs_set
  {
    std::set<unsigned> sccs;
    unsigned size;
  };

37
38
39
40
41
42
43
44
  SPOT_API std::vector<std::vector<sccs_set* > >*
  find_paths(tgba* a, const scc_map& m);

  SPOT_API unsigned
  max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m);

  SPOT_API std::list<tgba*>
  split_tgba(tgba* a, const scc_map& m, unsigned split_number);
Flix Abecassis's avatar
Flix Abecassis committed
45
46
47
48

}

#endif // SPOT_TGBAALGOS_CUTSCC_HH