[PPL-devel] integer versus rational solutions (fwd)

Michael Classen michael.classen at uni-passau.de
Thu Jul 9 12:59:02 CEST 2009


make check failed with one test:

tests failed: test06


On Thu, Jul 9, 2009 at 11:52 AM, Michael
Classen<michael.classen at uni-passau.de> wrote:
> Thank you! now it seems to work... :-)
>
> On Thu, Jul 9, 2009 at 11:24 AM, P M Hill<hill at comp.leeds.ac.uk> wrote:
>> 2.61 should be ok. You should be running autoreconf and not autoconf. Does
>> that work?
>>
>> On Thu, 9 Jul 2009, Michael Classen wrote:
>>
>>> Sorry to ask again, but now that I think I have checked out the
>>> products branch, I get all sorts of autoconf errors when trying to
>>> generate the "configure" script:
>>>
>>> configure.ac:42: error: possibly undefined macro: AM_INIT_AUTOMAKE
>>>     If this token and others are legitimate, please use m4_pattern_allow.
>>>     See the Autoconf documentation.
>>> configure.ac:143: error: possibly undefined macro: AM_CONDITIONAL
>>> configure.ac:657: error: possibly undefined macro: AC_CHECK_FPU_CONTROL
>>> configure.ac:660: error: possibly undefined macro:
>>> AC_CXX_PROVIDES_PROPER_LONG_DOUBLE
>>> configure.ac:663: error: possibly undefined macro:
>>> AC_CXX_FLOAT_BINARY_FORMAT
>>> configure.ac:666: error: possibly undefined macro:
>>> AC_CXX_DOUBLE_BINARY_FORMAT
>>> configure.ac:669: error: possibly undefined macro:
>>> AC_CXX_LONG_DOUBLE_BINARY_FORMAT
>>> [...]
>>>
>>> We use autoconf 2.61 here, could that be out of date?
>>>
>>> Michael
>>>
>>> On Thu, Jul 9, 2009 at 10:31 AM, P M Hill<hill at comp.leeds.ac.uk> wrote:
>>>>
>>>> I also have the same problem. We'll fix the problem asap but, in the
>>>> meantime, the git anonymous access should let you grab a copy.
>>>>
>>>> Pat
>>>>
>>>> On Thu, 9 Jul 2009, Michael Classen wrote:
>>>>
>>>>> Hello Patricia,
>>>>>
>>>>> thanks for the effort! I just have a simple technical question: I just
>>>>> tried to check out the latest snapshot of the "products" branch from
>>>>> the GIT web access:
>>>>>
>>>>>
>>>>> http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=shortlog;h=refs/heads/products
>>>>>
>>>>> But it seems that the resulting .tar.gz file is somehow not in any
>>>>> format that gzip can handle:
>>>>>
>>>>> 2677> tar xvzf ppl-a648638a1c5f2b288e03625b5dc07a2bc69d9bd8.tar.gz
>>>>> gzip: stdin: not in gzip format
>>>>> tar: Child returned status 1
>>>>> tar: Error exit delayed from previous errors
>>>>>
>>>>> Is there anything obvious wrong with what I'm doing here? I also tried
>>>>> a few other snapshots and also some graphical archive program, but to
>>>>> the same result...
>>>>>
>>>>> greetings,
>>>>> Michael
>>>>>
>>>>> On Thu, Jul 9, 2009 at 10:09 AM, P M Hill<hill at comp.leeds.ac.uk> wrote:
>>>>>>
>>>>>> Resending to ppl-devel.
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> Date: Wed, 8 Jul 2009 14:24:15 +0100 (BST)
>>>>>> From: P M Hill <hill at comp.leeds.ac.uk>
>>>>>> To: Tobias Grosser <grosser at fim.uni-passau.de>
>>>>>> Cc: "gcc-graphite at googlegroups.com" <gcc-graphite at googlegroups.com>,
>>>>>>    ppl-devel <ppl-devel at cs.unipr.it>
>>>>>> Subject: Re: [PPL-devel] integer versus rational solutions
>>>>>>
>>>>>> On Wed, 8 Jul 2009, Tobias Grosser wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I just tried to use the ppl to work with integer polyhedron, however I
>>>>>>> am stuck with the examples in the documentation for the
>>>>>>> Partial_Reduced_Product:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://www.cs.unipr.it/ppl/Documentation/user/ppl-user-0.10.2-html/classParma__Polyhedra__Library_1_1Partially__Reduced__Product.html#_details
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> In all the examples it is assumed that the template R is the
>>>>>>> No_Reduction<D1, D2> class and that variables x and y are defined
>>>>>>> (where
>>>>>>> they are used) as follows:
>>>>>>>         Variable x(0);
>>>>>>>         Variable y(1);
>>>>>>>
>>>>>>> Example 1
>>>>>>>       The following code builds a direct product of a Grid and NNC
>>>>>>>       Polyhedron, corresponding to the positive even integer pairs in
>>>>>>>       R^2, given as a system of congruences:
>>>>>>>
>>>>>>>         Congruence_System cgs;
>>>>>>>         cgs.insert((x %= 0) / 2);
>>>>>>>         cgs.insert((y %= 0) / 2);
>>>>>>>         Partially_Reduced_Product<Grid, NNC_Polyhedron,
>>>>>>> No_Reduction<D1,
>>>>>>> D2> >
>>>>>>>           dp(cgs);
>>>>>>>         dp.add_constraint(x >= 0);
>>>>>>>         dp.add_constraint(y >= 0);
>>>>>>>
>>>>>>> Example 2
>>>>>>>       The following code builds the same product in R^2:
>>>>>>>       Partially_Reduced_Product<Grid, NNC_Polyhedron, No_Reduction<D1,
>>>>>>> D2>
>>>>>>>>
>>>>>>>> dp(2);
>>>>>>>
>>>>>>>         dp.add_constraint(x >= 0);
>>>>>>>         dp.add_constraint(y >= 0);
>>>>>>>         dp.add_congruence((x %= 0) / 2);
>>>>>>>         dp.add_congruence((y %= 0) / 2);
>>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>> Hi Tobias,
>>>>>>
>>>>>>>
>>>>>>> I would like to create the set of even positive integer pairs, so I
>>>>>>> tried Example 1 and 2. With both I have the same problems.
>>>>>>>
>>>>>>> 1. D1 and D2 are not defined:
>>>>>>>
>>>>>>> test.cpp:9: error: 'D1' was not declared in this scope
>>>>>>> test.cpp:9: error: 'D2' was not declared in this scope
>>>>>>>
>>>>>>> So I replace D1 with "Grid" and D2 with "NNC_Polyhedron"
>>>>>>
>>>>>> That is correct. They have to be specified.
>>>>>>
>>>>>>>
>>>>>>> 2. An exception when adding constrains:
>>>>>>
>>>>>> Only equalities can be added to a product of a grid and polyhedron,
>>>>>> best to use refine_with-...() methods here.
>>>>>>
>>>>>>>
>>>>>>> terminate called after throwing an instance of 'std::invalid_argument'
>>>>>>>  what():  PPL::Grid::add_constraint(c):
>>>>>>> c is not an equality constraint.
>>>>>>>
>>>>>>> So I removed the positive constraints.
>>>>>>>
>>>>>>> 3. An exception when adding congruences:
>>>>>>>
>>>>>>> terminate called after throwing an instance of 'std::invalid_argument'
>>>>>>>  what():  PPL::NNC_Polyhedron::add_congruence(cg):
>>>>>>> cg is a non-trivial, proper congruence.
>>>>>>>
>>>>>>> Do you have any idea what I did wrong?
>>>>>>
>>>>>> Yes, you have to use refiine_with_constraint()
>>>>>> and refine_with_congruence();
>>>>>>
>>>>>> The add methods cannot be used here unless the constraint/congruence is
>>>>>> an
>>>>>> equality.
>>>>>>
>>>>>> There is also another problem in your code in that you cannot build the
>>>>>> product directly from the congruences as they cannot be add'ed to the
>>>>>> NNC_Polyhedron component. Instead, first build a grid from the
>>>>>> congruences
>>>>>> and then build the product using the grid.
>>>>>>
>>>>>> Here is my code, based on your examples, that works here:
>>>>>>
>>>>>> -------------------------------------------------
>>>>>>
>>>>>>  /*
>>>>>>   Example 1
>>>>>>  */
>>>>>>
>>>>>>          Congruence_System cgs;
>>>>>>          cgs.insert((x %= 0) / 2);
>>>>>>          cgs.insert((y %= 0) / 2);
>>>>>>          Grid gr(cgs);
>>>>>>          Partially_Reduced_Product<Grid, NNC_Polyhedron,
>>>>>>                                    No_Reduction<Grid, NNC_Polyhedron> >
>>>>>>            dp(gr);
>>>>>>          dp.refine_with_constraint(x >= 0);
>>>>>>          dp.refine_with_constraint(y >= 0);
>>>>>>
>>>>>> --------------------------------------------------
>>>>>>
>>>>>>  /*
>>>>>> Example 2
>>>>>>  */
>>>>>>
>>>>>>       Partially_Reduced_Product<Grid, NNC_Polyhedron,
>>>>>>                                 No_Reduction<Grid, NNC_Polyhedron> >
>>>>>>         dp(2);
>>>>>>
>>>>>>       dp.refine_with_constraint(x >= 0);
>>>>>>       dp.refine_with_constraint(y >= 0);
>>>>>>       dp.refine_with_congruence((x %= 0) / 2);
>>>>>>       dp.refine_with_congruence((y %= 0) / 2);
>>>>>>
>>>>>> --------------------------------------------------
>>>>>>
>>>>>> I used here the master branch of the git repository head version. The
>>>>>> latest
>>>>>> developments for the PPL domain for partially reduced products are in
>>>>>> the
>>>>>> products branch.
>>>>>>
>>>>>> HTH. Let me know if you have further queries wrt this domain, we will
>>>>>> glad
>>>>>> to help.
>>>>>>
>>>>>> Pat
>>>>>> _______________________________________________
>>>>>> PPL-devel mailing list
>>>>>> PPL-devel at cs.unipr.it
>>>>>> http://www.cs.unipr.it/mailman/listinfo/ppl-devel
>>>>>>
>>>>
>>
>



More information about the PPL-devel mailing list