Пример #1
0
        public RandomVariable GetRandomVariable(object owner, IContextLookup globalVars)
        {
            Domain objDomain;

            switch (DomainType)
            {
            case RandomVariableDomainType.Boolean:
                objDomain = new BooleanDomain();
                break;

            case RandomVariableDomainType.FiniteInteger:

                objDomain =
                    new FiniteIntegerDomain(IntValues.ConvertAll <Integer>(intObj => new Integer(intObj)).ToArray());
                break;

            case RandomVariableDomainType.ArbitraryToken:
                var enumerable = ArbitraryValues.EvaluateTyped(owner, globalVars);
                var asList     = new System.Collections.ArrayList();
                foreach (object o in enumerable)
                {
                    asList.Add(o);
                }
                objDomain =
                    new ArbitraryTokenDomain(asList.ToArray());
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(new RandVar(Name, objDomain));
        }
Пример #2
0
 public IntegerSumProposition(string name, FiniteIntegerDomain sumsDomain, params IRandomVariable[] sums)
     : base(name)
 {
     if (null == sumsDomain)
     {
         throw new IllegalArgumentException("Sum Domain must be specified.");
     }
     if (null == sums || 0 == sums.Length)
     {
         throw new IllegalArgumentException("Sum variables must be specified.");
     }
     this.sumsDomain = sumsDomain;
     foreach (IRandomVariable rv in sums)
     {
         addScope(rv);
         sumVars.Add(rv);
     }
 }