00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PPL_termination_defs_hh
00025 #define PPL_termination_defs_hh 1
00026
00027 #include "Generator.types.hh"
00028 #include "C_Polyhedron.types.hh"
00029 #include "NNC_Polyhedron.types.hh"
00030
00031 namespace Parma_Polyhedra_Library {
00032
00062 template <typename PSET>
00063 bool
00064 termination_test_MS(const PSET& pset);
00065
00104 template <typename PSET>
00105 bool
00106 termination_test_MS_2(const PSET& pset_before, const PSET& pset_after);
00107
00146 template <typename PSET>
00147 bool
00148 one_affine_ranking_function_MS(const PSET& pset, Generator& mu);
00149
00197 template <typename PSET>
00198 bool
00199 one_affine_ranking_function_MS_2(const PSET& pset_before,
00200 const PSET& pset_after,
00201 Generator& mu);
00202
00241 template <typename PSET>
00242 void
00243 all_affine_ranking_functions_MS(const PSET& pset, C_Polyhedron& mu_space);
00244
00292 template <typename PSET>
00293 void
00294 all_affine_ranking_functions_MS_2(const PSET& pset_before,
00295 const PSET& pset_after,
00296 C_Polyhedron& mu_space);
00297
00344 template <typename PSET>
00345 void
00346 all_affine_quasi_ranking_functions_MS(const PSET& pset,
00347 C_Polyhedron& decreasing_mu_space,
00348 C_Polyhedron& bounded_mu_space);
00349
00405 template <typename PSET>
00406 void
00407 all_affine_quasi_ranking_functions_MS_2(const PSET& pset_before,
00408 const PSET& pset_after,
00409 C_Polyhedron& decreasing_mu_space,
00410 C_Polyhedron& bounded_mu_space);
00411
00416 template <typename PSET>
00417 bool
00418 termination_test_PR(const PSET& pset);
00419
00424 template <typename PSET>
00425 bool
00426 termination_test_PR_2(const PSET& pset_before, const PSET& pset_after);
00427
00432 template <typename PSET>
00433 bool
00434 one_affine_ranking_function_PR(const PSET& pset, Generator& mu);
00435
00441 template <typename PSET>
00442 bool
00443 one_affine_ranking_function_PR_2(const PSET& pset_before,
00444 const PSET& pset_after,
00445 Generator& mu);
00446
00451 template <typename PSET>
00452 void
00453 all_affine_ranking_functions_PR(const PSET& pset, NNC_Polyhedron& mu_space);
00454
00460 template <typename PSET>
00461 void
00462 all_affine_ranking_functions_PR_2(const PSET& pset_before,
00463 const PSET& pset_after,
00464 NNC_Polyhedron& mu_space);
00465
00466 }
00467
00468 #include "termination.templates.hh"
00469
00470 #endif // !defined(PPL_termination_defs_hh)