예제 #1
0
        public bool Visit(Reification reif)
        {
            bool c = false;

            if (reif.Max < reif.MaxVal)
            {
                c = UpdateInterval(reif, reif.MinVal, reif.MinVal);
                if (c)
                {
                    AddChanged(reif);
                }
                if (UpdateInterval(reif.Condition, Double.NegativeInfinity, 0))
                {
                    AddChanged(reif.Condition);
                    c = true;
                }
            }
            else if (reif.Min > reif.MinVal)
            {
                c = UpdateInterval(reif, reif.MaxVal, reif.MaxVal);
                if (c)
                {
                    AddChanged(reif);
                }
                if (UpdateInterval(reif.Condition, 1, 1))
                {
                    AddChanged(reif.Condition);
                    c = true;
                }
            }

            return(c);
        }
예제 #2
0
 public bool Visit(Reification reif)
 {
     reif.Parents.Clear();
     reif.Condition.Accept(this);
     UpdateInterval(reif, reif.MinVal, reif.MaxVal);
     return(true);
 }
예제 #3
0
 public bool Visit(Reification reif)
 {
     if (reif.Condition.Min > 0)
     {
         if (UpdateInterval(reif, reif.MaxVal, reif.MaxVal))
         {
             AddChanged(reif);
             return(true);
         }
     }
     else if (reif.Condition.Max < 0)
     {
         if (UpdateInterval(reif, reif.MinVal, reif.MinVal))
         {
             AddChanged(reif);
             return(true);
         }
     }
     return(false);
 }
예제 #4
0
 public void Visit(Reification reif)
 {
     AddToQueue(reif);
     reif.Condition.Accept(this);
     //return true;
 }
예제 #5
0
 public void Visit(Reification reif)
 {
     reif.Condition.Accept(this);
 }
예제 #6
0
 public bool Visit(Reification reif)
 {
     reif.Condition.Parents.Add(reif);
     //reif.Condition.Accept(this);
     return(false);
 }