[Avida-SVN] r1840 - branches/uml/source/main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Mon Jul 23 12:07:36 PDT 2007
Author: hjg
Date: 2007-07-23 15:07:36 -0400 (Mon, 23 Jul 2007)
New Revision: 1840
Modified:
branches/uml/source/main/cOrganism.cc
branches/uml/source/main/cStats.cc
branches/uml/source/main/cStats.h
branches/uml/source/main/cTaskLib.cc
Log:
remove automatic print of xml files; add stats
Modified: branches/uml/source/main/cOrganism.cc
===================================================================
--- branches/uml/source/main/cOrganism.cc 2007-07-23 17:23:26 UTC (rev 1839)
+++ branches/uml/source/main/cOrganism.cc 2007-07-23 19:07:36 UTC (rev 1840)
@@ -601,7 +601,9 @@
{
if(GetCellID()==-1) return;
m_model.printXMI();
+
+
const tArray<double> & resource_count = m_interface->GetResources();
tList<tBuffer<int> > other_input_list;
@@ -675,6 +677,12 @@
m_world->GetStats().addActions(m_model.numActions());
m_world->GetStats().addStateDiagrams(m_model.numSDs());
+
+ if ((m_model.getBonusInfo("spinn1") > 0) &&
+ (m_model.getBonusInfo("spinn2") > 0)) {
+ m_world->GetStats().N1andN2Passed();
+ }
+
// m_world->GetStats().addTransLabel(transition_labels.size());
Modified: branches/uml/source/main/cStats.cc
===================================================================
--- branches/uml/source/main/cStats.cc 2007-07-23 17:23:26 UTC (rev 1839)
+++ branches/uml/source/main/cStats.cc 2007-07-23 19:07:36 UTC (rev 1840)
@@ -1015,10 +1015,15 @@
df.Write( av_number_of_trans_lab.Average(), "av num of trans lab");
df.Write( m_hydraAttempt.Sum(), "total number of hydra attempts" );
df.Write( m_hydraPassed.Sum(), "total number of hydra passes" );
- df.Write( m_spinAttempt.Sum(), "total number of spin attempts" );
- df.Write( m_spinPassed.Sum(), "total number of spin passes" );
- df.Write( m_panAttempt.Sum(), "total number of pan attempts" );
- df.Write( m_panPassed.Sum(), "total number of pan passes" );
+ df.Write( m_W1Attempt.Sum(), "total number of spin W1 attempts" );
+ df.Write( m_W1Passed.Sum(), "total number of spin W1 passes" );
+ df.Write( m_W2Attempt.Sum(), "total number of spin W2 attempts" );
+ df.Write( m_W2Passed.Sum(), "total number of spin W2 passes" );
+ df.Write( m_N1Attempt.Sum(), "total number of spin N1 attempts" );
+ df.Write( m_N1Passed.Sum(), "total number of spin N1 passes" );
+ df.Write( m_N2Attempt.Sum(), "total number of spin N2 attempts" );
+ df.Write( m_N2Passed.Sum(), "total number of spin N2 passes" );
+ df.Write( m_N1andN2Passed.Sum(), "total number of spin N1 & N2 passes");
av_number_of_states.Clear();
av_number_of_trans.Clear();
@@ -1031,10 +1036,15 @@
m_hydraAttempt.Clear();
m_hydraPassed.Clear();
- m_spinAttempt.Clear();
- m_spinPassed.Clear();
- m_panAttempt.Clear();
- m_panPassed.Clear();
+ m_N1Attempt.Clear();
+ m_N2Attempt.Clear();
+ m_W1Attempt.Clear();
+ m_W2Attempt.Clear();
+ m_N1Passed.Clear();
+ m_N2Passed.Clear();
+ m_W1Passed.Clear();
+ m_W2Passed.Clear();
+ m_N1andN2Passed.Clear();
df.Endl();
Modified: branches/uml/source/main/cStats.h
===================================================================
--- branches/uml/source/main/cStats.h 2007-07-23 17:23:26 UTC (rev 1839)
+++ branches/uml/source/main/cStats.h 2007-07-23 19:07:36 UTC (rev 1840)
@@ -260,12 +260,18 @@
cDoubleSum av_number_of_trans_lab;
cDoubleSum m_hydraAttempt;
cDoubleSum m_hydraPassed;
- cDoubleSum m_spinAttempt;
- cDoubleSum m_spinPassed;
- cDoubleSum m_panAttempt;
- cDoubleSum m_panPassed;
+ cDoubleSum m_N1Attempt;
+ cDoubleSum m_N1Passed;
+ cDoubleSum m_N2Attempt;
+ cDoubleSum m_N2Passed;
+ cDoubleSum m_W1Attempt;
+ cDoubleSum m_W1Passed;
+ cDoubleSum m_W2Attempt;
+ cDoubleSum m_W2Passed;
+ cDoubleSum m_N1andN2Passed;
+
cStats(); // @not_implemented
cStats(const cStats&); // @not_implemented
cStats& operator=(const cStats&); // @not_implemented
@@ -636,11 +642,15 @@
void addTransLabel(int x) { av_number_of_trans_lab.Add(x); }
void HydraAttempt() { m_hydraAttempt.Add(1); }
void HydraPassed() { m_hydraPassed.Add(1); }
- void SpinAttempt() { m_spinAttempt.Add(1); }
- void SpinPassed() { m_spinPassed.Add(1); }
- void PanAttempt() { m_panAttempt.Add(1); }
- void PanPassed() { m_panPassed.Add(1); }
-
+ void N1Attempt() { m_N1Attempt.Add(1); }
+ void N1Passed() { m_N1Passed.Add(1); }
+ void N2Attempt() { m_N2Attempt.Add(1); }
+ void N2Passed() { m_N2Passed.Add(1); }
+ void W1Attempt() { m_W1Attempt.Add(1); }
+ void W1Passed() { m_W1Passed.Add(1); }
+ void W2Attempt() { m_W2Attempt.Add(1); }
+ void W2Passed() { m_W2Passed.Add(1); }
+ void N1andN2Passed() { m_N1andN2Passed.Add(1); }
};
Modified: branches/uml/source/main/cTaskLib.cc
===================================================================
--- branches/uml/source/main/cTaskLib.cc 2007-07-23 17:23:26 UTC (rev 1839)
+++ branches/uml/source/main/cTaskLib.cc 2007-07-23 19:07:36 UTC (rev 1840)
@@ -3247,71 +3247,41 @@
double cTaskLib::SpinCoprocess(cTaskContext& ctx, const std::string& neverclaimFile) const {
cOrganism* organism = ctx.getOrganism();
- m_world->GetStats().SpinAttempt();
-// int status=0;
-/* // break inserted on 6/24
- organism->absoluteJumpStateDiagram(1);
- if (organism->getStateDiagram()->findTrans(-1,-1,-1,-1,1)){
- status += 1;
- }*/
-
-
std::string cmd = "cat " + neverclaimFile + " >> tmp.pr && ./spin -a tmp.pr &> /dev/null";
if(system(cmd.c_str())!=0) return 0.0;
- m_world->GetStats().SpinPassed();
- m_world->GetStats().PanAttempt();
if(system("/usr/bin/gcc -DMEMLIM=512 pan.c -o pan &> /dev/null")!=0) return 0.0;
if(system("./pan -a &> ./pan.out")!=0) return 0.0;
if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/errors:\\s(\\d+)/) {exit($1);}}'")!=0) return 0.0;
// if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/unreached/) {exit(1);}}'")!=0) return 0.2;
-
-// std::cout << "I AM HERE" << std::endl;
- std::ostringstream strstrm;
- strstrm << "cp tmp.xmi " << neverclaimFile << "." << m_world->GetStats().GetUpdate() << "." << organism->GetID();
- strstrm << ".xml";
- if(system(strstrm.str().c_str())!=0) return 0.0;
+
+
+// Commented out to remove overhead...
+// std::ostringstream strstrm;
+// strstrm << "cp tmp.xmi " << neverclaimFile << "." << m_world->GetStats().GetUpdate() << "." << organism->GetID();
+// strstrm << ".xml";
+// if(system(strstrm.str().c_str())!=0) return 0.0;
- m_world->GetStats().PanPassed();
return 1.0;
}
double cTaskLib::SpinWitnessCoprocess(cTaskContext& ctx, const std::string& neverclaimFile) const {
-// cOrganism* organism = ctx.organism;
-// m_world->GetStats().SpinAttempt();
-// int status=0;
int num_witness = 0;
const int max_witness = 5;
-// ctx.m_task_success_complete = false;
std::string cmd = "cp tmp.pr tmp-witness.pr" ;
if(system(cmd.c_str())!=0) return 0.0;
cmd = "cat " + neverclaimFile + " >> tmp-witness.pr && ./spin -a tmp-witness.pr &> /dev/null";
if(system(cmd.c_str())!=0) return 0.0;
-// m_world->GetStats().SpinPassed();
-// m_world->GetStats().PanAttempt();
if(system("/usr/bin/gcc -DMEMLIM=512 pan.c -o pan &> /dev/null")!=0) return 0.0;
if(system("./pan -e -n -a -w19 -m100000 -c5 &> ./pan.out")!=0) return 0.0;
num_witness = (system("cat pan.out | perl -e 'while(<STDIN>) { if(/errors:\\s(\\d+)/) {exit($1);}}'"));
-// if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/unreached/) {exit(1);}}'")!=0) return 0.0;
-
-
-// std::ostringstream strstrm;
-// strstrm << "cp tmp.xmi " << m_world->GetStats().GetUpdate() << "." << organism->GetID();
-// strstrm << ".xml";
-// if(system(strstrm.str().c_str())!=0) return 0.0;
-
-// m_world->GetStats().PanPassed();
- /*if (num_witness == max_witness) {
- ctx.m_task_success_complete = true;
- } else {
- ctx.m_task_success_complete = false;
- }*/
- return (num_witness/max_witness);
+ return (1 + (num_witness/max_witness));
+
}
double cTaskLib::Task_SpinN1(cTaskContext& ctx) const {
@@ -3320,6 +3290,7 @@
if (organism->getUMLModel()->getBonusInfo("spinw1") == 0)
{
+ organism->getUMLModel()->setBonusInfo("spinn1", bonus);
return bonus;
}
@@ -3327,17 +3298,11 @@
if (organism->getParentXMI() == organism->getUMLModel()->getXMI()) {
bonus = organism->getParentBonus("spinn1");
-// return bonus;
} else {
bonus = SpinCoprocess(ctx, "N1");
}
- /*if (bonus) {
- ctx.m_task_success_complete = true;
- } else {
- ctx.m_task_success_complete = false;
- }*/
organism->getUMLModel()->setBonusInfo("spinn1", bonus);
return bonus;
@@ -3347,7 +3312,6 @@
double cTaskLib::Task_SpinW1(cTaskContext& ctx) const {
cOrganism* organism = ctx.getOrganism();
-// double temp1 = 0.0;
double bonus = 0.0;
if ((organism->getUMLModel()->getBonusInfo("scenario1") != 2) ||
@@ -3360,17 +3324,11 @@
if ((organism->getParentXMI()) == (organism->getUMLModel()->getXMI())) {
bonus = organism->getParentBonus("spinw1");
-// return bonus;
} else {
bonus = SpinWitnessCoprocess(ctx, "W1");
}
- /*if (bonus) {
- ctx.m_task_success_complete = true;
- } else {
- ctx.m_task_success_complete = false;
- }*/
organism->getUMLModel()->setBonusInfo("spinw1", bonus);
return bonus;
@@ -3383,23 +3341,18 @@
if (organism->getUMLModel()->getBonusInfo("spinw2") == 0)
{
+ organism->getUMLModel()->setBonusInfo("spinn2", bonus);
return bonus;
}
if (organism->getParentXMI() == organism->getUMLModel()->getXMI()) {
bonus = organism->getParentBonus("spinn2");
-// return bonus;
} else {
bonus = SpinCoprocess(ctx, "N2");
}
- /*if (bonus) {
- ctx.m_task_success_complete = true;
- } else {
- ctx.m_task_success_complete = false;
- }*/
organism->getUMLModel()->setBonusInfo("spinn2", bonus);
return bonus;
@@ -3409,7 +3362,6 @@
double cTaskLib::Task_SpinW2(cTaskContext& ctx) const {
cOrganism* organism = ctx.getOrganism();
-// double temp1 = 0.0;
double bonus = 0.0;
if ((organism->getUMLModel()->getBonusInfo("scenario2") != 2) ||
@@ -3421,28 +3373,18 @@
if (organism->getParentXMI() == organism->getUMLModel()->getXMI()) {
bonus = organism->getParentBonus("spinw2");
-// return bonus;
} else {
bonus = SpinWitnessCoprocess(ctx, "W2");
}
-
- /*if (bonus) {
- ctx.m_task_success_complete = true;
- } else {
- ctx.m_task_success_complete = false;
- }*/
+
organism->getUMLModel()->setBonusInfo("spinw2", bonus);
return bonus;
}
-/*double cTaskLib::Task_MultTrans(cTaskContext& ctx) const {
- return (2^ctx.m_task_success_complete);
-}*/
-
double cTaskLib::Task_PropTrigger(cTaskContext& ctx) const {
// This task checks for the trigger of the property.
cOrganism* organism = ctx.getOrganism();
More information about the Avida-cvs
mailing list