[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