packages feed

HasCacBDD-0.1.0.0: c/BDDNodeC.h

#include <BDDNode.h>

extern "C" {

BDD* BDD_new();
const XManager* BDD_checkSameManager(const BDD* this_ptr, const BDD* other);
int BDD_Variable(BDD* this_ptr);
BDD BDD_Then(const BDD* this_ptr);
BDD BDD_Else(const BDD* this_ptr);
BDD BDD_Exist(BDD* this_ptr, const BDD* cube);
BDD BDD_Universal(BDD* this_ptr, const BDD* cube);
BDD BDD_Restrict(const BDD* this_ptr, const BDD* other);
BDD BDD_Compose(const BDD* this_ptr, int v, const BDD* other);
BDD BDD_Permute(const BDD* this_ptr, const vector<int>* permu);
BDD BDD_AndExist(BDD* this_ptr, const BDD* other, const BDD* cube);
bool BDD_IsComp(BDD* this_ptr);
const XManager* BDD_manager(const BDD* this_ptr);

// In C we can not overload operators, so we use functions instead.
BDD BDD_Operator_Not       (const BDD* this_ptr); // !
bool BDD_Operator_Equal    (const BDD* this_ptr, const BDD* other); // ==
BDD BDD_Operator_Or        (const BDD* this_ptr, const BDD* other); // +
BDD BDD_Operator_And       (const BDD* this_ptr, const BDD* other); // *
BDD BDD_Operator_Xor       (const BDD* this_ptr, const BDD* other); // ^
BDD BDD_Operator_LessEqual (const BDD* this_ptr, const BDD* other); // <=
BDD BDD_Operator_Nor       (const BDD* this_ptr, const BDD* other); // %
BDD BDD_Operator_Nand      (const BDD* this_ptr, const BDD* other); // |
BDD BDD_Operator_XNor      (const BDD* this_ptr, const BDD* other); // &

XBDDManager* XBDDManager_new(int varCount);
BDD XBDDManager_BddOne(XBDDManager* this_ptr);
BDD XBDDManager_BddZero(XBDDManager* this_ptr);
BDD XBDDManager_BddVar(XBDDManager* this_ptr, int varIndex);
BDD XBDDManager_Ite(XBDDManager* this_ptr, const BDD* f, const BDD* g, const BDD* h);

void XBDDManager_ShowInfo(XBDDManager* this_ptr, double vtime);

const XManager* XBDDManager_manager(const XBDDManager* this_ptr);
}