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

P M Hill hill at comp.leeds.ac.uk
Thu Jul 9 14:16:39 CEST 2009


On Thu, 9 Jul 2009, Michael Classen wrote:

> make check failed with one test:
>
> tests failed: test06

Can you let me have more details wrt which "test06" is failing?
This test06 will be part of a larger test which will be indicated as 
failing a few lines before this message, starting with "FAIL:".

It would be also useful to know what configuration command you are using.

Pat

>
>
> 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