public static IMethodResult <Variable> HelperForRunTheArithmeticAnalysis ( string methodName, ADomainKind adomain, IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> /*!*/ driver, Analyzers.Arithmetic.ArithmeticOptions options, Predicate <APC> cachePCs ) { return(RunTheAnalysis(methodName, driver, new ArithmeticAnalysis(methodName, driver, options, adomain, cachePCs))); }
public ArithmeticAnalysis ( string methodName, IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> mdriver, Analyzers.Arithmetic.ArithmeticOptions options, ADomainKind abstractDomain, Predicate <APC> cachePCs ) : base(methodName, abstractDomain, mdriver, options, cachePCs) { this.myOptions = options; }
/// <summary> /// The entry point for running the arithmetic analysis /// </summary> public static IMethodResult <Variable> RunTheArithmeticAnalysis <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> ( string methodName, IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> driver, ADomainKind adomain, Analyzers.Arithmetic.ArithmeticOptions options, Predicate <APC> cachePCs ) where Variable : IEquatable <Variable> where Expression : IEquatable <Expression> where Type : IEquatable <Type> { return(TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .HelperForRunTheArithmeticAnalysis(methodName, adomain, driver, options, cachePCs)); }
internal NumericalAnalysis ( string methodName, ADomainKind abstractDomain, IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> mdriver, Options options, Predicate <APC> cachePCs ) : base(methodName, mdriver, options, cachePCs) { this.optionsList = new List <Options>(); WeakUpperBoundsEqual <BoxedVariable <Variable>, BoxedExpression> .DefaultClosureSteps = mdriver.Options.Steps; NumericalDomainWithKarr <BoxedVariable <Variable>, BoxedExpression> .DefaultClosureSteps = mdriver.Options.Steps; NumericalDomainWithKarr <BoxedVariable <Variable>, BoxedExpression> .MaxPairWiseEqualitiesInClosure = options.ClosurePairs; }
RunTheAnalysis <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, Options> ( string methodName, ADomainKind adomain, IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> driver, Options options, Predicate <APC> cachePCs ) where Variable : IEquatable <Variable> where Expression : IEquatable <Expression> where Type : IEquatable <Type> where Options : Analyzers.ValueAnalysisOptions <Options> { var analysis = new TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .NumericalAnalysis <Options>(methodName, adomain, driver, options, cachePCs); return(TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .RunTheAnalysis(methodName, driver, analysis)); }