[PPL-devel] PPL's Int64_Box's CC76_widening

Zhoulai zell08v at orange.fr
Sun Sep 2 19:05:05 CEST 2012


Hello,

By PPL's Int64_Box.CC76_widening_assign , I get [1,1] \widen [1,2] = [1,2]
whereas [1,+inf] is expected in this case.

Here is my Java test code (below createIntBox (a,b) is a help function that
creates an interval of dimension 1 between integers 'a' and 'b')

    Int64_Box b=createIntBox(1, 1);
    Int64_Box b2=createIntBox(1, 2);
    out.println(b+",      " + b2);

    b2.CC76_widening_assign(b, new By_Reference<Integer>(0));
    out.println(b+",      " + b2);

I get:

A in 1,      A in [1, 2]
A in 1,      A in [1, 2]

I probably misunderstand something, but applying the original definition of
widening as defined in CC76, we have the following:

[1,1] \widening [1,2] = [1, +inf]

which is different from PPL's result above.


Strangely, if I change 'b2' to [1,3] ,i.e.
   Int64_Box b2=createIntBox(1, 3),

I will get the expected results, i.e
[1,1] \widening [1,3] = [1, +inf]


So It becomes a bit confusing. Maybe PPL has another implementation of
CC76's widening?  Can you clarify a bit?

Thanks.

Zell.
p.s

For completeness, here is the 'createIntBox' part:

    private static Int64_Box createIntBox(int a, int b) {
        Linear_Expression_Variable var = new
Linear_Expression_Variable(new  Variable(0));
        Linear_Expression le_a = new Linear_Expression_Coefficient(new
Coefficient(a));
        Linear_Expression le_b = new Linear_Expression_Coefficient(new
Coefficient(b));
        Int64_Box box=new Int64_Box(1, Degenerate_Element.UNIVERSE);
        box.add_constraint(new Constraint(var,
Relation_Symbol.GREATER_OR_EQUAL, le_a));
        box.add_constraint(new Constraint(var,
Relation_Symbol.LESS_OR_EQUAL, le_b));
        return box;
    }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cs.unipr.it/pipermail/ppl-devel/attachments/20120902/ad0328c3/attachment.htm>


More information about the PPL-devel mailing list