6 #ifndef YARP_MANAGER_BINEXPARSER
7 #define YARP_MANAGER_BINEXPARSER
35 sprintf(str,
"%s%d", opd,
node_id++);
46 sprintf(str,
"%s%d", opt,
node_id++);
82 const char*
getName() {
return strName.c_str(); }
101 bool parse(std::string _exp);
105 validOperands.push_back(opnd);
118 bool evalTree(
BinaryNodePtr node, std::map<std::string, bool>& opnd);
120 bool checkExpression(std::string& strexp);
121 void parseExpression(std::string &strexp,
BinaryNodePtr& node);
124 std::string getNextOperand(std::string &strexp);
125 std::string popNextOperand(std::string &strexp);
126 void createTruthTable(
const int n);
127 void printTruthTable(std::string lopr);
131 std::string expression;
135 std::map<std::string, bool> operands;
136 std::vector<std::string> validOperands;
137 std::vector<std::string> invalidOperands;
138 std::vector<std::vector<int> > truthTable;
148 maxIteration(max_itr),
149 trainRate(train_rate),
155 bool train(
const std::vector<std::vector<int> > &truthTable);
157 const std::vector<double> &
getAlphas() {
return alphas; }
158 const std::vector<double> &
getErrors() {
return errors; }
164 std::vector<double> alphas;
165 std::vector<double> errors;
virtual ~BinaryExpParser()
void addRestrictedOperand(const char *opnd)
bool parse(std::string _exp)
const std::vector< std::vector< int > > & getTruthTable()
const std::map< std::string, bool > & getOperands()
bool exportDotGraph(const char *szFileName)
~BinaryNode() override=default
BinaryNode(const char *opd)
BinaryNode(const char *opt, BinaryNode *left, BinaryNode *right)
const std::vector< double > & getErrors()
bool train(const std::vector< std::vector< int > > &truthTable)
const std::vector< double > & getAlphas()
LinkTrainer(int max_itr=1000, double train_rate=1.0)
bool addSuc(Node *node, float weight, bool _virtual=false)
class Node
Link & getLinkAt(int index)
void setLabel(const char *szLabel)
BinaryNode * BinaryNodePtr
enum yarp::manager::__BinNodeType BinNodeType
enum yarp::manager::__NodeType NodeType
The main, catch-all namespace for YARP.