Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,31 +64,31 @@ int main()
else if(p1=="SIN")
{
cin>>p2;
gra.push(new Sin(name,gra[p2]));
gra.push(new Opn<Sin>(name,gra[p2]));
continue;
}
else if(p1=="EXP")
{
cin>>p2;
gra.push(new Exp(name,gra[p2]));
gra.push(new Opn<Exp>(name,gra[p2]));
continue;
}
else if(p1=="LOG")
{
cin>>p2;
gra.push(new Log(name,gra[p2]));
gra.push(new Opn<Log>(name,gra[p2]));
continue;
}
else if(p1=="TANH")
{
cin>>p2;
gra.push(new Tanh(name,gra[p2]));
gra.push(new Opn<Tanh>(name,gra[p2]));
continue;
}
else if(p1=="SIGMOID")
{
cin>>p2;
gra.push(new Sigmoid(name,gra[p2]));
gra.push(new Opn<Sigmoid>(name,gra[p2]));
continue;
}
else
Expand All @@ -97,39 +97,39 @@ int main()
cin>>p2;
if(type=="+")
{
gra.push(new sum(name,gra[p1],gra[p2]));
gra.push(new Tpn<sum>(name,gra[p1],gra[p2]));
}
else if(type=="-")
{
gra.push(new subtraction(name,gra[p1],gra[p2]));
gra.push(new Tpn<subtraction>(name,gra[p1],gra[p2]));
}
else if(type=="*")
{
gra.push(new multiply(name,gra[p1],gra[p2]));
gra.push(new Tpn<multiply>(name,gra[p1],gra[p2]));
}
else if(type=="/")
{
gra.push(new division(name,gra[p1],gra[p2]));
gra.push(new Tpn<division>(name,gra[p1],gra[p2]));
}
else if(type==">")
{
gra.push(new GTR(name,gra[p1],gra[p2]));
gra.push(new Tpn<GTR>(name,gra[p1],gra[p2]));
}
else if(type=="<")
{
gra.push(new LSS(name,gra[p1],gra[p2]));
gra.push(new Tpn<LSS>(name,gra[p1],gra[p2]));
}
else if(type==">=")
{
gra.push(new GEQ(name,gra[p1],gra[p2]));
gra.push(new Tpn<GEQ>(name,gra[p1],gra[p2]));
}
else if(type=="<=")
{
gra.push(new LEQ(name,gra[p1],gra[p2]));
gra.push(new Tpn<LEQ>(name,gra[p1],gra[p2]));
}
else if(type=="==")
{
gra.push(new EQU(name,gra[p1],gra[p2]));
gra.push(new Tpn<EQU>(name,gra[p1],gra[p2]));
}
else assert(0);
}
Expand Down
166 changes: 83 additions & 83 deletions node.cpp
Original file line number Diff line number Diff line change
@@ -1,84 +1,84 @@
#include "node.h"
float Node::geteval()
{
}
void Node::setvalue(float a)
{
}
void Node::reset()
{
calculated=0;
}
float ZeroParentsNode::geteval()
{
return 1;
}
int ZeroParentsNode::getParentsNum()
{
return 0;
}
float OneParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval());
return tempeval;
}
}
int OneParentsNode::getParentsNum()
{
return 1;
}
float OneParentsNode::func(float x){}
OneParentsNode::OneParentsNode(std::string a,Node* parent1)
{
name=a;
p1=parent1;
}
float TwoParentsNode::func(float x,float y)
{
}
float TwoParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval(),p2->geteval());
return tempeval;
}
}
int TwoParentsNode::getParentsNum()
{
return 2;
}
TwoParentsNode::TwoParentsNode(std::string a,Node* parent1,Node* parent2)
{
name=a;
p1=parent1;
p2=parent2;
}
float ThreeParentsNode::func(float x,float y,float z){}
float ThreeParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval(),p2->geteval(),p3->geteval());
return tempeval;
}
}
int ThreeParentsNode::getParentsNum()
{
return 3;
}
ThreeParentsNode::ThreeParentsNode(std::string a,Node* parent1,Node* parent2,Node* parent3)
{
name=a;
p1=parent1;
p2=parent2;
p3=parent3;
#include "node.h"
float Node::geteval()
{
}
void Node::setvalue(float a)
{
}
void Node::reset()
{
calculated=0;
}
float ZeroParentsNode::geteval()
{
return 1;
}
int ZeroParentsNode::getParentsNum()
{
return 0;
}
float OneParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval());
return tempeval;
}
}
int OneParentsNode::getParentsNum()
{
return 1;
}
float OneParentsNode::func(float x){}
OneParentsNode::OneParentsNode(std::string a,Node* parent1)
{
name=a;
p1=parent1;
}
float TwoParentsNode::func(float x,float y)
{
}
float TwoParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval(),p2->geteval());
return tempeval;
}
}
int TwoParentsNode::getParentsNum()
{
return 2;
}
TwoParentsNode::TwoParentsNode(std::string a,Node* parent1,Node* parent2)
{
name=a;
p1=parent1;
p2=parent2;
}
float ThreeParentsNode::func(float x,float y,float z){}
float ThreeParentsNode::geteval()
{
if(calculated)return tempeval;
else
{
calculated=1;
tempeval=func(p1->geteval(),p2->geteval(),p3->geteval());
return tempeval;
}
}
int ThreeParentsNode::getParentsNum()
{
return 3;
}
ThreeParentsNode::ThreeParentsNode(std::string a,Node* parent1,Node* parent2,Node* parent3)
{
name=a;
p1=parent1;
p2=parent2;
p3=parent3;
}
Loading