コード例 #1
0
 public override IEnumerable <int> GetPlaceOutArcs(int placeId)
 {
     foreach (var item in InMatrix.GetRow(placeId).GetIndexedEnumerator())
     {
         if (item.Value > 0)
         {
             yield return(item.Key);
         }
     }
 }
コード例 #2
0
        //[Pure]
        public override IEnumerable <int> NonInhibitorsIntoTransition(int transitionId)
        {
            Contract.Requires(Transitions.ContainsKey(transitionId));

            for (int i = 0; i < InMatrix.GetColumn(transitionId).Count; i++)
            {
                if (InMatrix[i, transitionId] != 0.0 && !ArcIsInhibitor(i, transitionId))
                {
                    yield return(i);
                }
            }
        }
コード例 #3
0
        public override bool IsEmptyTransition(int transitionId)
        {
            Contract.Requires(Transitions.ContainsKey(transitionId));

            return(InMatrix.GetColumn(transitionId).Sum() == 0);
        }