[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