[Avida-SVN] r2168 - in branches/dkdev/source: cpu main
dknoester at myxo.css.msu.edu
dknoester at myxo.css.msu.edu
Thu Nov 1 05:41:16 PDT 2007
Author: dknoester
Date: 2007-11-01 08:41:16 -0400 (Thu, 01 Nov 2007)
New Revision: 2168
Modified:
branches/dkdev/source/cpu/cHardwareCPU.cc
branches/dkdev/source/main/cDeme.cc
branches/dkdev/source/main/cPopulation.cc
Log:
Bugfix.
Modified: branches/dkdev/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/dkdev/source/cpu/cHardwareCPU.cc 2007-10-31 20:26:11 UTC (rev 2167)
+++ branches/dkdev/source/cpu/cHardwareCPU.cc 2007-11-01 12:41:16 UTC (rev 2168)
@@ -3900,7 +3900,7 @@
cPopulationCell& cell = m_world->GetPopulation().GetCell(organism->GetCellID());
cDeme& deme = m_world->GetPopulation().GetDeme(cell.GetDemeID());
const int x = FindModifiedRegister(REG_BX);
- GetRegister(x) = deme.GetCellPosition(cell.GetID()).first;
+ GetRegister(x) = deme.GetCellPosition(cell.GetID()).second;
return true;
}
Modified: branches/dkdev/source/main/cDeme.cc
===================================================================
--- branches/dkdev/source/main/cDeme.cc 2007-10-31 20:26:11 UTC (rev 2167)
+++ branches/dkdev/source/main/cDeme.cc 2007-11-01 12:41:16 UTC (rev 2168)
@@ -39,8 +39,12 @@
width = in_width;
if (width < 1) width = cell_ids.GetSize();
- _cellsToLink = std::make_pair(cell_ids[_world->GetRandom().GetInt(cell_ids.GetSize())],
+
+ // Need to change this to pick (x,y) instead of cellid.
+
+ _cellsToLink = std::make_pair(GetCellID(_world->GetRandom().GetInt(GetWidth()), _world->GetRandom().GetInt(GetHeight()-2)+1),
cell_ids[_world->GetRandom().GetInt(cell_ids.GetSize())]);
+
while((_cellsToLink.second == _cellsToLink.first)
|| (((double)region_size(GetCellPosition(_cellsToLink.first), GetCellPosition(_cellsToLink.second))
/ GetSize()) < _world->GetConfig().TWOCELLS_MIN_REGION_RATIO.Get())) {
@@ -232,7 +236,8 @@
neighborhood_edge_count /= 2;
cluster_coeffs.push_back((double)neighborhood_edge_count / (neighbors.size()*(neighbors.size()-1)/2));
} else {
- cluster_coeffs.push_back(1.0);
+ // This used to be 1.0... but, if our neighborhood size is <1, there are zero edges out of a possible 0.
+ cluster_coeffs.push_back(0.0);
}
}
Modified: branches/dkdev/source/main/cPopulation.cc
===================================================================
--- branches/dkdev/source/main/cPopulation.cc 2007-10-31 20:26:11 UTC (rev 2167)
+++ branches/dkdev/source/main/cPopulation.cc 2007-11-01 12:41:16 UTC (rev 2168)
@@ -68,12 +68,18 @@
std::pair<int,int> cell1_xy = _deme.GetCellPosition(cells.first);
std::pair<int,int> self_xy = _deme.GetCellPosition(organism->GetCellID());
+// std::cout << "Organism " << organism->GetCellID() << " @ (" << self_xy.first << "," << self_xy.second << ") declares "
+// << organism->GetRegion() << " for cell1 @ (" << cell1_xy.first << "," << cell1_xy.second << ");";
+
// Has the organism declared correctly or not? If so, increment result.
if((self_xy.second >= (cell1_xy.second)) && (organism->GetRegion()==1)) {
result += 1.0;
+// std::cout << " up.";
} else if((self_xy.second <= (cell1_xy.second)) && (organism->GetRegion()==0)) {
result += 1.0;
- }
+// std::cout << " down.";
+ }
+// std::cout << endl;
// All done.
return result;
@@ -1078,9 +1084,12 @@
}
if(!all_latched) continue;
- source_germline_merit = pow(std::accumulate(&cell_array[source_deme.GetCellID(0)],
- &cell_array[source_deme.GetCellID(source_deme.GetSize()-1)],
- 0.0, correct_region_accumulator(source_deme)),
+// source_germline_merit = pow(2, std::accumulate(&cell_array.begin()[source_deme.GetCellID(0)],
+// &cell_array.begin()[source_deme.GetCellID(source_deme.GetSize()-1)+1],
+// 0.0, correct_region_accumulator(source_deme)));
+ source_germline_merit = pow(std::accumulate(&cell_array.begin()[source_deme.GetCellID(0)],
+ &cell_array.begin()[source_deme.GetCellID(source_deme.GetSize()-1)+1],
+ 0.0, correct_region_accumulator(source_deme)),
2);
break;
More information about the Avida-cvs
mailing list