[PPL-devel] [GIT] ppl/ppl(master): Allow for the Shape_Preserving_Product to be generated
Patricia Hill
p.m.hill at leeds.ac.uk
Wed Apr 14 08:56:27 CEST 2010
Module: ppl/ppl
Branch: master
Commit: b51b3600e55ea768cab6fea39cf4009f8f9c9b81
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=b51b3600e55ea768cab6fea39cf4009f8f9c9b81
Author: Patricia Hill <p.m.hill at 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 =====
More information about the PPL-devel
mailing list