Package ai.domain

Examples of ai.domain.Variable


    }

    private Variables removeVariables(Collection<SimpleName> namesToRemove) {
      HashSet<Variable> newVars = new HashSet<Variable>(vars);
      for(SimpleName name: namesToRemove) {
        Variable var = getVar(name);     
        if (!newVars.contains(var))
          throw new VerifierException("variable not present");
        newVars.remove(var);
      }
      return new Variables(newVars);
View Full Code Here


      return true;
    }

    @Override
    public boolean visit(SimpleName node) {
      Variable var = EvaluationUtils.tryGetVariable(node);
      if (var!=null && !vars.contains(var))
        throw new VerifierException("Missing variable: '%s' expr: '%s'", var, node);
      return false;
    }
View Full Code Here

      return reverse(withIntegerBoxes((IntegerBoxes)right, (NonRelationalDomain) left));
    return ComparisonResult.UNCOMPARABLE;
  }
 
  public static void main(String[] args) {
    Variable var = new DummyVariable("aaa", 0);
    NonRelationalDomain<Bool> bools = NonRelationalDomain.getInitialValue();
    bools = bools.addNewVariable(var, Bool.TRUE, false);
    NonRelationalDomain<Interval> intv = NonRelationalDomain.getInitialValue();
    ProductDomain<NonRelationalDomain<Bool>, NonRelationalDomain<Interval>> x = ProductDomain.create(bools, intv);
    compare(x, x);
View Full Code Here

    public Pair<Interval, NonRelationalDomain<Interval>> processIntegerValueChange(
        Pair<Interval, NonRelationalDomain<Interval>> input, Expression ofWhat, int delta,
        boolean postfixOrPrefix) {
      Interval valueBeforeChange = input.left;
      Interval valueAfterChange = sem.delta(valueBeforeChange, delta);
      Variable var = EvaluationUtils.tryGetVariable(ofWhat);
      NonRelationalDomain<Interval> output = input.right;
      if (var != null && EvaluationUtils.isIntegerType(ofWhat))
        output = output.updateVariable(var, valueAfterChange);
      return Pair.create(postfixOrPrefix ? valueBeforeChange : valueAfterChange, output);
    }
View Full Code Here

    }

    @Override
    public Pair<Interval, NonRelationalDomain<Interval>> processIntegerAssignment(
        Pair<Interval, NonRelationalDomain<Interval>> input, Expression toWhat) {
      Variable var = EvaluationUtils.tryGetVariable(toWhat);
      if (var != null)
        return input.setRight(input.right.updateVariable(var, input.left));
      else
        return input;
    }
View Full Code Here

    if (!isInterestingType(name))
      return null;
    PS result = constructEvaluationStateFromDomain(input);
    if (initializerOrNull != null)
      result = evaluateExpression(initializerOrNull, result);
    Variable variable = EvaluationUtils.tryGetVariable(name);
    if (variable == null)
      throw new FatalAIError("Cannot resolve type variable: '%s'", name);
    if (!asAssignment || initializerOrNull == null)     
      result = processNewVariable(result, variable, asAssignment);
    else
View Full Code Here

      if (input.isBottom())
        return input;
      if (value.isBottom())
        return input.getBottom();

      Variable var = EvaluationUtils.tryGetVariable(node);
      if (var == null) // no change in state
        return input;
      else
        return input.updateVariable(var, value);
    }
View Full Code Here

  @Override
  public final DI evaluateNewArgument(SimpleName argument, DI input) {
    if (!isInterestingType(argument))
      return null;
    Variable variable = EvaluationUtils.tryGetVariable(argument);
    if (variable == null)
      throw new FatalAIError("Cannot resolve type variable: '%s'", argument);
    PS result = constructEvaluationStateFromDomain(input);
    result = processNewVariable(result, variable, true);
    return constructDomainFromEvaluationState(result);
View Full Code Here

      this.variables = variables;
    }
   
    private void process(List<NonRelationalDomain<Interval>> result,
        double start, double end, int varIdx, ArrayList<SequencePair> subData) {
      Variable currentVar = variables.get(varIdx);
      for(NonRelationalDomain<Interval> smaller: apply(subData, varIdx+1))
        result.add(smaller.addNewVariable(currentVar, new Interval(start, end), false));
    }
View Full Code Here

    if (input.isBottom())
      return input;
    NonRelationalDomain<Bool> bools = input.getLeft();
    NonRelationalDomain<Interval> intv = input.getRight();
    for(SimpleName name: variablesToRemove){
      Variable var = EvaluationUtils.tryGetVariable(name);
      if (var == null)
        continue;
      if (bools.containsValue(var))
        bools = bools.removeVariable(var);
      else if (intv.containsValue(var))
View Full Code Here

TOP

Related Classes of ai.domain.Variable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.