[Avida-SVN] r2328 - development/source/main
dknoester at myxo.css.msu.edu
dknoester at myxo.css.msu.edu
Thu Feb 14 10:37:33 PST 2008
Author: dknoester
Date: 2008-02-14 13:37:33 -0500 (Thu, 14 Feb 2008)
New Revision: 2328
Modified:
development/source/main/cEnvironment.cc
Log:
Added assert for 0.0 <= task_quality <= 1.0 when using finite resources; floored resource consumption at avail or 0.0, whichever is lowest.
Modified: development/source/main/cEnvironment.cc
===================================================================
--- development/source/main/cEnvironment.cc 2008-02-14 18:28:39 UTC (rev 2327)
+++ development/source/main/cEnvironment.cc 2008-02-14 18:37:33 UTC (rev 2328)
@@ -47,6 +47,7 @@
#include "cTools.h"
#include "cWorld.h"
#include <iostream>
+#include <algorithm>
#ifndef tArray_h
#include "tArray.h"
@@ -991,6 +992,7 @@
// Make sure we're not above the maximum consumption.
if (consumed > max_consumed) consumed = max_consumed;
+ assert((task_quality >= 0.0) && (task_quality <= 1.0));
consumed *= task_quality; // modify consumed based on task quality
// Test if we are below the minimum consumption.
@@ -999,6 +1001,9 @@
// If we don't actually have any resource to consume stop here.
if (consumed == 0.0) continue;
+ // Can't consume more resource than what's available.
+ consumed = std::min(consumed, resource_count[res_id]);
+
// Mark in the results the resource consumed.
if (cur_process->GetDepletable()) result.Consume(res_id, consumed);
}
More information about the Avida-cvs
mailing list