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); }
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); }