-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwolimplmgr.h
58 lines (41 loc) · 1.05 KB
/
wolimplmgr.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
* wolimplmgr.h
*
* Created on: Sep 22, 2014
* Author: Vijay Anand Korthikanti
* Interface for the Implication Manager
*/
#ifndef WOLIMPLMGR_H_
#define WOLIMPLMGR_H_
#include <utility>
#include "common.h"
namespace wolver {
class WolGenEngine;
class WolImplEngine;
class WolValue;
class WolImplMgr {
public: //singleton
static WolImplMgr& getInstance()
{
static WolImplMgr instance;
return instance;
}
private:
WolImplMgr() { initializeImplicationEngine();}
~WolImplMgr();
WolImplMgr(WolImplMgr const&);
void operator= (WolImplMgr const&);
public: // methods
std::pair<bool, nodeL> performImplications(WolNodeSptr node);
std::pair<bool, nodeL> performImplications(nodeL &inputs, nodeL &outputs);
WolValueSptr performGenarilization(WolNodeSptr node, WolValueSptr value);
private: // methods
void initializeImplicationEngine();
void collectStatistics();
private:
WolImplEngine *_impEngine;
WolGenEngine *_genEngine;
// statistics data for all implications
};
}
#endif /* WOLIMPLMGR_H_ */