Пример #1
0
        public LessThanConstraints(ExpressionManagerWithEncoder <Variable, Expression> expManager)
        {
            Contract.Requires(expManager != null);

            this.expManager = expManager;
            cache           = new FIFOCache <Pair <Expression, Expression>, Cache_Entry <Expression> >(16);
        }
Пример #2
0
            public TreatNonPolynomialCases(Expression x, ExpressionManagerWithEncoder <Variable, Expression> expManager)
                : base(expManager.Decoder)
            {
                Contract.Requires(expManager != null);

                this.x          = x;
                this.expManager = expManager;
            }
Пример #3
0
 public PentagonsPlus(
     WeakUpperBoundsEqual <Variable, Expression> left, Pentagons <Variable, Expression> right,
     ExpressionManagerWithEncoder <Variable, Expression> expManager)
     : base(left, right, expManager)
 {
     Contract.Requires(left != null);
     Contract.Requires(right != null);
     Contract.Requires(expManager != null);
 }
                private ExpressionManager <BoxedVariable <Variable>, BoxedExpression> GetExpressionManager()
                {
                    var valuedDecoder = new AnalysisWrapper.TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .ValueExpDecoder(this.Mdriver.Context, this.Mdriver.MetaDataDecoder);

                    var expDecoder = BoxedExpressionDecoder <Variable> .Decoder(valuedDecoder, (object o) => ExpressionType.Unknown);

                    var expEncoder = BoxedExpressionEncoder <Variable> .Encoder(this.Mdriver.MetaDataDecoder, this.Mdriver.Context);

                    var expManager = new ExpressionManagerWithEncoder <BoxedVariable <Variable>, BoxedExpression>(this.timeout, expDecoder, expEncoder);

                    return(expManager);
                }
Пример #5
0
        /// <summary>
        /// Please note that the decoder MUST be already be set for the <code>left</code> and <code>right</code> abstract domains
        /// </summary>
        public Pentagons(
            IIntervalAbstraction <Variable, Expression> left,
            WeakUpperBounds <Variable, Expression> right,
            ExpressionManagerWithEncoder <Variable, Expression> expManager)
            : base(left, right)
        {
            Contract.Requires(left != null);
            Contract.Requires(right != null);
            Contract.Requires(expManager != null);

            this.expManager = expManager;
        }
        static public bool TryConvertFrom <Expression>(
            Expression exp, ExpressionManagerWithEncoder <Variable, Expression> expManager,
            out NormalizedExpression <Variable> result)
        {
            Contract.Requires(exp != null);
            Contract.Requires(expManager != null);

            if (TryConvertFrom(exp, expManager.Decoder, out result))
            {
                return(true);
            }

            //if (expManager.Encoder != null)
            {
                Polynomial <Variable, Expression> normalized;
                if (Polynomial <Variable, Expression> .TryToPolynomialForm(exp, expManager.Decoder, out normalized))
                {
                    return(TryConvertFrom(normalized.ToPureExpression(expManager.Encoder), expManager.Decoder, out result));
                }
            }

            result = default(NormalizedExpression <Variable>);
            return(false);
        }
Пример #7
0
        public LessEqualThanConstraints(ExpressionManagerWithEncoder <Variable, Expression> expManager)
        {
            Contract.Requires(expManager != null);

            this.expManager = expManager;
        }
Пример #8
0
        public GreaterEqualThanZeroConstraints(ExpressionManagerWithEncoder <Variable, Expression> expressionManager)
        {
            Contract.Requires(expressionManager != null);

            ExpressionManager = expressionManager;
        }