[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