Exemple #1
0
 /// <summary>
 /// Swap variables (i.e. x_i -> y_i and y_i -> x_i) of a node.
 /// [ REFS: 'result', DEREFS: dd ]
 /// </summary>
 public static CUDDNode SwapVariables(CUDDNode dd, CUDDVars oldVars, CUDDVars newVars)
 {
     return(new CUDDNode(PlatformInvoke.DD_SwapVariables(manager, dd.Ptr, oldVars.GetArrayPointer(), newVars.GetArrayPointer(), oldVars.GetNumVars())));
 }
Exemple #2
0
 /// <summary>
 /// Generates BDD for the function x = y
 /// where x, y are num_vars-bit numbers encoded by variables x_vars, y_vars
 /// [ REFS: 'result', DEREFS: 'none' ]
 /// </summary>
 public static CUDDNode VariablesEquals(CUDDVars xVars, CUDDVars yVars)
 {
     return(new CUDDNode(PlatformInvoke.DD_VariablesEquals(manager, xVars.GetArrayPointer(), yVars.GetArrayPointer(), xVars.GetNumVars())));
 }
Exemple #3
0
 /// <summary>
 /// Or Abstract variables in vars, dd must be 0-1 ADD.
 /// result will not contain boolean variables in vars
 /// [ REFS: 'result', DEREFS: dd ]
 /// </summary>
 public static CUDDNode ThereExists(CUDDNode dd, CUDDVars vars)
 {
     return new CUDDNode(PlatformInvoke.DD_ThereExists(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars()));
 }
Exemple #4
0
 /// <summary>
 /// Print vector dd, suppos that all variables supporting dd belong to vars
 /// [ REFS: 'none', DEREFS: 'none' ]
 /// </summary>
 public static void PrintVector(CUDDNode dd, CUDDVars vars)
 {
     PlatformInvoke.DD_PrintVector(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars(), LOW);
 }
Exemple #5
0
 /// <summary>
 /// Return (f and g) abstract vars
 /// [ REFS: 'result', DEREFS: f ]
 /// </summary>
 public static CUDDNode MinAbstract(CUDDNode f, CUDDVars vars)
 {
     return new CUDDNode(PlatformInvoke.DD_MinAbstract(manager, f.Ptr, vars.GetArrayPointer(), vars.GetNumVars()));
 }
Exemple #6
0
 /// <summary>
 /// Sum (ie. +) Abstract variables in vars
 /// [ REFS: 'result', DEREFS: dd ]
 /// </summary>
 public static CUDDNode SumAbstract(CUDDNode dd, CUDDVars vars)
 {
     return new CUDDNode(PlatformInvoke.DD_SumAbstract(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars()));
 }
Exemple #7
0
 /// <summary>
 /// Return the first cube making the ADD not 0
 /// [ REFS: 'result', DEREFS: 'dd' ]
 /// </summary>
 public static CUDDNode RestrictToFirst(CUDDNode dd, CUDDVars vars)
 {
     return new CUDDNode(PlatformInvoke.DD_RestrictToFirst(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars()));
 }
Exemple #8
0
 /// <summary>
 /// Return (f and g) abstract vars
 /// [ REFS: 'result', DEREFS: f ]
 /// </summary>
 public static CUDDNode MaxAbstract(CUDDNode f, CUDDVars vars)
 {
     return(new CUDDNode(PlatformInvoke.DD_MaxAbstract(manager, f.Ptr, vars.GetArrayPointer(), vars.GetNumVars())));
 }
Exemple #9
0
 /// <summary>
 /// Print vector dd, suppos that all variables supporting dd belong to vars
 /// [ REFS: 'none', DEREFS: 'none' ]
 /// </summary>
 public static void PrintVector(CUDDNode dd, CUDDVars vars)
 {
     PlatformInvoke.DD_PrintVector(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars(), LOW);
 }
Exemple #10
0
 /// <summary>
 /// Return the int value corresponding the binary representation of the current minterm
 /// [ REFS: 'none', DEREFS: 'none' ]
 /// </summary>
 public static int MinTermToInt(CUDDNode dd, CUDDVars vars)
 {
     return PlatformInvoke.Cudd_MinTermToInt(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars());
 }
Exemple #11
0
 /// <summary>
 /// Return (f and g) abstract vars
 /// [ REFS: 'result', DEREFS: f, g ]
 /// </summary>
 public static CUDDNode AndExists(CUDDNode f, CUDDNode g, CUDDVars vars)
 {
     return(new CUDDNode(PlatformInvoke.DD_AndExists(manager, f.Ptr, g.Ptr, vars.GetArrayPointer(), vars.GetNumVars())));
 }
Exemple #12
0
 /// <summary>
 /// Universal Abstract (ie. product, *) variables in vars, the same with ForAll
 /// [ REFS: 'result', DEREFS: dd ]
 /// </summary>
 public static CUDDNode ProductAbstract(CUDDNode dd, CUDDVars vars)
 {
     return(new CUDDNode(PlatformInvoke.DD_ProductAbstract(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars())));
 }
Exemple #13
0
 /// <summary>
 /// Universal Abstract (ie. product, *) variables in vars
 /// [ REFS: 'result', DEREFS: dd ]
 /// </summary>
 public static CUDDNode ForAll(CUDDNode dd, CUDDVars vars)
 {
     return(new CUDDNode(PlatformInvoke.DD_ForAll(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars())));
 }
Exemple #14
0
 /// <summary>
 /// Return the first cube making the ADD not 0
 /// [ REFS: 'result', DEREFS: 'dd' ]
 /// </summary>
 public static CUDDNode RestrictToFirst(CUDDNode dd, CUDDVars vars)
 {
     return(new CUDDNode(PlatformInvoke.DD_RestrictToFirst(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars())));
 }
Exemple #15
0
 public static ODDNode BuildODD(CUDDNode reach, CUDDVars rowVars)
 {
     return new ODDNode(PlatformInvoke._Z9build_oddP9DdManagerP6DdNodePS2_i(manager, reach.Ptr, rowVars.GetArrayPointer(), rowVars.GetNumVars()));
 }
Exemple #16
0
 /// <summary>
 /// Return the int value corresponding the binary representation of the current minterm
 /// [ REFS: 'none', DEREFS: 'none' ]
 /// </summary>
 public static int MinTermToInt(CUDDNode dd, CUDDVars vars)
 {
     return(PlatformInvoke.Cudd_MinTermToInt(manager, dd.Ptr, vars.GetArrayPointer(), vars.GetNumVars()));
 }
Exemple #17
0
 public static ODDNode BuildODD(CUDDNode reach, CUDDVars rowVars)
 {
     return(new ODDNode(PlatformInvoke._Z9build_oddP9DdManagerP6DdNodePS2_i(manager, reach.Ptr, rowVars.GetArrayPointer(), rowVars.GetNumVars())));
 }