/// <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); }
/// <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); }
/// <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); }