[Avida-cvs] [avida-svn] r492 - in branches/jeffdev: Avida2.xcodeproj source/main

jclune@myxo.css.msu.edu jclune at myxo.css.msu.edu
Wed Mar 1 22:23:12 PST 2006


Author: jclune
Date: 2006-03-02 01:23:12 -0500 (Thu, 02 Mar 2006)
New Revision: 492

Modified:
   branches/jeffdev/Avida2.xcodeproj/project.pbxproj
   branches/jeffdev/source/main/cPhenotype.cc
   branches/jeffdev/source/main/cPhenotype.h
   branches/jeffdev/source/main/cPopulation.cc
Log:
Added ability to track is_receiver_last and is_receiver_truegb_last (donations stuff)


Modified: branches/jeffdev/Avida2.xcodeproj/project.pbxproj
===================================================================
--- branches/jeffdev/Avida2.xcodeproj/project.pbxproj	2006-02-28 06:58:05 UTC (rev 491)
+++ branches/jeffdev/Avida2.xcodeproj/project.pbxproj	2006-03-02 06:23:12 UTC (rev 492)
@@ -1427,7 +1427,7 @@
 		DCC31614076253A5008F7A48 /* viewers.pro */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = viewers.pro; sourceTree = "<group>"; };
 		DCC31615076253A5008F7A48 /* zoom_screen.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = zoom_screen.cc; sourceTree = "<group>"; };
 		DCC31616076253A5008F7A48 /* zoom_screen.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = zoom_screen.hh; sourceTree = "<group>"; };
-		DCC3164D07626CF3008F7A48 /* primitive */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = primitive; sourceTree = BUILT_PRODUCTS_DIR; };
+		DCC3164D07626CF3008F7A48 /* primitive */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = primitive; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */

Modified: branches/jeffdev/source/main/cPhenotype.cc
===================================================================
--- branches/jeffdev/source/main/cPhenotype.cc	2006-02-28 06:58:05 UTC (rev 491)
+++ branches/jeffdev/source/main/cPhenotype.cc	2006-03-02 06:23:12 UTC (rev 492)
@@ -152,11 +152,13 @@
   is_donor_truegb  = false;
   is_donor_truegb_last = parent_phenotype.is_donor_truegb_last;
   is_receiver   = false;
+  is_receiver_last = parent_phenotype.is_receiver_last;
   is_receiver_rand   = false;
-  is_receiver_kin   = false;
+  is_receiver_kin    = false;
   is_receiver_edit   = false;
-  is_receiver_gbg   = false;
-  is_receiver_truegb   = false;
+  is_receiver_gbg    = false;
+  is_receiver_truegb = false;
+  is_receiver_truegb_last = parent_phenotype.is_receiver_truegb_last;
   is_modifier   = false;
   is_modified   = false;
   is_fertile    = parent_phenotype.last_child_fertile;
@@ -248,11 +250,13 @@
   is_donor_truegb = false;
   is_donor_truegb_last = false;
   is_receiver   = false;
+  is_receiver_last   = false;
   is_receiver_rand   = false;
   is_receiver_kin   = false;
   is_receiver_edit   = false;
   is_receiver_gbg   = false;
   is_receiver_truegb   = false;
+  is_receiver_truegb_last   = false;
   is_modifier   = false;
   is_modified   = false;
   is_fertile    = true;
@@ -342,11 +346,13 @@
   is_donor_gbg = false;
   is_donor_truegb_last = is_donor_truegb;
   is_donor_truegb = false;
+  is_receiver_last = is_receiver;
   is_receiver = false;
   is_receiver_rand = false;
   is_receiver_kin = false;
   is_receiver_edit = false;
   is_receiver_gbg = false;
+  is_receiver_truegb_last = is_receiver_truegb;
   is_receiver_truegb = false;
   (void) is_modifier;
   (void) is_modified;
@@ -447,11 +453,13 @@
   is_donor_gbg = false;
   is_donor_truegb_last = is_donor_truegb;
   is_donor_truegb = false;
+  is_receiver_last = is_receiver;
   is_receiver = false;
   is_receiver_rand = false;
   is_receiver_kin = false;
   is_receiver_edit = false;
   is_receiver_gbg = false;
+  is_receiver_truegb_last = is_receiver_truegb;
   is_receiver_truegb = false;
   (void) is_modifier;
   (void) is_modified;
@@ -550,11 +558,13 @@
   is_donor_truegb_last = clone_phenotype.is_donor_truegb_last;
   is_donor_truegb  = clone_phenotype.is_donor_truegb;
   is_receiver = false;
+  is_receiver_last = false;
   is_receiver_rand = false;
   is_receiver_kin = false;
   is_receiver_edit = false;
   is_receiver_gbg = false;
   is_receiver_truegb = false;
+  is_receiver_truegb_last = false;
   is_modifier   = false;
   is_modified   = false;
   is_fertile    = clone_phenotype.last_child_fertile;
@@ -722,11 +732,13 @@
   fp << is_donor_truegb_last       << " ";
   fp << is_donor_truegb        << " ";
 
+  fp << is_receiver_last         << " ";
   fp << is_receiver         << " ";
   fp << is_receiver_rand         << " ";
   fp << is_receiver_kin         << " ";
   fp << is_receiver_edit         << " ";
   fp << is_receiver_gbg         << " ";
+  fp << is_receiver_truegb_last         << " ";
   fp << is_receiver_truegb         << " ";
   fp << is_modifier         << " ";
   fp << is_modified         << " ";
@@ -814,11 +826,13 @@
   fp >> is_donor_gbg;
   fp >> is_donor_truegb_last;
   fp >> is_donor_truegb;
+  fp >> is_receiver_last;
   fp >> is_receiver;
   fp >> is_receiver_rand;
   fp >> is_receiver_kin;
   fp >> is_receiver_edit;
   fp >> is_receiver_gbg;
+  fp >> is_receiver_truegb_last;
   fp >> is_receiver_truegb;
   fp >> is_modifier;
   fp >> is_modified;

Modified: branches/jeffdev/source/main/cPhenotype.h
===================================================================
--- branches/jeffdev/source/main/cPhenotype.h	2006-02-28 06:58:05 UTC (rev 491)
+++ branches/jeffdev/source/main/cPhenotype.h	2006-03-02 06:23:12 UTC (rev 492)
@@ -120,11 +120,13 @@
   bool is_donor_truegb;  // Has this organism truegb_donated (true green beard)? 
   bool is_donor_truegb_last;// Did this org's parent gbg_donated? 
   bool is_receiver;      // Has this organism ever received merit donation?
+  bool is_receiver_last;      // Has this organism ever received merit donation?
   bool is_receiver_rand; // Has this organism ever received random merit donation?
   bool is_receiver_kin;  // Has this organism ever received kin merit donation?
   bool is_receiver_edit; // Has this organism ever received edit donation?
   bool is_receiver_gbg;  // Has this organism ever received gbg donation?
   bool is_receiver_truegb;// Has this organism ever received truegb donation?
+  bool is_receiver_truegb_last;// Has this organism ever received truegb donation?
   bool is_modifier;      // Has this organism modified another?
   bool is_modified;      // Has this organism been modified by another?
   bool is_fertile;       // Do we allow this organisms to produce offspring?
@@ -279,11 +281,13 @@
   bool IsDonorTrueGb() const { assert(initialized == true); return is_donor_truegb; }
   bool IsDonorTrueGbLast() const { assert(initialized == true); return is_donor_truegb_last; }
   bool IsReceiver() const { assert(initialized == true); return is_receiver; }
+  bool IsReceiverLast() const { assert(initialized == true); return is_receiver_last; }
   bool IsReceiverRand() const { assert(initialized == true); return is_receiver_rand; }
   bool IsReceiverKin() const { assert(initialized == true); return is_receiver_kin; }
   bool IsReceiverEdit() const { assert(initialized == true); return is_receiver_edit; }
   bool IsReceiverGbg() const { assert(initialized == true); return is_receiver_gbg; }
   bool IsReceiverTrueGb() const { assert(initialized == true); return is_receiver_truegb; }
+  bool IsReceiverTrueGbLast() const { assert(initialized == true); return is_receiver_truegb_last; }
   bool IsModifier() const { assert(initialized == true); return is_modifier; }
   bool IsModified() const { assert(initialized == true); return is_modified; }
   bool IsFertile() const  { assert(initialized == true); return is_fertile; }

Modified: branches/jeffdev/source/main/cPopulation.cc
===================================================================
--- branches/jeffdev/source/main/cPopulation.cc	2006-02-28 06:58:05 UTC (rev 491)
+++ branches/jeffdev/source/main/cPopulation.cc	2006-03-02 06:23:12 UTC (rev 492)
@@ -879,8 +879,13 @@
                   
 void cPopulation::PrintDonationStats()
 {
+  cDoubleSum donation_makers;
   cDoubleSum donation_receivers;
   cDoubleSum donation_cheaters;
+  cDoubleSum truegb_donation_makers;
+  cDoubleSum truegb_donation_receivers;
+  cDoubleSum truegb_donation_cheaters;
+
   cDataFile & dn_donors = stats.GetDataFile("donations.dat");
   dn_donors.WriteComment("Info about organisms giving donations in the population");
   dn_donors.WriteTimeStamp();
@@ -892,17 +897,33 @@
       if (cell_array[i].IsOccupied() == false) continue;
       cOrganism * organism = cell_array[i].GetOrganism();
       const cPhenotype & phenotype = organism->GetPhenotype();
-
-      if (phenotype.IsReceiver()){
-        donation_receivers.Add(1);                       //found a receiver
+   
+      // donors & receivers in general
+      if (phenotype.IsDonorLast()) donation_makers.Add(1);       //found a donor
+      if (phenotype.IsReceiverLast()){
+        donation_receivers.Add(1);                              //found a receiver
         if (phenotype.IsDonorLast()==0){
-	  donation_cheaters.Add(1);                      //found a receiver whose parent did not give
-	}
+          donation_cheaters.Add(1);                             //found a receiver whose parent did not give
+        }
       }
+      // truegb donors & receivers
+      if (phenotype.IsDonorTrueGbLast()) truegb_donation_makers.Add(1);       //found a truegb donor
+      if (phenotype.IsReceiverTrueGbLast()){
+        truegb_donation_receivers.Add(1);                              //found a truegb receiver
+        if (phenotype.IsDonorTrueGbLast()==0){
+          truegb_donation_cheaters.Add(1);                             //found a truegb receiver whose parent did...
+        }                                                              //...not make a truegb donation
+      }
+
     }
 
-  dn_donors.Write(donation_receivers.Sum(), "has received a donation in this lifetime");
-  dn_donors.Write(donation_cheaters.Sum(),  "received a donation this generation but did not give last generation");
+  dn_donors.Write(donation_receivers.Sum(), "parent made at least one donation");
+  dn_donors.Write(donation_receivers.Sum(), "parent received at least one donation");
+  dn_donors.Write(donation_cheaters.Sum(),  "parent received at least one donation but did not make one");
+  dn_donors.Write(truegb_donation_receivers.Sum(), "parent made at least one truegb_donation");
+  dn_donors.Write(truegb_donation_receivers.Sum(), "parent received at least one truegb_donation");
+  dn_donors.Write(truegb_donation_cheaters.Sum(),  "parent received at least one truegb_donation but did not make one");
+
   dn_donors.Endl();
 
 }




More information about the Avida-cvs mailing list