
Hello!
Qualche giorno fa ho scaricato e installato l'ultima (0.6.1) versione della PPL, e sto facendo qualche esperimento usando la sua interfaccia verso Sicstus Prolog. In particolare sono interessato agli operatori di rimozione di dimensioni:
1) ppl_Polyhedron_remove_higher_dimensions/2 2) ppl_Polyhedron_remove_dimensions/2
Tutto bene con il primo, meno con il secondo, che sembra non eliminare la variabile voluta e che mantiene quindi la dimensione del poliedro originale.
Puo' darsi che mi sbagli, ma per prudenza ho pensato di mandarvi questa mail e di allegare anche un piccolo programma cosicche' possiate riprodurre il mio 'esperimento'. L'output del programma allegato segue in fondo a questa mail. Spero possiate verificare se sia io a scrivere codice sbagliato o se non vi sia qualche sorta di bug nell'API verso Sicstus.
Vi ringrazio molto,
Jacopo Mantovani Artificial Intelligence Laboratory DIST - University of Genova http://www.ai.dist.unige.it/jacopo
SICStus 3.10.0 (x86-linux-glibc2.2): Tue Dec 17 15:24:21 CET 2002 Licensed to dist.unige.it | ?- yes % source_info | ?- compile(prova). % compiling /home/staff/jacopo/work/ppl/prova.pl... % compiling /usr/lib/ppl/ppl_sicstus.pl... % loading foreign resource /usr/lib/ppl/ppl_sicstus.so in module user % compiled /usr/lib/ppl/ppl_sicstus.pl in module user, 30 msec 16112 bytes % compiled /home/staff/jacopo/work/ppl/prova.pl in module user, 30 msec 22076 bytes yes % source_info | ?- init. PPL versione 0.6.1 This is the Parma Polyhedra Library (PPL) version 0.6.1. Copyright (C) 2001-2004 Roberto Bagnara bagnara@cs.unipr.it. The PPL is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by the GNU C++ compiler version 3.3.4 (Debian 1:3.3.4-13). Report bugs to ppl-devel@cs.unipr.it. For the most up-to-date information see the Parma Polyhedra Library site: http://www.cs.unipr.it/ppl/ .
-- Using ppl_Polyhedron_remove_higher_dimensions --
Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,-1*A>= -2] Generators after: [point(2*A),point(0)] Dimension after: 1
-- Using ppl_Polyhedron_remove_dimensions --
Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators after: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension after: 2 yes % source_info | ?-