00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_IS_TRIM_HXX
00018 # define VCSN_ALGORITHMS_IS_TRIM_HXX
00019
00020 # include <vaucanson/algorithms/is_trim.hh>
00021
00022 # include <vaucanson/automata/concept/automata_base.hh>
00023
00024 # include <vaucanson/algorithms/sub_automaton.hh>
00025 # include <vaucanson/algorithms/accessible.hh>
00026
00027 #include <algorithm>
00028
00029 namespace vcsn
00030 {
00031 template<typename A, typename AI>
00032 bool
00033 is_trim (const Element<A, AI>& a)
00034 {
00035 int size = a.states ().size ();
00036
00037 if (size == accessible_states (a).size ())
00038 return coaccessible_states (a).size () == size;
00039 return false;
00040 }
00041 }
00042
00043 #endif // !VCSN_ALGORITHMS_IS_TRIM_HXX