[GIT] ppl/ppl(master): Allow for the Shape_Preserving_Product to be generated

Module: ppl/ppl Branch: master Commit: b51b3600e55ea768cab6fea39cf4009f8f9c9b81 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=b51b3600e55ea...
Author: Patricia Hill p.m.hill@leeds.ac.uk Date: Wed Apr 14 07:54:49 2010 +0100
Allow for the Shape_Preserving_Product to be generated in the interfaces.
---
instchk.hh | 8 ++++++++ interfaces/Prolog/Ciao/Makefile.am | 6 +++++- interfaces/Prolog/GNU/Makefile.am | 6 +++++- interfaces/Prolog/Prolog_interface.dox | 5 +++-- interfaces/Prolog/SICStus/Makefile.am | 6 +++++- interfaces/Prolog/SWI/Makefile.am | 6 +++++- interfaces/Prolog/XSB/Makefile.am | 6 +++++- interfaces/Prolog/YAP/Makefile.am | 6 +++++- interfaces/ppl_interface_generator_common_dat.m4 | 3 ++- 9 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/instchk.hh b/instchk.hh index 13c357d..0a07a08 100644 --- a/instchk.hh +++ b/instchk.hh @@ -377,4 +377,12 @@ public: } };
+template <typename D1, typename D2> +class Shape_Preserving_Product { +public: + static bool valid_instantiation() { + return D1::valid_Product_argument() && D2::valid_Product_argument(); + } +}; + } // namespace Parma_Polyhedra_Library diff --git a/interfaces/Prolog/Ciao/Makefile.am b/interfaces/Prolog/Ciao/Makefile.am index cfba3fc..2c6431a 100644 --- a/interfaces/Prolog/Ciao/Makefile.am +++ b/interfaces/Prolog/Ciao/Makefile.am @@ -143,7 +143,11 @@ nodist_EXTRA_libppl_ciao_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
if NO_UNDEFINED
diff --git a/interfaces/Prolog/GNU/Makefile.am b/interfaces/Prolog/GNU/Makefile.am index e99e385..962a9e1 100644 --- a/interfaces/Prolog/GNU/Makefile.am +++ b/interfaces/Prolog/GNU/Makefile.am @@ -138,7 +138,11 @@ nodist_EXTRA_libppl_gprolog_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
if NO_UNDEFINED
diff --git a/interfaces/Prolog/Prolog_interface.dox b/interfaces/Prolog/Prolog_interface.dox index f861f57..485b13f 100644 --- a/interfaces/Prolog/Prolog_interface.dox +++ b/interfaces/Prolog/Prolog_interface.dox @@ -106,8 +106,9 @@ on the use of the interface. a simple domain. - The product domains consist of Direct_Product_S_T, - Smash_Product_S_T and - Constraints_Product_S_T where S + Smash_Product_S_T, + Constraints_Product_S_T and + Shape_Preserving_Product_S_T where S and T are simple domains. - In the following, any of the above numerical abstract domains is called a PPL <EM>domain</EM> diff --git a/interfaces/Prolog/SICStus/Makefile.am b/interfaces/Prolog/SICStus/Makefile.am index 6847542..06635db 100644 --- a/interfaces/Prolog/SICStus/Makefile.am +++ b/interfaces/Prolog/SICStus/Makefile.am @@ -172,7 +172,11 @@ nodist_EXTRA_libppl_sicstus_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
if NO_UNDEFINED
diff --git a/interfaces/Prolog/SWI/Makefile.am b/interfaces/Prolog/SWI/Makefile.am index 98dffed..6ad3907 100644 --- a/interfaces/Prolog/SWI/Makefile.am +++ b/interfaces/Prolog/SWI/Makefile.am @@ -159,7 +159,11 @@ nodist_EXTRA_libppl_swiprolog_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
if NO_UNDEFINED
diff --git a/interfaces/Prolog/XSB/Makefile.am b/interfaces/Prolog/XSB/Makefile.am index 514664f..43b49c4 100644 --- a/interfaces/Prolog/XSB/Makefile.am +++ b/interfaces/Prolog/XSB/Makefile.am @@ -161,7 +161,11 @@ nodist_EXTRA_libppl_xsb_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
if NO_UNDEFINED
diff --git a/interfaces/Prolog/YAP/Makefile.am b/interfaces/Prolog/YAP/Makefile.am index 469e24c..875bae9 100644 --- a/interfaces/Prolog/YAP/Makefile.am +++ b/interfaces/Prolog/YAP/Makefile.am @@ -157,7 +157,11 @@ nodist_EXTRA_ppl_yap_la_SOURCES = \ ../ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_NNC_Polyhedron_Grid.cc \ ../ppl_prolog_Constraints_Product_Grid_C_Polyhedron.cc \ -../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc +../ppl_prolog_Constraints_Product_Grid_NNC_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_C_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_NNC_Polyhedron_Grid.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_C_Polyhedron.cc \ +../ppl_prolog_Shape_Preserving_Product_Grid_NNC_Polyhedron.cc
ppl_yap_la_LIBADD = \ @required_instantiations_prolog_cxx_objects@ \ diff --git a/interfaces/ppl_interface_generator_common_dat.m4 b/interfaces/ppl_interface_generator_common_dat.m4 index 57cd897..f0f79be 100644 --- a/interfaces/ppl_interface_generator_common_dat.m4 +++ b/interfaces/ppl_interface_generator_common_dat.m4 @@ -480,7 +480,8 @@ m4_define(`m4_box_group', Uint8_Box, Uint16_Box, Uint32_Box, Uint64_Box') m4_define(`m4_pointset_powerset_group', Pointset_Powerset) m4_define(`m4_product_group', - `Direct_Product, Smash_Product, Constraints_Product') + `Direct_Product, Smash_Product, Constraints_Product, + Shape_Preserving_Product')
dnl ===================================================================== dnl ===== The next set of macros define the replacements =====
participants (1)
-
Patricia Hill