packages feed

HasCacBDD-0.3.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);
void BDD_Then(BDD* ret_ptr, const BDD* this_ptr);
void BDD_Else(BDD* ret_ptr, const BDD* this_ptr);
void BDD_Exist(BDD* ret_ptr, BDD* this_ptr, const BDD* cube);
void BDD_Universal(BDD* ret_ptr, BDD* this_ptr, const BDD* cube);
void BDD_Restrict(BDD* ret_ptr, const BDD* this_ptr, const BDD* other);
void BDD_Compose(BDD* ret_ptr, const BDD* this_ptr, int v, const BDD* other);
void BDD_Permute(BDD* ret_ptr, const BDD* this_ptr, const vector<int>* permu);
void BDD_AndExist(BDD* ret_ptr, 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.
void BDD_Operator_Not       (BDD* ret_ptr, const BDD* this_ptr); // !

bool BDD_Operator_Equal    (const BDD* this_ptr, const BDD* other); // ==
void BDD_Operator_Or        (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // +
void BDD_Operator_And       (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // *
void BDD_Operator_Xor       (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // ^
void BDD_Operator_LessEqual (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // <=
void BDD_Operator_Nor       (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // %
void BDD_Operator_Nand      (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // |
void BDD_Operator_XNor      (BDD* ret_ptr, const BDD* this_ptr, const BDD* other); // &


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

void XBDDManager_ShowInfo(XBDDManager* this_ptr);

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