public SubPoly(IExpressionDecoder <Expression> decoder, IExpressionEncoder <Expression> encoder)
        {
            IntervalEnvironment <Expression>         intv  = new IntervalEnvironment <Expression>(decoder, encoder);
            LinearEqualitiesEnvironment <Expression> lineq = new LinearEqualitiesEnvironment <Expression>(decoder, encoder, true, false);

            this.subpoly = new SubPolyhedra <Expression>(lineq, intv, decoder, encoder);
        }
Ejemplo n.º 2
0
                public override INumericalAbstractDomain <BoxedVariable <Variable>, BoxedExpression> GetTopValue()
                {
                    switch (this.specificoptions[0].type)
                    {
                    case Analyzers.DomainKind.SubPolyhedra:
                    {
                        var intervals    = new IntervalEnvironment <BoxedVariable <Variable>, BoxedExpression>(this.ExpressionManager);
                        var karr         = new LinearEqualitiesForSubpolyhedraEnvironment <BoxedVariable <Variable>, BoxedExpression>(this.ExpressionManager);
                        var subpolyhedra = new SubPolyhedra <BoxedVariable <Variable>, BoxedExpression>(karr, intervals, this.ExpressionManager);

                        return(subpolyhedra);
                    }

                    default:
                        throw new AbstractInterpretationException("Abstract domain not supported");
                    }
                }
 private SubPoly(IAbstractDomain sp)
 {
     this.subpoly = sp as SubPolyhedra <Expression>;
     Debug.Assert(sp != null);
 }