Ejemplo n.º 1
0
            /// <summary>
            /// Return the complement of dds
            /// [ REFS: 'result', DEREFS: 'dds' ]
            /// </summary>
            public static CUDDNode Not(List <CUDDNode> dds)
            {
                CUDDNode result = CUDD.Constant(1);

                foreach (CUDDNode dd in dds)
                {
                    result = CUDD.Function.And(result, CUDD.Function.Not(dd));
                }

                return(result);
            }
Ejemplo n.º 2
0
            /// <summary>
            /// Or all CUDDNode in dds
            /// [ REFS: 'result', DEREFS: dds ]
            /// </summary>
            public static CUDDNode Or(List <CUDDNode> dds)
            {
                CUDDNode result = CUDD.Constant(0);

                foreach (CUDDNode dd in dds)
                {
                    result = CUDD.Function.Or(result, dd);
                }

                return(result);
            }
Ejemplo n.º 3
0
            /// <summary>
            /// (dd && list[0]) || (dd && list[1]) ...
            /// [ REFS: 'result', DEREFS: dd, list ]
            /// </summary>
            /// <param name="dd"></param>
            /// <param name="list"></param>
            /// <returns></returns>
            public static CUDDNode And(CUDDNode dd, List <CUDDNode> list)
            {
                CUDDNode result = CUDD.Constant(0);

                foreach (CUDDNode dd1 in list)
                {
                    CUDD.Ref(dd);
                    CUDDNode temp = CUDD.Function.And(dd, dd1);
                    result = CUDD.Function.Or(result, temp);
                }
                CUDD.Deref(dd);
                return(result);
            }