[Avida-cvs] [Avida2-svn] r338 - in trunk: . Avida2.xcodeproj source/bindings/Boost.Python source/cpu source/event source/main source/testsuites/unit_testsuites source/testsuites/unit_testsuites/level_0 source/tools source/utils source/utils/hist_map source/utils/task_events source/viewers
brysonda@myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Fri Oct 7 19:21:50 PDT 2005
Author: brysonda
Date: 2005-10-07 22:02:38 -0400 (Fri, 07 Oct 2005)
New Revision: 338
Added:
trunk/source/tools/cHelpAlias.cc
trunk/source/tools/cHelpAlias.h
trunk/source/tools/cHelpEntry.h
trunk/source/tools/cHelpFullEntry.h
trunk/source/tools/cHelpManager.cc
trunk/source/tools/cHelpManager.h
trunk/source/tools/cHelpType.cc
trunk/source/tools/cHelpType.h
trunk/source/tools/cHistogram.cc
trunk/source/tools/cHistogram.h
trunk/source/tools/cIndexedBlockStruct.cc
trunk/source/tools/cIndexedBlockStruct.h
trunk/source/tools/cInitFile.cc
trunk/source/tools/cInitFile.h
trunk/source/tools/cIntSum.cc
trunk/source/tools/cIntSum.h
trunk/source/tools/cIntegratedSchedule.cc
trunk/source/tools/cIntegratedSchedule.h
trunk/source/tools/cIntegratedScheduleNode.cc
trunk/source/tools/cIntegratedScheduleNode.h
trunk/source/tools/cMerit.cc
trunk/source/tools/cMerit.h
trunk/source/tools/cMessageClass.h
trunk/source/tools/cMessageClosure.h
trunk/source/tools/cMessageDisplay.cc
trunk/source/tools/cMessageDisplay.h
trunk/source/tools/cMessageDisplay_headers.h
trunk/source/tools/cMessageType.h
trunk/source/tools/cProbSchedule.cc
trunk/source/tools/cProbSchedule.h
trunk/source/tools/cRandom.cc
trunk/source/tools/cRandom.h
trunk/source/tools/cRefBlock.cc
trunk/source/tools/cRefBlock.h
trunk/source/tools/cRunningAverage.cc
trunk/source/tools/cRunningAverage.h
trunk/source/tools/cScaledBlock.cc
trunk/source/tools/cScaledBlock.h
trunk/source/tools/cSchedule.cc
trunk/source/tools/cSchedule.h
trunk/source/tools/cString.cc
trunk/source/tools/cString.h
trunk/source/tools/cStringIterator.cc
trunk/source/tools/cStringIterator.h
trunk/source/tools/cStringList.cc
trunk/source/tools/cStringList.h
trunk/source/tools/cStringUtil.cc
trunk/source/tools/cStringUtil.h
Removed:
trunk/source/tools/help_alias.cc
trunk/source/tools/help_alias.hh
trunk/source/tools/help_entry.hh
trunk/source/tools/help_full_entry.hh
trunk/source/tools/help_manager.cc
trunk/source/tools/help_manager.hh
trunk/source/tools/help_type.cc
trunk/source/tools/help_type.hh
trunk/source/tools/histogram.cc
trunk/source/tools/histogram.hh
trunk/source/tools/indexed_block_struct.cc
trunk/source/tools/indexed_block_struct.hh
trunk/source/tools/init_file.cc
trunk/source/tools/init_file.hh
trunk/source/tools/int_sum.cc
trunk/source/tools/int_sum.hh
trunk/source/tools/integrated_schedule.cc
trunk/source/tools/integrated_schedule.hh
trunk/source/tools/integrated_schedule_node.cc
trunk/source/tools/integrated_schedule_node.hh
trunk/source/tools/merit.cc
trunk/source/tools/merit.hh
trunk/source/tools/message_class.hh
trunk/source/tools/message_closure.hh
trunk/source/tools/message_display.cc
trunk/source/tools/message_display.hh
trunk/source/tools/message_display_hdrs.hh
trunk/source/tools/message_type.hh
trunk/source/tools/prob_schedule.cc
trunk/source/tools/prob_schedule.hh
trunk/source/tools/random.cc
trunk/source/tools/random.hh
trunk/source/tools/ref_block.cc
trunk/source/tools/ref_block.hh
trunk/source/tools/running_average.cc
trunk/source/tools/running_average.hh
trunk/source/tools/scaled_block.cc
trunk/source/tools/scaled_block.hh
trunk/source/tools/schedule.cc
trunk/source/tools/schedule.hh
trunk/source/tools/string.cc
trunk/source/tools/string.hh
trunk/source/tools/string_iterator.cc
trunk/source/tools/string_iterator.hh
trunk/source/tools/string_list.cc
trunk/source/tools/string_list.hh
trunk/source/tools/string_util.cc
trunk/source/tools/string_util.hh
Modified:
trunk/Avida2.xcodeproj/project.pbxproj
trunk/source/bindings/Boost.Python/avida_driver_analyze.pyste
trunk/source/bindings/Boost.Python/avida_driver_base.pyste
trunk/source/bindings/Boost.Python/const_schedule.pyste
trunk/source/bindings/Boost.Python/data_file_manager.pyste
trunk/source/bindings/Boost.Python/file-fixups.hh
trunk/source/bindings/Boost.Python/genesis-fixups.hh
trunk/source/bindings/Boost.Python/genotype.pyste
trunk/source/bindings/Boost.Python/hardware_tracer_test_cpu.pyste
trunk/source/bindings/Boost.Python/help_alias.pyste
trunk/source/bindings/Boost.Python/help_entry.pyste
trunk/source/bindings/Boost.Python/help_full_entry.pyste
trunk/source/bindings/Boost.Python/help_manager.pyste
trunk/source/bindings/Boost.Python/help_type.pyste
trunk/source/bindings/Boost.Python/histogram.pyste
trunk/source/bindings/Boost.Python/indexed_block_struct.pyste
trunk/source/bindings/Boost.Python/init_file.pyste
trunk/source/bindings/Boost.Python/inst_lib_base.pyste
trunk/source/bindings/Boost.Python/inst_lib_cpu.pyste
trunk/source/bindings/Boost.Python/int_sum.pyste
trunk/source/bindings/Boost.Python/integrated_schedule.pyste
trunk/source/bindings/Boost.Python/integrated_schedule_node.pyste
trunk/source/bindings/Boost.Python/lineage_control.pyste
trunk/source/bindings/Boost.Python/merit.pyste
trunk/source/bindings/Boost.Python/mutation_lib.pyste
trunk/source/bindings/Boost.Python/population_event_factory.pyste
trunk/source/bindings/Boost.Python/prob_schedule.pyste
trunk/source/bindings/Boost.Python/py_avida_driver-fixups.cc
trunk/source/bindings/Boost.Python/py_hardware_tracer.pyste
trunk/source/bindings/Boost.Python/random.pyste
trunk/source/bindings/Boost.Python/reaction_lib.pyste
trunk/source/bindings/Boost.Python/ref_block.pyste
trunk/source/bindings/Boost.Python/resource_lib.pyste
trunk/source/bindings/Boost.Python/running_average.pyste
trunk/source/bindings/Boost.Python/scaled_block.pyste
trunk/source/bindings/Boost.Python/schedule.pyste
trunk/source/bindings/Boost.Python/string.pyste
trunk/source/bindings/Boost.Python/string_iterator.pyste
trunk/source/bindings/Boost.Python/string_list.pyste
trunk/source/bindings/Boost.Python/string_util.pyste
trunk/source/bindings/Boost.Python/tArray_instantiations.hh
trunk/source/bindings/Boost.Python/tList_instantiations.hh
trunk/source/bindings/Boost.Python/tools.pyste
trunk/source/cpu/cCPUStack.cc
trunk/source/cpu/cCPUTestInfo.h
trunk/source/cpu/cCodeLabel.h
trunk/source/cpu/cHardware4Stack.cc
trunk/source/cpu/cHardware4Stack.h
trunk/source/cpu/cHardwareCPU.cc
trunk/source/cpu/cHardwareCPU.h
trunk/source/cpu/cHardwareSMT.cc
trunk/source/cpu/cHardwareSMT.h
trunk/source/cpu/cHardwareStatusPrinter.cc
trunk/source/cpu/cHardwareStatusPrinter.h
trunk/source/cpu/cHardwareUtil.cc
trunk/source/cpu/cHardwareUtil.h
trunk/source/cpu/cTestCPU.cc
trunk/source/cpu/cTestCPU.h
trunk/source/cpu/cTestUtil.h
trunk/source/cpu/tInstLib.h
trunk/source/event/cEvent.h
trunk/source/event/cEventFactoryManager.cc
trunk/source/event/cEventFactoryManager.h
trunk/source/event/cEventList.cc
trunk/source/event/cPopulationEventFactory.cc
trunk/source/main/cAnalyze.cc
trunk/source/main/cAnalyze.h
trunk/source/main/cAnalyzeCommand.h
trunk/source/main/cAnalyzeCommandDef.h
trunk/source/main/cAnalyzeCommandDefBase.h
trunk/source/main/cAnalyzeFlowCommandDef.h
trunk/source/main/cAnalyzeFunction.h
trunk/source/main/cAnalyzeGenotype.h
trunk/source/main/cAnalyzeUtil.cc
trunk/source/main/cAvidaDriver_Base.cc
trunk/source/main/cAvidaDriver_Population.cc
trunk/source/main/cAvidaDriver_Population.h
trunk/source/main/cBirthChamber.h
trunk/source/main/cConfig.h
trunk/source/main/cEnvironment.cc
trunk/source/main/cEnvironment.h
trunk/source/main/cFitnessMatrix.h
trunk/source/main/cGenebank.h
trunk/source/main/cGenome.h
trunk/source/main/cGenotype.cc
trunk/source/main/cGenotype.h
trunk/source/main/cGenotypeBatch.h
trunk/source/main/cInjectGenebank.h
trunk/source/main/cInjectGenotype.h
trunk/source/main/cInstSet.cc
trunk/source/main/cInstSet.h
trunk/source/main/cInstUtil.cc
trunk/source/main/cLandscape.h
trunk/source/main/cLineageControl.cc
trunk/source/main/cMutation.h
trunk/source/main/cMxCodeArray.h
trunk/source/main/cOrganism.cc
trunk/source/main/cPhenotype.h
trunk/source/main/cPopulation.cc
trunk/source/main/cPopulation.h
trunk/source/main/cReaction.h
trunk/source/main/cResource.h
trunk/source/main/cResourceCount.h
trunk/source/main/cStats.cc
trunk/source/main/cStats.h
trunk/source/main/cTaskEntry.h
trunk/source/testsuites/unit_testsuites/help_alias.t.cc
trunk/source/testsuites/unit_testsuites/help_entry.t.cc
trunk/source/testsuites/unit_testsuites/help_full_entry.t.cc
trunk/source/testsuites/unit_testsuites/help_manager.t.cc
trunk/source/testsuites/unit_testsuites/help_type.t.cc
trunk/source/testsuites/unit_testsuites/histogram.t.cc
trunk/source/testsuites/unit_testsuites/indexed_block_struct.t.cc
trunk/source/testsuites/unit_testsuites/init_file.t.cc
trunk/source/testsuites/unit_testsuites/integrated_schedule_node.t.cc
trunk/source/testsuites/unit_testsuites/level_0/int_sum.t.cc
trunk/source/testsuites/unit_testsuites/level_0/merit.t.cc
trunk/source/testsuites/unit_testsuites/message_class.t.cc
trunk/source/testsuites/unit_testsuites/message_closure.t.cc
trunk/source/testsuites/unit_testsuites/message_display.t.cc
trunk/source/testsuites/unit_testsuites/message_type.t.cc
trunk/source/testsuites/unit_testsuites/prob_schedule.t.cc
trunk/source/testsuites/unit_testsuites/random.t.cc
trunk/source/testsuites/unit_testsuites/ref_block.t.cc
trunk/source/testsuites/unit_testsuites/running_average.t.cc
trunk/source/testsuites/unit_testsuites/scaled_block.t.cc
trunk/source/testsuites/unit_testsuites/schedule.t.cc
trunk/source/testsuites/unit_testsuites/string.t.cc
trunk/source/testsuites/unit_testsuites/string_iterator.t.cc
trunk/source/testsuites/unit_testsuites/string_list.t.cc
trunk/source/testsuites/unit_testsuites/string_util.t.cc
trunk/source/tools/CMakeLists.txt
trunk/source/tools/cBlockStruct.h
trunk/source/tools/cConstSchedule.cc
trunk/source/tools/cConstSchedule.h
trunk/source/tools/cDataEntry.h
trunk/source/tools/cDataFile.cc
trunk/source/tools/cDataFile.h
trunk/source/tools/cDataManager_Base.h
trunk/source/tools/cDefaultMessageDisplay.cc
trunk/source/tools/cDefaultMessageDisplay.h
trunk/source/tools/cFile.cc
trunk/source/tools/cFile.h
trunk/source/tools/cGenesis.h
trunk/source/tools/tBuffer.hh
trunk/source/tools/tDataEntry.hh
trunk/source/tools/tDataEntryCommand.hh
trunk/source/tools/tDictionary.hh
trunk/source/tools/tHashTable.hh
trunk/source/tools/tools.cc
trunk/source/tools/tools.hh
trunk/source/tools/tools.pri
trunk/source/utils/hist_map/Makefile
trunk/source/utils/hist_map/hist_map.cc
trunk/source/utils/hist_map/hist_map2.cc
trunk/source/utils/matlabify.cc
trunk/source/utils/task_events/task_event_gen.cc
trunk/source/utils/task_events/task_event_gen.old.cc
trunk/source/viewers/menu.hh
trunk/source/viewers/text_screen.hh
trunk/source/viewers/zoom_screen.cc
trunk/status.xml
Log:
Rename tools classes through cStringUtil.
Modified: trunk/Avida2.xcodeproj/project.pbxproj
===================================================================
--- trunk/Avida2.xcodeproj/project.pbxproj 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/Avida2.xcodeproj/project.pbxproj 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,27 +11,6 @@
700E2AF8085DE50C00CF158A /* avida.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3109C0762539E008F7A48 /* avida.cc */; };
700E2B43085DE50C00CF158A /* weighted_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC315B3076253A5008F7A48 /* weighted_index.cc */; };
700E2B44085DE50C00CF158A /* tools.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC315AA076253A4008F7A48 /* tools.cc */; };
- 700E2B52085DE50C00CF158A /* help_alias.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31564076253A4008F7A48 /* help_alias.cc */; };
- 700E2B53085DE50C00CF158A /* help_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31568076253A4008F7A48 /* help_manager.cc */; };
- 700E2B54085DE50C00CF158A /* help_type.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156A076253A4008F7A48 /* help_type.cc */; };
- 700E2B55085DE50C00CF158A /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156C076253A4008F7A48 /* histogram.cc */; };
- 700E2B56085DE50C00CF158A /* indexed_block_struct.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156E076253A4008F7A48 /* indexed_block_struct.cc */; };
- 700E2B57085DE50C00CF158A /* init_file.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31570076253A4008F7A48 /* init_file.cc */; };
- 700E2B58085DE50C00CF158A /* int_sum.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31572076253A4008F7A48 /* int_sum.cc */; };
- 700E2B59085DE50C00CF158A /* integrated_schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31574076253A4008F7A48 /* integrated_schedule.cc */; };
- 700E2B5A085DE50C00CF158A /* integrated_schedule_node.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31576076253A4008F7A48 /* integrated_schedule_node.cc */; };
- 700E2B5B085DE50C00CF158A /* merit.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31579076253A4008F7A48 /* merit.cc */; };
- 700E2B5C085DE50C00CF158A /* message_display.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3157D076253A4008F7A48 /* message_display.cc */; };
- 700E2B5D085DE50C00CF158A /* prob_schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31581076253A4008F7A48 /* prob_schedule.cc */; };
- 700E2B5E085DE50C00CF158A /* random.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31583076253A4008F7A48 /* random.cc */; };
- 700E2B5F085DE50C00CF158A /* ref_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31588076253A4008F7A48 /* ref_block.cc */; };
- 700E2B60085DE50C00CF158A /* running_average.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158A076253A4008F7A48 /* running_average.cc */; };
- 700E2B61085DE50C00CF158A /* scaled_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158C076253A4008F7A48 /* scaled_block.cc */; };
- 700E2B62085DE50C00CF158A /* schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158E076253A4008F7A48 /* schedule.cc */; };
- 700E2B63085DE50C00CF158A /* string.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31590076253A4008F7A48 /* string.cc */; };
- 700E2B64085DE50C00CF158A /* string_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31592076253A4008F7A48 /* string_iterator.cc */; };
- 700E2B65085DE50C00CF158A /* string_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31594076253A4008F7A48 /* string_list.cc */; };
- 700E2B66085DE50C00CF158A /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31596076253A4008F7A48 /* string_util.cc */; };
700E2B6F085DE50C00CF158A /* analyze.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = DCC3114B0762539E008F7A48 /* analyze.cfg */; };
700E2B70085DE50C00CF158A /* environment.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = DCC311800762539F008F7A48 /* environment.cfg */; };
700E2B71085DE50C00CF158A /* events.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = DCC311810762539F008F7A48 /* events.cfg */; };
@@ -179,6 +158,40 @@
70B0888608F603D400FC65FE /* cGenesis.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0888408F603D400FC65FE /* cGenesis.cc */; };
70B0888708F603D400FC65FE /* cFile.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0888308F603D400FC65FE /* cFile.cc */; };
70B0888808F603D400FC65FE /* cGenesis.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0888408F603D400FC65FE /* cGenesis.cc */; };
+ 70B0892708F7630100FC65FE /* cHelpAlias.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891608F7630100FC65FE /* cHelpAlias.cc */; };
+ 70B0892808F7630100FC65FE /* cHelpManager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891708F7630100FC65FE /* cHelpManager.cc */; };
+ 70B0892908F7630100FC65FE /* cHelpType.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891808F7630100FC65FE /* cHelpType.cc */; };
+ 70B0892A08F7630100FC65FE /* cHistogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891908F7630100FC65FE /* cHistogram.cc */; };
+ 70B0892B08F7630100FC65FE /* cInitFile.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891A08F7630100FC65FE /* cInitFile.cc */; };
+ 70B0892C08F7630100FC65FE /* cIntegratedSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891B08F7630100FC65FE /* cIntegratedSchedule.cc */; };
+ 70B0892D08F7630100FC65FE /* cIntegratedScheduleNode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891C08F7630100FC65FE /* cIntegratedScheduleNode.cc */; };
+ 70B0892E08F7630100FC65FE /* cIntSum.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891D08F7630100FC65FE /* cIntSum.cc */; };
+ 70B0892F08F7630100FC65FE /* cMerit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891E08F7630100FC65FE /* cMerit.cc */; };
+ 70B0893008F7630100FC65FE /* cProbSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891F08F7630100FC65FE /* cProbSchedule.cc */; };
+ 70B0893108F7630100FC65FE /* cRandom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892008F7630100FC65FE /* cRandom.cc */; };
+ 70B0893208F7630100FC65FE /* cRunningAverage.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892108F7630100FC65FE /* cRunningAverage.cc */; };
+ 70B0893308F7630100FC65FE /* cSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892208F7630100FC65FE /* cSchedule.cc */; };
+ 70B0893408F7630100FC65FE /* cString.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892308F7630100FC65FE /* cString.cc */; };
+ 70B0893508F7630100FC65FE /* cStringIterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892408F7630100FC65FE /* cStringIterator.cc */; };
+ 70B0893608F7630100FC65FE /* cStringList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892508F7630100FC65FE /* cStringList.cc */; };
+ 70B0893708F7630100FC65FE /* cStringUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892608F7630100FC65FE /* cStringUtil.cc */; };
+ 70B0893808F7630100FC65FE /* cHelpAlias.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891608F7630100FC65FE /* cHelpAlias.cc */; };
+ 70B0893908F7630100FC65FE /* cHelpManager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891708F7630100FC65FE /* cHelpManager.cc */; };
+ 70B0893A08F7630100FC65FE /* cHelpType.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891808F7630100FC65FE /* cHelpType.cc */; };
+ 70B0893B08F7630100FC65FE /* cHistogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891908F7630100FC65FE /* cHistogram.cc */; };
+ 70B0893C08F7630100FC65FE /* cInitFile.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891A08F7630100FC65FE /* cInitFile.cc */; };
+ 70B0893D08F7630100FC65FE /* cIntegratedSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891B08F7630100FC65FE /* cIntegratedSchedule.cc */; };
+ 70B0893E08F7630100FC65FE /* cIntegratedScheduleNode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891C08F7630100FC65FE /* cIntegratedScheduleNode.cc */; };
+ 70B0893F08F7630100FC65FE /* cIntSum.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891D08F7630100FC65FE /* cIntSum.cc */; };
+ 70B0894008F7630100FC65FE /* cMerit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891E08F7630100FC65FE /* cMerit.cc */; };
+ 70B0894108F7630100FC65FE /* cProbSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0891F08F7630100FC65FE /* cProbSchedule.cc */; };
+ 70B0894208F7630100FC65FE /* cRandom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892008F7630100FC65FE /* cRandom.cc */; };
+ 70B0894308F7630100FC65FE /* cRunningAverage.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892108F7630100FC65FE /* cRunningAverage.cc */; };
+ 70B0894408F7630100FC65FE /* cSchedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892208F7630100FC65FE /* cSchedule.cc */; };
+ 70B0894508F7630100FC65FE /* cString.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892308F7630100FC65FE /* cString.cc */; };
+ 70B0894608F7630100FC65FE /* cStringIterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892408F7630100FC65FE /* cStringIterator.cc */; };
+ 70B0894708F7630100FC65FE /* cStringList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892508F7630100FC65FE /* cStringList.cc */; };
+ 70B0894808F7630100FC65FE /* cStringUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0892608F7630100FC65FE /* cStringUtil.cc */; };
70C1EF4808C393BA00F50912 /* cCodeLabel.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF4608C393BA00F50912 /* cCodeLabel.cc */; };
70C1EF4A08C393BA00F50912 /* cCodeLabel.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF4608C393BA00F50912 /* cCodeLabel.cc */; };
70C1EF5908C3948C00F50912 /* cCPUMemory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF5808C3948C00F50912 /* cCPUMemory.cc */; };
@@ -263,27 +276,6 @@
DCC3166107628531008F7A48 /* avida.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3109C0762539E008F7A48 /* avida.cc */; };
DCC316B807628742008F7A48 /* weighted_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC315B3076253A5008F7A48 /* weighted_index.cc */; };
DCC316B907628744008F7A48 /* tools.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC315AA076253A4008F7A48 /* tools.cc */; };
- DCC316C707628757008F7A48 /* help_alias.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31564076253A4008F7A48 /* help_alias.cc */; };
- DCC316C807628758008F7A48 /* help_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31568076253A4008F7A48 /* help_manager.cc */; };
- DCC316C90762875A008F7A48 /* help_type.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156A076253A4008F7A48 /* help_type.cc */; };
- DCC316CA0762875B008F7A48 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156C076253A4008F7A48 /* histogram.cc */; };
- DCC316CB0762875C008F7A48 /* indexed_block_struct.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3156E076253A4008F7A48 /* indexed_block_struct.cc */; };
- DCC316CC0762875D008F7A48 /* init_file.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31570076253A4008F7A48 /* init_file.cc */; };
- DCC316CD0762875D008F7A48 /* int_sum.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31572076253A4008F7A48 /* int_sum.cc */; };
- DCC316CE0762875E008F7A48 /* integrated_schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31574076253A4008F7A48 /* integrated_schedule.cc */; };
- DCC316CF0762875F008F7A48 /* integrated_schedule_node.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31576076253A4008F7A48 /* integrated_schedule_node.cc */; };
- DCC316D007628761008F7A48 /* merit.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31579076253A4008F7A48 /* merit.cc */; };
- DCC316D107628763008F7A48 /* message_display.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3157D076253A4008F7A48 /* message_display.cc */; };
- DCC316D207628764008F7A48 /* prob_schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31581076253A4008F7A48 /* prob_schedule.cc */; };
- DCC316D307628765008F7A48 /* random.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31583076253A4008F7A48 /* random.cc */; };
- DCC316D407628766008F7A48 /* ref_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31588076253A4008F7A48 /* ref_block.cc */; };
- DCC316D507628767008F7A48 /* running_average.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158A076253A4008F7A48 /* running_average.cc */; };
- DCC316D607628769008F7A48 /* scaled_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158C076253A4008F7A48 /* scaled_block.cc */; };
- DCC316D70762876A008F7A48 /* schedule.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3158E076253A4008F7A48 /* schedule.cc */; };
- DCC316D80762876B008F7A48 /* string.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31590076253A4008F7A48 /* string.cc */; };
- DCC316D90762876C008F7A48 /* string_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31592076253A4008F7A48 /* string_iterator.cc */; };
- DCC316DA0762876E008F7A48 /* string_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31594076253A4008F7A48 /* string_list.cc */; };
- DCC316DB0762876F008F7A48 /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC31596076253A4008F7A48 /* string_util.cc */; };
/* End PBXBuildFile section */
/* Begin PBXBuildStyle section */
@@ -501,6 +493,54 @@
70B0888208F603C600FC65FE /* functions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = functions.h; sourceTree = "<group>"; };
70B0888308F603D400FC65FE /* cFile.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cFile.cc; sourceTree = "<group>"; };
70B0888408F603D400FC65FE /* cGenesis.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cGenesis.cc; sourceTree = "<group>"; };
+ 70B088F708F762EA00FC65FE /* cHelpAlias.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHelpAlias.h; sourceTree = "<group>"; };
+ 70B088F808F762EA00FC65FE /* cHelpEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHelpEntry.h; sourceTree = "<group>"; };
+ 70B088F908F762EA00FC65FE /* cHelpFullEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHelpFullEntry.h; sourceTree = "<group>"; };
+ 70B088FA08F762EA00FC65FE /* cHelpManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHelpManager.h; sourceTree = "<group>"; };
+ 70B088FB08F762EA00FC65FE /* cHelpType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHelpType.h; sourceTree = "<group>"; };
+ 70B088FC08F762EA00FC65FE /* cHistogram.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHistogram.h; sourceTree = "<group>"; };
+ 70B088FD08F762EA00FC65FE /* cIndexedBlockStruct.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cIndexedBlockStruct.cc; sourceTree = "<group>"; };
+ 70B088FE08F762EA00FC65FE /* cIndexedBlockStruct.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cIndexedBlockStruct.h; sourceTree = "<group>"; };
+ 70B088FF08F762EA00FC65FE /* cInitFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cInitFile.h; sourceTree = "<group>"; };
+ 70B0890008F762EA00FC65FE /* cIntegratedSchedule.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cIntegratedSchedule.h; sourceTree = "<group>"; };
+ 70B0890108F762EA00FC65FE /* cIntegratedScheduleNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cIntegratedScheduleNode.h; sourceTree = "<group>"; };
+ 70B0890208F762EA00FC65FE /* cIntSum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cIntSum.h; sourceTree = "<group>"; };
+ 70B0890308F762EA00FC65FE /* cMerit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMerit.h; sourceTree = "<group>"; };
+ 70B0890408F762EA00FC65FE /* cMessageClass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMessageClass.h; sourceTree = "<group>"; };
+ 70B0890508F762EA00FC65FE /* cMessageClosure.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMessageClosure.h; sourceTree = "<group>"; };
+ 70B0890608F762EA00FC65FE /* cMessageDisplay_headers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMessageDisplay_headers.h; sourceTree = "<group>"; };
+ 70B0890708F762EA00FC65FE /* cMessageDisplay.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cMessageDisplay.cc; sourceTree = "<group>"; };
+ 70B0890808F762EA00FC65FE /* cMessageDisplay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMessageDisplay.h; sourceTree = "<group>"; };
+ 70B0890908F762EA00FC65FE /* cMessageType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cMessageType.h; sourceTree = "<group>"; };
+ 70B0890A08F762EA00FC65FE /* cProbSchedule.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cProbSchedule.h; sourceTree = "<group>"; };
+ 70B0890B08F762EA00FC65FE /* cRandom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cRandom.h; sourceTree = "<group>"; };
+ 70B0890C08F762EA00FC65FE /* cRefBlock.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cRefBlock.cc; sourceTree = "<group>"; };
+ 70B0890D08F762EA00FC65FE /* cRefBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cRefBlock.h; sourceTree = "<group>"; };
+ 70B0890E08F762EA00FC65FE /* cRunningAverage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cRunningAverage.h; sourceTree = "<group>"; };
+ 70B0890F08F762EA00FC65FE /* cScaledBlock.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cScaledBlock.cc; sourceTree = "<group>"; };
+ 70B0891008F762EA00FC65FE /* cScaledBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cScaledBlock.h; sourceTree = "<group>"; };
+ 70B0891108F762EA00FC65FE /* cSchedule.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cSchedule.h; sourceTree = "<group>"; };
+ 70B0891208F762EA00FC65FE /* cString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cString.h; sourceTree = "<group>"; };
+ 70B0891308F762EA00FC65FE /* cStringIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cStringIterator.h; sourceTree = "<group>"; };
+ 70B0891408F762EA00FC65FE /* cStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cStringList.h; sourceTree = "<group>"; };
+ 70B0891508F762EA00FC65FE /* cStringUtil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cStringUtil.h; sourceTree = "<group>"; };
+ 70B0891608F7630100FC65FE /* cHelpAlias.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHelpAlias.cc; sourceTree = "<group>"; };
+ 70B0891708F7630100FC65FE /* cHelpManager.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHelpManager.cc; sourceTree = "<group>"; };
+ 70B0891808F7630100FC65FE /* cHelpType.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHelpType.cc; sourceTree = "<group>"; };
+ 70B0891908F7630100FC65FE /* cHistogram.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHistogram.cc; sourceTree = "<group>"; };
+ 70B0891A08F7630100FC65FE /* cInitFile.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cInitFile.cc; sourceTree = "<group>"; };
+ 70B0891B08F7630100FC65FE /* cIntegratedSchedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cIntegratedSchedule.cc; sourceTree = "<group>"; };
+ 70B0891C08F7630100FC65FE /* cIntegratedScheduleNode.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cIntegratedScheduleNode.cc; sourceTree = "<group>"; };
+ 70B0891D08F7630100FC65FE /* cIntSum.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cIntSum.cc; sourceTree = "<group>"; };
+ 70B0891E08F7630100FC65FE /* cMerit.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cMerit.cc; sourceTree = "<group>"; };
+ 70B0891F08F7630100FC65FE /* cProbSchedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cProbSchedule.cc; sourceTree = "<group>"; };
+ 70B0892008F7630100FC65FE /* cRandom.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cRandom.cc; sourceTree = "<group>"; };
+ 70B0892108F7630100FC65FE /* cRunningAverage.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cRunningAverage.cc; sourceTree = "<group>"; };
+ 70B0892208F7630100FC65FE /* cSchedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cSchedule.cc; sourceTree = "<group>"; };
+ 70B0892308F7630100FC65FE /* cString.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cString.cc; sourceTree = "<group>"; };
+ 70B0892408F7630100FC65FE /* cStringIterator.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cStringIterator.cc; sourceTree = "<group>"; };
+ 70B0892508F7630100FC65FE /* cStringList.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cStringList.cc; sourceTree = "<group>"; };
+ 70B0892608F7630100FC65FE /* cStringUtil.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cStringUtil.cc; sourceTree = "<group>"; };
70C1EF4608C393BA00F50912 /* cCodeLabel.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCodeLabel.cc; sourceTree = "<group>"; };
70C1EF4708C393BA00F50912 /* cCodeLabel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cCodeLabel.h; sourceTree = "<group>"; };
70C1EF5808C3948C00F50912 /* cCPUMemory.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCPUMemory.cc; sourceTree = "<group>"; };
@@ -1300,57 +1340,9 @@
DCC314D7076253A2008F7A48 /* text_test_interpreter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = text_test_interpreter.h; sourceTree = "<group>"; };
DCC31547076253A4008F7A48 /* cCycleCheck.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCycleCheck.cc; sourceTree = "<group>"; };
DCC3154A076253A4008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
- DCC31564076253A4008F7A48 /* help_alias.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = help_alias.cc; sourceTree = "<group>"; };
- DCC31565076253A4008F7A48 /* help_alias.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = help_alias.hh; sourceTree = "<group>"; };
- DCC31566076253A4008F7A48 /* help_entry.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = help_entry.hh; sourceTree = "<group>"; };
- DCC31567076253A4008F7A48 /* help_full_entry.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = help_full_entry.hh; sourceTree = "<group>"; };
- DCC31568076253A4008F7A48 /* help_manager.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = help_manager.cc; sourceTree = "<group>"; };
- DCC31569076253A4008F7A48 /* help_manager.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = help_manager.hh; sourceTree = "<group>"; };
- DCC3156A076253A4008F7A48 /* help_type.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = help_type.cc; sourceTree = "<group>"; };
- DCC3156B076253A4008F7A48 /* help_type.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = help_type.hh; sourceTree = "<group>"; };
- DCC3156C076253A4008F7A48 /* histogram.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = histogram.cc; sourceTree = "<group>"; };
- DCC3156D076253A4008F7A48 /* histogram.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = histogram.hh; sourceTree = "<group>"; };
- DCC3156E076253A4008F7A48 /* indexed_block_struct.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = indexed_block_struct.cc; sourceTree = "<group>"; };
- DCC3156F076253A4008F7A48 /* indexed_block_struct.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = indexed_block_struct.hh; sourceTree = "<group>"; };
- DCC31570076253A4008F7A48 /* init_file.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = init_file.cc; sourceTree = "<group>"; };
- DCC31571076253A4008F7A48 /* init_file.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = init_file.hh; sourceTree = "<group>"; };
- DCC31572076253A4008F7A48 /* int_sum.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = int_sum.cc; sourceTree = "<group>"; };
- DCC31573076253A4008F7A48 /* int_sum.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = int_sum.hh; sourceTree = "<group>"; };
- DCC31574076253A4008F7A48 /* integrated_schedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = integrated_schedule.cc; sourceTree = "<group>"; };
- DCC31575076253A4008F7A48 /* integrated_schedule.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = integrated_schedule.hh; sourceTree = "<group>"; };
- DCC31576076253A4008F7A48 /* integrated_schedule_node.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = integrated_schedule_node.cc; sourceTree = "<group>"; };
- DCC31577076253A4008F7A48 /* integrated_schedule_node.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = integrated_schedule_node.hh; sourceTree = "<group>"; };
- DCC31579076253A4008F7A48 /* merit.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = merit.cc; sourceTree = "<group>"; };
- DCC3157A076253A4008F7A48 /* merit.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = merit.hh; sourceTree = "<group>"; };
- DCC3157B076253A4008F7A48 /* message_class.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = message_class.hh; sourceTree = "<group>"; };
- DCC3157C076253A4008F7A48 /* message_closure.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = message_closure.hh; sourceTree = "<group>"; };
- DCC3157D076253A4008F7A48 /* message_display.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = message_display.cc; sourceTree = "<group>"; };
- DCC3157E076253A4008F7A48 /* message_display.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = message_display.hh; sourceTree = "<group>"; };
- DCC3157F076253A4008F7A48 /* message_display_hdrs.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = message_display_hdrs.hh; sourceTree = "<group>"; };
- DCC31580076253A4008F7A48 /* message_type.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = message_type.hh; sourceTree = "<group>"; };
- DCC31581076253A4008F7A48 /* prob_schedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = prob_schedule.cc; sourceTree = "<group>"; };
- DCC31582076253A4008F7A48 /* prob_schedule.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = prob_schedule.hh; sourceTree = "<group>"; };
- DCC31583076253A4008F7A48 /* random.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = random.cc; sourceTree = "<group>"; };
- DCC31584076253A4008F7A48 /* random.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = random.hh; sourceTree = "<group>"; };
DCC31585076253A4008F7A48 /* recursive_tests_decl_hdrs.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = recursive_tests_decl_hdrs.hh; sourceTree = "<group>"; };
DCC31586076253A4008F7A48 /* recursive_tests_defn_hdrs.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = recursive_tests_defn_hdrs.hh; sourceTree = "<group>"; };
DCC31587076253A4008F7A48 /* recursive_tests_macros.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = recursive_tests_macros.hh; sourceTree = "<group>"; };
- DCC31588076253A4008F7A48 /* ref_block.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ref_block.cc; sourceTree = "<group>"; };
- DCC31589076253A4008F7A48 /* ref_block.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = ref_block.hh; sourceTree = "<group>"; };
- DCC3158A076253A4008F7A48 /* running_average.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = running_average.cc; sourceTree = "<group>"; };
- DCC3158B076253A4008F7A48 /* running_average.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = running_average.hh; sourceTree = "<group>"; };
- DCC3158C076253A4008F7A48 /* scaled_block.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scaled_block.cc; sourceTree = "<group>"; };
- DCC3158D076253A4008F7A48 /* scaled_block.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = scaled_block.hh; sourceTree = "<group>"; };
- DCC3158E076253A4008F7A48 /* schedule.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = schedule.cc; sourceTree = "<group>"; };
- DCC3158F076253A4008F7A48 /* schedule.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = schedule.hh; sourceTree = "<group>"; };
- DCC31590076253A4008F7A48 /* string.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = string.cc; sourceTree = "<group>"; };
- DCC31591076253A4008F7A48 /* string.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = string.hh; sourceTree = "<group>"; };
- DCC31592076253A4008F7A48 /* string_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = string_iterator.cc; sourceTree = "<group>"; };
- DCC31593076253A4008F7A48 /* string_iterator.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = string_iterator.hh; sourceTree = "<group>"; };
- DCC31594076253A4008F7A48 /* string_list.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = string_list.cc; sourceTree = "<group>"; };
- DCC31595076253A4008F7A48 /* string_list.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = string_list.hh; sourceTree = "<group>"; };
- DCC31596076253A4008F7A48 /* string_util.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = string_util.cc; sourceTree = "<group>"; };
- DCC31597076253A4008F7A48 /* string_util.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = string_util.hh; sourceTree = "<group>"; };
DCC31598076253A4008F7A48 /* tArgDataEntry.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = tArgDataEntry.hh; sourceTree = "<group>"; };
DCC31599076253A4008F7A48 /* tArray.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = tArray.hh; sourceTree = "<group>"; };
DCC3159A076253A4008F7A48 /* tBuffer.hh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = tBuffer.hh; sourceTree = "<group>"; };
@@ -2713,6 +2705,54 @@
DCC314D8076253A2008F7A48 /* tools */ = {
isa = PBXGroup;
children = (
+ 70B0891608F7630100FC65FE /* cHelpAlias.cc */,
+ 70B0891708F7630100FC65FE /* cHelpManager.cc */,
+ 70B0891808F7630100FC65FE /* cHelpType.cc */,
+ 70B0891908F7630100FC65FE /* cHistogram.cc */,
+ 70B0891A08F7630100FC65FE /* cInitFile.cc */,
+ 70B0891B08F7630100FC65FE /* cIntegratedSchedule.cc */,
+ 70B0891C08F7630100FC65FE /* cIntegratedScheduleNode.cc */,
+ 70B0891D08F7630100FC65FE /* cIntSum.cc */,
+ 70B0891E08F7630100FC65FE /* cMerit.cc */,
+ 70B0891F08F7630100FC65FE /* cProbSchedule.cc */,
+ 70B0892008F7630100FC65FE /* cRandom.cc */,
+ 70B0892108F7630100FC65FE /* cRunningAverage.cc */,
+ 70B0892208F7630100FC65FE /* cSchedule.cc */,
+ 70B0892308F7630100FC65FE /* cString.cc */,
+ 70B0892408F7630100FC65FE /* cStringIterator.cc */,
+ 70B0892508F7630100FC65FE /* cStringList.cc */,
+ 70B0892608F7630100FC65FE /* cStringUtil.cc */,
+ 70B088F708F762EA00FC65FE /* cHelpAlias.h */,
+ 70B088F808F762EA00FC65FE /* cHelpEntry.h */,
+ 70B088F908F762EA00FC65FE /* cHelpFullEntry.h */,
+ 70B088FA08F762EA00FC65FE /* cHelpManager.h */,
+ 70B088FB08F762EA00FC65FE /* cHelpType.h */,
+ 70B088FC08F762EA00FC65FE /* cHistogram.h */,
+ 70B088FD08F762EA00FC65FE /* cIndexedBlockStruct.cc */,
+ 70B088FE08F762EA00FC65FE /* cIndexedBlockStruct.h */,
+ 70B088FF08F762EA00FC65FE /* cInitFile.h */,
+ 70B0890008F762EA00FC65FE /* cIntegratedSchedule.h */,
+ 70B0890108F762EA00FC65FE /* cIntegratedScheduleNode.h */,
+ 70B0890208F762EA00FC65FE /* cIntSum.h */,
+ 70B0890308F762EA00FC65FE /* cMerit.h */,
+ 70B0890408F762EA00FC65FE /* cMessageClass.h */,
+ 70B0890508F762EA00FC65FE /* cMessageClosure.h */,
+ 70B0890608F762EA00FC65FE /* cMessageDisplay_headers.h */,
+ 70B0890708F762EA00FC65FE /* cMessageDisplay.cc */,
+ 70B0890808F762EA00FC65FE /* cMessageDisplay.h */,
+ 70B0890908F762EA00FC65FE /* cMessageType.h */,
+ 70B0890A08F762EA00FC65FE /* cProbSchedule.h */,
+ 70B0890B08F762EA00FC65FE /* cRandom.h */,
+ 70B0890C08F762EA00FC65FE /* cRefBlock.cc */,
+ 70B0890D08F762EA00FC65FE /* cRefBlock.h */,
+ 70B0890E08F762EA00FC65FE /* cRunningAverage.h */,
+ 70B0890F08F762EA00FC65FE /* cScaledBlock.cc */,
+ 70B0891008F762EA00FC65FE /* cScaledBlock.h */,
+ 70B0891108F762EA00FC65FE /* cSchedule.h */,
+ 70B0891208F762EA00FC65FE /* cString.h */,
+ 70B0891308F762EA00FC65FE /* cStringIterator.h */,
+ 70B0891408F762EA00FC65FE /* cStringList.h */,
+ 70B0891508F762EA00FC65FE /* cStringUtil.h */,
70B0888308F603D400FC65FE /* cFile.cc */,
70B0888408F603D400FC65FE /* cGenesis.cc */,
70B0887D08F603C600FC65FE /* cFile.h */,
@@ -2747,57 +2787,9 @@
70FB868608BFA02D00BDF589 /* tHashTable.hh */,
DCC31547076253A4008F7A48 /* cCycleCheck.cc */,
DCC3154A076253A4008F7A48 /* CMakeLists.txt */,
- DCC31564076253A4008F7A48 /* help_alias.cc */,
- DCC31565076253A4008F7A48 /* help_alias.hh */,
- DCC31566076253A4008F7A48 /* help_entry.hh */,
- DCC31567076253A4008F7A48 /* help_full_entry.hh */,
- DCC31568076253A4008F7A48 /* help_manager.cc */,
- DCC31569076253A4008F7A48 /* help_manager.hh */,
- DCC3156A076253A4008F7A48 /* help_type.cc */,
- DCC3156B076253A4008F7A48 /* help_type.hh */,
- DCC3156C076253A4008F7A48 /* histogram.cc */,
- DCC3156D076253A4008F7A48 /* histogram.hh */,
- DCC3156E076253A4008F7A48 /* indexed_block_struct.cc */,
- DCC3156F076253A4008F7A48 /* indexed_block_struct.hh */,
- DCC31570076253A4008F7A48 /* init_file.cc */,
- DCC31571076253A4008F7A48 /* init_file.hh */,
- DCC31572076253A4008F7A48 /* int_sum.cc */,
- DCC31573076253A4008F7A48 /* int_sum.hh */,
- DCC31574076253A4008F7A48 /* integrated_schedule.cc */,
- DCC31575076253A4008F7A48 /* integrated_schedule.hh */,
- DCC31576076253A4008F7A48 /* integrated_schedule_node.cc */,
- DCC31577076253A4008F7A48 /* integrated_schedule_node.hh */,
- DCC31579076253A4008F7A48 /* merit.cc */,
- DCC3157A076253A4008F7A48 /* merit.hh */,
- DCC3157B076253A4008F7A48 /* message_class.hh */,
- DCC3157C076253A4008F7A48 /* message_closure.hh */,
- DCC3157D076253A4008F7A48 /* message_display.cc */,
- DCC3157E076253A4008F7A48 /* message_display.hh */,
- DCC3157F076253A4008F7A48 /* message_display_hdrs.hh */,
- DCC31580076253A4008F7A48 /* message_type.hh */,
- DCC31581076253A4008F7A48 /* prob_schedule.cc */,
- DCC31582076253A4008F7A48 /* prob_schedule.hh */,
- DCC31583076253A4008F7A48 /* random.cc */,
- DCC31584076253A4008F7A48 /* random.hh */,
DCC31585076253A4008F7A48 /* recursive_tests_decl_hdrs.hh */,
DCC31586076253A4008F7A48 /* recursive_tests_defn_hdrs.hh */,
DCC31587076253A4008F7A48 /* recursive_tests_macros.hh */,
- DCC31588076253A4008F7A48 /* ref_block.cc */,
- DCC31589076253A4008F7A48 /* ref_block.hh */,
- DCC3158A076253A4008F7A48 /* running_average.cc */,
- DCC3158B076253A4008F7A48 /* running_average.hh */,
- DCC3158C076253A4008F7A48 /* scaled_block.cc */,
- DCC3158D076253A4008F7A48 /* scaled_block.hh */,
- DCC3158E076253A4008F7A48 /* schedule.cc */,
- DCC3158F076253A4008F7A48 /* schedule.hh */,
- DCC31590076253A4008F7A48 /* string.cc */,
- DCC31591076253A4008F7A48 /* string.hh */,
- DCC31592076253A4008F7A48 /* string_iterator.cc */,
- DCC31593076253A4008F7A48 /* string_iterator.hh */,
- DCC31594076253A4008F7A48 /* string_list.cc */,
- DCC31595076253A4008F7A48 /* string_list.hh */,
- DCC31596076253A4008F7A48 /* string_util.cc */,
- DCC31597076253A4008F7A48 /* string_util.hh */,
DCC31598076253A4008F7A48 /* tArgDataEntry.hh */,
DCC31599076253A4008F7A48 /* tArray.hh */,
DCC3159A076253A4008F7A48 /* tBuffer.hh */,
@@ -3028,27 +3020,6 @@
700E2AF8085DE50C00CF158A /* avida.cc in Sources */,
700E2B43085DE50C00CF158A /* weighted_index.cc in Sources */,
700E2B44085DE50C00CF158A /* tools.cc in Sources */,
- 700E2B52085DE50C00CF158A /* help_alias.cc in Sources */,
- 700E2B53085DE50C00CF158A /* help_manager.cc in Sources */,
- 700E2B54085DE50C00CF158A /* help_type.cc in Sources */,
- 700E2B55085DE50C00CF158A /* histogram.cc in Sources */,
- 700E2B56085DE50C00CF158A /* indexed_block_struct.cc in Sources */,
- 700E2B57085DE50C00CF158A /* init_file.cc in Sources */,
- 700E2B58085DE50C00CF158A /* int_sum.cc in Sources */,
- 700E2B59085DE50C00CF158A /* integrated_schedule.cc in Sources */,
- 700E2B5A085DE50C00CF158A /* integrated_schedule_node.cc in Sources */,
- 700E2B5B085DE50C00CF158A /* merit.cc in Sources */,
- 700E2B5C085DE50C00CF158A /* message_display.cc in Sources */,
- 700E2B5D085DE50C00CF158A /* prob_schedule.cc in Sources */,
- 700E2B5E085DE50C00CF158A /* random.cc in Sources */,
- 700E2B5F085DE50C00CF158A /* ref_block.cc in Sources */,
- 700E2B60085DE50C00CF158A /* running_average.cc in Sources */,
- 700E2B61085DE50C00CF158A /* scaled_block.cc in Sources */,
- 700E2B62085DE50C00CF158A /* schedule.cc in Sources */,
- 700E2B63085DE50C00CF158A /* string.cc in Sources */,
- 700E2B64085DE50C00CF158A /* string_iterator.cc in Sources */,
- 700E2B65085DE50C00CF158A /* string_list.cc in Sources */,
- 700E2B66085DE50C00CF158A /* string_util.cc in Sources */,
70658C35085DE5D800486BED /* ansi.cc in Sources */,
70658C36085DE5D900486BED /* bar_screen.cc in Sources */,
70658C38085DE5DC00486BED /* environment_screen.cc in Sources */,
@@ -3153,6 +3124,23 @@
70B0885F08F5FE5800FC65FE /* cDoubleSum.cc in Sources */,
70B0888708F603D400FC65FE /* cFile.cc in Sources */,
70B0888808F603D400FC65FE /* cGenesis.cc in Sources */,
+ 70B0893808F7630100FC65FE /* cHelpAlias.cc in Sources */,
+ 70B0893908F7630100FC65FE /* cHelpManager.cc in Sources */,
+ 70B0893A08F7630100FC65FE /* cHelpType.cc in Sources */,
+ 70B0893B08F7630100FC65FE /* cHistogram.cc in Sources */,
+ 70B0893C08F7630100FC65FE /* cInitFile.cc in Sources */,
+ 70B0893D08F7630100FC65FE /* cIntegratedSchedule.cc in Sources */,
+ 70B0893E08F7630100FC65FE /* cIntegratedScheduleNode.cc in Sources */,
+ 70B0893F08F7630100FC65FE /* cIntSum.cc in Sources */,
+ 70B0894008F7630100FC65FE /* cMerit.cc in Sources */,
+ 70B0894108F7630100FC65FE /* cProbSchedule.cc in Sources */,
+ 70B0894208F7630100FC65FE /* cRandom.cc in Sources */,
+ 70B0894308F7630100FC65FE /* cRunningAverage.cc in Sources */,
+ 70B0894408F7630100FC65FE /* cSchedule.cc in Sources */,
+ 70B0894508F7630100FC65FE /* cString.cc in Sources */,
+ 70B0894608F7630100FC65FE /* cStringIterator.cc in Sources */,
+ 70B0894708F7630100FC65FE /* cStringList.cc in Sources */,
+ 70B0894808F7630100FC65FE /* cStringUtil.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3163,27 +3151,6 @@
DCC3166107628531008F7A48 /* avida.cc in Sources */,
DCC316B807628742008F7A48 /* weighted_index.cc in Sources */,
DCC316B907628744008F7A48 /* tools.cc in Sources */,
- DCC316C707628757008F7A48 /* help_alias.cc in Sources */,
- DCC316C807628758008F7A48 /* help_manager.cc in Sources */,
- DCC316C90762875A008F7A48 /* help_type.cc in Sources */,
- DCC316CA0762875B008F7A48 /* histogram.cc in Sources */,
- DCC316CB0762875C008F7A48 /* indexed_block_struct.cc in Sources */,
- DCC316CC0762875D008F7A48 /* init_file.cc in Sources */,
- DCC316CD0762875D008F7A48 /* int_sum.cc in Sources */,
- DCC316CE0762875E008F7A48 /* integrated_schedule.cc in Sources */,
- DCC316CF0762875F008F7A48 /* integrated_schedule_node.cc in Sources */,
- DCC316D007628761008F7A48 /* merit.cc in Sources */,
- DCC316D107628763008F7A48 /* message_display.cc in Sources */,
- DCC316D207628764008F7A48 /* prob_schedule.cc in Sources */,
- DCC316D307628765008F7A48 /* random.cc in Sources */,
- DCC316D407628766008F7A48 /* ref_block.cc in Sources */,
- DCC316D507628767008F7A48 /* running_average.cc in Sources */,
- DCC316D607628769008F7A48 /* scaled_block.cc in Sources */,
- DCC316D70762876A008F7A48 /* schedule.cc in Sources */,
- DCC316D80762876B008F7A48 /* string.cc in Sources */,
- DCC316D90762876C008F7A48 /* string_iterator.cc in Sources */,
- DCC316DA0762876E008F7A48 /* string_list.cc in Sources */,
- DCC316DB0762876F008F7A48 /* string_util.cc in Sources */,
70658C44085DE5FF00486BED /* primitive.cc in Sources */,
70D46934085F61DA004C8409 /* trio.c in Sources */,
70D46935085F61DD004C8409 /* trionan.c in Sources */,
@@ -3278,6 +3245,23 @@
70B0885908F5FE5800FC65FE /* cDoubleSum.cc in Sources */,
70B0888508F603D400FC65FE /* cFile.cc in Sources */,
70B0888608F603D400FC65FE /* cGenesis.cc in Sources */,
+ 70B0892708F7630100FC65FE /* cHelpAlias.cc in Sources */,
+ 70B0892808F7630100FC65FE /* cHelpManager.cc in Sources */,
+ 70B0892908F7630100FC65FE /* cHelpType.cc in Sources */,
+ 70B0892A08F7630100FC65FE /* cHistogram.cc in Sources */,
+ 70B0892B08F7630100FC65FE /* cInitFile.cc in Sources */,
+ 70B0892C08F7630100FC65FE /* cIntegratedSchedule.cc in Sources */,
+ 70B0892D08F7630100FC65FE /* cIntegratedScheduleNode.cc in Sources */,
+ 70B0892E08F7630100FC65FE /* cIntSum.cc in Sources */,
+ 70B0892F08F7630100FC65FE /* cMerit.cc in Sources */,
+ 70B0893008F7630100FC65FE /* cProbSchedule.cc in Sources */,
+ 70B0893108F7630100FC65FE /* cRandom.cc in Sources */,
+ 70B0893208F7630100FC65FE /* cRunningAverage.cc in Sources */,
+ 70B0893308F7630100FC65FE /* cSchedule.cc in Sources */,
+ 70B0893408F7630100FC65FE /* cString.cc in Sources */,
+ 70B0893508F7630100FC65FE /* cStringIterator.cc in Sources */,
+ 70B0893608F7630100FC65FE /* cStringList.cc in Sources */,
+ 70B0893708F7630100FC65FE /* cStringUtil.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/source/bindings/Boost.Python/avida_driver_analyze.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/avida_driver_analyze.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/avida_driver_analyze.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
Import("avida_driver_base.pyste")
Include("cEnvironment.h")
-Include("string.hh")
+Include("cString.h")
cAvidaDriver_Analyze = Class("cAvidaDriver_Analyze", "cAvidaDriver_Analyze.h")
Modified: trunk/source/bindings/Boost.Python/avida_driver_base.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/avida_driver_base.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/avida_driver_base.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,6 +1,6 @@
declaration_code("""
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
""")
Modified: trunk/source/bindings/Boost.Python/const_schedule.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/const_schedule.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/const_schedule.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
Import("schedule.pyste")
-Include("merit.hh")
+Include("cMerit.h")
cConstSchedule = Class("cConstSchedule", "cConstSchedule.h")
Modified: trunk/source/bindings/Boost.Python/data_file_manager.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/data_file_manager.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/data_file_manager.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,6 +1,6 @@
Include("cDataFile.h")
-Include("string.hh")
+Include("cString.h")
cDataFileManager = Class("cDataFileManager", "cDataFileManager.h")
exclude(cDataFileManager.GetOFStream)
Modified: trunk/source/bindings/Boost.Python/file-fixups.hh
===================================================================
--- trunk/source/bindings/Boost.Python/file-fixups.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/file-fixups.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -5,7 +5,7 @@
#include "cFile.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
int cFileOpenWrapper(cFile &file, cString _filename);
Modified: trunk/source/bindings/Boost.Python/genesis-fixups.hh
===================================================================
--- trunk/source/bindings/Boost.Python/genesis-fixups.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/genesis-fixups.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -5,7 +5,7 @@
#include "cGenesis.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
int cGenesisOpenWrapper(cGenesis &file, cString _filename);
Modified: trunk/source/bindings/Boost.Python/genotype.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/genotype.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/genotype.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("merit.hh")
+Include("cMerit.h")
Include("cSpecies.h")
Include("cGenebank.h")
Modified: trunk/source/bindings/Boost.Python/hardware_tracer_test_cpu.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/hardware_tracer_test_cpu.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/hardware_tracer_test_cpu.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
cHardwareTracer_TestCPU = Class("cHardwareTracer_TestCPU", "cHardwareTracer_TestCPU.h")
Modified: trunk/source/bindings/Boost.Python/help_alias.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/help_alias.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/help_alias.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,10 +1,10 @@
Import("help_entry.pyste")
-Include("help_type.hh")
-Include("help_full_entry.hh")
+Include("cHelpType.h")
+Include("cHelpFullEntry.h")
-cHelpAlias = Class("cHelpAlias", "help_alias.hh")
+cHelpAlias = Class("cHelpAlias", "cHelpAlias.h")
set_policy(cHelpAlias.GetType, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/help_entry.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/help_entry.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/help_entry.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
-Include("help_type.hh")
+Include("cHelpType.h")
-cHelpEntry = Class("cHelpEntry", "help_entry.hh")
+cHelpEntry = Class("cHelpEntry", "cHelpEntry.h")
set_policy(cHelpEntry.GetType, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/help_full_entry.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/help_full_entry.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/help_full_entry.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,9 +1,9 @@
Import("help_entry.pyste")
-Include("help_type.hh")
+Include("cHelpType.h")
-cHelpFullEntry = Class("cHelpFullEntry", "help_full_entry.hh")
+cHelpFullEntry = Class("cHelpFullEntry", "cHelpFullEntry.h")
set_policy(cHelpFullEntry.GetType, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/help_manager.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/help_manager.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/help_manager.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
-Include("help_entry.hh")
+Include("cHelpEntry.h")
-cHelpManager = Class("cHelpManager", "help_manager.hh")
+cHelpManager = Class("cHelpManager", "cHelpManager.h")
set_policy(cHelpManager.FindEntry, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/help_type.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/help_type.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/help_type.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,10 +1,10 @@
-Include("help_manager.hh")
-Include("help_full_entry.hh")
-Include("help_entry.hh")
-Include("help_alias.hh")
+Include("cHelpManager.h")
+Include("cHelpFullEntry.h")
+Include("cHelpEntry.h")
+Include("cHelpAlias.h")
-cHelpType = Class("cHelpType", "help_type.hh")
+cHelpType = Class("cHelpType", "cHelpType.h")
set_policy(cHelpType.AddEntry, return_internal_reference())
set_policy(cHelpType.AddAlias, return_internal_reference())
set_policy(cHelpType.FindEntry, return_internal_reference())
Modified: trunk/source/bindings/Boost.Python/histogram.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/histogram.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/histogram.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cHistogram = Class("cHistogram", "histogram.hh")
+cHistogram = Class("cHistogram", "cHistogram.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/indexed_block_struct.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/indexed_block_struct.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/indexed_block_struct.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cIndexedBlockStruct = Class("cIndexedBlockStruct", "indexed_block_struct.hh")
+cIndexedBlockStruct = Class("cIndexedBlockStruct", "cIndexedBlockStruct.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/init_file.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/init_file.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/init_file.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
Import("file.pyste")
-cInitFile = Class("cInitFile", "init_file.hh")
+cInitFile = Class("cInitFile", "cInitFile.h")
set_policy(cInitFile.GetFormat, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/inst_lib_base.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/inst_lib_base.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/inst_lib_base.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
cInstLibBase = Class("cInstLibBase", "cInstLibBase.h")
set_policy(cInstLibBase.GetName, return_value_policy(reference_existing_object))
Modified: trunk/source/bindings/Boost.Python/inst_lib_cpu.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/inst_lib_cpu.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/inst_lib_cpu.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
Import("inst_lib_base.pyste")
Modified: trunk/source/bindings/Boost.Python/int_sum.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/int_sum.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/int_sum.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cIntSum = Class("cIntSum", "int_sum.hh")
+cIntSum = Class("cIntSum", "cIntSum.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/integrated_schedule.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/integrated_schedule.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/integrated_schedule.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,8 +1,8 @@
Import("schedule.pyste")
-Include("merit.hh")
+Include("cMerit.h")
-cIntegratedSchedule = Class("cIntegratedSchedule", "integrated_schedule.hh")
+cIntegratedSchedule = Class("cIntegratedSchedule", "cIntegratedSchedule.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/integrated_schedule_node.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/integrated_schedule_node.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/integrated_schedule_node.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-cIntegratedScheduleNode = Class("cIntegratedScheduleNode", "integrated_schedule_node.hh")
+cIntegratedScheduleNode = Class("cIntegratedScheduleNode", "cIntegratedScheduleNode.h")
set_policy(cIntegratedScheduleNode.GetNext, return_internal_reference())
set_policy(cIntegratedScheduleNode.GetPrev, return_internal_reference())
Modified: trunk/source/bindings/Boost.Python/lineage_control.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/lineage_control.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/lineage_control.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
Include("cGenebank.h")
Include("cStats.h")
-Include("string.hh")
+Include("cString.h")
Include("cGenotype.h")
Include("cLineage.h")
Include("cOrganism.h")
Modified: trunk/source/bindings/Boost.Python/merit.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/merit.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/merit.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-cMerit = Class("cMerit", "merit.hh")
+cMerit = Class("cMerit", "cMerit.h")
# BinaryPrint is meant for use with ostreams; ditch it.
exclude(cMerit.BinaryPrint)
# operator is for ostreams; ditch it.
Modified: trunk/source/bindings/Boost.Python/mutation_lib.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/mutation_lib.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/mutation_lib.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
Include("cMutation.h")
cMutationLib = Class("cMutationLib", "cMutationLib.h")
Modified: trunk/source/bindings/Boost.Python/population_event_factory.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/population_event_factory.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/population_event_factory.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -2,7 +2,7 @@
Import("event_factory.pyste")
Include("cEvent.h")
-Include("string.hh")
+Include("cString.h")
Include("cPopulation.h")
cPopulationEventFactory = Class("cPopulationEventFactory", "cPopulationEventFactory.h")
Modified: trunk/source/bindings/Boost.Python/prob_schedule.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/prob_schedule.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/prob_schedule.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,8 +1,8 @@
Import("schedule.pyste")
-Include("merit.hh")
+Include("cMerit.h")
-cProbSchedule = Class("cProbSchedule", "prob_schedule.hh")
+cProbSchedule = Class("cProbSchedule", "cProbSchedule.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/py_avida_driver-fixups.cc
===================================================================
--- trunk/source/bindings/Boost.Python/py_avida_driver-fixups.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/py_avida_driver-fixups.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#include "main/cPopulation.h"
#include "main/cPopulationCell.h"
#include "tools/cChangeList.h"
-#include "tools/string.hh"
+#include "tools/cString.h"
#include <iostream>
Modified: trunk/source/bindings/Boost.Python/py_hardware_tracer.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/py_hardware_tracer.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/py_hardware_tracer.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
Include("cHardware4Stack.h")
Include("cHardwareCPU.h")
-Include("string.hh")
+Include("cString.h")
Import("hardware_tracer.pyste")
Import("hardware_tracer_4stack.pyste")
Modified: trunk/source/bindings/Boost.Python/random.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/random.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/random.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,6 +1,6 @@
Include("tList.hh")
-cRandom = Class("cRandom", "random.hh")
+cRandom = Class("cRandom", "cRandom.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/reaction_lib.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/reaction_lib.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/reaction_lib.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
Include("cReaction.h")
cReactionLib = Class("cReactionLib", "cReactionLib.h")
Modified: trunk/source/bindings/Boost.Python/ref_block.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/ref_block.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/ref_block.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cRefBlock = Class("cRefBlock", "ref_block.hh")
+cRefBlock = Class("cRefBlock", "cRefBlock.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/resource_lib.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/resource_lib.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/resource_lib.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
Include("cResource.h")
cResourceLib = Class("cResourceLib", "cResourceLib.h")
Modified: trunk/source/bindings/Boost.Python/running_average.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/running_average.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/running_average.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cRunningAverage = Class("cRunningAverage", "running_average.hh")
+cRunningAverage = Class("cRunningAverage", "cRunningAverage.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/scaled_block.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/scaled_block.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/scaled_block.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-cScaledBlock = Class("cScaledBlock", "scaled_block.hh")
+cScaledBlock = Class("cScaledBlock", "cScaledBlock.h")
set_policy(cScaledBlock.GetData, return_internal_reference())
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/schedule.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/schedule.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/schedule.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,8 +1,8 @@
Include("cChangeList.h")
-Include("merit.hh")
+Include("cMerit.h")
-cSchedule = Class("cSchedule", "schedule.hh")
+cSchedule = Class("cSchedule", "cSchedule.h")
exclude(cSchedule.GetChangeList)
Modified: trunk/source/bindings/Boost.Python/string.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/string.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/string.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-cString = Class("cString", "string.hh")
+cString = Class("cString", "cString.h")
# Set(...) doesn't work with Pyste because Pyste doesn't grok varargs.
exclude(cString.Set)
# Pyste doesn't grok cpp strings.
Modified: trunk/source/bindings/Boost.Python/string_iterator.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/string_iterator.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/string_iterator.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,6 +1,6 @@
-Include("string_list.hh")
+Include("cStringList.h")
-cStringIterator = Class("cStringIterator", "string_iterator.hh")
+cStringIterator = Class("cStringIterator", "cStringIterator.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/string_list.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/string_list.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/string_list.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-cStringList = Class("cStringList", "string_list.hh")
+cStringList = Class("cStringList", "cStringList.h")
# disabled because it returns a tList, and I'm not wrapping tList yet
# (it introduces memory management problems that I have't yet
# approached).
Modified: trunk/source/bindings/Boost.Python/string_util.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/string_util.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/string_util.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,4 +1,4 @@
-cStringUtil = Class("cStringUtil", "string_util.hh")
+cStringUtil = Class("cStringUtil", "cStringUtil.h")
# vim: set ft=python:
Modified: trunk/source/bindings/Boost.Python/tArray_instantiations.hh
===================================================================
--- trunk/source/bindings/Boost.Python/tArray_instantiations.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/tArray_instantiations.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include "cOrganism.h"
-#include "merit.hh"
+#include "cMerit.h"
#include "cMutation.h"
-#include "int_sum.hh"
+#include "cIntSum.h"
#include "tArray.hh"
Modified: trunk/source/bindings/Boost.Python/tList_instantiations.hh
===================================================================
--- trunk/source/bindings/Boost.Python/tList_instantiations.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/tList_instantiations.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -5,6 +5,6 @@
#include "cReactionProcess.h"
#include "cReactionRequisite.h"
#include "cReaction.h"
-#include "string.hh"
+#include "cString.h"
#include "tList.hh"
Modified: trunk/source/bindings/Boost.Python/tools.pyste
===================================================================
--- trunk/source/bindings/Boost.Python/tools.pyste 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/bindings/Boost.Python/tools.pyste 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
-Include("string.hh")
+Include("cString.h")
cTools = Class("cTools", "tools.hh")
Modified: trunk/source/cpu/cCPUStack.cc
===================================================================
--- trunk/source/cpu/cCPUStack.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cCPUStack.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -8,7 +8,7 @@
#include "cCPUStack.h"
#include <assert.h>
-#include "string.hh"
+#include "cString.h"
using namespace std;
Modified: trunk/source/cpu/cCPUTestInfo.h
===================================================================
--- trunk/source/cpu/cCPUTestInfo.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cCPUTestInfo.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "nHardware.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/cpu/cCodeLabel.h
===================================================================
--- trunk/source/cpu/cCodeLabel.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cCodeLabel.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -15,7 +15,7 @@
#include "defs.hh"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/cpu/cHardware4Stack.cc
===================================================================
--- trunk/source/cpu/cHardware4Stack.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardware4Stack.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -22,8 +22,8 @@
#include "nMutation.h"
#include "cOrganism.h"
#include "cPhenotype.h"
-#include "random.hh"
-#include "string_util.hh"
+#include "cRandom.h"
+#include "cStringUtil.h"
#include "cTestCPU.h"
#include <limits.h>
Modified: trunk/source/cpu/cHardware4Stack.h
===================================================================
--- trunk/source/cpu/cHardware4Stack.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardware4Stack.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -32,7 +32,7 @@
#include "cHardware4Stack_Thread.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/cpu/cHardwareCPU.cc
===================================================================
--- trunk/source/cpu/cHardwareCPU.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareCPU.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -21,7 +21,7 @@
#include "nMutation.h"
#include "cOrganism.h"
#include "cPhenotype.h"
-#include "string_util.hh"
+#include "cStringUtil.h"
#include "cTestCPU.h"
#include <limits.h>
Modified: trunk/source/cpu/cHardwareCPU.h
===================================================================
--- trunk/source/cpu/cHardwareCPU.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareCPU.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -39,7 +39,7 @@
#include "cHardwareCPU_Thread.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/cpu/cHardwareSMT.cc
===================================================================
--- trunk/source/cpu/cHardwareSMT.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareSMT.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -22,8 +22,8 @@
#include "nMutation.h"
#include "cOrganism.h"
#include "cPhenotype.h"
-#include "random.hh"
-#include "string_util.hh"
+#include "cRandom.h"
+#include "cStringUtil.h"
#include "cTestCPU.h"
#include <limits.h>
Modified: trunk/source/cpu/cHardwareSMT.h
===================================================================
--- trunk/source/cpu/cHardwareSMT.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareSMT.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -34,7 +34,7 @@
#include "cHardwareSMT_Thread.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/cpu/cHardwareStatusPrinter.cc
===================================================================
--- trunk/source/cpu/cHardwareStatusPrinter.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareStatusPrinter.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -13,8 +13,8 @@
#include "cHardwareStatusPrinter.h"
#include "cInstSet.h"
#include "cOrganism.h"
-#include "string.hh"
-#include "string_util.hh"
+#include "cString.h"
+#include "cStringUtil.h"
#include <fstream>
Modified: trunk/source/cpu/cHardwareStatusPrinter.h
===================================================================
--- trunk/source/cpu/cHardwareStatusPrinter.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareStatusPrinter.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -26,7 +26,7 @@
#include "cHardwareTracer_TestCPU.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
Modified: trunk/source/cpu/cHardwareUtil.cc
===================================================================
--- trunk/source/cpu/cHardwareUtil.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareUtil.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -25,7 +25,7 @@
#include "cHardwareSMT.h"
#endif
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#ifndef INST_LIB_CPU_HH
#include "cInstLibCPU.h"
Modified: trunk/source/cpu/cHardwareUtil.h
===================================================================
--- trunk/source/cpu/cHardwareUtil.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cHardwareUtil.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define HARDWARE_UTIL_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cString; // aggregate
Modified: trunk/source/cpu/cTestCPU.cc
===================================================================
--- trunk/source/cpu/cTestCPU.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cTestCPU.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -21,7 +21,7 @@
#include "cResourceCount.h"
#include "cResourceLib.h"
#include "cResource.h"
-#include "string_util.hh"
+#include "cStringUtil.h"
#include "tMatrix.hh"
#include <iomanip>
Modified: trunk/source/cpu/cTestCPU.h
===================================================================
--- trunk/source/cpu/cTestCPU.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cTestCPU.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -14,7 +14,7 @@
#include "tArray.hh"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef RESOURCE_COUNT_HH
Modified: trunk/source/cpu/cTestUtil.h
===================================================================
--- trunk/source/cpu/cTestUtil.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/cTestUtil.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define TEST_UTIL_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
// ------------------------------------------------------------------------
Modified: trunk/source/cpu/tInstLib.h
===================================================================
--- trunk/source/cpu/tInstLib.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/cpu/tInstLib.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#define TINSTLIB_H
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef INST_LIB_BASE_HH
#include "cInstLibBase.h"
Modified: trunk/source/event/cEvent.h
===================================================================
--- trunk/source/event/cEvent.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/event/cEvent.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define EVENT_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/**
Modified: trunk/source/event/cEventFactoryManager.cc
===================================================================
--- trunk/source/event/cEventFactoryManager.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/event/cEventFactoryManager.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -2,7 +2,7 @@
#include "cEventFactoryManager.h"
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef EVENT_HH
Modified: trunk/source/event/cEventFactoryManager.h
===================================================================
--- trunk/source/event/cEventFactoryManager.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/event/cEventFactoryManager.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,7 +17,7 @@
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/**
Modified: trunk/source/event/cEventList.cc
===================================================================
--- trunk/source/event/cEventList.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/event/cEventList.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -22,7 +22,7 @@
#include "cEventTriggers.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#include <float.h> // for DBL_MIN
Modified: trunk/source/event/cPopulationEventFactory.cc
===================================================================
--- trunk/source/event/cPopulationEventFactory.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/event/cPopulationEventFactory.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -70,7 +70,7 @@
#include "cStats.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TEST_CPU_HH
#include "cTestCPU.h"
Modified: trunk/source/main/cAnalyze.cc
===================================================================
--- trunk/source/main/cAnalyze.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyze.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -28,8 +28,8 @@
#include "cHardwareBase.h"
#include "cHardwareStatusPrinter.h"
#include "cHardwareUtil.h"
-#include "help_manager.hh"
-#include "init_file.hh"
+#include "cHelpManager.h"
+#include "cInitFile.h"
#include "cInstSet.h"
#include "cInstUtil.h"
#include "cLandscape.h"
Modified: trunk/source/main/cAnalyze.h
===================================================================
--- trunk/source/main/cAnalyze.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyze.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,13 +17,13 @@
#include "cGenotypeBatch.h"
#endif
#ifndef RANDOM_HH
-#include "random.hh"
+#include "cRandom.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_LIST_HH
-#include "string_list.hh"
+#include "cStringList.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cAnalyzeCommand.h
===================================================================
--- trunk/source/main/cAnalyzeCommand.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeCommand.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define ANALYZE_COMMAND_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
// cAnalyzeCommand : A command in a loaded program
Modified: trunk/source/main/cAnalyzeCommandDef.h
===================================================================
--- trunk/source/main/cAnalyzeCommandDef.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeCommandDef.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cAnalyzeCommandDefBase.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cAnalyze;
Modified: trunk/source/main/cAnalyzeCommandDefBase.h
===================================================================
--- trunk/source/main/cAnalyzeCommandDefBase.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeCommandDefBase.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define ANALYZE_COMMAND_DEF_BASE_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cString; // aggregate
Modified: trunk/source/main/cAnalyzeFlowCommandDef.h
===================================================================
--- trunk/source/main/cAnalyzeFlowCommandDef.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeFlowCommandDef.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -15,7 +15,7 @@
#include "cAnalyzeCommandDefBase.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cAnalyzeFunction.h
===================================================================
--- trunk/source/main/cAnalyzeFunction.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeFunction.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cAnalyzeCommand.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cAnalyzeGenotype.h
===================================================================
--- trunk/source/main/cAnalyzeGenotype.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeGenotype.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,13 +17,13 @@
#include "cGenome.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_LIST_HH
-#include "string_list.hh"
+#include "cStringList.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cAnalyzeUtil.cc
===================================================================
--- trunk/source/main/cAnalyzeUtil.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAnalyzeUtil.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -34,7 +34,7 @@
#include "cHardwareBase.h"
#endif
#ifndef HISTOGRAM_HH
-#include "histogram.hh"
+#include "cHistogram.h"
#endif
#ifndef INST_SET_HH
#include "cInstSet.h"
Modified: trunk/source/main/cAvidaDriver_Base.cc
===================================================================
--- trunk/source/main/cAvidaDriver_Base.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAvidaDriver_Base.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#include <iostream>
Modified: trunk/source/main/cAvidaDriver_Population.cc
===================================================================
--- trunk/source/main/cAvidaDriver_Population.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAvidaDriver_Population.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,13 +17,13 @@
#include "cGenotype.h"
#include "cHardwareBase.h"
#include "cHardwareFactory.h"
-#include "init_file.hh"
+#include "cInitFile.h"
#include "cOrganism.h"
#include "cPopulation.h"
#include "cPopulationCell.h"
#include "cPopulationEventFactory.h"
#include "cPopulationInterface.h"
-#include "string.hh"
+#include "cString.h"
#include "tools.hh"
#include <iostream>
Modified: trunk/source/main/cAvidaDriver_Population.h
===================================================================
--- trunk/source/main/cAvidaDriver_Population.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cAvidaDriver_Population.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cAvidaDriver_Base.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cEnvironment;
Modified: trunk/source/main/cBirthChamber.h
===================================================================
--- trunk/source/main/cBirthChamber.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cBirthChamber.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cCPUMemory.h"
#endif
#ifndef MERIT_HH
-#include "merit.hh"
+#include "cMerit.h"
#endif
/**
Modified: trunk/source/main/cConfig.h
===================================================================
--- trunk/source/main/cConfig.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cConfig.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cGenesis.h"
#endif
#ifndef STRING_LIST_HH
-#include "string_list.hh"
+#include "cStringList.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cEnvironment.cc
===================================================================
--- trunk/source/main/cEnvironment.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cEnvironment.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,13 +10,13 @@
#endif
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#ifndef nMutation_h
#include "nMutation.h"
#endif
#ifndef RANDOM_HH
-#include "random.hh"
+#include "cRandom.h"
#endif
#ifndef REACTION_HH
#include "cReaction.h"
@@ -37,7 +37,7 @@
#include "cResource.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TASK_ENTRY_HH
#include "cTaskEntry.h"
Modified: trunk/source/main/cEnvironment.h
===================================================================
--- trunk/source/main/cEnvironment.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cEnvironment.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -24,7 +24,7 @@
#include "cResourceLib.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TASK_LIB_HH
#include "cTaskLib.h"
Modified: trunk/source/main/cFitnessMatrix.h
===================================================================
--- trunk/source/main/cFitnessMatrix.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cFitnessMatrix.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -33,7 +33,7 @@
#include "cStats.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TOOLS_HH
#include "tools.hh"
Modified: trunk/source/main/cGenebank.h
===================================================================
--- trunk/source/main/cGenebank.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cGenebank.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -20,7 +20,7 @@
#include "cSpeciesControl.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cGenome.h
===================================================================
--- trunk/source/main/cGenome.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cGenome.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -14,7 +14,7 @@
#include "cInstruction.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cGenotype.cc
===================================================================
--- trunk/source/main/cGenotype.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cGenotype.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#include "cConfig.h"
#include "cCPUTestInfo.h"
#include "cGenomeUtil.h"
-#include "merit.hh"
+#include "cMerit.h"
#include "cOrganism.h"
#include "cPhenotype.h"
#include "cTestCPU.h"
Modified: trunk/source/main/cGenotype.h
===================================================================
--- trunk/source/main/cGenotype.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cGenotype.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -23,7 +23,7 @@
#include "cGenotype_TestData.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cSpecies;
Modified: trunk/source/main/cGenotypeBatch.h
===================================================================
--- trunk/source/main/cGenotypeBatch.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cGenotypeBatch.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define GENOTYPE_BATCH_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cInjectGenebank.h
===================================================================
--- trunk/source/main/cInjectGenebank.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cInjectGenebank.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -23,7 +23,7 @@
#include "cInjectGenotypeQueue.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cGenome;
Modified: trunk/source/main/cInjectGenotype.h
===================================================================
--- trunk/source/main/cInjectGenotype.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cInjectGenotype.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,7 +17,7 @@
#include "cInjectGenotype_BirthData.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/*class cInjectGenotype_TestData {
Modified: trunk/source/main/cInstSet.cc
===================================================================
--- trunk/source/main/cInstSet.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cInstSet.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TOOLS_HH
#include "tools.hh"
Modified: trunk/source/main/cInstSet.h
===================================================================
--- trunk/source/main/cInstSet.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cInstSet.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cInstUtil.cc
===================================================================
--- trunk/source/main/cInstUtil.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cInstUtil.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -7,11 +7,11 @@
#include "cInstUtil.h"
-#include "string.hh"
+#include "cString.h"
#include "cFile.h"
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#include "cInstSet.h"
Modified: trunk/source/main/cLandscape.h
===================================================================
--- trunk/source/main/cLandscape.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cLandscape.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -15,7 +15,7 @@
#include "cGenome.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TMATRIX_HH
#include "tMatrix.hh"
Modified: trunk/source/main/cLineageControl.cc
===================================================================
--- trunk/source/main/cLineageControl.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cLineageControl.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -7,7 +7,7 @@
#include "cLineageControl.h"
-#include "string.hh"
+#include "cString.h"
#include "cLineage.h"
#include "cStats.h"
Modified: trunk/source/main/cMutation.h
===================================================================
--- trunk/source/main/cMutation.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cMutation.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define MUTATION_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cMutation {
Modified: trunk/source/main/cMxCodeArray.h
===================================================================
--- trunk/source/main/cMxCodeArray.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cMxCodeArray.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -17,10 +17,10 @@
#include "cInstruction.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
/**
Modified: trunk/source/main/cOrganism.cc
===================================================================
--- trunk/source/main/cOrganism.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cOrganism.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -18,7 +18,7 @@
#include "cInstSet.h"
#include "cInstUtil.h"
#include "cOrgMessage.h"
-#include "string_util.hh"
+#include "cStringUtil.h"
#include "tArray.hh"
#include "tools.hh"
#include "tList.hh"
Modified: trunk/source/main/cPhenotype.h
===================================================================
--- trunk/source/main/cPhenotype.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cPhenotype.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,10 +11,10 @@
#include <fstream>
#ifndef MERIT_HH
-#include "merit.hh"
+#include "cMerit.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cPopulation.cc
===================================================================
--- trunk/source/main/cPopulation.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cPopulation.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -20,17 +20,17 @@
#include "cHardwareFactory.h"
#include "cHardware4Stack.h"
#include "cHardwareUtil.h"
-#include "init_file.hh"
+#include "cInitFile.h"
#include "cInjectGenebank.h"
#include "cInjectGenotype.h"
#include "cInstUtil.h"
-#include "integrated_schedule.hh"
+#include "cIntegratedSchedule.h"
#include "cLineage.h"
#include "cLineageControl.h"
#include "cOrganism.h"
#include "cPhenotype.h"
#include "cPopulationCell.h"
-#include "prob_schedule.hh"
+#include "cProbSchedule.h"
#include "cResource.h"
#include "cSpecies.h"
#include "cStats.h"
Modified: trunk/source/main/cPopulation.h
===================================================================
--- trunk/source/main/cPopulation.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cPopulation.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -23,7 +23,7 @@
#include "cStats.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cReaction.h
===================================================================
--- trunk/source/main/cReaction.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cReaction.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define REACTION_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TLIST_HH
#include "tList.hh"
Modified: trunk/source/main/cResource.h
===================================================================
--- trunk/source/main/cResource.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cResource.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define RESOURCE_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cString; // aggregate
Modified: trunk/source/main/cResourceCount.h
===================================================================
--- trunk/source/main/cResourceCount.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cResourceCount.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include "cSpatialResCount.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cStats.cc
===================================================================
--- trunk/source/main/cStats.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cStats.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#include "cConfig.h"
#include "cDataFile.h"
#include "functions.h"
-#include "string_util.hh"
+#include "cStringUtil.h"
#include "tDataEntry.hh"
#include <math.h>
Modified: trunk/source/main/cStats.h
===================================================================
--- trunk/source/main/cStats.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cStats.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -25,10 +25,10 @@
#include "functions.h"
#endif
#ifndef INT_SUM_HH
-#include "int_sum.hh"
+#include "cIntSum.h"
#endif
#ifndef RUNNING_AVERAGE_HH
-#include "running_average.hh"
+#include "cRunningAverage.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/main/cTaskEntry.h
===================================================================
--- trunk/source/main/cTaskEntry.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/main/cTaskEntry.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define TASK_ENTRY_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TASK_LIB_HH
#include "cTaskLib.h"
Modified: trunk/source/testsuites/unit_testsuites/help_alias.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/help_alias.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/help_alias.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HELP_ALIAS_HH
-#include "tools/help_alias.hh"
+#include "tools/cHelpAlias.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/help_entry.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/help_entry.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/help_entry.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HELP_ENTRY_HH
-#include "tools/help_entry.hh"
+#include "tools/cHelpEntry.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/help_full_entry.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/help_full_entry.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/help_full_entry.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HELP_FULL_ENTRY_HH
-#include "tools/help_full_entry.hh"
+#include "tools/cHelpFullEntry.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/help_manager.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/help_manager.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/help_manager.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HELP_MANAGER_HH
-#include "tools/help_manager.hh"
+#include "tools/cHelpManager.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/help_type.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/help_type.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/help_type.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HELP_TYPE_HH
-#include "tools/help_type.hh"
+#include "tools/cHelpType.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/histogram.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/histogram.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/histogram.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef HISTOGRAM_HH
-#include "histogram.hh"
+#include "cHistogram.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/indexed_block_struct.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/indexed_block_struct.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/indexed_block_struct.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef INDEXED_BLOCK_STRUCT_HH
-#include "indexed_block_struct.hh"
+#include "cIndexedBlockStruct.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/init_file.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/init_file.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/init_file.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/integrated_schedule_node.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/integrated_schedule_node.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/integrated_schedule_node.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef INTEGRATED_SCHEDULE_NODE_HH
-#include "integrated_schedule_node.hh"
+#include "cIntegratedScheduleNode.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/level_0/int_sum.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/level_0/int_sum.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/level_0/int_sum.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
#ifndef INT_SUM_HH
-#include "int_sum.hh"
+#include "cIntSum.h"
#endif
#ifndef TEST_CASE_H
Modified: trunk/source/testsuites/unit_testsuites/level_0/merit.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/level_0/merit.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/level_0/merit.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,5 +1,5 @@
#ifndef MERIT_HH
-#include "merit.hh"
+#include "cMerit.h"
#endif
#ifndef TEST_CASE_H
Modified: trunk/source/testsuites/unit_testsuites/message_class.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/message_class.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/message_class.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef MESSAGE_CLASS_HH
-#include "message_class.hh"
+#include "cMessageClass.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/message_closure.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/message_closure.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/message_closure.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef MESSAGE_CLOSURE_HH
-#include "message_closure.hh"
+#include "cMessageClosure.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/message_display.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/message_display.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/message_display.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef MESSAGE_DISPLAY_HH
-#include "message_display.hh"
+#include "cMessageDisplay.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/message_type.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/message_type.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/message_type.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef MESSAGE_CLASS_HH
-#include "message_type.hh"
+#include "cMessageType.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/prob_schedule.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/prob_schedule.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/prob_schedule.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef PROB_SCHEDULE_HH
-#include "prob_schedule.hh"
+#include "cProbSchedule.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/random.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/random.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/random.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef RANDOM_HH
-#include "random.hh"
+#include "cRandom.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/ref_block.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/ref_block.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/ref_block.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef REF_BLOCK_HH
-#include "ref_block.hh"
+#include "cRefBlock.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/running_average.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/running_average.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/running_average.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef RUNNING_AVERAGE_HH
-#include "running_average.hh"
+#include "cRunningAverage.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/scaled_block.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/scaled_block.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/scaled_block.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef SCALED_BLOCK_HH
-#include "scaled_block.hh"
+#include "cScaledBlock.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/schedule.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/schedule.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/schedule.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef SCHEDULE_HH
-#include "schedule.hh"
+#include "cSchedule.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/string.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/string.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/string.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/string_iterator.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/string_iterator.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/string_iterator.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef STRING_ITERATOR_HH
-#include "string_iterator.hh"
+#include "cStringIterator.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/string_list.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/string_list.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/string_list.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef STRING_LIST_HH
-#include "string_list.hh"
+#include "cStringList.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/testsuites/unit_testsuites/string_util.t.cc
===================================================================
--- trunk/source/testsuites/unit_testsuites/string_util.t.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/testsuites/unit_testsuites/string_util.t.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,7 +1,7 @@
#include <iostream>
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TEST_CASE_H
#include "third-party/yaktest/cTestCase.hh"
Modified: trunk/source/tools/CMakeLists.txt
===================================================================
--- trunk/source/tools/CMakeLists.txt 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/CMakeLists.txt 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,27 +12,27 @@
cFile.cc
cFixedBlock.cc
cGenesis.cc
- help_alias.cc
- help_manager.cc
- help_type.cc
- histogram.cc
- indexed_block_struct.cc
- init_file.cc
- int_sum.cc
- integrated_schedule.cc
- integrated_schedule_node.cc
- message_display.cc
- merit.cc
- prob_schedule.cc
- random.cc
- ref_block.cc
- running_average.cc
- scaled_block.cc
- schedule.cc
- string.cc
- string_iterator.cc
- string_list.cc
- string_util.cc
+ cHelpAlias.cc
+ cHelpManager.cc
+ cHelpType.cc
+ cHistogram.cc
+ cIndexedBlockStruct.cc
+ cInitFile.cc
+ cIntSum.cc
+ cIntegratedSchedule.cc
+ cIntegratedScheduleNode.cc
+ cMessageDisplay.cc
+ cMerit.cc
+ cProbSchedule.cc
+ cRandom.cc
+ cRefBlock.cc
+ cRunningAverage.cc
+ cScaledBlock.cc
+ cSchedule.cc
+ cString.cc
+ cStringIterator.cc
+ cStringList.cc
+ cStringUtil.cc
tools.cc
weighted_index.cc
Modified: trunk/source/tools/cBlockStruct.h
===================================================================
--- trunk/source/tools/cBlockStruct.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cBlockStruct.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -15,7 +15,7 @@
#include "cFixedCoords.h"
#endif
#ifndef SCALED_BLOCK_HH
-#include "scaled_block.hh"
+#include "cScaledBlock.h"
#endif
#ifndef UINT_HH
#include "uint.hh"
Modified: trunk/source/tools/cConstSchedule.cc
===================================================================
--- trunk/source/tools/cConstSchedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cConstSchedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -8,7 +8,7 @@
#include "cConstSchedule.h"
#include "cChangeList.h"
-#include "merit.hh"
+#include "cMerit.h"
////////////////////
Modified: trunk/source/tools/cConstSchedule.h
===================================================================
--- trunk/source/tools/cConstSchedule.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cConstSchedule.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define CONST_SCHEDULE_HH
#ifndef SCHEDULE_HH
-#include "schedule.hh"
+#include "cSchedule.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/tools/cDataEntry.h
===================================================================
--- trunk/source/tools/cDataEntry.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDataEntry.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cString; // aggregate
Modified: trunk/source/tools/cDataFile.cc
===================================================================
--- trunk/source/tools/cDataFile.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDataFile.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
extern "C" {
Modified: trunk/source/tools/cDataFile.h
===================================================================
--- trunk/source/tools/cDataFile.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDataFile.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -20,7 +20,7 @@
#include <fstream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/**
Modified: trunk/source/tools/cDataManager_Base.h
===================================================================
--- trunk/source/tools/cDataManager_Base.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDataManager_Base.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
class cDataFile;
Modified: trunk/source/tools/cDefaultMessageDisplay.cc
===================================================================
--- trunk/source/tools/cDefaultMessageDisplay.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDefaultMessageDisplay.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,7 +10,7 @@
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
using namespace std;
Modified: trunk/source/tools/cDefaultMessageDisplay.h
===================================================================
--- trunk/source/tools/cDefaultMessageDisplay.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cDefaultMessageDisplay.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <iostream>
#ifndef MESSAGE_DISPLAY_HH
-#include "message_display.hh"
+#include "cMessageDisplay.h"
#endif
/*
Modified: trunk/source/tools/cFile.cc
===================================================================
--- trunk/source/tools/cFile.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cFile.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -10,13 +10,13 @@
#endif
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#ifndef GENESIS_HH
#include "cGenesis.h"
#endif
#ifndef STRING_ITERATOR_HH
-#include "string_iterator.hh"
+#include "cStringIterator.h"
#endif
#ifndef TOOLS_HH
Modified: trunk/source/tools/cFile.h
===================================================================
--- trunk/source/tools/cFile.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cFile.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <fstream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/**
Modified: trunk/source/tools/cGenesis.h
===================================================================
--- trunk/source/tools/cGenesis.h 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cGenesis.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,10 +9,10 @@
#define GENESIS_HH
#ifndef INIT_FILE_HH
-#include "init_file.hh"
+#include "cInitFile.h"
#endif
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
/**
Copied: trunk/source/tools/cHelpAlias.cc (from rev 337, trunk/source/tools/help_alias.cc)
===================================================================
--- trunk/source/tools/help_alias.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpAlias.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,13 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cHelpAlias.h"
+#include "cHelpFullEntry.h"
+
+const cString & cHelpAlias::GetKeyword() const { return full_entry->GetKeyword(); }
+const cString & cHelpAlias::GetDesc() const { return full_entry->GetDesc(); }
+cHelpType * cHelpAlias::GetType() const { return full_entry->GetType(); }
Copied: trunk/source/tools/cHelpAlias.h (from rev 337, trunk/source/tools/help_alias.hh)
===================================================================
--- trunk/source/tools/help_alias.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpAlias.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,34 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_ALIAS_HH
+#define HELP_ALIAS_HH
+
+#ifndef HELP_ENTRY_HH
+#include "cHelpEntry.h"
+#endif
+
+class cHelpFullEntry;
+class cHelpType;
+class cString;
+
+class cHelpAlias : public cHelpEntry {
+private:
+ cHelpFullEntry * full_entry;
+public:
+ cHelpAlias(const cString & _alias, cHelpFullEntry * _full_entry)
+ : cHelpEntry(_alias), full_entry(_full_entry) { ; }
+ ~cHelpAlias() { ; }
+
+ const cString & GetKeyword() const;
+ const cString & GetDesc() const;
+ cHelpType * GetType() const;
+
+ bool IsAlias() const { return true; }
+};
+
+#endif
Copied: trunk/source/tools/cHelpEntry.h (from rev 337, trunk/source/tools/help_entry.hh)
===================================================================
--- trunk/source/tools/help_entry.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpEntry.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,40 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_ENTRY_HH
+#define HELP_ENTRY_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef STRING_UTIL_HH
+#include "cStringUtil.h"
+#endif
+
+class cHelpType;
+class cString; // aggregate
+class cStringUtil; // accessed
+
+class cHelpEntry {
+protected:
+ cString name;
+public:
+ cHelpEntry(const cString & _name) : name(_name) { ; }
+ virtual ~cHelpEntry() { ; }
+
+ const cString & GetName() const { return name; }
+ virtual const cString & GetKeyword() const = 0;
+ virtual const cString & GetDesc() const = 0;
+ virtual cHelpType * GetType() const = 0;
+
+ virtual bool IsAlias() const = 0;
+
+ cString GetHTMLFilename() const
+ { return cStringUtil::Stringf("help.%s.html", GetKeyword()()); }
+};
+
+#endif
Copied: trunk/source/tools/cHelpFullEntry.h (from rev 337, trunk/source/tools/help_full_entry.hh)
===================================================================
--- trunk/source/tools/help_full_entry.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpFullEntry.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_FULL_ENTRY_HH
+#define HELP_FULL_ENTRY_HH
+
+#ifndef HELP_ENTRY_HH
+#include "cHelpEntry.h"
+#endif
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+
+class cHelpType;
+class cString; // aggregate
+
+class cHelpFullEntry : public cHelpEntry {
+private:
+ cHelpType * type;
+ cString desc;
+public:
+ cHelpFullEntry(const cString & _name, cHelpType * _type, const cString _desc)
+ : cHelpEntry(_name), type(_type), desc(_desc) { ; }
+ cHelpFullEntry() : cHelpEntry(""), type(NULL) { ; }
+ ~cHelpFullEntry() { ; }
+
+ const cHelpFullEntry & operator=(const cHelpEntry & in_entry) {
+ name = in_entry.GetName();
+ type = in_entry.GetType();
+ desc = in_entry.GetDesc();
+ return *this;
+ }
+
+ const cString & GetKeyword() const { return name; }
+ const cString & GetDesc() const { return desc; }
+ cHelpType * GetType() const { return type; }
+
+ bool IsAlias() const { return false; }
+};
+
+#endif
Copied: trunk/source/tools/cHelpManager.cc (from rev 337, trunk/source/tools/help_manager.cc)
===================================================================
--- trunk/source/tools/help_manager.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpManager.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,102 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_MANAGER_HH
+#include "cHelpManager.h"
+#endif
+
+#ifndef HELP_TYPE_HH
+#include "cHelpType.h"
+#endif
+#ifndef INIT_FILE_HH
+#include "cInitFile.h"
+#endif
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef TLIST_HH
+#include "tList.hh"
+#endif
+
+#include <iostream>
+
+using namespace std;
+
+cHelpType * cHelpManager::GetType(const cString type_name)
+{
+ // See if we can find this type in the already existant list...
+ tListIterator<cHelpType> type_it(type_list);
+ while (type_it.Next() != NULL) {
+ if (type_it.Get()->GetName() == type_name) return type_it.Get();
+ }
+
+ // Otherwise, create it.
+ if (verbose == true) {
+ cout << " Creating help type \"" << type_name << "\"." << endl;
+ }
+ cHelpType * type = new cHelpType(type_name, this);
+ type_list.Push(type);
+ return type;
+}
+
+void cHelpManager::LoadFile(const cString & filename)
+{
+ cInitFile help_file(filename);
+ help_file.Load();
+ help_file.Compress();
+ help_file.Close();
+
+ cHelpType * type = NULL;
+ cString keyword;
+
+ for (int line_id = 0; line_id < help_file.GetNumLines(); line_id++) {
+ cString cur_string = help_file.GetLine(line_id);
+ cString command = cur_string.PopWord();
+ command.ToLower();
+
+ if (command == "type:") {
+ type = GetType(cur_string);
+ }
+ else if (command == "keyword:") {
+ keyword = cur_string;
+ }
+ else if (command == "desc:") {
+ if (type == NULL) type = GetType("None"); // Make sure we have a type.
+ if (keyword == "") {
+ if (verbose == true) {
+ cerr << " Help description set without keyword;"
+ << " setting keyword to \"None\"." << endl;
+ }
+ keyword = "None";
+ }
+ last_entry = type->AddEntry(keyword, cur_string);
+ }
+ else if (command == "alias:") {
+ if (last_entry == NULL) {
+ cerr << " Warning: Setting aliases \"" << cur_string
+ << "\" to incomplete entry!" << endl;
+ }
+ while (cur_string.GetSize() > 0) {
+ type->AddAlias(cur_string.PopWord(), last_entry);
+ }
+ }
+ else if (verbose == true) {
+ cerr << "Warning: Unknown command \"" << command
+ << "\" in file " << filename << endl;
+ }
+ }
+
+}
+
+
+void cHelpManager::PrintHTML()
+{
+ tListIterator<cHelpType> type_it(type_list);
+ while (type_it.Next() != NULL) {
+ type_it.Get()->PrintHTML();
+ }
+}
Copied: trunk/source/tools/cHelpManager.h (from rev 337, trunk/source/tools/help_manager.hh)
===================================================================
--- trunk/source/tools/help_manager.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpManager.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,59 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_MANAGER_HH
+#define HELP_MANAGER_HH
+
+#ifndef HELP_TYPE_HH
+#include "cHelpType.h"
+#endif
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef TLIST_HH
+#include "tList.hh"
+#endif
+
+class cHelpFullEntry;
+class cHelpType; // accessed
+class cString; // aggregate
+template <class T> class tList; // aggregate
+template <class T> class tListIterator; // aggregate
+
+class cHelpManager {
+private:
+ tList<cHelpType> type_list;
+ cHelpFullEntry * last_entry;
+ bool verbose; // Should we print messages to the screen?
+
+ // Private methods...
+ cHelpType * GetType(const cString type_name);
+private:
+ // disabled copy constructor.
+ cHelpManager(const cHelpManager &);
+public:
+ cHelpManager() : last_entry(NULL), verbose (false) { ; }
+ ~cHelpManager() { while (type_list.GetSize() > 0) delete type_list.Pop(); }
+
+ void LoadFile(const cString & filename);
+ void PrintHTML();
+ cHelpEntry * FindEntry(cString entry_name) {
+ entry_name.ToLower();
+
+ tListIterator<cHelpType> type_it(type_list);
+ while (type_it.Next() != NULL) {
+ cHelpEntry * found_entry = type_it.Get()->FindEntry(entry_name);
+ if (found_entry != NULL) return found_entry;
+ }
+ return NULL;
+ }
+
+ void SetVerbose(bool _verbose = true) { verbose = _verbose; }
+ bool GetVerbose() const { return verbose; }
+};
+
+#endif
Copied: trunk/source/tools/cHelpType.cc (from rev 337, trunk/source/tools/help_type.cc)
===================================================================
--- trunk/source/tools/help_type.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpType.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,126 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_TYPE_HH
+#include "cHelpType.h"
+#endif
+
+#ifndef HELP_ALIAS_HH
+#include "cHelpAlias.h"
+#endif
+#ifndef HELP_ENTRY_HH
+#include "cHelpEntry.h"
+#endif
+#ifndef HELP_FULL_ENTRY_HH
+#include "cHelpFullEntry.h"
+#endif
+#ifndef HELP_MANAGER_HH
+#include "cHelpManager.h"
+#endif
+
+#include <fstream>
+
+using namespace std;
+
+cHelpAlias * cHelpType::AddAlias(const cString & alias_name, cHelpFullEntry * entry) {
+ cHelpAlias * new_alias = new cHelpAlias(alias_name, entry);
+ entry_list.Push(new_alias);
+ return new_alias;
+}
+
+cHelpFullEntry * cHelpType::AddEntry(const cString & _name, const cString & _desc) {
+ cHelpFullEntry * new_entry = new cHelpFullEntry(_name, this, _desc);
+ entry_list.Push(new_entry);
+ num_entries++;
+ return new_entry;
+}
+
+cHelpEntry * cHelpType::FindEntry(const cString & entry_name) {
+ tListIterator<cHelpEntry> entry_it(entry_list);
+ while (entry_it.Next() != NULL) {
+ if (entry_it.Get()->GetName() == entry_name) {
+ return entry_it.Get(); // Found!
+ }
+ }
+ return NULL; // Not found...
+}
+
+cHelpType::~cHelpType() { while (entry_list.GetSize() > 0) delete entry_list.Pop(); }
+
+void cHelpType::PrintHTML()
+{
+ if (manager->GetVerbose()) cout << " Category: " << GetName() << endl;
+
+ cHelpEntry * cur_entry = NULL;
+ tListIterator<cHelpEntry> entry_it(entry_list);
+
+ while ( (cur_entry = entry_it.Next()) != NULL) {
+ // Only print non-alias entries...
+ if (cur_entry->IsAlias() == true) continue;
+
+ ofstream fp(cur_entry->GetHTMLFilename());
+
+ fp << "<html>" << endl
+ << "<title>" << GetName() << " : "
+ << cur_entry->GetName() << "</title>" << endl << endl
+ << "<h1>" << cur_entry->GetName() << "</h1>" << endl << endl;
+
+ cString out_desc( cur_entry->GetDesc() );
+ int pos = 0;
+ while ((pos = out_desc.Find('!', pos)) != -1) {
+ // Grab the word we need to replace
+ cString found_word(out_desc.GetWordAt(pos));
+ cString new_word;
+
+ // If we have a double '!' reduce it to a single one and continue...
+ if (found_word[1] == '!') {
+ out_desc.Replace("!!", "!", pos);
+ pos++;
+ }
+
+ // Otherwise, do a proper replacement...
+ else {
+ // Find the root keyword...
+ cString keyword(found_word);
+ keyword.ClipFront(1); // Clip off the '!' on the string.
+
+ // Clip end punctuation and save it if there is any.
+ char end_char = ' ';
+ const int last_pos = keyword.GetSize() - 1;
+ if (keyword.IsNumeric(last_pos) == false &&
+ keyword.IsLetter(last_pos) == false) {
+ end_char = keyword[keyword.GetSize() - 1];
+ keyword.ClipEnd(1);
+ }
+ // User can end a word in a '!' to preserve other punctuation...
+ if (end_char == '!') end_char = ' ';
+
+ // Determine what filename contains the new word...
+ cHelpEntry * found_entry = manager->FindEntry(keyword);
+ if (found_entry == NULL) {
+ if (manager->GetVerbose() == true) {
+ cerr << " Warning: unknown help keyword \""
+ << keyword << "\"." << endl;
+ }
+ new_word.Set("<a href=\"help.%s.html\">%s</a>%c",
+ keyword(), keyword(), end_char);
+ }
+ else {
+ new_word.Set("<a href=\"%s\">%s</a>%c",
+ found_entry->GetHTMLFilename()(), keyword(), end_char);
+ }
+
+ // Rebuild the description with the new word...
+ out_desc.Replace(found_word, new_word, pos);
+ pos += new_word.GetSize();
+ }
+ }
+
+ fp << out_desc << endl;
+ }
+}
+
Copied: trunk/source/tools/cHelpType.h (from rev 337, trunk/source/tools/help_type.hh)
===================================================================
--- trunk/source/tools/help_type.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHelpType.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,46 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HELP_TYPE_HH
+#define HELP_TYPE_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef TLIST_HH
+#include "tList.hh"
+#endif
+
+class cHelpAlias;
+class cHelpEntry;
+class cHelpFullEntry;
+class cHelpManager;
+class cString; // aggregate
+template <class T> class tList; // aggregate
+
+class cHelpType {
+private:
+ cString name;
+ tList<cHelpEntry> entry_list;
+ cHelpManager * manager;
+ int num_entries;
+private:
+ // disabled copy constructor.
+ cHelpType(const cHelpType &);
+public:
+ cHelpType(const cString & _name, cHelpManager * _manager)
+ : name(_name), manager(_manager), num_entries(0) { ; }
+ ~cHelpType();
+ cHelpFullEntry * AddEntry(const cString & _name, const cString & _desc);
+ cHelpAlias * AddAlias(const cString & alias_name, cHelpFullEntry * entry);
+ const cString & GetName() const { return name; }
+ cHelpEntry * FindEntry(const cString & entry_name);
+
+ void PrintHTML();
+};
+
+#endif
Copied: trunk/source/tools/cHistogram.cc (from rev 337, trunk/source/tools/histogram.cc)
===================================================================
--- trunk/source/tools/histogram.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cHistogram.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,88 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef HISTOGRAM_HH
+#include "cHistogram.h"
+#endif
+
+#ifndef FUNCTIONS_HH
+#include "functions.h"
+#endif
+
+extern "C" {
+#include <stdio.h>
+}
+
+#include <iostream>
+
+using namespace std;
+
+// cHistogram /////////////////////////////////////////////////////////////////
+
+cHistogram::cHistogram(int in_max, int in_min) {
+ max_bin = in_max;
+ min_bin = in_min;
+ entry_count = 0;
+ entry_total = 0;
+
+ int num_bins = max_bin - min_bin + 1;
+ bins = new int[num_bins];
+ for (int i = 0; i < num_bins; i++) bins[i] = 0;
+}
+
+void cHistogram::Resize(int new_max, int new_min)
+{
+#ifdef DEBUG
+ if (new_max < new_min) {
+ cerr << "Error: Trying to resize histogram to [" << new_min << "," << new_max << "]" << endl;
+ return;
+ }
+#endif
+
+ // Calculate new num bins.
+ int new_num_bins = new_max - new_min + 1;
+
+ // Setup new bins, copying over information...
+ int cur_bin = 0;
+ int overlap_min = Max(min_bin, new_min);
+ int overlap_max = Min(max_bin, new_max);
+
+ int * new_bins = new int[new_num_bins];
+ for (cur_bin = new_min; cur_bin < min_bin; cur_bin++)
+ new_bins[cur_bin - new_min] = 0;
+ for (cur_bin = max_bin; cur_bin <= new_max; cur_bin++)
+ new_bins[cur_bin - new_min] = 0;
+ for (cur_bin = overlap_min; cur_bin <= overlap_max; cur_bin++)
+ new_bins[cur_bin - new_min] = bins[cur_bin - min_bin];
+
+ // Re-count bins...
+ int new_count = 0;
+ int new_total = 0;
+ for (int i = 0; i < new_num_bins; i++) {
+ new_count += new_bins[i];
+ new_total += new_bins[i] * (i + new_min);
+ }
+ entry_count = new_count;
+ entry_total = new_total;
+
+ delete [] bins;
+ bins = new_bins;
+ max_bin = new_max;
+ min_bin = new_min;
+}
+
+void cHistogram::Print()
+{
+ FILE * fp = fopen("test.dat", "w");
+ fprintf(fp, "Min = %d, Max = %d, Count = %d, Total = %d, Ave = %f\n",
+ min_bin, max_bin, entry_count, entry_total, GetAverage());
+ for (int i = min_bin; i <= max_bin; i++) {
+ fprintf(fp, "%d : %d\n", i, bins[i - min_bin]);
+ }
+ fflush(fp);
+ fclose(fp);
+}
Copied: trunk/source/tools/cHistogram.h (from rev 337, trunk/source/tools/histogram.hh)
Copied: trunk/source/tools/cIndexedBlockStruct.cc (from rev 337, trunk/source/tools/indexed_block_struct.cc)
===================================================================
--- trunk/source/tools/indexed_block_struct.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIndexedBlockStruct.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,266 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INDEXED_BLOCK_STRUCT_HH
+#include "cIndexedBlockStruct.h"
+#endif
+
+#include <iostream>
+
+using namespace std;
+
+//////////////////////////
+// cIndexedBlockStruct
+//////////////////////////
+
+cIndexedBlockStruct::cIndexedBlockStruct(int in_num_scaled, int in_num_fixed,
+ int in_num_ref)
+{
+ num_fixed = in_num_fixed;
+ num_scaled = in_num_scaled;
+ num_ref = in_num_ref;
+ num_data = 0;
+
+ fixed_array = new cFixedBlock[num_fixed];
+ scaled_array = new cRefBlock[num_scaled];
+ ref_array = new int[num_ref];
+
+ int i;
+ for (i = 0; i < num_ref; i++) {
+ ref_array[i] = -1;
+ }
+
+ fixed_used(0, 0);
+ scaled_used = 0;
+
+ total_size = 0;
+ fixed_size = 0;
+}
+
+cIndexedBlockStruct::~cIndexedBlockStruct()
+{
+ delete [] scaled_array;
+ delete [] fixed_array;
+ delete [] ref_array;
+}
+
+int cIndexedBlockStruct::AddData(int in_ref, int in_size)
+{
+ // Only allow positive sized data, and only if there is room.
+ if (in_size <= 0 || scaled_used >= num_scaled) return -1;
+
+ // If this reference is already represented, combine them.
+ if (ref_array[in_ref] >= 0) {
+ in_size += scaled_array[ref_array[in_ref]].GetSize();
+ RemoveRef(in_ref);
+ }
+
+ scaled_array[scaled_used].SetRef(in_ref);
+ scaled_array[scaled_used].SetSize(in_size);
+ ref_array[in_ref] = scaled_used;
+
+ total_size += in_size;
+ num_data++;
+
+ return scaled_used++;
+}
+
+int cIndexedBlockStruct::AddDataTo(int in_ref, int in_index)
+{
+ if (ref_array[in_ref] < 0) num_data++;
+
+ scaled_array[in_index].SetRef(in_ref);
+ ref_array[in_ref] = in_index;
+
+ return scaled_array[in_index].GetSize();
+}
+
+void cIndexedBlockStruct::Clear()
+{
+ for (int i = 0; i < num_ref; i++) {
+ ref_array[i] = -1;
+ }
+
+ fixed_used(0,0);
+ scaled_used = 0;
+
+ total_size = 0;
+ num_data = 0;
+}
+
+int cIndexedBlockStruct::Process()
+{
+ if (!fixed_size) {
+ CalcFixedSize();
+ }
+
+ int cur_scaled = 0;
+ int cur_fixed = 0;
+ int size_left = scaled_array[0].GetSize();
+
+ // Set up the internal data for the first scaled block.
+
+ scaled_array[0].SetStart(0, 0);
+
+ // Move through the fixed blocks assigning each to the corresponding scaled
+ // block. This is done by keeping track of the current scaled block for
+ // a particular location, and keeping track the "size" until the next block.
+
+ for(cur_fixed = 0; cur_fixed < num_fixed; cur_fixed++) {
+ // Set the current fixed block to point to whatever scaled block we are
+ // currently in.
+
+ fixed_array[cur_fixed].SetStart(cur_scaled);
+
+ // If the current scaled block covers the entire fixed block, then just
+ // adjust the size_left and move on.
+
+ if (size_left > fixed_size) {
+ size_left -= fixed_size;
+ continue;
+ }
+
+ // Otherwise, start moving through the scaled blocks until the size can
+ // be covered.
+
+ while (size_left <= fixed_size) {
+ // move onto the next scaled block...
+ cur_scaled++;
+
+ // Check to see if we are finished...
+ if (cur_scaled == scaled_used) {
+ fixed_used(cur_fixed, size_left); // Store max coord
+ return cur_fixed + 1;
+ }
+
+ // Setup the next cRefBlock...
+
+ scaled_array[cur_scaled].SetStart(cur_fixed, size_left);
+ if (size_left == fixed_size) {
+ scaled_array[cur_scaled].SetStart(cur_fixed + 1, 0);
+ }
+
+ // Add the size of the new cRefBlock onto the size_left.
+
+ size_left += scaled_array[cur_scaled].GetSize();
+ }
+
+ // Move onto the next fixed block.
+ size_left -= fixed_size;
+ }
+
+ return -1;
+}
+
+int cIndexedBlockStruct::Update()
+{
+ // @CAO make sure a process has been done at some point in the past?
+
+ // If the data to NULL ratio is too low, have the update fail.
+ // @CAO make this configurable!
+
+ if (num_data * 2 + 2 < scaled_used) {
+ return -1;
+ }
+
+ // Start out where the last Process() finished.
+
+ int cur_scaled = fixed_array[fixed_used.GetBlockNum()].GetStart();
+ int cur_fixed = scaled_array[cur_scaled].GetStart().GetBlockNum();
+ int cur_offset = scaled_array[cur_scaled].GetStart().GetOffset();
+ int size_left = scaled_array[cur_scaled].GetSize();
+
+ // Re-adjust to make sure we are starting at the begining of a fixed block.
+
+ if (cur_offset) {
+ size_left += cur_offset - fixed_size;
+ cur_fixed++;
+ }
+
+ // Move through the fixed blocks assigning each to the corresponding scaled
+ // block. This is done by keeping track of the current scaled block for
+ // a particular location, and keeping track the "size" until the next block.
+
+ for(; cur_fixed < num_fixed; cur_fixed++) {
+ // Set the current fixed block to point to whatever scaled block we are
+ // currently in.
+
+ fixed_array[cur_fixed].SetStart(cur_scaled);
+
+ // If the current scaled block covers the entire fixed block, then just
+ // adjust the size_left and move on.
+
+ if (size_left > fixed_size) {
+ size_left -= fixed_size;
+ continue;
+ }
+
+ // Otherwise, start moving through the scaled blocks until the size can
+ // be covered.
+
+ while (size_left <= fixed_size) {
+ // move onto the next scaled block...
+ cur_scaled++;
+
+ // Check to see if we are finished...
+ if (cur_scaled == scaled_used) {
+ fixed_used(cur_fixed, size_left); // Store max coord
+ return cur_fixed + 1;
+ }
+
+ // Setup the next cScaledBlock...
+
+ scaled_array[cur_scaled].SetStart(cur_fixed, size_left);
+ if (size_left == fixed_size) {
+ scaled_array[cur_scaled].SetStart(cur_fixed + 1, 0);
+ }
+
+ // Add the size of the new cScaledBlock onto the size_left.
+
+ size_left += scaled_array[cur_scaled].GetSize();
+ }
+
+ // Move onto the next fixed block.
+ size_left -= fixed_size;
+ }
+
+ return -1;
+}
+
+int cIndexedBlockStruct::Compress()
+{
+ int scan_loc;
+ int write_loc = 0;
+
+ total_size = 0;
+ for (scan_loc = 0; scan_loc < scaled_used; scan_loc++) {
+ if (scaled_array[scan_loc].GetRef() >= 0) {
+ if (scan_loc != write_loc) {
+ scaled_array[write_loc] = scaled_array[scan_loc];
+ scaled_array[scan_loc].SetRef(-1);
+ scaled_array[scan_loc].SetSize(0);
+ ref_array[scaled_array[write_loc].GetRef()] = write_loc;
+ }
+ total_size += scaled_array[write_loc].GetSize();
+ write_loc++;
+ }
+ }
+
+ scaled_used = write_loc;
+
+ if (scaled_used != num_data)
+ cout << "Warning: after Compress() scaled_used = " << scaled_used << ", while num_data = " << num_data << endl;
+
+ return scaled_used;
+}
+
+void cIndexedBlockStruct::RemoveRef(int in_ref)
+{
+ if (ref_array[in_ref] >= 0) num_data--;
+ scaled_array[ref_array[in_ref]].SetRef(-1);
+ ref_array[in_ref] = -1;
+}
Copied: trunk/source/tools/cIndexedBlockStruct.h (from rev 337, trunk/source/tools/indexed_block_struct.hh)
===================================================================
--- trunk/source/tools/indexed_block_struct.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIndexedBlockStruct.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,147 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+// See block_struct_proto.hh for a good description of this structure.
+
+// This file is a variation of the cBlockStruct data structure. It uses
+// reference numbers (which it takes in and passed out) rather than void
+// pointers. Additionally, it has a third array in which index i contains
+// the location in the scaled array for reference number i, so that
+// reference numbers are not lost with compression. The structure must be
+// initialized with the maximum reference number which will be passed into
+// it (so as to create the third array of that size.
+
+#ifndef INDEXED_BLOCK_STRUCT_HH
+#define INDEXED_BLOCK_STRUCT_HH
+
+#ifndef FIXED_BLOCK_HH
+#include "cFixedBlock.h"
+#endif
+#ifndef FIXED_COORDS_HH
+#include "cFixedCoords.h"
+#endif
+#ifndef REF_BLOCK_HH
+#include "cRefBlock.h"
+#endif
+#ifndef UINT_HH
+#include "uint.hh"
+#endif
+
+class cFixedBlock; // accessed
+class cRefBlock; // accessed
+class cFixedCoords; // aggregate
+class cUInt; // aggregate
+
+class cIndexedBlockStruct {
+private:
+ cFixedBlock * fixed_array;
+ cRefBlock * scaled_array;
+ int * ref_array;
+
+ int num_fixed;
+ int num_scaled;
+ int num_ref;
+ int num_data;
+
+ cFixedCoords fixed_used;
+ int scaled_used;
+
+ cUInt total_size;
+ int fixed_size;
+public:
+ cIndexedBlockStruct(int in_num_scaled = 1, int in_num_fixed = 1,
+ int in_num_ref = 1);
+ ~cIndexedBlockStruct();
+
+ // The following functions add a single piece of data to the scaled array,
+ // but do not update the fixed array yet. In the first, the data and its
+ // size are entered, and an index into the scaled block array returned, or
+ // else -1 if the array is full. In the second, the data and the index
+ // into the array are entered, and the size at that location returned.
+ int AddData(int in_ref, int in_size);
+ int AddDataTo(int in_ref, int in_index);
+
+ // This function removes all of the data from the structure.
+ void Clear();
+
+ // This function takes the scaled array, and from it fully constructs the
+ // proper fixed array. Any information which was in the fixed array is
+ // completely erased and re-constructed. The number of cFixedBlock's used
+ // is returned, or -1 if it overflows.
+ int Process();
+
+ // The next function looks at data which has been taken in since the last
+ // time the fixed array was built or updated, and the new info at the end.
+ // The total number of cFixedBlock's used is returned, or -1 if it overflows.
+ int Update();
+
+ // This function takes the scaled array, and removes any elements from it
+ // which no longer point to data, and compresses everything to the begining.
+ // This should always be followed shortly by adding any new data, and then
+ // a Process(). The new number of cRefBlock's used is returned.
+ int Compress();
+
+ // Two functions to retrieve data from the structure.
+ inline int Find(cFixedCoords & search_coords) const;
+ inline int Find(int in_block, int in_offset) const;
+ inline int Find(cUInt in_position) const;
+
+ // A function to remove data from the structure...
+ void RemoveRef(int in_ref);
+
+ // Finally, internal variable control...
+ inline int GetFixedSize() const { return fixed_size; }
+ inline int GetBlocksUsed() const { return fixed_used.GetBlockNum() + 1; }
+ inline void SetFixedSize(int in_fs) {
+ fixed_size = in_fs;
+ }
+ inline void CalcFixedSize() {
+ if (num_data && total_size.AsInt()) {
+ fixed_size = (total_size / num_data).AsInt();
+ }
+ else fixed_size = 1;
+ }
+};
+
+inline int cIndexedBlockStruct::Find(cFixedCoords & search_coords) const
+{
+ // Make sure the find is within range.
+ if (search_coords >= fixed_used) {
+ return -1;
+ }
+
+ // Find the starting point in the scaled array for the search.
+ int scaled_loc = fixed_array[search_coords.GetBlockNum()].GetStart();
+ cFixedCoords cur_coords = scaled_array[scaled_loc].GetStart();
+
+ // Starting at the starting point, move through the array until the entry
+ // which covers this area is found.
+ cur_coords.Add(0, scaled_array[scaled_loc].GetSize(), fixed_size);
+
+ while (cur_coords <= search_coords) {
+ scaled_loc++;
+ cur_coords.Add(0, scaled_array[scaled_loc].GetSize(), fixed_size);
+ }
+
+ // Return the data in the found entry.
+ return scaled_array[scaled_loc].GetRef();
+}
+
+inline int cIndexedBlockStruct::Find(int in_block, int in_offset) const
+{
+ cFixedCoords search_coords(in_block, in_offset);
+ return Find(search_coords);
+}
+
+inline int cIndexedBlockStruct::Find(cUInt in_position) const
+{
+ cFixedCoords search_coords((in_position /= fixed_size).AsInt(),
+ (in_position %= fixed_size).AsInt());
+ return Find(search_coords);
+}
+
+#endif
Copied: trunk/source/tools/cInitFile.cc (from rev 337, trunk/source/tools/init_file.cc)
===================================================================
--- trunk/source/tools/init_file.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cInitFile.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,272 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INIT_FILE_HH
+#include "cInitFile.h"
+#endif
+
+#ifndef STRING_ITERATOR_HH
+#include "cStringIterator.h"
+#endif
+
+using namespace std;
+
+////////////////
+// cInitFile
+////////////////
+
+cInitFile::cInitFile() : filetype("unknown"), active_line(0)
+{
+}
+
+cInitFile::cInitFile(cString in_filename)
+ : cFile(in_filename)
+ , filetype("unknown")
+ , active_line(0)
+{
+}
+
+cInitFile::~cInitFile()
+{
+}
+
+void cInitFile::Load()
+{
+ if (!IsOpen()) return; // The file must be opened!
+ cStringList line_list; // Create a list to load all of the lines into.
+
+ cString buf;
+ ReadLine(buf);
+
+ // If this file doesn't work properly, return!
+ if ( Eof() && !buf.GetSize() ) return;
+
+ line_list.PushRear(buf);
+
+ ReadLine(buf);
+ while( !Eof() || buf.GetSize() ){
+ line_list.PushRear(buf);
+ ReadLine(buf);
+ }
+
+ // Copy all of the lines into the line array.
+ const int file_size = line_list.GetSize();
+ line_array.Resize(file_size);
+
+ for (int i = 0; i < file_size; i++) {
+ line_array[i].line = line_list.Pop();
+ line_array[i].line_num = i;
+ line_array[i].used = false;
+ }
+}
+
+void cInitFile::LoadStream(istream & in_stream)
+{
+ if (in_stream.good() == false) {
+ cerr << "Bad stream sent to cInitFile::LoadStream()" << endl;
+ return;
+ }
+
+ cStringList line_list; // Create a list to load all of the lines into.
+
+ char cur_line[MAX_STRING_LENGTH];
+ in_stream.getline(cur_line, MAX_STRING_LENGTH);
+
+ // If this file doesn't work properly, return.
+ if( !in_stream && !strlen(cur_line) ) return;
+
+ in_stream.getline(cur_line, MAX_STRING_LENGTH);
+ while ( in_stream ) {
+ line_list.PushRear(cur_line);
+ in_stream.getline(cur_line, MAX_STRING_LENGTH);
+ }
+
+ // Copy all of the lines into the line array.
+ const int file_size = line_list.GetSize();
+ line_array.Resize(file_size);
+
+ for (int i = 0; i < file_size; i++) {
+ line_array[i].line = line_list.Pop();
+ line_array[i].line_num = i;
+ line_array[i].used = false;
+ }
+}
+
+
+void cInitFile::Save(const cString & in_filename)
+{
+ cString save_filename(GetFilename());
+ if (in_filename != "") save_filename = in_filename;
+
+ ofstream fp_save(save_filename());
+
+ // Go through the lines saving them...
+ for (int i = 0; i < line_array.GetSize(); i++) {
+ fp_save << line_array[i].line << endl;
+ }
+
+ fp_save.close();
+}
+
+
+void cInitFile::ReadHeader()
+{
+ cString type_line = GetLine(0);
+ cString format_line = GetLine(1);
+
+ if (type_line.PopWord() == "#filetype") filetype = type_line.PopWord();
+ if (format_line.PopWord() == "#format") file_format.Load(format_line);
+}
+
+
+void cInitFile::Compress()
+{
+ // We're going to handle this compression in multiple passes to make it
+ // clean and easy.
+
+ const int num_lines = line_array.GetSize();
+
+ // PASS 1: Remove all comments -- everything after a '#' sign -- and
+ // compress all whitespace into a single space.
+ for (int i = 0; i < num_lines; i++) {
+ cString & cur_line = line_array[i].line;
+
+ // Remove all characters past a comment mark and reduce whitespace.
+ int comment_pos = cur_line.Find('#');
+ if (comment_pos >= 0) cur_line.Clip(comment_pos);
+ cur_line.CompressWhitespace();
+ }
+
+ // PASS 2: Merge each line ending with a continue marker '\' with the
+ // next line.
+
+ int prev_line_id = -1;
+ bool continued = false;
+ for (int i = 0; i < num_lines; i++) {
+ // If the current line is a continuation, append it to the previous line.
+ if (continued == true) {
+ line_array[prev_line_id].line += line_array[i].line;
+ line_array[i].line = "";
+ }
+ else prev_line_id = i;
+
+ // See if the prev_line is continued, and if it is, take care of it.
+ cString & prev_line = line_array[prev_line_id].line;
+ if (prev_line.GetSize() > 0 &&
+ prev_line[prev_line.GetSize() - 1] == '\\') {
+ prev_line.ClipEnd(1); // Remove continuation mark.
+ continued = true;
+ }
+ else continued = false;
+ }
+
+ // PASS 3: Remove now-empty lines.
+
+ int next_id = 0;
+ for (int i = 0; i < num_lines; i++) {
+ // If we should keep this line, compact it.
+ if (line_array[i].line.GetSize() > 0) {
+ if (next_id != i) line_array[next_id] = line_array[i];
+ next_id++;
+ }
+ }
+
+ // Clip any extra lines at the end of the array.
+
+ line_array.Resize(next_id);
+
+ // Move the active line back to the beginning to avoid confusion.
+ active_line = 0;
+}
+
+
+void cInitFile::AddLine(cString & in_string)
+{
+ extra_lines.Push(in_string);
+}
+
+cString cInitFile::GetLine(int line_num)
+{
+ if (line_num < 0 || line_num >= line_array.GetSize()) return "";
+ return line_array[line_num].line;
+}
+
+
+bool cInitFile::Find(cString & in_string, const cString & keyword,
+ int col) const
+{
+ bool found = false;
+
+ // Loop through all of the lines looking for this keyword. Start with
+ // the actual file...
+ for (int line_id = 0; line_id < line_array.GetSize(); line_id++) {
+ cString cur_string = line_array[line_id].line;
+
+ // If we found the keyword, return it and stop.
+ if (cur_string.GetWord(col) == keyword) {
+ line_array[line_id].used = true;
+ in_string = cur_string;
+ found = true;
+ }
+ }
+
+ // Next, look through any extra lines appended to the file.
+ cStringIterator list_it(extra_lines);
+ while ( list_it.AtEnd() == false ) {
+ list_it.Next();
+ cString cur_string = list_it.Get();
+
+ // If we found the keyword, return it and stop.
+ if (cur_string.GetWord(col) == keyword) {
+ in_string = cur_string;
+ found = true;
+ }
+ }
+
+ return found; // Not Found...
+}
+
+
+cString cInitFile::ReadString(const cString & name, cString def) const
+{
+ // See if we definately can't find the keyword.
+ if (name == "" || IsOpen() == false) return def;
+
+ // Search for the keyword.
+ cString cur_line;
+ if (Find(cur_line, name, 0) == false) {
+ if (verbose == true) {
+ cerr << "Warning: " << name << " not in \"" << GetFilename()
+ << "\", defaulting to: " << def <<endl;
+ }
+ return def;
+ }
+
+ // Pop off the keyword, and return the remainder of the line.
+ cur_line.PopWord();
+ return cur_line;
+}
+
+
+bool cInitFile::WarnUnused() const
+{
+ bool found = false;
+
+ for (int i = 0; i < line_array.GetSize(); i++) {
+ if (line_array[i].used == false) {
+ if (found == false) {
+ found = true;
+ cerr << "Warning: unknown lines in input file '" << filename << "':" << endl;
+ }
+ cerr << " " << line_array[i].line_num + 1 << ": " << line_array[i].line << endl;
+ }
+ }
+
+ if (found == true) cerr << endl;
+
+ return found;
+}
Copied: trunk/source/tools/cInitFile.h (from rev 337, trunk/source/tools/init_file.hh)
===================================================================
--- trunk/source/tools/init_file.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cInitFile.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,165 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INIT_FILE_HH
+#define INIT_FILE_HH
+
+#include <iostream>
+
+#ifndef FILE_HH
+#include "cFile.h"
+#endif
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef STRING_LIST_HH
+#include "cStringList.h"
+#endif
+#ifndef TARRAY_HH
+#include "tArray.hh"
+#endif
+
+/**
+ * A class to handle initialization files.
+ **/
+
+class cString; // aggregate
+class cStringList; // aggregate
+template <class T> class tArray; // aggregate
+
+class cInitFile : public cFile {
+private:
+ cInitFile(const cInitFile &);
+private:
+ struct sFileLineInfo {
+ cString line;
+ int line_num;
+ mutable bool used;
+ };
+
+ tArray<sFileLineInfo> line_array;
+ cStringList extra_lines;
+ cString filetype;
+ cStringList file_format;
+
+ int active_line;
+public:
+ /**
+ * The empty constructor constructs an object that is in a clean
+ * state. You can set the file to open with @ref cFile::Open() later on.
+ **/
+ cInitFile();
+
+ /**
+ * Opens the file with the given name.
+ *
+ * @param in_filename Name of the initialization file to open.
+ **/
+ cInitFile(cString in_filename);
+
+ ~cInitFile();
+
+ /**
+ * Loads the file into memory.
+ **/
+ void Load();
+
+ /**
+ * Loads a stream into memory rather than a file.
+ **/
+ void LoadStream(std::istream & in_steam);
+
+ void Save(const cString & in_filename = "");
+
+ /**
+ * Parse heading information about the contents of the file loaded into
+ * memory, if available.
+ **/
+ void ReadHeader();
+
+ /**
+ * Remove all comments and whitespace from a file loaded into memory.
+ * Comments are currently marked with the character '#'.
+ **/
+ void Compress();
+
+ /**
+ * Add a line to the beginning of the file in memory.
+ * This function is used by @ref cGenesis.
+ *
+ * @param in_string The string to be added.
+ **/
+ void AddLine(cString & in_string);
+
+ /**
+ * Get a line from the file in memory. If called without parameters,
+ * the first line of the file is returned.
+ *
+ * @param line_num The line count of the line to be returned
+ * (starting from 0).
+ **/
+ cString GetLine(int line_num=0);
+
+
+ /**
+ * Get the active line and advance to the next line.
+ **/
+ cString GetNextLine() { return GetLine(active_line++); }
+
+
+ /**
+ * Reset the active line to the beginning (or the point specified...
+ **/
+ void ResetLine(int new_pos=0) { active_line = new_pos; }
+
+ /**
+ * Returns the line number that is active.
+ **/
+ int GetLineNum() { return active_line; }
+
+ /**
+ * Checks whether any line contains a given keyword in the specified
+ * column. Stops when the first occurrence of the keyword is found.
+ *
+ * @return TRUE if keyword is found, FALSE otherwise.
+ * @param in_string A string variable that will contain the found line
+ * if search succeeds, and will have undefined contents otherwise.
+ * @param keyword The keyword to look for.
+ * @param col The column in which the keyword should be found.
+ **/
+ bool Find(cString & in_string, const cString & keyword, int col) const;
+
+ /**
+ * Reads an entry in the initialization file that has a given keyword
+ * in the first column. The keyword is not part of the returned string.
+ *
+ * @return The entry that has been found.
+ * @param name The keyword to look for (the name of the entry).
+ * @param def If the keyword is not found, def is returned. This allows
+ * one to set standard values that are used if the user does not override
+ * them.
+ **/
+ cString ReadString(const cString & name, cString def = "") const;
+
+ /**
+ * Looks over all lines loaded into the file, and warns if any of them
+ * have not been the targets of the Find() method. All methods that
+ * search the file for a keyword use find, so this can be used to locate
+ * keywords that are not understood by the program.
+ **/
+ bool WarnUnused() const;
+
+ /**
+ * Return the number of lines in memory.
+ **/
+ int GetNumLines() const { return line_array.GetSize(); }
+
+ const cString & GetFiletype() { return filetype; }
+ cStringList & GetFormat() { return file_format; }
+};
+
+#endif
Copied: trunk/source/tools/cIntSum.cc (from rev 337, trunk/source/tools/int_sum.cc)
===================================================================
--- trunk/source/tools/int_sum.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIntSum.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,14 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INT_SUM_HH
+#include "cIntSum.h"
+#endif
+
+// cIntSum ///////////////////////////////////////////////////////////////////
+
+const double cIntSum::INF_ERR = 0;
Copied: trunk/source/tools/cIntSum.h (from rev 337, trunk/source/tools/int_sum.hh)
Copied: trunk/source/tools/cIntegratedSchedule.cc (from rev 337, trunk/source/tools/integrated_schedule.cc)
===================================================================
--- trunk/source/tools/integrated_schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIntegratedSchedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,203 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cIntegratedSchedule.h"
+
+#include "cChangeList.h"
+#include "functions.h"
+#include "cIntegratedScheduleNode.h"
+#include "cMerit.h"
+
+#include <iostream>
+using namespace std;
+
+
+/////////////////////////
+// cIntegratedSchedule
+/////////////////////////
+
+cIntegratedSchedule::cIntegratedSchedule(int _item_count)
+ : cSchedule(_item_count)
+{
+ num_active_nodes = 0;
+
+ // Create the merit_chart; they should all init to default value.
+ merit_chart = new cMerit[item_count];
+ for (int i = 0; i < item_count; i++) {
+ merit_chart[i] = 0;
+ }
+}
+
+cIntegratedSchedule::~cIntegratedSchedule()
+{
+ for (int i = 0; i < node_array.GetSize(); i++) {
+ if (node_array[i] != NULL) delete node_array[i];
+ }
+ delete [] merit_chart;
+}
+
+bool cIntegratedSchedule::OK()
+{
+ // Test that we have an acurate count of the number of active nodes.
+
+ int test_active_nodes = 0;
+ for (int i = 0; i < node_array.GetSize(); i++) {
+ if (node_array[i]) test_active_nodes++;
+ }
+
+ assert(test_active_nodes == num_active_nodes); // active_node count mismatch.
+
+ // Test each node to make sure it is OK.
+
+ for (int i = 0; i < node_array.GetSize(); i++) {
+ if (node_array[i] != NULL) node_array[i]->OK();
+ }
+
+ return true;
+}
+
+
+void cIntegratedSchedule::Adjust(int item_id, const cMerit & new_merit)
+{
+ if (cChangeList *change_list = GetChangeList()) {
+ change_list->MarkChange(item_id);
+ }
+ // Grab the old_merit, the new merit, and compare them.
+ const cMerit old_merit = merit_chart[item_id];
+
+ // If the merit is still the same, we're done here.
+ if (old_merit == new_merit) return;
+
+ // Save the new merit to the merit_chart.
+ merit_chart[item_id] = new_merit;
+
+ // Re-adjust the lists.
+ int merit_magnitude = Max( old_merit.GetNumBits(), new_merit.GetNumBits() );
+ for (int i = 0; i < merit_magnitude; i++) {
+ bool old_bit = old_merit.GetBit(i);
+ bool new_bit = new_merit.GetBit(i);
+
+ if (old_bit && !new_bit) {
+ // Remove the item from this node...
+ node_array[i]->Remove(item_id);
+ if (node_array[i]->GetSize() == 0) RemoveNode(i);
+ }
+
+ if (!old_bit && new_bit) {
+ // Add the item from this node...
+ if (i >= node_array.GetSize() || !node_array[i]) InsertNode(i);
+ node_array[i]->Insert(item_id);
+ }
+ }
+}
+
+
+int cIntegratedSchedule::GetNextID()
+{
+ assert(node_array.GetSize() > 0); // Running scheduler w/ no entries!
+
+ const int last_id = node_array.GetSize() - 1;
+
+ // Make sure there are organisms in the scheduler!
+ if (node_array[last_id] == NULL) return -1;
+
+ int next_id = -1;
+ while (next_id < 0) {
+ next_id = node_array[last_id]->GetNextID();
+ }
+
+ return next_id;
+}
+
+double cIntegratedSchedule::GetStatus(int id)
+{
+ return merit_chart[id].GetDouble();
+}
+
+
+///////// --- private //////////
+
+void cIntegratedSchedule::InsertNode(int node_id)
+{
+ // Test if trying to create node that already exists.
+ assert(node_id >= node_array.GetSize() || node_array[node_id] == NULL);
+
+ cIntegratedScheduleNode * new_node =
+ new cIntegratedScheduleNode(item_count, node_id);
+
+ if (node_id >= node_array.GetSize()) ResizeNodes(node_id);
+
+ node_array[node_id] = new_node;
+
+ // Find the node to mark as the 'prev'.
+ for (int prev_id = node_id + 1; prev_id < node_array.GetSize(); prev_id++) {
+ cIntegratedScheduleNode * prev_node = node_array[prev_id];
+ if (prev_node) {
+ new_node->SetPrev(prev_node);
+ prev_node->SetNext(new_node);
+ prev_node->SetProcessSize(1 << (prev_id - node_id - 1));
+ break;
+ }
+ }
+
+ // And find the node to mark as the 'next'.
+ for (int next_id = node_id - 1; next_id >= 0; next_id--) {
+ cIntegratedScheduleNode * next_node = node_array[next_id];
+ if (next_node) {
+ new_node->SetNext(next_node);
+ next_node->SetPrev(new_node);
+ new_node->SetProcessSize(1 << (node_id - next_id - 1));
+ break;
+ }
+ }
+
+ num_active_nodes++;
+}
+
+void cIntegratedSchedule::RemoveNode(int node_id)
+{
+ assert(node_array[node_id] != NULL); // Trying to remove non-existant node.
+
+ cIntegratedScheduleNode * old_node = node_array[node_id];
+ cIntegratedScheduleNode * next_node = old_node->GetNext();
+ cIntegratedScheduleNode * prev_node = old_node->GetPrev();
+ node_array[node_id] = NULL;
+
+ if (next_node) next_node->SetPrev(prev_node);
+ if (prev_node) {
+ prev_node->SetNext(next_node);
+ prev_node->SetProcessSize(old_node->GetProcessSize() *
+ prev_node->GetProcessSize() * 2);
+ }
+
+ if (node_id == node_array.GetSize() - 1) {
+ if (!old_node->GetNext()) ResizeNodes(0);
+ else ResizeNodes(old_node->GetNext()->GetID());
+ }
+
+ delete old_node;
+
+ num_active_nodes--;
+}
+
+void cIntegratedSchedule::ResizeNodes(int new_max)
+{
+ int old_size = node_array.GetSize();
+ int new_size = new_max + 1; // 0 to new_max...
+
+ // Clean up tail portions of the array being cut off.
+ for (int i = new_size; i < old_size; i++) {
+ if (node_array[i]) delete node_array[i];
+ }
+
+ node_array.Resize(new_size);
+
+ // Mark as NULL any new cells added to the array.
+ for (int i = old_size; i < new_size; i++) {
+ node_array[i] = NULL;
+ }
+}
Copied: trunk/source/tools/cIntegratedSchedule.h (from rev 337, trunk/source/tools/integrated_schedule.hh)
===================================================================
--- trunk/source/tools/integrated_schedule.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIntegratedSchedule.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,53 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INTEGRATED_SCHEDULE_HH
+#define INTEGRATED_SCHEDULE_HH
+
+#ifndef SCHEDULE_HH
+#include "cSchedule.h"
+#endif
+#ifndef TARRAY_HH
+#include "tArray.hh"
+#endif
+
+/**
+ * The cIntegratedSchedule method relies on breaking up all merits into
+ * sums of powers of 2 (i.e. using the binary representation of the merit).
+ * All items with merits in the highest power of two will get the most
+ * time, and subsequent merit components will have time divided,
+ * continuing recursively. The simplest way of doing this while maximizing
+ * evenness of distribution of time slices is to simply alternate executing
+ * the best, and everything else (where in everything else we again alternate
+ * with the best of this sub-list recursively).
+ **/
+
+class cIntegratedScheduleNode;
+class cMerit;
+template <class T> class tArray; // aggregate
+
+class cIntegratedSchedule : public cSchedule {
+private:
+ tArray<cIntegratedScheduleNode *> node_array;
+ int num_active_nodes;
+ cMerit * merit_chart;
+
+ void InsertNode(int node_id);
+ void RemoveNode(int node_id);
+ void ResizeNodes(int new_size);
+public:
+ cIntegratedSchedule(int _item_count);
+ ~cIntegratedSchedule();
+
+ void Adjust(int item_id, const cMerit & new_merit);
+ int GetNextID();
+ double GetStatus(int id);
+
+ bool OK();
+};
+
+#endif
Copied: trunk/source/tools/cIntegratedScheduleNode.cc (from rev 337, trunk/source/tools/integrated_schedule_node.cc)
===================================================================
--- trunk/source/tools/integrated_schedule_node.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cIntegratedScheduleNode.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,175 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef INTEGRATED_SCHEDULE_NODE_HH
+#include "cIntegratedScheduleNode.h"
+#endif
+
+/////////////////////////////
+// cIntegratedScheduleNode
+/////////////////////////////
+
+cIntegratedScheduleNode::cIntegratedScheduleNode(int _item_count, int in_id)
+ : active_array(_item_count)
+{
+ // Store the input variables.
+
+ node_id = in_id;
+
+ // Initialize the remaining variables.
+
+ for (int i = 0; i < active_array.GetSize(); i++) {
+ active_array[i] = 0;
+ }
+ first_entry = -1;
+ active_entry = -1;
+ size = 0;
+ process_size = 1;
+ process_count = 0;
+ execute = true;
+ next = NULL;
+ prev = NULL;
+}
+
+cIntegratedScheduleNode::~cIntegratedScheduleNode()
+{
+}
+
+
+bool cIntegratedScheduleNode::OK()
+{
+ bool result = true;
+
+ // Make sure the active_array is setup correctly.
+
+ int size_check = 0;
+ int next_check = first_entry;
+ for (int i = 0; i < active_array.GetSize(); i++) {
+ if (active_array[i] != 0) {
+ size_check++;
+ assert(next_check == i); // Node entries do no match!
+ next_check = active_array[i];
+ }
+ }
+ assert(next_check == -1); // Node array not properly terminated.
+
+ // Make sure the sizes line up...
+ assert(size == size_check); // size and active node count mismatch.
+
+ return result;
+}
+
+void cIntegratedScheduleNode::Insert(int item_id)
+{
+ assert(item_id >= 0 && item_id < active_array.GetSize()); // Illegal ID
+
+ // If this item is already active in this node, ignore this call...
+ if (active_array[item_id] != 0) return;
+
+ // See if we're dealing with a new first_entry...
+ if (first_entry == -1 || item_id < first_entry) {
+ active_array[item_id] = first_entry;
+ first_entry = item_id;
+ }
+ else {
+ // Otherwise find the predecessor to this item in the list...
+ int prev_item;
+ for (prev_item = item_id - 1; prev_item >= 0; prev_item--) {
+ if (active_array[prev_item] != 0) break;
+ }
+ assert(prev_item >= 0); // prev_item is first, but not identified.
+
+ // Make the predecessor point to it, and have it point to the CPU that
+ // the old predecessor pointed to.
+ active_array[item_id] = active_array[prev_item];
+ active_array[prev_item] = item_id;
+ }
+
+ size++;
+}
+
+void cIntegratedScheduleNode::Remove(int item_id)
+{
+ assert(item_id >= 0 && item_id < active_array.GetSize()); // Illegal ID
+
+ // If this item is already inactive, ignore this call...
+ if (active_array[item_id] == 0) return;
+
+ // If this is the first_entry, adjust it!
+ if (first_entry == item_id) {
+ first_entry = active_array[item_id];
+ }
+ else {
+ // Find the predecessor to this item in the list...
+ int prev_item;
+ for (prev_item = item_id - 1; prev_item >= 0; prev_item--) {
+ if (active_array[prev_item] != 0) break;
+ }
+ assert(prev_item >= 0); // prev_item is first, but not identified.
+
+ // Make the predecessor point to the item removed used to point to.
+ active_array[prev_item] = active_array[item_id];
+ }
+
+ active_array[item_id] = 0;
+ size--;
+}
+
+
+// Execute everything on list, and then shift to calling the next node.
+// Wait for the next node to return a -1 before shifting back to this one.
+
+int cIntegratedScheduleNode::GetNextID()
+{
+ // Alternate between this node's Process and the next's.
+ if (execute == false) {
+ // If there is a next node, we may be working on it...
+ int next_id = -1;
+ if (next != NULL) next_id = next->GetNextID();
+
+ // If next_id is a -1, either we don't have a next node, or else it
+ // is finished with its execution.
+
+ if (next_id == -1) {
+ execute = true;
+ process_count = 0;
+ active_entry = -1;
+ }
+
+ return next_id;
+ }
+
+ // Find the next active_entry...
+
+ // If we were at the end of the list, start over...
+ if (active_entry == -1) active_entry = first_entry;
+
+ // If this entry no longer exists, hunt for the next active entry manually...
+ else if (active_array[active_entry] == 0) {
+ while (active_entry < active_array.GetSize() &&
+ active_array[active_entry] == 0) {
+ active_entry++;
+ }
+ if (active_entry == active_array.GetSize()) active_entry = -1;
+ }
+
+ // Otherwise, if the entry does exist, we can just look the next one up.
+ else active_entry = active_array[active_entry];
+
+
+ // If we have now hit the end of this list, move on to the next node.
+
+ if (active_entry == -1) {
+ process_count++;
+ if (process_count >= process_size) execute = false;
+ }
+
+// cout << "Running " << active_entry << " from node " << node_id
+// << " (size = " << size << ", first = " << first_entry << ")" << endl;
+
+ return active_entry;
+}
Copied: trunk/source/tools/cIntegratedScheduleNode.h (from rev 337, trunk/source/tools/integrated_schedule_node.hh)
Copied: trunk/source/tools/cMerit.cc (from rev 337, trunk/source/tools/merit.cc)
===================================================================
--- trunk/source/tools/merit.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cMerit.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,90 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2001 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cMerit.h"
+
+
+using namespace std;
+
+
+void cMerit::UpdateValue(double in_value){
+ const int max_bits = sizeof(unsigned int)*8;
+ static double mult[max_bits];
+ static bool mult_initilalized = false;
+
+ // Do not allow negative merits.
+ if (in_value < 0.0) in_value = 0.0;
+
+ // Initilize multipliers only once
+ if( mult_initilalized == false ){
+ //cout<<"initializing multipliers"<<endl;
+ mult_initilalized = true;
+ for( int i=0; i<max_bits; ++i ){
+ mult[i] = pow((double)2,i);
+ //cout<<" mult["<<i<<"] = "<<mult[i]<<endl;
+ }
+ }
+
+
+ value = in_value;
+
+ double mant = frexp (value , &bits);
+
+ //cout<<value<<" = "<<mant<<" * 2 ^ "<<bits<<endl;
+
+ if( bits > max_bits ){
+ offset = bits - max_bits;
+ }else{
+ offset = 0;
+ }
+
+ base = (unsigned int) (mant * mult[bits-offset-1] * 2 );
+
+ //cout<<value<<" = "<<base<<" ["<<bits<<" bits] "<<" * 2 ^ "<<offset;
+ //cout<<" = "<<(base * pow((double)2,offset))<<endl;
+}
+
+
+ostream & cMerit::BinaryPrint(ostream & os) const {
+ for( int i=GetNumBits()-1; i>=0; --i ){
+ os<<GetBit(i);
+ }
+ return os;
+}
+
+
+bool cMerit::OK() const {
+ double test_value = (double)base * pow((double)2,(int)offset);
+ int test_bits = (int)(log(value)/log((double)2)) + 1;
+ if( base == 0 ) test_bits = 0;
+
+ // Uncomment block for debugging output and assertion of OK
+ /*
+ cout<<"cMerit Ok? ";
+ cout<<base<<" * 2^"<<offset<<" = "<<test_value<<" ~= "<<value<<endl;
+ cout<<"\tnum_bits="<<GetNumBits()<<" ?= "<<test_bits<<endl;
+ BinaryPrint(cout)<<endl;
+
+ */
+ assert ( test_bits == bits &&
+ ( test_value <= value * (1 + 1/UINT_MAX) ||
+ test_value >= value / (1 + 1/UINT_MAX) ) );
+
+ return ( test_bits == bits &&
+ ( test_value <= value * (1 + 1/UINT_MAX) ||
+ test_value >= value / (1 + 1/UINT_MAX) ) );
+}
+
+
+
+
+ostream & operator<<(ostream & os, const cMerit & merit){
+ os<<merit.GetDouble();
+ return os;
+}
+
+
Copied: trunk/source/tools/cMerit.h (from rev 337, trunk/source/tools/merit.hh)
Copied: trunk/source/tools/cMessageClass.h (from rev 337, trunk/source/tools/message_class.hh)
Copied: trunk/source/tools/cMessageClosure.h (from rev 337, trunk/source/tools/message_closure.hh)
===================================================================
--- trunk/source/tools/message_closure.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cMessageClosure.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,131 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef MESSAGE_CLOSURE_HH
+#define MESSAGE_CLOSURE_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+
+class cMessageType;
+class cString; // aggregate
+class QString;
+
+class cMessageClosure{
+private:
+ cMessageType &_type;
+ const char *_function;
+ const char *_file;
+ int _line;
+ int _error;
+ int _op_count;
+ cString _msg;
+public:
+ cMessageClosure(
+ cMessageType &type,
+ const char *function_name,
+ const char *file_name,
+ int line_number
+ );
+ ~cMessageClosure(void);
+public:
+ /*
+ operator<< and operator() definitions for cMessageClosure.
+
+ Any kind of input can be placed behind the operator<<, really, but try
+ to not (further) overcrowd the class...
+
+ The operator is meant to convert its input into a string for display.
+ If for example you implement
+ cMessageClosure &operator<<(const myClass &instance);
+ then you can write a message thus:
+ DemoDebug << "this is a myClass instance: " << my_instance;
+ with the result:
+ "Debug [Demo] this is a myClass instance: stuff in my_instance."
+ */
+ cMessageClosure &operator<<(char c);
+ cMessageClosure &operator<<(unsigned char c);
+ cMessageClosure &operator<<(int i);
+ cMessageClosure &operator<<(unsigned int i);
+ cMessageClosure &operator<<(long i);
+ cMessageClosure &operator<<(unsigned long i);
+ cMessageClosure &operator<<(float f);
+ cMessageClosure &operator<<(double f);
+ cMessageClosure &operator<<(const void *p);
+ cMessageClosure &operator<<(const char *s);
+ cMessageClosure &operator<<(const QString &s);
+ /*
+ QString support is implemented outside of core of avida, in qt gui, so
+ that QString can remain undefined in gui-less builds. -- kgn
+ */
+
+ cMessageClosure &operator()(char c){ return operator<<(c); }
+ cMessageClosure &operator()(unsigned char c){ return operator<<(c); }
+ cMessageClosure &operator()(int i){ return operator<<(i); }
+ cMessageClosure &operator()(unsigned int i){ return operator<<(i); }
+ cMessageClosure &operator()(long i){ return operator<<(i); }
+ cMessageClosure &operator()(unsigned long i){ return operator<<(i); }
+ cMessageClosure &operator()(float f){ return operator<<(f); }
+ cMessageClosure &operator()(double f){ return operator<<(f); }
+ cMessageClosure &operator()(const void *p){ return operator<<(p); }
+ cMessageClosure &operator()(const char *s){ return operator<<(s); }
+ cMessageClosure &operator()(const QString &s){ return operator<<(s); }
+
+ /*
+ cMessageClosure::va():
+
+ Support for cString-based operator<< and operator() definitions in
+ cMessageClosure. Variable argument lists are formatted and printed, a
+ la printf, into a temporary buffer; the contents of this buffer are
+ then appended to the cString _msg.
+ */
+ cMessageClosure &va(const char *fmt, ...);
+private:
+ void prefix(void);
+};
+
+/*
+you probably don't need to change these macros...
+*/
+
+// window compatibility
+#ifdef WIN32
+# ifndef __PRETTY_FUNCTION__
+# define __PRETTY_FUNCTION__ "<unknown on win32>"
+# endif
+#endif
+
+#define _MSG_CLOSURE_FL(x)\
+ cMessageClosure(\
+ x,\
+ __PRETTY_FUNCTION__,\
+ __FILE__,\
+ __LINE__\
+ )
+
+#define _INFO_MSG(type)\
+ if (Info_ ## type ## _Msg.m_is_active)\
+ _MSG_CLOSURE_FL(Info_ ## type ## _Msg)
+
+#define _DEBUG_MSG(type)\
+ if (Debug_ ## type ## _Msg.m_is_active)\
+ _MSG_CLOSURE_FL(Debug_ ## type ## _Msg)
+
+#define _ERROR_MSG(type)\
+ if (Error_ ## type ## _Msg.m_is_active)\
+ _MSG_CLOSURE_FL(Error_ ## type ## _Msg)
+
+#define _FATAL_MSG(type)\
+ if (Fatal_ ## type ## _Msg.m_is_active)\
+ _MSG_CLOSURE_FL(Fatal_ ## type ## _Msg)
+
+#define _PLAIN_MSG(type)\
+ if (type ## _Msg.m_is_active)\
+ _MSG_CLOSURE_FL(type ## _Msg)
+
+#endif
Copied: trunk/source/tools/cMessageDisplay.cc (from rev 337, trunk/source/tools/message_display.cc)
===================================================================
--- trunk/source/tools/message_display.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cMessageDisplay.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,352 @@
+
+#ifndef _LIMITS_H___
+#include <limits.h>
+#endif
+#ifndef _STDIO_H_
+#include <stdio.h>
+#endif
+#ifndef _STDARG_H
+#include <stdarg.h>
+#endif
+
+#ifndef TRIO_TRIO_H
+#include "../third-party/trio/trio.h"
+#endif
+
+#ifndef _CPP_IOSTREAM
+#include <iostream>
+#endif
+
+#ifndef MESSAGE_DISPLAY_HDRS_HH
+#include "cMessageDisplay_headers.h"
+#endif
+
+
+using namespace std;
+
+
+/*
+pointers to the cMessageDisplay instantiations actually in use.
+each of the message classes gets a handle to one of the cMessageDisplay
+instantiations, so that by using the manipulator functions
+ void setStandardOutDisplay(cMessageDisplay &out)
+and
+ void setStandardErrDisplay(cMessageDisplay &err),
+the output and error messages can be redirected from, say, the console
+to a graphical window and back again (if you want).
+*/
+static cMessageDisplay *s_info_display;
+static cMessageDisplay *s_debug_display;
+static cMessageDisplay *s_error_display;
+static cMessageDisplay *s_fatal_display;
+static cMessageDisplay *s_noprefix_display;
+
+
+
+void setInfoDisplay(cMessageDisplay &info){
+ cout << "<setInfoDisplay>" << endl;
+ s_info_display = &info;
+ cout << "<setInfoDisplay> done." << endl;
+}
+void setDebugDisplay(cMessageDisplay &debug){
+ cout << "<setDebugDisplay>" << endl;
+ s_debug_display = &debug;
+ cout << "<setDebugDisplay> done." << endl;
+}
+void setErrorDisplay(cMessageDisplay &error){
+ cout << "<setErrorDisplay>" << endl;
+ s_error_display = &error;
+ cout << "<setErrorDisplay> done." << endl;
+}
+void setFatalDisplay(cMessageDisplay &fatal){
+ cout << "<setFatalDisplay>" << endl;
+ s_fatal_display = &fatal;
+ cout << "<setFatalDisplay> done." << endl;
+}
+void setNoPrefixDisplay(cMessageDisplay &noprefix){
+ cout << "<setNoPrefixDisplay>" << endl;
+ s_noprefix_display = &noprefix;
+ cout << "<setNoPrefixDisplay> done." << endl;
+}
+
+
+/*
+These booleans determine whether to print the function, file, and line
+number containing the message call. The booleans are reset according to
+the contents of the environment variable "DEBUG_MESSAGING", which should
+be a comma-delimited list containing any of the three words
+ "chatter,where,function".
+
+Message types in the classes MCFatal and MCNoPrefix are always
+displayed; the remaining messages will only be displayed if
+DEBUG_MESSAGING contains "chatter".
+
+The line number and file containing the message call are printed if
+DEBUG_MESSAGING contains "where".
+
+The function containing the message call is printed only if
+DEBUG_MESSAGING contains "function".
+
+Note that message types of class "MCNoPrefix" will not print the
+function, file, or line number.
+*/
+static bool show_function = false;
+static bool show_where = false;
+static bool be_quiet = true;
+
+
+/*
+Definition of the five message classes.
+*/
+cMessageClass MCInfo("Info:", &s_info_display, false, false, false);
+cMessageClass MCDebug("Debug:", &s_debug_display, false, false, false);
+cMessageClass MCError("Error:", &s_error_display, false, true, false);
+cMessageClass MCFatal("Fatal:", &s_fatal_display, true, true, false);
+cMessageClass MCNoPrefix("NoPrefix:", &s_noprefix_display, false, true, true);
+
+/*
+cMessageClass constructor.
+*/
+cMessageClass::cMessageClass(
+ const char *class_name,
+ cMessageDisplay **msg_display,
+ bool is_fatal,
+ bool is_prefix,
+ bool no_prefix
+):m_class_name(class_name),
+ m_msg_display(msg_display),
+ m_is_fatal(is_fatal),
+ m_is_prefix(is_prefix),
+ m_no_prefix(no_prefix),
+ _configured(false)
+{
+ *msg_display = 0;
+}
+
+
+/*
+This configures the behavior of each cMessageClass and cMessageType
+according the contents of the environment variable DEBUG_MESSAGING.
+this is affected by setting the static booleans "show_function,
+show_where, be_quiet".
+
+These booleans determine whether to print the function, file, and line
+number containing the message call. the booleans are reset according to
+the contents of the environment variable "DEBUG_MESSAGING", which should
+be a comma-delimited list containing any of the three words
+ "chatter,where,function".
+
+Message types in the classes MCFatal and MCNoPrefix are always
+displayed; the remaining messages will only be displayed if
+DEBUG_MESSAGING contains "chatter".
+
+The line number and file containing the message call are printed if
+DEBUG_MESSAGING contains "where".
+
+The function containing the message call is printed only if
+DEBUG_MESSAGING contains "function".
+
+Message types of class "MCNoPrefix" will not print the function, file,
+or line number.
+*/
+void
+cMessageClass::configure(cMessageType *message_type){
+ if(!_configured){
+ _configured = true;
+ char *denv = getenv("DEBUG_MESSAGING");
+ if(denv){
+ denv = strdup(denv);
+ char *tok = strtok(denv, ",");
+ while(tok){
+ if(strcmp(tok,"where") == 0){
+ show_where = true;
+ } else if (strcmp(tok,"function") == 0){
+ show_function = true;
+ } else if (strcmp(tok,"chatter") == 0){
+ be_quiet = false;
+ }
+ tok = strtok(NULL,",");
+ }
+ free(denv);
+ }
+ }
+ if( (this == &MCInfo)
+ ||(this == &MCDebug)
+ ||(this == &MCError)
+ ) message_type->m_is_active = !be_quiet;
+}
+
+
+/*
+cMessageType constructor.
+*/
+cMessageType::cMessageType(
+ const char *type_name,
+ cMessageClass &message_class
+):m_type_name(type_name),
+ m_message_class(message_class),
+ m_is_active(true)
+{ message_class.configure(this); }
+
+
+/*
+cMessageClosure constructor and destructor.
+*/
+cMessageClosure::cMessageClosure(
+ cMessageType &type,
+ const char *function_name,
+ const char *file_name,
+ int line_number
+):_type(type),
+ _function(function_name),
+ _file(file_name),
+ _line(line_number),
+ _error(INT_MAX),
+ _op_count(0)
+{}
+
+cMessageClosure::~cMessageClosure(void){
+ if(!(*_type.m_message_class.m_msg_display)){
+ cerr << "<~cMessageClosure> Warning:" << endl;
+ cerr << "<~cMessageClosure> message display classes not fully initialized;" << endl;
+ cerr << "<~cMessageClosure> directing messages of class \""
+ << cString(_type.m_type_name)
+ << "\" to its default output device..." << endl;
+ if(&_type.m_message_class == &MCInfo) {
+ (*_type.m_message_class.m_msg_display) = &s_info_msg_cout;
+ } else if(&_type.m_message_class == &MCDebug) {
+ (*_type.m_message_class.m_msg_display) = &s_debug_msg_cerr;
+ } else if(&_type.m_message_class == &MCError) {
+ (*_type.m_message_class.m_msg_display) = &s_error_msg_cerr;
+ } else if(&_type.m_message_class == &MCFatal) {
+ (*_type.m_message_class.m_msg_display) = &s_fatal_msg_cerr;
+ } else if(&_type.m_message_class == &MCNoPrefix) {
+ (*_type.m_message_class.m_msg_display) = &s_noprefix_msg_cout;
+ } else {
+ (*_type.m_message_class.m_msg_display) = &s_noprefix_msg_cout;
+ }
+ }
+ (*_type.m_message_class.m_msg_display)->out(_msg);
+ if(_type.m_message_class.m_is_fatal) (*_type.m_message_class.m_msg_display)->abort();
+}
+
+
+/*
+Pretty-printing for cMessageClosure.
+*/
+void
+cMessageClosure::prefix(void){
+ if(_op_count++ == 0 && !_type.m_message_class.m_no_prefix){
+ if(_type.m_message_class.m_is_prefix){
+ _msg += _type.m_type_name;
+ _msg += '-';
+ }
+ _msg += _type.m_message_class.m_class_name;
+ if(!_type.m_message_class.m_is_prefix || show_function || show_where){
+ bool colon = false;
+ if(!_type.m_message_class.m_is_prefix){
+ _msg += _type.m_type_name;
+ _msg += ": ";
+ }
+ if(show_function || show_where){
+ _msg += "<";
+ }
+ if(show_function){
+ _msg += _function;
+ colon = true;
+ }
+ if(show_where){
+ if(colon){_msg += ':';}
+ _msg += _file;
+ _msg += ':';
+ // FIXME: consider move this varargs gunk to cString. -- kgn.
+ {
+ int size = trio_snprintf((char *) 0, 0, "%i", _line);
+ char *buf = new char[size + 1];
+ assert(buf != 0);
+ trio_snprintf(buf, size+1, "%i", _line);
+ _msg += buf;
+ delete[] buf;
+ }
+ }
+ if(show_function || show_where){
+ _msg += ">";
+ }
+ _msg += ' ';
+ } else {
+ _msg += ':';
+ }
+ }
+}
+
+
+/*
+cMessageClosure::va():
+
+Support for cString-based operator<< and operator() definitions in
+cMessageClosure. Variable argument lists are formatted and then printed
+into a temporary buffer; the contents of this buffer are then appended
+to the cString _msg.
+*/
+
+// FIXME: consider move this varargs gunk to cString. -- kgn.
+cMessageClosure &
+cMessageClosure::va(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ int size = trio_vsnprintf((char *) 0, 0, fmt, ap);
+ va_end(ap);
+
+ char *buf = new char[size + 1];
+ assert(buf != 0);
+
+ va_start(ap, fmt);
+ trio_vsnprintf(buf, size+1, fmt, ap);
+ va_end(ap);
+
+ prefix();
+ _msg += buf;
+ delete[] buf;
+
+ return *this;
+}
+
+/*
+operator<< and operator() definitions for cMessageClosure.
+
+Any kind of input can be placed behind the operator<<, really, but try
+to not (further) overcrowd the class...
+
+The operator is meant to convert its input into a string for display.
+If for example you implement
+ cMessageClosure &operator<<(const myClass &instance);
+then you can write a message thus:
+ DemoDebug << "this is a myClass instance: " << my_instance;
+with the result:
+ "Debug [Demo] this is a myClass instance: stuff in my_instance."
+*/
+cMessageClosure &cMessageClosure::operator<<(char c){ prefix(); _msg += c; return *this; }
+cMessageClosure &cMessageClosure::operator<<(unsigned char c){ prefix(); _msg += c; return *this; }
+cMessageClosure &cMessageClosure::operator<<(int i){ return va("%d", i); }
+cMessageClosure &cMessageClosure::operator<<(unsigned int i){ return va("%u", i); }
+cMessageClosure &cMessageClosure::operator<<(long i){ return va("%ld", i); }
+cMessageClosure &cMessageClosure::operator<<(unsigned long i){ return va("%lu", i); }
+cMessageClosure &cMessageClosure::operator<<(float f){ return va("%g", f); }
+cMessageClosure &cMessageClosure::operator<<(double f){ return va("%g", f); }
+cMessageClosure &cMessageClosure::operator<<(const void *p){ return va("%p", p); }
+cMessageClosure &cMessageClosure::operator<<(const char *s){ prefix(); _msg += s; return *this; }
+
+/*
+Definition of the message type "NoPrefix_Msg".
+*/
+cMessageType NoPrefix_Msg("NoPrefix", MCNoPrefix);
+cMessageType Info_GEN_Msg("General", MCInfo);
+cMessageType Debug_GEN_Msg("General", MCDebug);
+cMessageType Error_GEN_Msg("General", MCError);
+cMessageType Fatal_GEN_Msg("General", MCFatal);
+
+
+
+
Copied: trunk/source/tools/cMessageDisplay.h (from rev 337, trunk/source/tools/message_display.hh)
Copied: trunk/source/tools/cMessageDisplay_headers.h (from rev 337, trunk/source/tools/message_display_hdrs.hh)
===================================================================
--- trunk/source/tools/message_display_hdrs.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cMessageDisplay_headers.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,41 @@
+#ifndef MESSAGE_DISPLAY_HDRS_HH
+#define MESSAGE_DISPLAY_HDRS_HH
+
+#ifndef _CPP_IOSTREAM
+#include <iostream>
+#endif
+#ifndef DEFAULT_MESSAGE_DISPLAY_HH
+#include "cDefaultMessageDisplay.h"
+#endif
+#ifndef MESSAGE_CLASS_HH
+#include "cMessageClass.h"
+#endif
+#ifndef MESSAGE_CLOSURE_HH
+#include "cMessageClosure.h"
+#endif
+#ifndef MESSAGE_DISPLAY_HH
+#include "cMessageDisplay.h"
+#endif
+#ifndef MESSAGE_TYPE_HH
+#include "cMessageType.h"
+#endif
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+
+#ifndef MESSAGE_DISPLAY_HH
+#include "cMessageDisplay.h"
+#endif
+
+extern cMessageType NoPrefix_Msg;
+extern cMessageType Info_GEN_Msg;
+extern cMessageType Debug_GEN_Msg;
+extern cMessageType Error_GEN_Msg;
+extern cMessageType Fatal_GEN_Msg;
+#define Message _PLAIN_MSG(NoPrefix)
+#define GenInfo _INFO_MSG(GEN)
+#define GenDebug _DEBUG_MSG(GEN)
+#define GenError _ERROR_MSG(GEN)
+#define GenFatal _FATAL_MSG(GEN)
+
+#endif
Copied: trunk/source/tools/cMessageType.h (from rev 337, trunk/source/tools/message_type.hh)
Copied: trunk/source/tools/cProbSchedule.cc (from rev 337, trunk/source/tools/prob_schedule.cc)
===================================================================
--- trunk/source/tools/prob_schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cProbSchedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cProbSchedule.h"
+
+#include "cChangeList.h"
+#include "cMerit.h"
+#include "tools.hh"
+
+
+///////////////////
+// cProbSchedule
+///////////////////
+
+// The larger merits cause problems here; things need to be re-thought out.
+
+cProbSchedule::cProbSchedule(int _item_count)
+ : cSchedule(_item_count)
+ , chart(_item_count)
+{
+}
+
+cProbSchedule::~cProbSchedule()
+{
+}
+
+
+int cProbSchedule::GetNextID()
+{
+ assert(chart.GetTotalWeight() > 0);
+ const double position = g_random.GetDouble(chart.GetTotalWeight());
+ return chart.FindPosition(position);
+}
+
+void cProbSchedule::Adjust(int item_id, const cMerit & item_merit)
+{
+ if (cChangeList *change_list = GetChangeList()) {
+ change_list->MarkChange(item_id);
+ }
+ chart.SetWeight(item_id, item_merit.GetDouble());
+}
Copied: trunk/source/tools/cProbSchedule.h (from rev 337, trunk/source/tools/prob_schedule.hh)
===================================================================
--- trunk/source/tools/prob_schedule.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cProbSchedule.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,37 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef PROB_SCHEDULE_HH
+#define PROB_SCHEDULE_HH
+
+#ifndef SCHEDULE_HH
+#include "cSchedule.h"
+#endif
+#ifndef WEIGHTED_INDEX_HH
+#include "weighted_index.hh"
+#endif
+
+/**
+ * The Probiblistic Schedule has the chance for an item to
+ * be scheduled proportional to the merit of that item.
+ **/
+
+class cWeightedIndex; // aggregate
+class cMerit;
+
+class cProbSchedule : public cSchedule {
+private:
+ cWeightedIndex chart;
+public:
+ cProbSchedule(int num_cells);
+ ~cProbSchedule();
+
+ void Adjust(int item_id, const cMerit & merit);
+ int GetNextID();
+};
+
+#endif
Copied: trunk/source/tools/cRandom.cc (from rev 337, trunk/source/tools/random.cc)
===================================================================
--- trunk/source/tools/random.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cRandom.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,216 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2000 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef RANDOM_HH
+#include "cRandom.h"
+#endif
+
+#ifndef TARRAY_HH
+#include "tArray.hh"
+#endif
+
+/* FIXME this is not defined in Visual Studio.net. -- kgn */
+//#ifdef MSVC_COMPILER
+/* FIXME find out what the VS.n macro might be. for now use WIN32 -- kgn */
+#ifdef WIN32
+#include <process.h>
+#else
+#include <unistd.h>
+#endif
+
+
+// Constants //////////////////////////////////////////////////////////////////
+
+// Statistical Approximation
+const unsigned int cRandom::_BINOMIAL_TO_NORMAL=50; //if < n*p*(1-p)
+const unsigned int cRandom::_BINOMIAL_TO_POISSON=1000; //if < n
+
+// Engine
+const unsigned int cRandom::_RAND_MBIG=1000000000;
+const unsigned int cRandom::_RAND_MSEED=161803398;
+
+// Number Generation
+const double cRandom::_RAND_FAC=(1.0/_RAND_MBIG);
+const double cRandom::_RAND_mP_FAC=(_RAND_MBIG/1000);
+const double cRandom::_RAND_uP_FAC=(_RAND_MBIG/1000000);
+
+
+// Constructor and setup //////////////////////////////////////////////////////
+
+cRandom::cRandom(const int in_seed) :
+ seed(0),
+ original_seed(0),
+ inext(0),
+ inextp(0),
+ use_count(0),
+ expRV(0)
+ {
+ for( int i=0; i<56; ++i ){
+ ma[i] = 0;
+ }
+ ResetSeed(in_seed); // Calls init()
+ }
+
+
+void cRandom::ResetSeed(const int in_seed){
+ //if( in_seed<0 ){ // @TCC - make 0 also be seeded with time * pid
+ original_seed = in_seed;
+
+ if( in_seed<=0 ){
+ int seed_time = (int) time(NULL);
+#ifdef MSVC_COMPILER
+ int seed_pid = (int) _getpid();
+#else
+ int seed_pid = (int) getpid();
+#endif
+ seed = seed_time ^ (seed_pid << 8);
+ }
+ else {
+ seed = in_seed;
+ }
+
+ if( seed < 0 ) seed*=-1;
+ seed%=_RAND_MSEED;
+
+ init();
+ initStatFunctions();
+}
+
+
+void cRandom::init(){
+ int mj, mk, ii, i;
+
+ // Clear variables
+ inext = 0;
+ inextp = 0;
+ expRV = 0;
+ for( i=0; i<56; ++i ){
+ ma[i] = 0;
+ }
+
+ mj = _RAND_MSEED - seed;
+ mj %= _RAND_MBIG;
+ ma[55] = mj;
+ mk = 1;
+
+ for (i = 1; i < 55; ++i) {
+ ii = (21 * i) % 55;
+ ma[ii] = mk;
+ mk = mj - mk;
+ if (mk < 0) mk += _RAND_MBIG;
+ mj = ma[ii];
+ }
+
+ for (int k = 0; k < 4; ++k) {
+ for (int j = 1; j < 55; ++j) {
+ ma[j] -= ma[1 + (j + 30) % 55];
+ if (ma[j] < 0) ma[j] += _RAND_MBIG;
+ }
+ }
+
+ inext = 0;
+ inextp = 31;
+}
+
+void cRandom::initStatFunctions(){
+ // Setup variables used by Statistical Distribution functions
+ expRV=-log(GetDouble());
+}
+
+
+// Statistical functions //////////////////////////////////////////////////////
+
+double cRandom::GetRandNormal(){
+ // Draw from a Unit Normal Dist
+ // Using Rejection Method and saving of initial exponential random variable
+ double expRV2;
+ while( 1 ){
+ expRV2=-log(GetDouble());
+ expRV-=(expRV2-1)*(expRV2-1)/2;
+ if( expRV>0 ) break;
+ expRV=-log(GetDouble());
+ }
+ if( P(.5) )
+ return expRV2;
+ else
+ return -expRV2;
+}
+
+unsigned int cRandom::GetRandPoisson(const double mean){
+ // Draw from a Poisson Dist with mean
+ // if cannot calculate, returns UINT_MAX
+ // Uses Rejection Method
+ unsigned int k=0;
+ double a=exp(-mean);
+ double u=GetDouble();
+ if( a <=0 ) return UINT_MAX; // cannot calculate, so return UINT_MAX
+ while( u>=a ){
+ u*=GetDouble();
+ ++k;
+ }
+ return k;
+}
+
+unsigned int cRandom::GetFullRandBinomial(const double n, const double p){
+ // Actually try n Bernoulli events with probability p
+ unsigned int k=0;
+ for( unsigned int i=0; i<n; ++i )
+ if( P(p) ) k++;
+ return k;
+}
+
+unsigned int cRandom::GetRandBinomial(const double n, const double p){
+ // Approximate Binomial if appropriate
+ // if np(1-p) is large, use a Normal approx
+ if( n*p*(1-p) >= _BINOMIAL_TO_NORMAL ){
+ return (unsigned int)(GetRandNormal(n*p,n*p*(1-p))+.5);
+ }
+ // elseif n is large, use a Poisson approx
+ if( n >= _BINOMIAL_TO_POISSON ){
+ unsigned int k=GetRandPoisson(n,p);
+ if( k < UINT_MAX ) // if approx worked
+ return k;
+ }
+ // otherwise, actually generate the randBinomial
+ return GetFullRandBinomial(n,p);
+}
+
+
+bool cRandom::Choose(int num_in, tArray<int> & out_array){
+ // If you ask for more than you pass in...
+ assert ( num_in >= out_array.GetSize() );
+
+ if (num_in == out_array.GetSize()) {
+ // init array to 0's
+ for(int i = 0; i < out_array.GetSize(); i++) out_array[i] = i;
+ return true;
+ }
+
+ int choice_num = 0;
+ // @CAO this could be done a lot faster when choose size is close to
+ // full size. However we need to rememebr to watch out for larger num_in
+ while (choice_num < out_array.GetSize()) {
+ int next = (int) GetUInt(num_in);
+
+ // See if this choice is ok to use...
+ bool ok = true;
+ for (int i = 0; i < choice_num; i++) {
+ if (out_array[i] == next) {
+ ok = false;
+ break;
+ }
+ }
+
+ // And if its good, record it.
+ if (ok == true) {
+ out_array[choice_num] = next;
+ choice_num++;
+ }
+ }
+
+ return true;
+}
Copied: trunk/source/tools/cRandom.h (from rev 337, trunk/source/tools/random.hh)
Copied: trunk/source/tools/cRefBlock.cc (from rev 337, trunk/source/tools/ref_block.cc)
===================================================================
--- trunk/source/tools/ref_block.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cRefBlock.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef REF_BLOCK_HH
+#include "cRefBlock.h"
+#endif
+
+////////////////////
+// cRefBlock
+////////////////////
+
+cRefBlock::cRefBlock(int in_ref, int in_size)
+{
+ ref_num = in_ref;
+ size = in_size;
+}
+
+cRefBlock::~cRefBlock()
+{
+ // nothing needed here...
+}
Copied: trunk/source/tools/cRefBlock.h (from rev 337, trunk/source/tools/ref_block.hh)
Copied: trunk/source/tools/cRunningAverage.cc (from rev 337, trunk/source/tools/running_average.cc)
===================================================================
--- trunk/source/tools/running_average.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cRunningAverage.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,54 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef RUNNING_AVERAGE_HH
+#include "cRunningAverage.h"
+#endif
+
+#include <assert.h>
+
+// cRunningAverage ////////////////////////////////////////////////////////////
+
+cRunningAverage::cRunningAverage( int window_size ) :
+ m_values(0), m_s1(0), m_s2(0), m_window_size( window_size ),
+ m_pointer(0), m_n(0)
+{
+ assert( m_window_size > 1 );
+ m_values = new double[ m_window_size ];
+}
+
+
+cRunningAverage::~cRunningAverage() {
+ delete [] m_values;
+}
+
+
+void
+cRunningAverage::Add( double value ) {
+ m_s1 += value;
+ m_s2 += value*value;
+ if ( m_n < m_window_size ) {
+ m_values[ m_n ] = value;
+ m_n += 1;
+ }
+ else{
+ double out_v = m_values[ m_pointer ];
+ m_s1 -= out_v;
+ m_s2 -= out_v * out_v;
+ m_values[ m_pointer++ ] = value;
+ if ( m_pointer == m_window_size ) m_pointer = 0;
+ }
+}
+
+
+void
+cRunningAverage::Clear() {
+ m_s1 = 0;
+ m_s2 = 0;
+ m_pointer = 0;
+ m_n = 0;
+}
Copied: trunk/source/tools/cRunningAverage.h (from rev 337, trunk/source/tools/running_average.hh)
Copied: trunk/source/tools/cScaledBlock.cc (from rev 337, trunk/source/tools/scaled_block.cc)
===================================================================
--- trunk/source/tools/scaled_block.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cScaledBlock.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,26 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2000 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef SCALED_BLOCK_HH
+#include "cScaledBlock.h"
+#endif
+
+////////////////////
+// cScaledBlock
+////////////////////
+
+cScaledBlock::cScaledBlock(void * in_data, int in_size)
+{
+ data = in_data;
+ size = in_size;
+}
+
+cScaledBlock::~cScaledBlock()
+{
+}
+
+
Copied: trunk/source/tools/cScaledBlock.h (from rev 337, trunk/source/tools/scaled_block.hh)
Copied: trunk/source/tools/cSchedule.cc (from rev 337, trunk/source/tools/schedule.cc)
===================================================================
--- trunk/source/tools/schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cSchedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,33 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cSchedule.h"
+
+#include "cChangeList.h"
+
+////////////////
+// cSchedule
+////////////////
+
+cSchedule::cSchedule(int _item_count)
+: item_count(_item_count)
+, m_change_list(0)
+{
+}
+
+cSchedule::~cSchedule()
+{
+}
+
+void cSchedule::SetChangeList(cChangeList *change_list) {
+ m_change_list = change_list;
+ if (m_change_list) m_change_list->Resize(item_count);
+}
+void cSchedule::SetSize(int _item_count) {
+ item_count = _item_count;
+ if (m_change_list) m_change_list->Resize(_item_count);
+}
Copied: trunk/source/tools/cSchedule.h (from rev 337, trunk/source/tools/schedule.hh)
Copied: trunk/source/tools/cString.cc (from rev 337, trunk/source/tools/string.cc)
===================================================================
--- trunk/source/tools/string.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cString.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,641 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "cString.h"
+
+extern "C"{
+#include <stdio.h>
+#include <stdarg.h>
+}
+
+
+using namespace std;
+
+
+// ** class cStringData **
+// -- Constructors --
+cString::cStringData::cStringData(short in_size)
+ : refs(1)
+ , size(in_size)
+ , data(new char[size+1])
+{
+ assert(data!=NULL); // Memory Allocation Error: Out of Memory
+ data[0] = '\0';
+ data[size] = '\0';
+}
+
+cString::cStringData::cStringData(short in_size, const char * in)
+ : refs(1)
+ , size(in_size)
+ , data(new char[size+1])
+{
+ assert(data!=NULL); // Memory Allocation Error: Out of Memory
+ for( short i = 0; i < size; i++ ) data[i]=in[i];
+ data[size] = '\0';
+}
+
+cString::cStringData::cStringData(const cStringData & in)
+ : refs(1)
+ , size(in.GetSize())
+ , data(new char[size+1])
+{
+ assert(data!=NULL); // Memory Allocation Error: Out of Memory
+ for( short i = 0; i < size; i++ ) data[i]=in[i];
+ data[size] = '\0';
+}
+
+
+
+// ** class cString **
+
+// -- Constants --
+const int cString::MAX_LENGTH = MAX_STRING_LENGTH;
+
+
+// -- Comparisons --
+
+bool cString::operator== (const cString & in) const {
+ // Compares sizes first since we have that info anyway
+ int i=-1;
+ if( GetSize() == in.GetSize() ){
+ for( i=0; i<GetSize() && (*this)[i]==in[i]; ++i );
+ }
+ return ( i == GetSize() ); // i == GetSize if all chars matched
+}
+
+
+int cString::Compare(const char * in) const
+{
+ // -1 (*this<in), 0 (*this==in), 1 (*this>in) ... just like strcmp()
+ assert(in!=NULL); // NULL input string
+ int i;
+ for( i = 0;
+ i < GetSize() && in[i]!='\0' && (*this)[i] == in[i];
+ i++ );
+
+ if( i == GetSize() && in[i] == '\0' ) {
+ return 0; // *this == in
+ }
+
+ // They're not equal!
+ if ( i < GetSize() && (*this)[i] > in[i] ) return 1; // *this > in
+ return -1; // *this < in
+}
+
+bool cString::IsContinueLine()
+{
+ bool found = false;
+ bool goodstufffound = false;
+ int j = GetSize() - 1;
+
+ // Scan the line from the end. If the last non-whitespace line is
+ // continueation character the line expects a line to be concatenated on
+ // to it
+
+ while ((j >= 0) && !found && !goodstufffound) {
+ if (!IsWhitespace(j)) {
+ if ((*this)[j] == CONTINUE_LINE_CHAR) {
+ found = true;
+ RemovePos(j);
+ } else {
+ goodstufffound = true;
+ }
+ }
+ j--;
+ }
+ return (found);
+}
+
+// -- Information --
+
+int cString::CountWhitespace(int start) const
+{
+ assert(start >= 0); // Negative Index into String
+ if (start >= GetSize()) return 0;
+ int count = 0;
+ while (start+count<GetSize() && IsWhitespace(start+count)) count++;
+ return count;
+}
+
+
+int cString::CountWordsize(int start) const {
+ assert(start >= 0); // Negative Index into String
+ if( start>=GetSize() ) return 0;
+ int count = 0;
+ while( start+count<GetSize() && !IsWhitespace(start+count) )
+ ++count;
+ return count;
+}
+
+
+int cString::CountLinesize(int start) const
+{
+ assert(start >= 0); // Negative Index into String
+ if( start>=GetSize() ) return 0;
+ int count = 0;
+ while( start+count<GetSize() && (*this)[start+count]!='\n' )
+ count++;
+ return count;
+}
+
+
+int cString::CountNumLines() const
+{
+ int num_lines = 1;
+ for( int i=0; i<GetSize(); ++i ){
+ if( (*this)[i] == '\n' ) num_lines++;
+ }
+ return num_lines;
+}
+
+
+int cString::CountNumWords() const
+{
+ int num_words = 0;
+ int pos = CountWhitespace(); // Skip initial whitespace.
+ while( pos<GetSize() ) {
+ pos += CountWordsize(pos);
+ pos += CountWhitespace(pos);
+ num_words++;
+ }
+ return num_words;
+}
+
+
+// -- Search --
+int cString::Find(char in_char, int start) const
+{
+ int pos = start;
+ assert (pos >= 0); // Negative Position: setting to 0
+ assert (pos <= GetSize()); // Position Past End of String: setting to end.
+ if (pos <= 0) pos = 0;
+ else if (pos > GetSize()) pos = GetSize();
+
+ while( pos < GetSize() ) {
+ if( (*this)[pos] == in_char) return pos; // Found!
+ pos++;
+ }
+ return -1; // Not Found
+}
+
+
+int cString::FindWord(const cString & in, int pos) const
+{
+ assert (pos >= 0); // Negative Position: setting to 0
+ assert (pos <= GetSize()); // Position Past End of String: setting to end.
+ if (pos <= 0) pos = 0;
+ else if (pos > GetSize()) pos = GetSize();
+
+ // While there is enough space to find
+ while (pos != -1 && pos + in.GetSize() < GetSize()) {
+ cerr << in << " " << pos << endl;
+ if( (pos=Find(in, pos)) >= 0 ){ // try to find it
+ // if it's got whitespace on both sides, it's a word
+ if( ( pos==0 || IsWhitespace(pos-1) )
+ && ( pos==GetSize()-1 || IsWhitespace(pos+in.GetSize()) ) ){
+ return pos;
+ } else {
+ pos++; // go on and look further down
+ }
+ }
+ }
+ return -1;
+}
+
+
+cString cString::GetWord(int word_id) const
+{
+ // Find positon of word
+ int pos = 0;
+ int cur_word = 0;
+ while( pos<GetSize() && cur_word<word_id ) { // If this isn't the word
+ pos += CountWhitespace(pos); // Skip leading whitespace
+ pos += CountWordsize(pos); // Skip this word
+ cur_word++;
+ }
+ // Return GetWordAt position... (it will skip any leading whitespace)
+ return GetWordAt(pos);
+}
+
+
+cString cString::GetWordAt(int start) const
+{
+ int pos = start + CountWhitespace(start); // Skip past initial whitespace.
+ int word_size = CountWordsize(pos); // Get size of word
+ cString new_string(word_size); // Allocate new_string that size
+ for (int i = 0; i < word_size; i++) { // Copy the chars to new_string
+ new_string[i] = (*this)[pos + i];
+ }
+ return new_string;
+}
+
+bool cString::IsWhitespace() const
+{
+ for( int i=0; i < GetSize(); ++i){
+ if ( IsWhitespace(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsUpperLetter() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsUpperLetter(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsLowerLetter() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsLowerLetter(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsLetter() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsLetter(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsNumber() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsNumber(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsNumeric() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsNumber(i) == false ) return false;
+ }
+ return true;
+}
+
+bool cString::IsAlphaNumeric() const
+{
+ for (int i = 0; i < GetSize(); ++i) {
+ if ( IsAlphaNumeric(i) == false ) return false;
+ }
+ return true;
+}
+
+
+
+cString cString::Substring(int start, int size) const
+{
+ assert(size > 0); // Non-Positive Size
+ assert(start >= 0); // Negative Position
+ assert(start + size <= GetSize()); // Position+Size Past End of String
+
+ cString new_string(size);
+ for (int i=0; i<size; i++) {
+ new_string[i] = (*this)[i+start];
+ }
+ return new_string;
+}
+
+bool cString::IsSubstring(const cString & in_string, int start) const
+{
+ assert (start >= 0); // Negative start position
+
+ // If the potential sub-string won't fit, return false;
+ if ( start + in_string.GetSize() > GetSize() ) return false;
+
+ // Otherwise, check character by character.
+ for (int i = 0; i < in_string.GetSize(); i++) {
+ if ( (*this)[i+start] != in_string[i] ) return false;
+ }
+
+ return true;
+}
+
+
+// -- Modifiers --
+
+cString & cString::Set(const char * fmt, ...)
+{
+ va_list argp;
+ char buf[MAX_LENGTH];
+ va_start(argp, fmt);
+ vsprintf(buf, fmt, argp);
+ va_end(argp);
+ (*this) = buf;
+ return *this;
+}
+
+
+int cString::Replace(const cString & old_st, const cString & new_st, int pos)
+{
+ int location;
+ if( (location=Find(old_st, pos)) >= 0 ){ // If we find the old_st
+ Insert(new_st, location, old_st.GetSize());
+ }
+ return location;
+}
+
+
+int cString::LeftJustify()
+{
+ int ws_count = CountWhitespace();
+ if( ws_count>0 )
+ InsertStr(0, NULL, 0, ws_count);
+ return ws_count;
+}
+
+
+int cString::RightJustify()
+{
+ int ws_count = 0;
+ while( GetSize()-ws_count-1>0 && IsWhitespace(GetSize()-ws_count-1) )
+ ws_count++;
+ if( ws_count>0 )
+ InsertStr(0, NULL, GetSize()-ws_count, ws_count);
+ return ws_count;
+}
+
+
+cString cString::Pop(const char delim)
+{
+ int pos;
+ cString rv("");
+ if( (pos=Find(delim)) >= 0 ){ // if it is found at all
+ if( pos > 0 ){ // if the first char is not delim, return substring
+ rv = Substring(0,pos);
+ }
+ // Trim off the front
+ InsertStr(0, NULL, 0, pos+1);
+ }
+
+ // If the deliminator is *not* found, return the whole string.
+ else {
+ rv = *this;
+ *this = "";
+ }
+ return rv;
+}
+
+
+cString cString::PopWord()
+{
+ // If there is nothing here, there is nothing to be popped.
+ if (GetSize() == 0) return "";
+
+ const int start_pos = CountWhitespace();
+ const int word_size = CountWordsize(start_pos);
+
+ // If the string is not all whitespace, save the word we cut off...
+ cString rv("");
+ if (word_size > 0) rv = Substring(start_pos, word_size);
+
+ // Trim off the front
+ const int word_end = start_pos + word_size;
+ const int new_start = word_end + CountWhitespace(word_end);
+ InsertStr(0, NULL, 0, new_start); // Insert null in place of old word.
+
+ return rv;
+}
+
+
+cString & cString::ToLower()
+{
+ for (int pos = 0; pos < GetSize(); pos++) {
+ if( (*this)[pos] >= 'A' && (*this)[pos] <= 'Z' )
+ (*this)[pos] += 'a' - 'A';
+ }
+
+ return *this;
+}
+
+
+cString & cString::ToUpper()
+{
+ for (int pos = 0; pos < GetSize(); pos++) {
+ if( (*this)[pos] >= 'a' && (*this)[pos] <= 'z' )
+ (*this)[pos] += 'A' - 'a';
+ }
+
+ return *this;
+}
+
+
+void cString::Reverse()
+{
+ cString new_st(GetSize());
+ for( int i=0; i<GetSize(); ++i ){
+ // new_st[i] = (*this)[GetSize()-i-1]; // @CAO Problem in new gcc
+ new_st[i] = GetData()[GetSize()-i-1];
+ }
+ (*this) = new_st;
+}
+
+
+void cString::CompressWhitespace()
+{
+ // Eats initial whitespace
+ // 2 pass method...
+ int i;
+ int pos = 0;
+ int start_pos = CountWhitespace();
+ int new_size = 0;
+ bool ws = false;
+
+ // count the number of characters that we will need in the new string
+ for( i=start_pos; i<GetSize(); ++i ){
+ if( IsWhitespace(i) ){ // if it whitespace...
+ if( ws == false ){ // if we arn't already in a whitespace block
+ ws = true; // we are now in a whitespace block
+ }
+ }else{ // it isn't whitespace, so count
+ if( ws==true ){ // if there was a whitespace block
+ ++new_size; // inc once for the block
+ ws = false;
+ }
+ ++new_size;
+ }
+ }
+
+ cString new_st(new_size); // Allocate new string
+
+ // Copy over the characters
+ // pos will be the location in new_st, while i is the index into this
+ ws = false;
+ for( i=start_pos; i<GetSize(); ++i ){
+ if( IsWhitespace(i) ){ // if it whitespace...
+ if( ws == false ){ // if we arn't already in a whitespace block
+ ws = true; // we are now in a whitespace block
+ }
+ }else{ // it isn't whitespace, so count
+ if( ws==true ){ // if there was a whitespace block
+ new_st[pos] = ' '; // put a space in for the whitespace block
+ ++pos; // inc once for the block
+ ws = false;
+ }
+ // new_st[pos] = (*this)[i]; // copy it & increment pos @CAO prob in gcc
+ new_st[pos] = GetData()[i]; // copy it & increment pos
+ ++pos;
+ }
+ }
+
+ (*this) = new_st; // assign the new_st to this
+}
+
+
+void cString::RemoveWhitespace(){
+ int i;
+ int new_size = 0;
+ for( i=0; i<GetSize(); ++i ){ // count new size
+ if( !IsWhitespace(i) ) ++new_size;
+ }
+ cString new_st(new_size); // allocate new string
+ int pos = 0;
+ for( i=0; i<GetSize(); ++i ){ // count new size
+ if( !IsWhitespace(i) ){
+ new_st[pos] = GetData()[i]; // copy it & increment pos @CAO prob in GCC
+ ++pos;
+ }
+ }
+ (*this) = new_st; // assign the new_st to this
+}
+
+
+void cString::RemoveChar(char out_char){
+ int i;
+ int new_size = 0;
+ for( i=0; i<GetSize(); ++i ){ // count new size
+ if( GetData()[i] != out_char ) ++new_size;
+ }
+ cString new_st(new_size); // allocate new string
+ int pos = 0;
+ for( i=0; i<GetSize(); ++i ){ // count new size
+ if( GetData()[i] != out_char ){
+ new_st[pos] = GetData()[i]; // copy it & increment pos @CAO prob in GCC
+ ++pos;
+ }
+ }
+ (*this) = new_st; // assign the new_st to this
+}
+
+void cString::RemovePos(int pos){
+ int i;
+ int new_size = GetSize() - 1;
+ cString new_st(new_size); // allocate new string
+ int newpos = 0;
+ for( i=0; i<GetSize(); ++i ){ // count new size
+ if( i != pos ){
+ new_st[newpos++] = GetData()[i]; // copy it & increment pos
+ }
+ }
+ (*this) = new_st; // assign the new_st to this
+}
+
+
+
+// -- Internal Methods --
+
+cString & cString::AppendStr(const int in_size, const char * in)
+{
+ assert (in_size == 0 || in != NULL); // NULL input string
+
+ // Allocate a new string
+ cStringData * new_value = new cStringData(GetSize()+in_size);
+ assert (new_value != NULL); // Memory Allocation Error: Out of Memory
+ for(int i=0; i<GetSize(); ++i ) { // Copy self up to pos
+ (*new_value)[i] = this->operator[](i);
+ }
+ for(int i=0; i<in_size; ++i ) { // Copy in
+ assert(in[i] != '\0'); // Input String Contains '\\0' or too Short
+ (*new_value)[i+GetSize()] = in[i];
+ }
+ TakeValue(new_value); // Reassing data to new data
+ return(*this);
+}
+
+
+cString & cString::InsertStr(const int in_size, const char * in,
+ int pos, int excise )
+{
+ // Inserts 'in' (of length 'in_size') at postition 'pos'
+ // Also excises 'excise' characters from 'pos'
+ // If 'in_size'==0 then 'in' can == NULL and only excise happens
+
+ // Validate inputs:
+ assert (in_size >= 0); // Negative input size
+ assert (pos >= 0); // Negative position
+ assert (pos <= GetSize()); // Position past end of string
+ assert (excise >= 0); // Negative excise
+ assert (excise <= GetSize()-pos); // Excise number too large
+ assert (excise > 0 || in_size > 0); // Make sure a change is made!
+ assert (in_size == 0 || in != NULL); // NULL input string
+
+ // Allocate a new string
+ const int new_size = GetSize() + in_size - excise;
+ cStringData * new_value = new cStringData(new_size);
+ assert (new_value != NULL); // Memory Allocation Error: Out of Memory
+
+ for(int i = 0; i < pos; ++i ){ // Copy self up to pos
+ (*new_value)[i] = this->operator[](i);
+ }
+ for(int i = 0; i < in_size; ++i ){ // Copy in
+ assert( in[i] != '\0'); // Input String Contains '\\0' or too Short
+ (*new_value)[i+pos] = in[i];
+ }
+ for(int i=pos+excise; i<GetSize(); ++i ){ // Copy rest of self
+ (*new_value)[i+in_size-excise] = this->operator[](i);
+ }
+
+ TakeValue(new_value); // Reassing data to new data
+ return(*this);
+}
+
+
+int cString::FindStr(const char * in, const int in_size, int pos) const
+{
+ assert (pos>=0); // Negative position
+ assert (pos<=GetSize()); // Position past end of string
+
+ while (pos < GetSize()) {
+ if( GetSize()-pos < in_size ) return -1; // Too near this string's end.
+ if( (*this)[pos] == in[0] ){
+ // see if we have found the string...
+ int i;
+ for( i = 1; i < in_size; i++ ){
+ assert (pos+i < GetSize()); // Reached end of (*this) in Find
+ assert (in[i] != '\0'); // Reached end of 'in' in Find
+ if( (*this)[pos + i] != in[i] ) break; // Match failure!
+ }
+ // If we have made it fully through the loop, we have found a match!
+ if( i == in_size ) return pos;
+ }
+ pos++;
+ }
+ return -1;
+}
+
+
+
+// {{{ ** External cString Functions **
+
+istream & operator >> (istream & in, cString & string)
+{
+ char buf[cString::MAX_LENGTH];
+ in>>buf;
+ string=buf;
+ return in;
+}
+
+ostream & operator << (ostream & out, const cString & string)
+{
+ out << string.GetData();
+ return out;
+}
+
Copied: trunk/source/tools/cString.h (from rev 337, trunk/source/tools/string.hh)
Copied: trunk/source/tools/cStringIterator.cc (from rev 337, trunk/source/tools/string_iterator.cc)
===================================================================
--- trunk/source/tools/string_iterator.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringIterator.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_ITERATOR_HH
+#include "cStringIterator.h"
+#endif
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef STRING_LIST_HH
+#include "cStringList.h"
+#endif
+
+const cString cStringIterator::null_str("");
+
+cStringIterator::cStringIterator(const cStringList & in_list)
+ : list_it(in_list.GetList())
+{
+ Reset();
+}
Copied: trunk/source/tools/cStringIterator.h (from rev 337, trunk/source/tools/string_iterator.hh)
===================================================================
--- trunk/source/tools/string_iterator.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringIterator.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,40 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_ITERATOR_HH
+#define STRING_ITERATOR_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef TLIST_HH
+#include "tList.hh"
+#endif
+
+class cString; // aggregate
+class cStringList;
+template <class T> class tConstListIterator; // aggregate
+
+class cStringIterator {
+private:
+ tConstListIterator<cString> list_it;
+ static const cString null_str;
+public:
+ cStringIterator(const cStringList & in_list);
+
+ void Reset() { list_it.Reset(); }
+ const cString & Get() {
+ if (list_it.Get() == NULL) return null_str;
+ return *(list_it.Get());
+ }
+ const cString & Next() { list_it.Next(); return Get(); }
+ const cString & Prev() { list_it.Prev(); return Get(); }
+ bool AtRoot() const { return list_it.AtRoot(); }
+ bool AtEnd() const { return list_it.AtEnd(); }
+};
+
+#endif
Copied: trunk/source/tools/cStringList.cc (from rev 337, trunk/source/tools/string_list.cc)
===================================================================
--- trunk/source/tools/string_list.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringList.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,75 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "functions.h"
+#ifndef STRING_ITERATOR_HH
+#include "cStringIterator.h"
+#endif
+#ifndef STRING_LIST_HH
+#include "cStringList.h"
+#endif
+
+
+using namespace std;
+
+
+
+cStringList::cStringList(const cString & _list, char seperator)
+{
+ Load(_list, seperator);
+}
+
+cStringList::cStringList(const cStringList & _list)
+{
+ tConstListIterator<cString> list_it(_list.string_list);
+ while (list_it.Next() != NULL) {
+ string_list.PushRear(new cString( *(list_it.Get()) ));
+ }
+}
+
+cStringList::~cStringList()
+{
+ while (string_list.GetSize() > 0) delete string_list.Pop();
+}
+
+
+cStringList & cStringList::operator=(const cStringList & _list)
+{
+ // If this list already as anything in it, make sure to delete it.
+ Clear();
+
+ // Now add the new list into this one.
+ tConstListIterator<cString> list_it(_list.string_list);
+ while (list_it.Next() != NULL) {
+ string_list.PushRear(new cString( *(list_it.Get()) ));
+ }
+ return *this;
+}
+
+bool cStringList::HasString(const cString & test_string) const
+{
+ tConstListIterator<cString> string_it(string_list);
+ const cString * cur_string = NULL;
+ while ((cur_string = string_it.Next()) != NULL) {
+ if (test_string == *cur_string) {
+ return true;
+ }
+ }
+ return false;
+}
+
+cString cStringList::PopString(const cString & test_string)
+{
+ tListIterator<cString> string_it(string_list);
+ const cString * cur_string = NULL;
+ while ((cur_string = string_it.Next()) != NULL) {
+ if (test_string == *cur_string) {
+ return ReturnString(string_list.Remove(string_it));
+ }
+ }
+ return "";
+}
Copied: trunk/source/tools/cStringList.h (from rev 337, trunk/source/tools/string_list.hh)
===================================================================
--- trunk/source/tools/string_list.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringList.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,58 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_LIST_HH
+#define STRING_LIST_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+#ifndef TLIST_HH
+#include "tList.hh"
+#endif
+
+class cString; // aggregate
+template <class T> class tList; // aggregate
+
+class cStringList {
+private:
+ tList<cString> string_list;
+
+ inline cString ReturnString(cString * out_string) {
+ cString tmp_string(*out_string);
+ delete out_string;
+ return tmp_string;
+ }
+public:
+ cStringList() { ; }
+ cStringList(const cString & _list, char seperator=' ');
+ cStringList(const cStringList & _list);
+ ~cStringList();
+
+ cStringList & operator=(const cStringList & _list);
+
+ int GetSize() const { return string_list.GetSize(); }
+ cString GetLine(int line_num) const { return *(string_list.GetPos(line_num)); }
+ const tList<cString> & GetList() const { return string_list; }
+
+ bool HasString(const cString & test_string) const;
+ cString PopString(const cString & test_string);
+
+ void Push(const cString & _in) { string_list.Push(new cString(_in));}
+ void PushRear(const cString & _in) { string_list.PushRear(new cString(_in));}
+ cString Pop() { return ReturnString(string_list.Pop()); }
+ cString PopRear() { return ReturnString(string_list.PopRear()); }
+
+ void Load(cString _list, char seperator=' ') {
+ while (_list.GetSize() > 0) PushRear(_list.Pop(seperator));
+ }
+ void Clear() {
+ while (string_list.GetSize() > 0) delete string_list.Pop();
+ }
+};
+
+#endif
Copied: trunk/source/tools/cStringUtil.cc (from rev 337, trunk/source/tools/string_util.cc)
===================================================================
--- trunk/source/tools/string_util.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringUtil.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,290 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2001 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_UTIL_HH
+#include "cStringUtil.h"
+#endif
+
+
+#include "functions.h"
+#include "tMatrix.hh"
+
+extern "C"{
+#include <stdio.h>
+#include <stdarg.h>
+}
+
+
+using namespace std;
+
+
+cString cStringUtil::Stringf(const char * fmt, ...) {
+ va_list argp;
+ char buf[MAX_STRING_LENGTH];
+
+ va_start(argp, fmt);
+ vsprintf(buf, fmt, argp);
+ va_end(argp);
+
+ return cString(buf);
+}
+
+
+cString cStringUtil::ToRomanNumeral(const int in_value) {
+ cString ret_string;
+ if (in_value < 0) {
+ ret_string = "-";
+ ret_string += ToRomanNumeral(-in_value);
+ } else if (in_value > 3999) {
+ // Out of bounds; return a blank;
+ } else if (in_value >= 1000) {
+ ret_string = "M";
+ ret_string += ToRomanNumeral(in_value - 1000);
+ } else if (in_value >= 900) {
+ ret_string = "CM";
+ ret_string += ToRomanNumeral(in_value - 900);
+ } else if (in_value >= 500) {
+ ret_string = "D";
+ ret_string += ToRomanNumeral(in_value - 500);
+ } else if (in_value >= 400) {
+ ret_string = "CD";
+ ret_string += ToRomanNumeral(in_value - 400);
+ } else if (in_value >= 100) {
+ ret_string = "C";
+ ret_string += ToRomanNumeral(in_value - 100);
+ } else if (in_value >= 90) {
+ ret_string = "XC";
+ ret_string += ToRomanNumeral(in_value - 90);
+ } else if (in_value >= 50) {
+ ret_string = "L";
+ ret_string += ToRomanNumeral(in_value - 50);
+ } else if (in_value >= 40) {
+ ret_string = "XL";
+ ret_string += ToRomanNumeral(in_value - 40);
+ } else if (in_value >= 10) {
+ ret_string = "X";
+ ret_string += ToRomanNumeral(in_value - 10);
+ } else if (in_value == 9) {
+ ret_string = "IX";
+ } else if (in_value >= 5) {
+ ret_string = "V";
+ ret_string += ToRomanNumeral(in_value - 5);
+ } else if (in_value == 4) {
+ ret_string = "IV";
+ } else if (in_value > 0) {
+ ret_string = "I";
+ ret_string += ToRomanNumeral(in_value - 1);
+ }
+ // else we already have it exactly and don't need to return anything.
+ return ret_string;
+}
+
+
+int cStringUtil::StrLength(const char * in){
+ // if 'in'==NULL return 0;
+ int size = 0;
+ if( in != NULL ){
+ while( in[size]!='\0' ) ++size; // Count chars in _in
+ }
+ return size;
+}
+
+
+int cStringUtil::Distance(const cString & string1, const cString & string2,
+ int offset)
+{
+ if (offset < 0) return cStringUtil::Distance(string2, string1, -offset);
+
+ const int size1 = string1.GetSize();
+ const int size2 = string2.GetSize();
+
+ // Calculate by how much the strings overlap.
+ int overlap = Min( size1 - offset, size2 );
+
+ // Initialize the distance to that part of the strings which do not
+ // overlap.
+ int num_diffs = size1 + size2 - 2 * overlap;
+
+ // Step through the overlapped section and add on any additional differences.
+ for (int i = 0; i < overlap; i++) {
+ if (string1[i + offset] != string2[i]) num_diffs++;
+ }
+
+ return num_diffs;
+}
+
+
+int cStringUtil::EditDistance(const cString & string1, const cString & string2)
+{
+ const int size1 = string1.GetSize();
+ const int size2 = string2.GetSize();
+
+ if (size1 == 0) return size2;
+ if (size2 == 0) return size1;
+
+ int * cur_row = new int[size1]; // The row we are calculating
+ int * prev_row = new int[size1]; // The last row we calculated
+
+ // Initialize the previous row to record the differece from nothing.
+ for (int i = 0; i < size1; i++) prev_row[i] = i + 1;
+
+ // Loop through all of the other rows
+ for (int i = 0; i < size2; i++) {
+ // Initialize the first entry in the current row.
+ if (string1[0] == string2[i]) cur_row[0] = i;
+ else cur_row[0] = (i < prev_row[0]) ? (i+1) : (prev_row[0] + 1);
+
+ // Move down the cur_row and fill it in.
+ for (int j = 1; j < size1; j++) {
+ // If the values are equal, keep the value in the upper left.
+ if (string1[j] == string2[i]) {
+ cur_row[j] = prev_row[j-1];
+ }
+
+ // Otherwise, set the current position the the minimal of the three
+ // numbers to the upper right in the chart plus one.
+ else {
+ cur_row[j] =
+ (prev_row[j] < prev_row[j-1]) ? prev_row[j] : prev_row[j-1];
+ if (cur_row[j-1] < cur_row[j]) cur_row[j] = cur_row[j-1];
+ cur_row[j]++;
+ }
+ }
+
+ // Swap cur_row and prev_row. (we only really need to move the cur row
+ // over to prev, but this saves us from having to keep re-allocating
+ // new rows. We recycle!
+ int * temp_row = cur_row;
+ cur_row = prev_row;
+ prev_row = temp_row;
+ }
+
+ // Now that we are done, return the bottom-right corner of the chart.
+
+ const int value = prev_row[size1 - 1];
+
+ delete [] cur_row;
+ delete [] prev_row;
+
+ return value;
+}
+
+
+int cStringUtil::EditDistance(const cString & string1, const cString & string2,
+ cString & info, const char gap)
+{
+ const int size1 = string1.GetSize();
+ const int size2 = string2.GetSize();
+
+ if (!size1) return size2;
+ if (!size2) return size1;
+
+ tMatrix<double> dist_matrix(size2+1, size1+1);
+
+ // Keep track of changes in a mut_matrix.
+ // N=None, M=Mutations, I=Insertion, D=Deletion
+ tMatrix<char> mut_matrix(size2+1, size1+1);
+
+ // Initialize the first row and col to record the differece from nothing.
+ for (int i = 0; i < size1+1; i++) {
+ dist_matrix(0,i) = (double) i;
+ mut_matrix(0,i) = 'I';
+ }
+ for (int i = 0; i < size2+1; i++) {
+ dist_matrix(i,0) = (double) i;
+ mut_matrix(i,0) = 'D';
+ }
+ mut_matrix(0,0) = 'N';
+
+ for (int i = 0; i < size2; i++) {
+ // Move down the cur_row and fill it out.
+ for (int j = 0; j < size1; j++) {
+ // If the values are equal, keep the value in the upper left.
+ if (string1[j] == string2[i]) {
+ dist_matrix(i+1,j+1) = dist_matrix(i,j);
+ mut_matrix(i+1,j+1) = 'N';
+ continue; // Move on to next entry...
+ }
+
+ // Otherwise, set the current position the the minimal of the three
+ // numbers above (insertion), to the left (deletion), or upper left
+ // (mutation) in the chart, plus one.
+ double mut_dist = dist_matrix(i,j) + 1;
+ if ((string1[j] == gap) || (string2[i] == gap)) mut_dist -= 0.0001;
+ const double ins_dist = dist_matrix(i+1,j) + (string1[j] != gap);
+ const double del_dist = dist_matrix(i,j+1) + (string2[i] != gap);
+
+ if (mut_dist < ins_dist && mut_dist < del_dist) { // Mutation!
+ dist_matrix(i+1,j+1) = mut_dist;
+ mut_matrix(i+1,j+1) = 'M';
+ } else if (ins_dist < del_dist) { // Insertion!
+ dist_matrix(i+1,j+1) = ins_dist;
+ mut_matrix(i+1,j+1) = 'I';
+ } else { // Deletion!
+ dist_matrix(i+1,j+1) = del_dist;
+ mut_matrix(i+1,j+1) = 'D';
+ }
+ }
+ }
+
+ // Construct the list of changes
+ int pos1 = size1;
+ int pos2 = size2;
+ info = "";
+
+ cString mut_string;
+ while (pos1 > 0 || pos2 > 0) {
+ if (mut_matrix(pos2, pos1) == 'N') {
+ pos1--; pos2--;
+ continue;
+ }
+
+ // There is a mutation here; determine the type...
+ const char old_char = (pos2 > 0) ? string2[pos2-1] : '\0';
+ const char new_char = (pos1 > 0) ? string1[pos1-1] : '\0';
+
+ if (mut_matrix(pos2, pos1) == 'M') {
+ mut_string.Set("M%d%c%c", pos2-1, old_char, new_char);
+ pos1--; pos2--;
+ }
+ else if (mut_matrix(pos2, pos1) == 'D') {
+ mut_string.Set("D%d%c", pos2-1, old_char);
+ pos2--;
+ }
+ else { // if (mut_matrix(pos2, pos1) == 'I') {
+ mut_string.Set("I%d%c", pos1-1, new_char);
+ pos1--;
+ }
+
+ if (info.GetSize() > 0) mut_string += ",";
+ info.Insert(mut_string);
+ }
+
+ // Now that we are done, return the bottom-right corner of the chart.
+ return (int) dist_matrix(size2, size1);
+}
+
+const cString & cStringUtil::Convert(const cString & in_string,
+ const cString & out_string)
+{
+ return in_string;
+}
+
+bool cStringUtil::Convert(const cString & in_string, bool type_bool)
+{
+ return (in_string.AsInt() != 0);
+}
+
+int cStringUtil::Convert(const cString & in_string, int type_int)
+{
+ return in_string.AsInt();
+}
+
+double cStringUtil::Convert(const cString & in_string, double type_double)
+{
+ return in_string.AsDouble();
+}
Copied: trunk/source/tools/cStringUtil.h (from rev 337, trunk/source/tools/string_util.hh)
===================================================================
--- trunk/source/tools/string_util.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/cStringUtil.h 2005-10-08 02:02:38 UTC (rev 338)
@@ -0,0 +1,57 @@
+//////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 1993 - 2003 California Institute of Technology //
+// //
+// Read the COPYING and README files, or contact 'avida at alife.org', //
+// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_UTIL_HH
+#define STRING_UTIL_HH
+
+#ifndef STRING_HH
+#include "cString.h"
+#endif
+
+class cString; // aggregate
+
+struct cStringUtil {
+ static cString Stringf(const char * fmt, ...);
+ static cString ToRomanNumeral(const int in_value);
+ static int StrLength(const char * _in);
+
+ /**
+ * Calculate the Hamming distance between two strings.
+ *
+ * @return The Hamming distance.
+ * @param string1 the first string to compare.
+ * @param string2 the second string to compare.
+ * @param offset This parameter determines how many characters the second
+ * string should be shifted wrt. the first before the comparison.
+ **/
+ static int Distance(const cString & string1, const cString & string2,
+ int offset=0);
+
+ /**
+ * Calculate the edit distance between two strings.
+ *
+ * @return The Edit (Levenstein) distance.
+ * @param string1 the first string to compare.
+ * @param string2 the second string to compare.
+ * @param description The string to write out the differences
+ **/
+ static int EditDistance(const cString & string1, const cString & string2);
+ static int EditDistance(const cString & string1, const cString & string2,
+ cString & info, const char gap=' ');
+
+ /**
+ * Various, overloaded conversion functions for use in templates. Note
+ * that in all cases, the second argument is simply to set the return type.
+ **/
+ static const cString & Convert(const cString & in_string,
+ const cString & out_string);
+ static bool Convert(const cString & in_string, bool type_bool);
+ static int Convert(const cString & in_string, int type_int);
+ static double Convert(const cString & in_string, double type_double);
+};
+
+#endif
Deleted: trunk/source/tools/help_alias.cc
===================================================================
--- trunk/source/tools/help_alias.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_alias.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,18 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_ALIAS_HH
-#include "help_alias.hh"
-#endif
-
-#ifndef HELP_FULL_ENTRY_HH
-#include "help_full_entry.hh"
-#endif
-
-const cString & cHelpAlias::GetKeyword() const { return full_entry->GetKeyword(); }
-const cString & cHelpAlias::GetDesc() const { return full_entry->GetDesc(); }
-cHelpType * cHelpAlias::GetType() const { return full_entry->GetType(); }
Deleted: trunk/source/tools/help_alias.hh
===================================================================
--- trunk/source/tools/help_alias.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_alias.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,34 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_ALIAS_HH
-#define HELP_ALIAS_HH
-
-#ifndef HELP_ENTRY_HH
-#include "help_entry.hh"
-#endif
-
-class cHelpFullEntry;
-class cHelpType;
-class cString;
-
-class cHelpAlias : public cHelpEntry {
-private:
- cHelpFullEntry * full_entry;
-public:
- cHelpAlias(const cString & _alias, cHelpFullEntry * _full_entry)
- : cHelpEntry(_alias), full_entry(_full_entry) { ; }
- ~cHelpAlias() { ; }
-
- const cString & GetKeyword() const;
- const cString & GetDesc() const;
- cHelpType * GetType() const;
-
- bool IsAlias() const { return true; }
-};
-
-#endif
Deleted: trunk/source/tools/help_entry.hh
===================================================================
--- trunk/source/tools/help_entry.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_entry.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,40 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_ENTRY_HH
-#define HELP_ENTRY_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef STRING_UTIL_HH
-#include "string_util.hh"
-#endif
-
-class cHelpType;
-class cString; // aggregate
-class cStringUtil; // accessed
-
-class cHelpEntry {
-protected:
- cString name;
-public:
- cHelpEntry(const cString & _name) : name(_name) { ; }
- virtual ~cHelpEntry() { ; }
-
- const cString & GetName() const { return name; }
- virtual const cString & GetKeyword() const = 0;
- virtual const cString & GetDesc() const = 0;
- virtual cHelpType * GetType() const = 0;
-
- virtual bool IsAlias() const = 0;
-
- cString GetHTMLFilename() const
- { return cStringUtil::Stringf("help.%s.html", GetKeyword()()); }
-};
-
-#endif
Deleted: trunk/source/tools/help_full_entry.hh
===================================================================
--- trunk/source/tools/help_full_entry.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_full_entry.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,45 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_FULL_ENTRY_HH
-#define HELP_FULL_ENTRY_HH
-
-#ifndef HELP_ENTRY_HH
-#include "help_entry.hh"
-#endif
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-
-class cHelpType;
-class cString; // aggregate
-
-class cHelpFullEntry : public cHelpEntry {
-private:
- cHelpType * type;
- cString desc;
-public:
- cHelpFullEntry(const cString & _name, cHelpType * _type, const cString _desc)
- : cHelpEntry(_name), type(_type), desc(_desc) { ; }
- cHelpFullEntry() : cHelpEntry(""), type(NULL) { ; }
- ~cHelpFullEntry() { ; }
-
- const cHelpFullEntry & operator=(const cHelpEntry & in_entry) {
- name = in_entry.GetName();
- type = in_entry.GetType();
- desc = in_entry.GetDesc();
- return *this;
- }
-
- const cString & GetKeyword() const { return name; }
- const cString & GetDesc() const { return desc; }
- cHelpType * GetType() const { return type; }
-
- bool IsAlias() const { return false; }
-};
-
-#endif
Deleted: trunk/source/tools/help_manager.cc
===================================================================
--- trunk/source/tools/help_manager.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_manager.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,102 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_MANAGER_HH
-#include "help_manager.hh"
-#endif
-
-#ifndef HELP_TYPE_HH
-#include "help_type.hh"
-#endif
-#ifndef INIT_FILE_HH
-#include "init_file.hh"
-#endif
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef TLIST_HH
-#include "tList.hh"
-#endif
-
-#include <iostream>
-
-using namespace std;
-
-cHelpType * cHelpManager::GetType(const cString type_name)
-{
- // See if we can find this type in the already existant list...
- tListIterator<cHelpType> type_it(type_list);
- while (type_it.Next() != NULL) {
- if (type_it.Get()->GetName() == type_name) return type_it.Get();
- }
-
- // Otherwise, create it.
- if (verbose == true) {
- cout << " Creating help type \"" << type_name << "\"." << endl;
- }
- cHelpType * type = new cHelpType(type_name, this);
- type_list.Push(type);
- return type;
-}
-
-void cHelpManager::LoadFile(const cString & filename)
-{
- cInitFile help_file(filename);
- help_file.Load();
- help_file.Compress();
- help_file.Close();
-
- cHelpType * type = NULL;
- cString keyword;
-
- for (int line_id = 0; line_id < help_file.GetNumLines(); line_id++) {
- cString cur_string = help_file.GetLine(line_id);
- cString command = cur_string.PopWord();
- command.ToLower();
-
- if (command == "type:") {
- type = GetType(cur_string);
- }
- else if (command == "keyword:") {
- keyword = cur_string;
- }
- else if (command == "desc:") {
- if (type == NULL) type = GetType("None"); // Make sure we have a type.
- if (keyword == "") {
- if (verbose == true) {
- cerr << " Help description set without keyword;"
- << " setting keyword to \"None\"." << endl;
- }
- keyword = "None";
- }
- last_entry = type->AddEntry(keyword, cur_string);
- }
- else if (command == "alias:") {
- if (last_entry == NULL) {
- cerr << " Warning: Setting aliases \"" << cur_string
- << "\" to incomplete entry!" << endl;
- }
- while (cur_string.GetSize() > 0) {
- type->AddAlias(cur_string.PopWord(), last_entry);
- }
- }
- else if (verbose == true) {
- cerr << "Warning: Unknown command \"" << command
- << "\" in file " << filename << endl;
- }
- }
-
-}
-
-
-void cHelpManager::PrintHTML()
-{
- tListIterator<cHelpType> type_it(type_list);
- while (type_it.Next() != NULL) {
- type_it.Get()->PrintHTML();
- }
-}
Deleted: trunk/source/tools/help_manager.hh
===================================================================
--- trunk/source/tools/help_manager.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_manager.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,59 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_MANAGER_HH
-#define HELP_MANAGER_HH
-
-#ifndef HELP_TYPE_HH
-#include "help_type.hh"
-#endif
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef TLIST_HH
-#include "tList.hh"
-#endif
-
-class cHelpFullEntry;
-class cHelpType; // accessed
-class cString; // aggregate
-template <class T> class tList; // aggregate
-template <class T> class tListIterator; // aggregate
-
-class cHelpManager {
-private:
- tList<cHelpType> type_list;
- cHelpFullEntry * last_entry;
- bool verbose; // Should we print messages to the screen?
-
- // Private methods...
- cHelpType * GetType(const cString type_name);
-private:
- // disabled copy constructor.
- cHelpManager(const cHelpManager &);
-public:
- cHelpManager() : last_entry(NULL), verbose (false) { ; }
- ~cHelpManager() { while (type_list.GetSize() > 0) delete type_list.Pop(); }
-
- void LoadFile(const cString & filename);
- void PrintHTML();
- cHelpEntry * FindEntry(cString entry_name) {
- entry_name.ToLower();
-
- tListIterator<cHelpType> type_it(type_list);
- while (type_it.Next() != NULL) {
- cHelpEntry * found_entry = type_it.Get()->FindEntry(entry_name);
- if (found_entry != NULL) return found_entry;
- }
- return NULL;
- }
-
- void SetVerbose(bool _verbose = true) { verbose = _verbose; }
- bool GetVerbose() const { return verbose; }
-};
-
-#endif
Deleted: trunk/source/tools/help_type.cc
===================================================================
--- trunk/source/tools/help_type.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_type.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,126 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_TYPE_HH
-#include "help_type.hh"
-#endif
-
-#ifndef HELP_ALIAS_HH
-#include "help_alias.hh"
-#endif
-#ifndef HELP_ENTRY_HH
-#include "help_entry.hh"
-#endif
-#ifndef HELP_FULL_ENTRY_HH
-#include "help_full_entry.hh"
-#endif
-#ifndef HELP_MANAGER_HH
-#include "help_manager.hh"
-#endif
-
-#include <fstream>
-
-using namespace std;
-
-cHelpAlias * cHelpType::AddAlias(const cString & alias_name, cHelpFullEntry * entry) {
- cHelpAlias * new_alias = new cHelpAlias(alias_name, entry);
- entry_list.Push(new_alias);
- return new_alias;
-}
-
-cHelpFullEntry * cHelpType::AddEntry(const cString & _name, const cString & _desc) {
- cHelpFullEntry * new_entry = new cHelpFullEntry(_name, this, _desc);
- entry_list.Push(new_entry);
- num_entries++;
- return new_entry;
-}
-
-cHelpEntry * cHelpType::FindEntry(const cString & entry_name) {
- tListIterator<cHelpEntry> entry_it(entry_list);
- while (entry_it.Next() != NULL) {
- if (entry_it.Get()->GetName() == entry_name) {
- return entry_it.Get(); // Found!
- }
- }
- return NULL; // Not found...
-}
-
-cHelpType::~cHelpType() { while (entry_list.GetSize() > 0) delete entry_list.Pop(); }
-
-void cHelpType::PrintHTML()
-{
- if (manager->GetVerbose()) cout << " Category: " << GetName() << endl;
-
- cHelpEntry * cur_entry = NULL;
- tListIterator<cHelpEntry> entry_it(entry_list);
-
- while ( (cur_entry = entry_it.Next()) != NULL) {
- // Only print non-alias entries...
- if (cur_entry->IsAlias() == true) continue;
-
- ofstream fp(cur_entry->GetHTMLFilename());
-
- fp << "<html>" << endl
- << "<title>" << GetName() << " : "
- << cur_entry->GetName() << "</title>" << endl << endl
- << "<h1>" << cur_entry->GetName() << "</h1>" << endl << endl;
-
- cString out_desc( cur_entry->GetDesc() );
- int pos = 0;
- while ((pos = out_desc.Find('!', pos)) != -1) {
- // Grab the word we need to replace
- cString found_word(out_desc.GetWordAt(pos));
- cString new_word;
-
- // If we have a double '!' reduce it to a single one and continue...
- if (found_word[1] == '!') {
- out_desc.Replace("!!", "!", pos);
- pos++;
- }
-
- // Otherwise, do a proper replacement...
- else {
- // Find the root keyword...
- cString keyword(found_word);
- keyword.ClipFront(1); // Clip off the '!' on the string.
-
- // Clip end punctuation and save it if there is any.
- char end_char = ' ';
- const int last_pos = keyword.GetSize() - 1;
- if (keyword.IsNumeric(last_pos) == false &&
- keyword.IsLetter(last_pos) == false) {
- end_char = keyword[keyword.GetSize() - 1];
- keyword.ClipEnd(1);
- }
- // User can end a word in a '!' to preserve other punctuation...
- if (end_char == '!') end_char = ' ';
-
- // Determine what filename contains the new word...
- cHelpEntry * found_entry = manager->FindEntry(keyword);
- if (found_entry == NULL) {
- if (manager->GetVerbose() == true) {
- cerr << " Warning: unknown help keyword \""
- << keyword << "\"." << endl;
- }
- new_word.Set("<a href=\"help.%s.html\">%s</a>%c",
- keyword(), keyword(), end_char);
- }
- else {
- new_word.Set("<a href=\"%s\">%s</a>%c",
- found_entry->GetHTMLFilename()(), keyword(), end_char);
- }
-
- // Rebuild the description with the new word...
- out_desc.Replace(found_word, new_word, pos);
- pos += new_word.GetSize();
- }
- }
-
- fp << out_desc << endl;
- }
-}
-
Deleted: trunk/source/tools/help_type.hh
===================================================================
--- trunk/source/tools/help_type.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/help_type.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,46 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HELP_TYPE_HH
-#define HELP_TYPE_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef TLIST_HH
-#include "tList.hh"
-#endif
-
-class cHelpAlias;
-class cHelpEntry;
-class cHelpFullEntry;
-class cHelpManager;
-class cString; // aggregate
-template <class T> class tList; // aggregate
-
-class cHelpType {
-private:
- cString name;
- tList<cHelpEntry> entry_list;
- cHelpManager * manager;
- int num_entries;
-private:
- // disabled copy constructor.
- cHelpType(const cHelpType &);
-public:
- cHelpType(const cString & _name, cHelpManager * _manager)
- : name(_name), manager(_manager), num_entries(0) { ; }
- ~cHelpType();
- cHelpFullEntry * AddEntry(const cString & _name, const cString & _desc);
- cHelpAlias * AddAlias(const cString & alias_name, cHelpFullEntry * entry);
- const cString & GetName() const { return name; }
- cHelpEntry * FindEntry(const cString & entry_name);
-
- void PrintHTML();
-};
-
-#endif
Deleted: trunk/source/tools/histogram.cc
===================================================================
--- trunk/source/tools/histogram.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/histogram.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,88 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HISTOGRAM_HH
-#include "histogram.hh"
-#endif
-
-#ifndef FUNCTIONS_HH
-#include "functions.h"
-#endif
-
-extern "C" {
-#include <stdio.h>
-}
-
-#include <iostream>
-
-using namespace std;
-
-// cHistogram /////////////////////////////////////////////////////////////////
-
-cHistogram::cHistogram(int in_max, int in_min) {
- max_bin = in_max;
- min_bin = in_min;
- entry_count = 0;
- entry_total = 0;
-
- int num_bins = max_bin - min_bin + 1;
- bins = new int[num_bins];
- for (int i = 0; i < num_bins; i++) bins[i] = 0;
-}
-
-void cHistogram::Resize(int new_max, int new_min)
-{
-#ifdef DEBUG
- if (new_max < new_min) {
- cerr << "Error: Trying to resize histogram to [" << new_min << "," << new_max << "]" << endl;
- return;
- }
-#endif
-
- // Calculate new num bins.
- int new_num_bins = new_max - new_min + 1;
-
- // Setup new bins, copying over information...
- int cur_bin = 0;
- int overlap_min = Max(min_bin, new_min);
- int overlap_max = Min(max_bin, new_max);
-
- int * new_bins = new int[new_num_bins];
- for (cur_bin = new_min; cur_bin < min_bin; cur_bin++)
- new_bins[cur_bin - new_min] = 0;
- for (cur_bin = max_bin; cur_bin <= new_max; cur_bin++)
- new_bins[cur_bin - new_min] = 0;
- for (cur_bin = overlap_min; cur_bin <= overlap_max; cur_bin++)
- new_bins[cur_bin - new_min] = bins[cur_bin - min_bin];
-
- // Re-count bins...
- int new_count = 0;
- int new_total = 0;
- for (int i = 0; i < new_num_bins; i++) {
- new_count += new_bins[i];
- new_total += new_bins[i] * (i + new_min);
- }
- entry_count = new_count;
- entry_total = new_total;
-
- delete [] bins;
- bins = new_bins;
- max_bin = new_max;
- min_bin = new_min;
-}
-
-void cHistogram::Print()
-{
- FILE * fp = fopen("test.dat", "w");
- fprintf(fp, "Min = %d, Max = %d, Count = %d, Total = %d, Ave = %f\n",
- min_bin, max_bin, entry_count, entry_total, GetAverage());
- for (int i = min_bin; i <= max_bin; i++) {
- fprintf(fp, "%d : %d\n", i, bins[i - min_bin]);
- }
- fflush(fp);
- fclose(fp);
-}
Deleted: trunk/source/tools/histogram.hh
===================================================================
--- trunk/source/tools/histogram.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/histogram.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,203 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef HISTOGRAM_HH
-#define HISTOGRAM_HH
-
-#include <iostream>
-
-extern "C" {
-#include <math.h>
-}
-
-class cHistogram {
-private:
- int * bins;
- int min_bin;
- int max_bin;
- int entry_count;
- int entry_total;
-public:
- cHistogram(int in_max=1, int in_min=0);
- inline ~cHistogram() { delete [] bins; }
-
- void Resize(int new_max, int new_min=0);
- void Print();
- inline void Clear();
- inline void Insert(int value, int count=1);
- inline void Remove(int value);
- inline void RemoveBin(int value);
-
- inline double GetAverage()
- { return ((double)entry_total) / (double)entry_count; }
- inline double GetCountAverage()
- { return (double) entry_count / (double) GetNumBins(); }
- inline int GetMode();
- inline double GetVariance();
- inline double GetCountVariance();
- inline double GetStdDev();
- inline double GetCountStdDev();
- inline double GetEntropy();
- inline double GetNormEntropy();
-
- inline int GetCount() { return entry_count; }
- inline int GetCount(int value) { return bins[value - min_bin]; }
- inline int GetTotal() { return entry_total; }
- inline int GetMinBin() { return min_bin; }
- inline int GetMaxBin() { return max_bin; }
- inline int GetNumBins() { return max_bin - min_bin + 1; }
-};
-
-inline void cHistogram::Clear()
-{
- int num_bins = GetNumBins();
- for (int i = 0; i < num_bins; i++) {
- bins[i] = 0;
- }
- entry_count = 0;
- entry_total = 0;
-}
-
-
-inline void cHistogram::Insert(int value, int count)
-{
- if (value > max_bin || value < min_bin) {
- std::cerr << "Trying to insert " << value << " into Histogram of range ["
- << min_bin << "," << max_bin << "]" << std::endl;
- }
-
- bins[value - min_bin] += count;
- entry_count += count;
- entry_total += value * count;
-}
-
-inline void cHistogram::Remove(int value)
-{
-#ifdef DEBUG
- if (value > max_bin || value < min_bin) {
- std::cerr << "Trying to remove " << value << " into Histogram of range ["
- << min_bin << "," << max_bin << "]" << std::endl;
- return;
- }
- if (bins[value] <= 1) {
- std::cerr << "Warning: Trying to remove " << value << " from bin with "
- << bins[value] << " entries" << std::endl;
- return;
- }
-#endif
-
- bins[value - min_bin]--;
- entry_count--;
- entry_total -= value;
-}
-
-inline void cHistogram::RemoveBin(int value)
-{
-#ifdef DEBUG
- if (value > max_bin || value < min_bin) {
- std::cerr << "Warning: Trying to remove " << value
- << " in histogram of range [" << min_bin << "," << max_bin
- << "]" << std::endl;
- return;
- }
-#endif
-
- int old_size = bins[value - min_bin];
- bins[value - min_bin] = 0;
-
- entry_count -= old_size;
- entry_total -= value * old_size;
-}
-
-inline int cHistogram::GetMode()
-{
- int num_bins = GetNumBins();
- int mode = 0;
- for (int i = 1; i < num_bins; i++) {
- if (bins[i] > bins[mode]) mode = i;
- }
-
- return mode + min_bin;
-}
-
-inline double cHistogram::GetVariance()
-{
- if (entry_count < 2) return 0;
-
- double mean = GetAverage();
- double var = 0;
- double value = 0;
-
- int num_bins = GetNumBins();
- for (int i = 0; i < num_bins; i++) {
- value = (double) (i + min_bin) - mean;
- var += bins[i] * value * value;
- }
- var /= entry_count - 1;
-
- return var;
-}
-
-inline double cHistogram::GetCountVariance()
-{
- int num_bins = GetNumBins();
- if (num_bins < 2) return 0;
-
- double mean = GetCountAverage();
- double var = 0;
- double value = 0;
-
- for (int i = 0; i < num_bins; i++) {
- value = (double) bins[i] - mean;
- var += value * value;
- }
- var /= num_bins - 1;
-
- return var;
-}
-
-inline double cHistogram::GetStdDev()
-{
- return sqrt(GetVariance());
-}
-
-inline double cHistogram::GetCountStdDev()
-{
- return sqrt(GetCountVariance());
-}
-
-inline double cHistogram::GetEntropy()
-{
- int num_bins = GetNumBins();
-
- double entropy = 0.0;
- double prob = 0.0;
-
- for (int i = 0; i < num_bins; i++) {
- prob = (double) bins[i] / (double) entry_count;
- entropy -= prob * log(prob);
- }
-
- return entropy;
-}
-
-inline double cHistogram::GetNormEntropy()
-{
- int num_bins = GetNumBins();
-
- double entropy = 0.0;
- double prob = 0.0;
-
- for (int i = 0; i < num_bins; i++) {
- prob = ((double) bins[i]) / (double) entry_count;
- if (prob != 0.0) entropy -= prob * log(prob);
- }
-
- return entropy / log((double) num_bins);
-}
-
-#endif
Deleted: trunk/source/tools/indexed_block_struct.cc
===================================================================
--- trunk/source/tools/indexed_block_struct.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/indexed_block_struct.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,266 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INDEXED_BLOCK_STRUCT_HH
-#include "indexed_block_struct.hh"
-#endif
-
-#include <iostream>
-
-using namespace std;
-
-//////////////////////////
-// cIndexedBlockStruct
-//////////////////////////
-
-cIndexedBlockStruct::cIndexedBlockStruct(int in_num_scaled, int in_num_fixed,
- int in_num_ref)
-{
- num_fixed = in_num_fixed;
- num_scaled = in_num_scaled;
- num_ref = in_num_ref;
- num_data = 0;
-
- fixed_array = new cFixedBlock[num_fixed];
- scaled_array = new cRefBlock[num_scaled];
- ref_array = new int[num_ref];
-
- int i;
- for (i = 0; i < num_ref; i++) {
- ref_array[i] = -1;
- }
-
- fixed_used(0, 0);
- scaled_used = 0;
-
- total_size = 0;
- fixed_size = 0;
-}
-
-cIndexedBlockStruct::~cIndexedBlockStruct()
-{
- delete [] scaled_array;
- delete [] fixed_array;
- delete [] ref_array;
-}
-
-int cIndexedBlockStruct::AddData(int in_ref, int in_size)
-{
- // Only allow positive sized data, and only if there is room.
- if (in_size <= 0 || scaled_used >= num_scaled) return -1;
-
- // If this reference is already represented, combine them.
- if (ref_array[in_ref] >= 0) {
- in_size += scaled_array[ref_array[in_ref]].GetSize();
- RemoveRef(in_ref);
- }
-
- scaled_array[scaled_used].SetRef(in_ref);
- scaled_array[scaled_used].SetSize(in_size);
- ref_array[in_ref] = scaled_used;
-
- total_size += in_size;
- num_data++;
-
- return scaled_used++;
-}
-
-int cIndexedBlockStruct::AddDataTo(int in_ref, int in_index)
-{
- if (ref_array[in_ref] < 0) num_data++;
-
- scaled_array[in_index].SetRef(in_ref);
- ref_array[in_ref] = in_index;
-
- return scaled_array[in_index].GetSize();
-}
-
-void cIndexedBlockStruct::Clear()
-{
- for (int i = 0; i < num_ref; i++) {
- ref_array[i] = -1;
- }
-
- fixed_used(0,0);
- scaled_used = 0;
-
- total_size = 0;
- num_data = 0;
-}
-
-int cIndexedBlockStruct::Process()
-{
- if (!fixed_size) {
- CalcFixedSize();
- }
-
- int cur_scaled = 0;
- int cur_fixed = 0;
- int size_left = scaled_array[0].GetSize();
-
- // Set up the internal data for the first scaled block.
-
- scaled_array[0].SetStart(0, 0);
-
- // Move through the fixed blocks assigning each to the corresponding scaled
- // block. This is done by keeping track of the current scaled block for
- // a particular location, and keeping track the "size" until the next block.
-
- for(cur_fixed = 0; cur_fixed < num_fixed; cur_fixed++) {
- // Set the current fixed block to point to whatever scaled block we are
- // currently in.
-
- fixed_array[cur_fixed].SetStart(cur_scaled);
-
- // If the current scaled block covers the entire fixed block, then just
- // adjust the size_left and move on.
-
- if (size_left > fixed_size) {
- size_left -= fixed_size;
- continue;
- }
-
- // Otherwise, start moving through the scaled blocks until the size can
- // be covered.
-
- while (size_left <= fixed_size) {
- // move onto the next scaled block...
- cur_scaled++;
-
- // Check to see if we are finished...
- if (cur_scaled == scaled_used) {
- fixed_used(cur_fixed, size_left); // Store max coord
- return cur_fixed + 1;
- }
-
- // Setup the next cRefBlock...
-
- scaled_array[cur_scaled].SetStart(cur_fixed, size_left);
- if (size_left == fixed_size) {
- scaled_array[cur_scaled].SetStart(cur_fixed + 1, 0);
- }
-
- // Add the size of the new cRefBlock onto the size_left.
-
- size_left += scaled_array[cur_scaled].GetSize();
- }
-
- // Move onto the next fixed block.
- size_left -= fixed_size;
- }
-
- return -1;
-}
-
-int cIndexedBlockStruct::Update()
-{
- // @CAO make sure a process has been done at some point in the past?
-
- // If the data to NULL ratio is too low, have the update fail.
- // @CAO make this configurable!
-
- if (num_data * 2 + 2 < scaled_used) {
- return -1;
- }
-
- // Start out where the last Process() finished.
-
- int cur_scaled = fixed_array[fixed_used.GetBlockNum()].GetStart();
- int cur_fixed = scaled_array[cur_scaled].GetStart().GetBlockNum();
- int cur_offset = scaled_array[cur_scaled].GetStart().GetOffset();
- int size_left = scaled_array[cur_scaled].GetSize();
-
- // Re-adjust to make sure we are starting at the begining of a fixed block.
-
- if (cur_offset) {
- size_left += cur_offset - fixed_size;
- cur_fixed++;
- }
-
- // Move through the fixed blocks assigning each to the corresponding scaled
- // block. This is done by keeping track of the current scaled block for
- // a particular location, and keeping track the "size" until the next block.
-
- for(; cur_fixed < num_fixed; cur_fixed++) {
- // Set the current fixed block to point to whatever scaled block we are
- // currently in.
-
- fixed_array[cur_fixed].SetStart(cur_scaled);
-
- // If the current scaled block covers the entire fixed block, then just
- // adjust the size_left and move on.
-
- if (size_left > fixed_size) {
- size_left -= fixed_size;
- continue;
- }
-
- // Otherwise, start moving through the scaled blocks until the size can
- // be covered.
-
- while (size_left <= fixed_size) {
- // move onto the next scaled block...
- cur_scaled++;
-
- // Check to see if we are finished...
- if (cur_scaled == scaled_used) {
- fixed_used(cur_fixed, size_left); // Store max coord
- return cur_fixed + 1;
- }
-
- // Setup the next cScaledBlock...
-
- scaled_array[cur_scaled].SetStart(cur_fixed, size_left);
- if (size_left == fixed_size) {
- scaled_array[cur_scaled].SetStart(cur_fixed + 1, 0);
- }
-
- // Add the size of the new cScaledBlock onto the size_left.
-
- size_left += scaled_array[cur_scaled].GetSize();
- }
-
- // Move onto the next fixed block.
- size_left -= fixed_size;
- }
-
- return -1;
-}
-
-int cIndexedBlockStruct::Compress()
-{
- int scan_loc;
- int write_loc = 0;
-
- total_size = 0;
- for (scan_loc = 0; scan_loc < scaled_used; scan_loc++) {
- if (scaled_array[scan_loc].GetRef() >= 0) {
- if (scan_loc != write_loc) {
- scaled_array[write_loc] = scaled_array[scan_loc];
- scaled_array[scan_loc].SetRef(-1);
- scaled_array[scan_loc].SetSize(0);
- ref_array[scaled_array[write_loc].GetRef()] = write_loc;
- }
- total_size += scaled_array[write_loc].GetSize();
- write_loc++;
- }
- }
-
- scaled_used = write_loc;
-
- if (scaled_used != num_data)
- cout << "Warning: after Compress() scaled_used = " << scaled_used << ", while num_data = " << num_data << endl;
-
- return scaled_used;
-}
-
-void cIndexedBlockStruct::RemoveRef(int in_ref)
-{
- if (ref_array[in_ref] >= 0) num_data--;
- scaled_array[ref_array[in_ref]].SetRef(-1);
- ref_array[in_ref] = -1;
-}
Deleted: trunk/source/tools/indexed_block_struct.hh
===================================================================
--- trunk/source/tools/indexed_block_struct.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/indexed_block_struct.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,147 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-// See block_struct_proto.hh for a good description of this structure.
-
-// This file is a variation of the cBlockStruct data structure. It uses
-// reference numbers (which it takes in and passed out) rather than void
-// pointers. Additionally, it has a third array in which index i contains
-// the location in the scaled array for reference number i, so that
-// reference numbers are not lost with compression. The structure must be
-// initialized with the maximum reference number which will be passed into
-// it (so as to create the third array of that size.
-
-#ifndef INDEXED_BLOCK_STRUCT_HH
-#define INDEXED_BLOCK_STRUCT_HH
-
-#ifndef FIXED_BLOCK_HH
-#include "cFixedBlock.h"
-#endif
-#ifndef FIXED_COORDS_HH
-#include "cFixedCoords.h"
-#endif
-#ifndef REF_BLOCK_HH
-#include "ref_block.hh"
-#endif
-#ifndef UINT_HH
-#include "uint.hh"
-#endif
-
-class cFixedBlock; // accessed
-class cRefBlock; // accessed
-class cFixedCoords; // aggregate
-class cUInt; // aggregate
-
-class cIndexedBlockStruct {
-private:
- cFixedBlock * fixed_array;
- cRefBlock * scaled_array;
- int * ref_array;
-
- int num_fixed;
- int num_scaled;
- int num_ref;
- int num_data;
-
- cFixedCoords fixed_used;
- int scaled_used;
-
- cUInt total_size;
- int fixed_size;
-public:
- cIndexedBlockStruct(int in_num_scaled = 1, int in_num_fixed = 1,
- int in_num_ref = 1);
- ~cIndexedBlockStruct();
-
- // The following functions add a single piece of data to the scaled array,
- // but do not update the fixed array yet. In the first, the data and its
- // size are entered, and an index into the scaled block array returned, or
- // else -1 if the array is full. In the second, the data and the index
- // into the array are entered, and the size at that location returned.
- int AddData(int in_ref, int in_size);
- int AddDataTo(int in_ref, int in_index);
-
- // This function removes all of the data from the structure.
- void Clear();
-
- // This function takes the scaled array, and from it fully constructs the
- // proper fixed array. Any information which was in the fixed array is
- // completely erased and re-constructed. The number of cFixedBlock's used
- // is returned, or -1 if it overflows.
- int Process();
-
- // The next function looks at data which has been taken in since the last
- // time the fixed array was built or updated, and the new info at the end.
- // The total number of cFixedBlock's used is returned, or -1 if it overflows.
- int Update();
-
- // This function takes the scaled array, and removes any elements from it
- // which no longer point to data, and compresses everything to the begining.
- // This should always be followed shortly by adding any new data, and then
- // a Process(). The new number of cRefBlock's used is returned.
- int Compress();
-
- // Two functions to retrieve data from the structure.
- inline int Find(cFixedCoords & search_coords) const;
- inline int Find(int in_block, int in_offset) const;
- inline int Find(cUInt in_position) const;
-
- // A function to remove data from the structure...
- void RemoveRef(int in_ref);
-
- // Finally, internal variable control...
- inline int GetFixedSize() const { return fixed_size; }
- inline int GetBlocksUsed() const { return fixed_used.GetBlockNum() + 1; }
- inline void SetFixedSize(int in_fs) {
- fixed_size = in_fs;
- }
- inline void CalcFixedSize() {
- if (num_data && total_size.AsInt()) {
- fixed_size = (total_size / num_data).AsInt();
- }
- else fixed_size = 1;
- }
-};
-
-inline int cIndexedBlockStruct::Find(cFixedCoords & search_coords) const
-{
- // Make sure the find is within range.
- if (search_coords >= fixed_used) {
- return -1;
- }
-
- // Find the starting point in the scaled array for the search.
- int scaled_loc = fixed_array[search_coords.GetBlockNum()].GetStart();
- cFixedCoords cur_coords = scaled_array[scaled_loc].GetStart();
-
- // Starting at the starting point, move through the array until the entry
- // which covers this area is found.
- cur_coords.Add(0, scaled_array[scaled_loc].GetSize(), fixed_size);
-
- while (cur_coords <= search_coords) {
- scaled_loc++;
- cur_coords.Add(0, scaled_array[scaled_loc].GetSize(), fixed_size);
- }
-
- // Return the data in the found entry.
- return scaled_array[scaled_loc].GetRef();
-}
-
-inline int cIndexedBlockStruct::Find(int in_block, int in_offset) const
-{
- cFixedCoords search_coords(in_block, in_offset);
- return Find(search_coords);
-}
-
-inline int cIndexedBlockStruct::Find(cUInt in_position) const
-{
- cFixedCoords search_coords((in_position /= fixed_size).AsInt(),
- (in_position %= fixed_size).AsInt());
- return Find(search_coords);
-}
-
-#endif
Deleted: trunk/source/tools/init_file.cc
===================================================================
--- trunk/source/tools/init_file.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/init_file.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,272 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INIT_FILE_HH
-#include "init_file.hh"
-#endif
-
-#ifndef STRING_ITERATOR_HH
-#include "string_iterator.hh"
-#endif
-
-using namespace std;
-
-////////////////
-// cInitFile
-////////////////
-
-cInitFile::cInitFile() : filetype("unknown"), active_line(0)
-{
-}
-
-cInitFile::cInitFile(cString in_filename)
- : cFile(in_filename)
- , filetype("unknown")
- , active_line(0)
-{
-}
-
-cInitFile::~cInitFile()
-{
-}
-
-void cInitFile::Load()
-{
- if (!IsOpen()) return; // The file must be opened!
- cStringList line_list; // Create a list to load all of the lines into.
-
- cString buf;
- ReadLine(buf);
-
- // If this file doesn't work properly, return!
- if ( Eof() && !buf.GetSize() ) return;
-
- line_list.PushRear(buf);
-
- ReadLine(buf);
- while( !Eof() || buf.GetSize() ){
- line_list.PushRear(buf);
- ReadLine(buf);
- }
-
- // Copy all of the lines into the line array.
- const int file_size = line_list.GetSize();
- line_array.Resize(file_size);
-
- for (int i = 0; i < file_size; i++) {
- line_array[i].line = line_list.Pop();
- line_array[i].line_num = i;
- line_array[i].used = false;
- }
-}
-
-void cInitFile::LoadStream(istream & in_stream)
-{
- if (in_stream.good() == false) {
- cerr << "Bad stream sent to cInitFile::LoadStream()" << endl;
- return;
- }
-
- cStringList line_list; // Create a list to load all of the lines into.
-
- char cur_line[MAX_STRING_LENGTH];
- in_stream.getline(cur_line, MAX_STRING_LENGTH);
-
- // If this file doesn't work properly, return.
- if( !in_stream && !strlen(cur_line) ) return;
-
- in_stream.getline(cur_line, MAX_STRING_LENGTH);
- while ( in_stream ) {
- line_list.PushRear(cur_line);
- in_stream.getline(cur_line, MAX_STRING_LENGTH);
- }
-
- // Copy all of the lines into the line array.
- const int file_size = line_list.GetSize();
- line_array.Resize(file_size);
-
- for (int i = 0; i < file_size; i++) {
- line_array[i].line = line_list.Pop();
- line_array[i].line_num = i;
- line_array[i].used = false;
- }
-}
-
-
-void cInitFile::Save(const cString & in_filename)
-{
- cString save_filename(GetFilename());
- if (in_filename != "") save_filename = in_filename;
-
- ofstream fp_save(save_filename());
-
- // Go through the lines saving them...
- for (int i = 0; i < line_array.GetSize(); i++) {
- fp_save << line_array[i].line << endl;
- }
-
- fp_save.close();
-}
-
-
-void cInitFile::ReadHeader()
-{
- cString type_line = GetLine(0);
- cString format_line = GetLine(1);
-
- if (type_line.PopWord() == "#filetype") filetype = type_line.PopWord();
- if (format_line.PopWord() == "#format") file_format.Load(format_line);
-}
-
-
-void cInitFile::Compress()
-{
- // We're going to handle this compression in multiple passes to make it
- // clean and easy.
-
- const int num_lines = line_array.GetSize();
-
- // PASS 1: Remove all comments -- everything after a '#' sign -- and
- // compress all whitespace into a single space.
- for (int i = 0; i < num_lines; i++) {
- cString & cur_line = line_array[i].line;
-
- // Remove all characters past a comment mark and reduce whitespace.
- int comment_pos = cur_line.Find('#');
- if (comment_pos >= 0) cur_line.Clip(comment_pos);
- cur_line.CompressWhitespace();
- }
-
- // PASS 2: Merge each line ending with a continue marker '\' with the
- // next line.
-
- int prev_line_id = -1;
- bool continued = false;
- for (int i = 0; i < num_lines; i++) {
- // If the current line is a continuation, append it to the previous line.
- if (continued == true) {
- line_array[prev_line_id].line += line_array[i].line;
- line_array[i].line = "";
- }
- else prev_line_id = i;
-
- // See if the prev_line is continued, and if it is, take care of it.
- cString & prev_line = line_array[prev_line_id].line;
- if (prev_line.GetSize() > 0 &&
- prev_line[prev_line.GetSize() - 1] == '\\') {
- prev_line.ClipEnd(1); // Remove continuation mark.
- continued = true;
- }
- else continued = false;
- }
-
- // PASS 3: Remove now-empty lines.
-
- int next_id = 0;
- for (int i = 0; i < num_lines; i++) {
- // If we should keep this line, compact it.
- if (line_array[i].line.GetSize() > 0) {
- if (next_id != i) line_array[next_id] = line_array[i];
- next_id++;
- }
- }
-
- // Clip any extra lines at the end of the array.
-
- line_array.Resize(next_id);
-
- // Move the active line back to the beginning to avoid confusion.
- active_line = 0;
-}
-
-
-void cInitFile::AddLine(cString & in_string)
-{
- extra_lines.Push(in_string);
-}
-
-cString cInitFile::GetLine(int line_num)
-{
- if (line_num < 0 || line_num >= line_array.GetSize()) return "";
- return line_array[line_num].line;
-}
-
-
-bool cInitFile::Find(cString & in_string, const cString & keyword,
- int col) const
-{
- bool found = false;
-
- // Loop through all of the lines looking for this keyword. Start with
- // the actual file...
- for (int line_id = 0; line_id < line_array.GetSize(); line_id++) {
- cString cur_string = line_array[line_id].line;
-
- // If we found the keyword, return it and stop.
- if (cur_string.GetWord(col) == keyword) {
- line_array[line_id].used = true;
- in_string = cur_string;
- found = true;
- }
- }
-
- // Next, look through any extra lines appended to the file.
- cStringIterator list_it(extra_lines);
- while ( list_it.AtEnd() == false ) {
- list_it.Next();
- cString cur_string = list_it.Get();
-
- // If we found the keyword, return it and stop.
- if (cur_string.GetWord(col) == keyword) {
- in_string = cur_string;
- found = true;
- }
- }
-
- return found; // Not Found...
-}
-
-
-cString cInitFile::ReadString(const cString & name, cString def) const
-{
- // See if we definately can't find the keyword.
- if (name == "" || IsOpen() == false) return def;
-
- // Search for the keyword.
- cString cur_line;
- if (Find(cur_line, name, 0) == false) {
- if (verbose == true) {
- cerr << "Warning: " << name << " not in \"" << GetFilename()
- << "\", defaulting to: " << def <<endl;
- }
- return def;
- }
-
- // Pop off the keyword, and return the remainder of the line.
- cur_line.PopWord();
- return cur_line;
-}
-
-
-bool cInitFile::WarnUnused() const
-{
- bool found = false;
-
- for (int i = 0; i < line_array.GetSize(); i++) {
- if (line_array[i].used == false) {
- if (found == false) {
- found = true;
- cerr << "Warning: unknown lines in input file '" << filename << "':" << endl;
- }
- cerr << " " << line_array[i].line_num + 1 << ": " << line_array[i].line << endl;
- }
- }
-
- if (found == true) cerr << endl;
-
- return found;
-}
Deleted: trunk/source/tools/init_file.hh
===================================================================
--- trunk/source/tools/init_file.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/init_file.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,165 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INIT_FILE_HH
-#define INIT_FILE_HH
-
-#include <iostream>
-
-#ifndef FILE_HH
-#include "cFile.h"
-#endif
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef STRING_LIST_HH
-#include "string_list.hh"
-#endif
-#ifndef TARRAY_HH
-#include "tArray.hh"
-#endif
-
-/**
- * A class to handle initialization files.
- **/
-
-class cString; // aggregate
-class cStringList; // aggregate
-template <class T> class tArray; // aggregate
-
-class cInitFile : public cFile {
-private:
- cInitFile(const cInitFile &);
-private:
- struct sFileLineInfo {
- cString line;
- int line_num;
- mutable bool used;
- };
-
- tArray<sFileLineInfo> line_array;
- cStringList extra_lines;
- cString filetype;
- cStringList file_format;
-
- int active_line;
-public:
- /**
- * The empty constructor constructs an object that is in a clean
- * state. You can set the file to open with @ref cFile::Open() later on.
- **/
- cInitFile();
-
- /**
- * Opens the file with the given name.
- *
- * @param in_filename Name of the initialization file to open.
- **/
- cInitFile(cString in_filename);
-
- ~cInitFile();
-
- /**
- * Loads the file into memory.
- **/
- void Load();
-
- /**
- * Loads a stream into memory rather than a file.
- **/
- void LoadStream(std::istream & in_steam);
-
- void Save(const cString & in_filename = "");
-
- /**
- * Parse heading information about the contents of the file loaded into
- * memory, if available.
- **/
- void ReadHeader();
-
- /**
- * Remove all comments and whitespace from a file loaded into memory.
- * Comments are currently marked with the character '#'.
- **/
- void Compress();
-
- /**
- * Add a line to the beginning of the file in memory.
- * This function is used by @ref cGenesis.
- *
- * @param in_string The string to be added.
- **/
- void AddLine(cString & in_string);
-
- /**
- * Get a line from the file in memory. If called without parameters,
- * the first line of the file is returned.
- *
- * @param line_num The line count of the line to be returned
- * (starting from 0).
- **/
- cString GetLine(int line_num=0);
-
-
- /**
- * Get the active line and advance to the next line.
- **/
- cString GetNextLine() { return GetLine(active_line++); }
-
-
- /**
- * Reset the active line to the beginning (or the point specified...
- **/
- void ResetLine(int new_pos=0) { active_line = new_pos; }
-
- /**
- * Returns the line number that is active.
- **/
- int GetLineNum() { return active_line; }
-
- /**
- * Checks whether any line contains a given keyword in the specified
- * column. Stops when the first occurrence of the keyword is found.
- *
- * @return TRUE if keyword is found, FALSE otherwise.
- * @param in_string A string variable that will contain the found line
- * if search succeeds, and will have undefined contents otherwise.
- * @param keyword The keyword to look for.
- * @param col The column in which the keyword should be found.
- **/
- bool Find(cString & in_string, const cString & keyword, int col) const;
-
- /**
- * Reads an entry in the initialization file that has a given keyword
- * in the first column. The keyword is not part of the returned string.
- *
- * @return The entry that has been found.
- * @param name The keyword to look for (the name of the entry).
- * @param def If the keyword is not found, def is returned. This allows
- * one to set standard values that are used if the user does not override
- * them.
- **/
- cString ReadString(const cString & name, cString def = "") const;
-
- /**
- * Looks over all lines loaded into the file, and warns if any of them
- * have not been the targets of the Find() method. All methods that
- * search the file for a keyword use find, so this can be used to locate
- * keywords that are not understood by the program.
- **/
- bool WarnUnused() const;
-
- /**
- * Return the number of lines in memory.
- **/
- int GetNumLines() const { return line_array.GetSize(); }
-
- const cString & GetFiletype() { return filetype; }
- cStringList & GetFormat() { return file_format; }
-};
-
-#endif
Deleted: trunk/source/tools/int_sum.cc
===================================================================
--- trunk/source/tools/int_sum.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/int_sum.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,14 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INT_SUM_HH
-#include "int_sum.hh"
-#endif
-
-// cIntSum ///////////////////////////////////////////////////////////////////
-
-const double cIntSum::INF_ERR = 0;
Deleted: trunk/source/tools/int_sum.hh
===================================================================
--- trunk/source/tools/int_sum.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/int_sum.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,86 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INT_SUM_HH
-#define INT_SUM_HH
-
-#include <math.h>
-#include <limits.h>
-
-class cIntSum {
-private:
- long s1; // Sum (x)
- long s2; // Sum of squares (x^2)
- long s3; // Sum of cubes (x^3)
- long s4; // Sum of x^4
- long n;
-
-public:
- static const double INF_ERR; // Value Returned by StdError if Infinate
-
- cIntSum(){ Clear(); }
-
- void Clear(){ s1=0; s2=0; s3=0; s4=0; n=0; }
-
- long Count() const { return n; }
- long N() const { return n; }
- long Sum() const { return s1; }
- long S1() const { return s1; }
- long SumOfSquares() const { return s2; }
- long S2() const { return s2; }
- long SumOfCubes() const { return s3; }
- long S3() const { return s3; }
- long S4() const { return s4; }
-
- double Average() const { return ( n >1 ) ? ((double)s1/n) : 0; }
-
- double Variance() const { return ( n > 1 ) ?
- (s2 - s1*s1/(double)n) / (double)(n-1) : INF_ERR; }
- //n*(s2/n - s1/n*s1/n) / (n-1) : INF_ERR; }
- double StdDeviation() const { return sqrt(Variance()); }
- double StdError() const { return (n > 1) ?
- sqrt(s2 / (double)(n * (n-1))) : INF_ERR; }
-
- double Skewness() const { return ( n > 2 ) ?
- (n*s3 - 3*s2*s1 + 2*s1*s1*s1/(double)n) / (double)((n-1)*(n-2)) : INF_ERR; }
- //n*n*(s3/n - 3*s2/n*s1/n + 2*s1/n*s1/n*s1/n)/((n-1)*(n-2)) : INF_ERR; }
-
- double Kurtosis() const { return ( n > 3 ) ?
- //n*n*(n+1)*(s4/n - 4*s3/n*s1/n + 6*s2/n*s1/n*s1/n -
- //3*s1/n*s1/n*s1/n*s1/n)/((n-1)*(n-2)*(n-3)) :
- (n+1)*(n*s4 - 4*s3*s1 + 6*s2*s1*s1/(double)n -
- 3*s1*s1*s1/(double)n*s1/(double)n) /
- (double)((n-1)*(n-2)*(n-3)) :
- INF_ERR; }
-
- // Notation Shortcuts
- double Ave() const { return Average(); }
- double Var() const { return Variance(); }
- double Kur() const { return Kurtosis(); }
- double Skw() const { return Skewness(); }
-
-
- void Add(long value, long weight=1){
- long w_val = value * weight;
- n += weight;
- s1 += w_val;
- s2 += w_val * w_val;
- s3 += w_val * w_val * w_val;
- s4 += w_val * w_val * w_val * w_val;
- }
-
- void Subtract(long value, long weight=1){
- long w_val = value * weight;
- n -= weight;
- s1 -= w_val;
- s2 -= w_val * w_val;
- s3 -= w_val * w_val * w_val;
- s4 -= w_val * w_val * w_val * w_val;
- }
-};
-
-#endif
Deleted: trunk/source/tools/integrated_schedule.cc
===================================================================
--- trunk/source/tools/integrated_schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/integrated_schedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,203 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "integrated_schedule.hh"
-
-#include "cChangeList.h"
-#include "functions.h"
-#include "integrated_schedule_node.hh"
-#include "merit.hh"
-
-#include <iostream>
-using namespace std;
-
-
-/////////////////////////
-// cIntegratedSchedule
-/////////////////////////
-
-cIntegratedSchedule::cIntegratedSchedule(int _item_count)
- : cSchedule(_item_count)
-{
- num_active_nodes = 0;
-
- // Create the merit_chart; they should all init to default value.
- merit_chart = new cMerit[item_count];
- for (int i = 0; i < item_count; i++) {
- merit_chart[i] = 0;
- }
-}
-
-cIntegratedSchedule::~cIntegratedSchedule()
-{
- for (int i = 0; i < node_array.GetSize(); i++) {
- if (node_array[i] != NULL) delete node_array[i];
- }
- delete [] merit_chart;
-}
-
-bool cIntegratedSchedule::OK()
-{
- // Test that we have an acurate count of the number of active nodes.
-
- int test_active_nodes = 0;
- for (int i = 0; i < node_array.GetSize(); i++) {
- if (node_array[i]) test_active_nodes++;
- }
-
- assert(test_active_nodes == num_active_nodes); // active_node count mismatch.
-
- // Test each node to make sure it is OK.
-
- for (int i = 0; i < node_array.GetSize(); i++) {
- if (node_array[i] != NULL) node_array[i]->OK();
- }
-
- return true;
-}
-
-
-void cIntegratedSchedule::Adjust(int item_id, const cMerit & new_merit)
-{
- if (cChangeList *change_list = GetChangeList()) {
- change_list->MarkChange(item_id);
- }
- // Grab the old_merit, the new merit, and compare them.
- const cMerit old_merit = merit_chart[item_id];
-
- // If the merit is still the same, we're done here.
- if (old_merit == new_merit) return;
-
- // Save the new merit to the merit_chart.
- merit_chart[item_id] = new_merit;
-
- // Re-adjust the lists.
- int merit_magnitude = Max( old_merit.GetNumBits(), new_merit.GetNumBits() );
- for (int i = 0; i < merit_magnitude; i++) {
- bool old_bit = old_merit.GetBit(i);
- bool new_bit = new_merit.GetBit(i);
-
- if (old_bit && !new_bit) {
- // Remove the item from this node...
- node_array[i]->Remove(item_id);
- if (node_array[i]->GetSize() == 0) RemoveNode(i);
- }
-
- if (!old_bit && new_bit) {
- // Add the item from this node...
- if (i >= node_array.GetSize() || !node_array[i]) InsertNode(i);
- node_array[i]->Insert(item_id);
- }
- }
-}
-
-
-int cIntegratedSchedule::GetNextID()
-{
- assert(node_array.GetSize() > 0); // Running scheduler w/ no entries!
-
- const int last_id = node_array.GetSize() - 1;
-
- // Make sure there are organisms in the scheduler!
- if (node_array[last_id] == NULL) return -1;
-
- int next_id = -1;
- while (next_id < 0) {
- next_id = node_array[last_id]->GetNextID();
- }
-
- return next_id;
-}
-
-double cIntegratedSchedule::GetStatus(int id)
-{
- return merit_chart[id].GetDouble();
-}
-
-
-///////// --- private //////////
-
-void cIntegratedSchedule::InsertNode(int node_id)
-{
- // Test if trying to create node that already exists.
- assert(node_id >= node_array.GetSize() || node_array[node_id] == NULL);
-
- cIntegratedScheduleNode * new_node =
- new cIntegratedScheduleNode(item_count, node_id);
-
- if (node_id >= node_array.GetSize()) ResizeNodes(node_id);
-
- node_array[node_id] = new_node;
-
- // Find the node to mark as the 'prev'.
- for (int prev_id = node_id + 1; prev_id < node_array.GetSize(); prev_id++) {
- cIntegratedScheduleNode * prev_node = node_array[prev_id];
- if (prev_node) {
- new_node->SetPrev(prev_node);
- prev_node->SetNext(new_node);
- prev_node->SetProcessSize(1 << (prev_id - node_id - 1));
- break;
- }
- }
-
- // And find the node to mark as the 'next'.
- for (int next_id = node_id - 1; next_id >= 0; next_id--) {
- cIntegratedScheduleNode * next_node = node_array[next_id];
- if (next_node) {
- new_node->SetNext(next_node);
- next_node->SetPrev(new_node);
- new_node->SetProcessSize(1 << (node_id - next_id - 1));
- break;
- }
- }
-
- num_active_nodes++;
-}
-
-void cIntegratedSchedule::RemoveNode(int node_id)
-{
- assert(node_array[node_id] != NULL); // Trying to remove non-existant node.
-
- cIntegratedScheduleNode * old_node = node_array[node_id];
- cIntegratedScheduleNode * next_node = old_node->GetNext();
- cIntegratedScheduleNode * prev_node = old_node->GetPrev();
- node_array[node_id] = NULL;
-
- if (next_node) next_node->SetPrev(prev_node);
- if (prev_node) {
- prev_node->SetNext(next_node);
- prev_node->SetProcessSize(old_node->GetProcessSize() *
- prev_node->GetProcessSize() * 2);
- }
-
- if (node_id == node_array.GetSize() - 1) {
- if (!old_node->GetNext()) ResizeNodes(0);
- else ResizeNodes(old_node->GetNext()->GetID());
- }
-
- delete old_node;
-
- num_active_nodes--;
-}
-
-void cIntegratedSchedule::ResizeNodes(int new_max)
-{
- int old_size = node_array.GetSize();
- int new_size = new_max + 1; // 0 to new_max...
-
- // Clean up tail portions of the array being cut off.
- for (int i = new_size; i < old_size; i++) {
- if (node_array[i]) delete node_array[i];
- }
-
- node_array.Resize(new_size);
-
- // Mark as NULL any new cells added to the array.
- for (int i = old_size; i < new_size; i++) {
- node_array[i] = NULL;
- }
-}
Deleted: trunk/source/tools/integrated_schedule.hh
===================================================================
--- trunk/source/tools/integrated_schedule.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/integrated_schedule.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,53 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INTEGRATED_SCHEDULE_HH
-#define INTEGRATED_SCHEDULE_HH
-
-#ifndef SCHEDULE_HH
-#include "schedule.hh"
-#endif
-#ifndef TARRAY_HH
-#include "tArray.hh"
-#endif
-
-/**
- * The cIntegratedSchedule method relies on breaking up all merits into
- * sums of powers of 2 (i.e. using the binary representation of the merit).
- * All items with merits in the highest power of two will get the most
- * time, and subsequent merit components will have time divided,
- * continuing recursively. The simplest way of doing this while maximizing
- * evenness of distribution of time slices is to simply alternate executing
- * the best, and everything else (where in everything else we again alternate
- * with the best of this sub-list recursively).
- **/
-
-class cIntegratedScheduleNode;
-class cMerit;
-template <class T> class tArray; // aggregate
-
-class cIntegratedSchedule : public cSchedule {
-private:
- tArray<cIntegratedScheduleNode *> node_array;
- int num_active_nodes;
- cMerit * merit_chart;
-
- void InsertNode(int node_id);
- void RemoveNode(int node_id);
- void ResizeNodes(int new_size);
-public:
- cIntegratedSchedule(int _item_count);
- ~cIntegratedSchedule();
-
- void Adjust(int item_id, const cMerit & new_merit);
- int GetNextID();
- double GetStatus(int id);
-
- bool OK();
-};
-
-#endif
Deleted: trunk/source/tools/integrated_schedule_node.cc
===================================================================
--- trunk/source/tools/integrated_schedule_node.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/integrated_schedule_node.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,175 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INTEGRATED_SCHEDULE_NODE_HH
-#include "integrated_schedule_node.hh"
-#endif
-
-/////////////////////////////
-// cIntegratedScheduleNode
-/////////////////////////////
-
-cIntegratedScheduleNode::cIntegratedScheduleNode(int _item_count, int in_id)
- : active_array(_item_count)
-{
- // Store the input variables.
-
- node_id = in_id;
-
- // Initialize the remaining variables.
-
- for (int i = 0; i < active_array.GetSize(); i++) {
- active_array[i] = 0;
- }
- first_entry = -1;
- active_entry = -1;
- size = 0;
- process_size = 1;
- process_count = 0;
- execute = true;
- next = NULL;
- prev = NULL;
-}
-
-cIntegratedScheduleNode::~cIntegratedScheduleNode()
-{
-}
-
-
-bool cIntegratedScheduleNode::OK()
-{
- bool result = true;
-
- // Make sure the active_array is setup correctly.
-
- int size_check = 0;
- int next_check = first_entry;
- for (int i = 0; i < active_array.GetSize(); i++) {
- if (active_array[i] != 0) {
- size_check++;
- assert(next_check == i); // Node entries do no match!
- next_check = active_array[i];
- }
- }
- assert(next_check == -1); // Node array not properly terminated.
-
- // Make sure the sizes line up...
- assert(size == size_check); // size and active node count mismatch.
-
- return result;
-}
-
-void cIntegratedScheduleNode::Insert(int item_id)
-{
- assert(item_id >= 0 && item_id < active_array.GetSize()); // Illegal ID
-
- // If this item is already active in this node, ignore this call...
- if (active_array[item_id] != 0) return;
-
- // See if we're dealing with a new first_entry...
- if (first_entry == -1 || item_id < first_entry) {
- active_array[item_id] = first_entry;
- first_entry = item_id;
- }
- else {
- // Otherwise find the predecessor to this item in the list...
- int prev_item;
- for (prev_item = item_id - 1; prev_item >= 0; prev_item--) {
- if (active_array[prev_item] != 0) break;
- }
- assert(prev_item >= 0); // prev_item is first, but not identified.
-
- // Make the predecessor point to it, and have it point to the CPU that
- // the old predecessor pointed to.
- active_array[item_id] = active_array[prev_item];
- active_array[prev_item] = item_id;
- }
-
- size++;
-}
-
-void cIntegratedScheduleNode::Remove(int item_id)
-{
- assert(item_id >= 0 && item_id < active_array.GetSize()); // Illegal ID
-
- // If this item is already inactive, ignore this call...
- if (active_array[item_id] == 0) return;
-
- // If this is the first_entry, adjust it!
- if (first_entry == item_id) {
- first_entry = active_array[item_id];
- }
- else {
- // Find the predecessor to this item in the list...
- int prev_item;
- for (prev_item = item_id - 1; prev_item >= 0; prev_item--) {
- if (active_array[prev_item] != 0) break;
- }
- assert(prev_item >= 0); // prev_item is first, but not identified.
-
- // Make the predecessor point to the item removed used to point to.
- active_array[prev_item] = active_array[item_id];
- }
-
- active_array[item_id] = 0;
- size--;
-}
-
-
-// Execute everything on list, and then shift to calling the next node.
-// Wait for the next node to return a -1 before shifting back to this one.
-
-int cIntegratedScheduleNode::GetNextID()
-{
- // Alternate between this node's Process and the next's.
- if (execute == false) {
- // If there is a next node, we may be working on it...
- int next_id = -1;
- if (next != NULL) next_id = next->GetNextID();
-
- // If next_id is a -1, either we don't have a next node, or else it
- // is finished with its execution.
-
- if (next_id == -1) {
- execute = true;
- process_count = 0;
- active_entry = -1;
- }
-
- return next_id;
- }
-
- // Find the next active_entry...
-
- // If we were at the end of the list, start over...
- if (active_entry == -1) active_entry = first_entry;
-
- // If this entry no longer exists, hunt for the next active entry manually...
- else if (active_array[active_entry] == 0) {
- while (active_entry < active_array.GetSize() &&
- active_array[active_entry] == 0) {
- active_entry++;
- }
- if (active_entry == active_array.GetSize()) active_entry = -1;
- }
-
- // Otherwise, if the entry does exist, we can just look the next one up.
- else active_entry = active_array[active_entry];
-
-
- // If we have now hit the end of this list, move on to the next node.
-
- if (active_entry == -1) {
- process_count++;
- if (process_count >= process_size) execute = false;
- }
-
-// cout << "Running " << active_entry << " from node " << node_id
-// << " (size = " << size << ", first = " << first_entry << ")" << endl;
-
- return active_entry;
-}
Deleted: trunk/source/tools/integrated_schedule_node.hh
===================================================================
--- trunk/source/tools/integrated_schedule_node.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/integrated_schedule_node.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,74 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef INTEGRATED_SCHEDULE_NODE_HH
-#define INTEGRATED_SCHEDULE_NODE_HH
-
-#ifndef TARRAY_HH
-#include "tArray.hh"
-#endif
-
-/**
- * The cIntegratedScheduleNode object manages bundlings of item's for the
- * integrated time slicing object (cIntegratedSchedule). When GetNextID()
- * is called on one of these nodes, it must either choose from itself, or
- * pass the call down to the nodes below it (by running the GetNextID()
- * method of the next node). If the node alternates between everything in
- * its own list the next node's list, then we have a perfect Logrithmic
- * (base 2) decrease in activity. Sometimes a merit will be skipped in the
- * list, so the next node should only be called one out of every four times,
- * etc.
- *
- * This allows binary representations of merits to determine which nodes
- * each item should be included in.
- **/
-
-template <class T> class tArray; // aggregate
-
-class cIntegratedScheduleNode {
-private:
- tArray<int> active_array; // Each cell in this array corressponds to the
- // item with the same ID. If creature is not in the
- // list, its value in the array will be 0. If it is in
- // the list, it will point to the cell of the next
- // included creature. The last included creature has
- // a -1 in its cell.
- int first_entry; // ID of first active creature.
- int active_entry; // ID of next scheduled entry.
- int node_id; // A unique id (representing the relative merit bit).
-
- int size; // Number of active items in this node.
- int process_size; // Number of times this node should be executed before
- // the next node is.
- int process_count; // Number of times this node has been executed.
- bool execute; // Should this node execute or pass?
-
- cIntegratedScheduleNode * next;
- cIntegratedScheduleNode * prev;
-public:
- cIntegratedScheduleNode(int _item_count = 0, int in_id = -1);
- ~cIntegratedScheduleNode();
-
- void Insert(int item_id);
- void Remove(int item_id);
- int GetNextID();
-
- bool OK();
-
- inline void SetProcessSize(int in_p_size) { process_size = in_p_size; }
- inline void SetNext(cIntegratedScheduleNode * in_next) { next = in_next; }
- inline void SetPrev(cIntegratedScheduleNode * in_prev) { prev = in_prev; }
-
- inline int GetID() { return node_id; }
- inline int GetSize() { return size; }
- inline int GetProcessSize() { return process_size; }
- inline int GetProcessCount() { return process_count; }
- inline cIntegratedScheduleNode * GetNext() { return next; }
- inline cIntegratedScheduleNode * GetPrev() { return prev; }
-};
-
-#endif
Deleted: trunk/source/tools/merit.cc
===================================================================
--- trunk/source/tools/merit.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/merit.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,90 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2001 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "merit.hh"
-
-
-using namespace std;
-
-
-void cMerit::UpdateValue(double in_value){
- const int max_bits = sizeof(unsigned int)*8;
- static double mult[max_bits];
- static bool mult_initilalized = false;
-
- // Do not allow negative merits.
- if (in_value < 0.0) in_value = 0.0;
-
- // Initilize multipliers only once
- if( mult_initilalized == false ){
- //cout<<"initializing multipliers"<<endl;
- mult_initilalized = true;
- for( int i=0; i<max_bits; ++i ){
- mult[i] = pow((double)2,i);
- //cout<<" mult["<<i<<"] = "<<mult[i]<<endl;
- }
- }
-
-
- value = in_value;
-
- double mant = frexp (value , &bits);
-
- //cout<<value<<" = "<<mant<<" * 2 ^ "<<bits<<endl;
-
- if( bits > max_bits ){
- offset = bits - max_bits;
- }else{
- offset = 0;
- }
-
- base = (unsigned int) (mant * mult[bits-offset-1] * 2 );
-
- //cout<<value<<" = "<<base<<" ["<<bits<<" bits] "<<" * 2 ^ "<<offset;
- //cout<<" = "<<(base * pow((double)2,offset))<<endl;
-}
-
-
-ostream & cMerit::BinaryPrint(ostream & os) const {
- for( int i=GetNumBits()-1; i>=0; --i ){
- os<<GetBit(i);
- }
- return os;
-}
-
-
-bool cMerit::OK() const {
- double test_value = (double)base * pow((double)2,(int)offset);
- int test_bits = (int)(log(value)/log((double)2)) + 1;
- if( base == 0 ) test_bits = 0;
-
- // Uncomment block for debugging output and assertion of OK
- /*
- cout<<"cMerit Ok? ";
- cout<<base<<" * 2^"<<offset<<" = "<<test_value<<" ~= "<<value<<endl;
- cout<<"\tnum_bits="<<GetNumBits()<<" ?= "<<test_bits<<endl;
- BinaryPrint(cout)<<endl;
-
- */
- assert ( test_bits == bits &&
- ( test_value <= value * (1 + 1/UINT_MAX) ||
- test_value >= value / (1 + 1/UINT_MAX) ) );
-
- return ( test_bits == bits &&
- ( test_value <= value * (1 + 1/UINT_MAX) ||
- test_value >= value / (1 + 1/UINT_MAX) ) );
-}
-
-
-
-
-ostream & operator<<(ostream & os, const cMerit & merit){
- os<<merit.GetDouble();
- return os;
-}
-
-
Deleted: trunk/source/tools/merit.hh
===================================================================
--- trunk/source/tools/merit.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/merit.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,83 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef MERIT_HH
-#define MERIT_HH
-
-#include <iostream>
-#include <math.h>
-#include <limits.h>
-#include <assert.h>
-
-#ifndef UINT
-#define UINT unsigned int
-#endif
-
-class cMerit {
-protected:
- int bits;
- UINT base;
- UINT offset;
- double value;
-
- void UpdateValue(double in_value);
-
-public:
- cMerit() : bits(0), base(0), offset(0), value(0) {;}
-
- explicit cMerit(const int in_value){ UpdateValue(in_value); }
- explicit cMerit(const UINT in_value){ UpdateValue(in_value); }
- explicit cMerit(const double in_value){ UpdateValue(in_value); }
-
- bool OK() const ;
-
- void operator=(const cMerit & _merit){
- bits = _merit.bits;
- base = _merit.base;
- offset = _merit.offset;
- value = _merit.value; }
-
- void operator=(double _merit){ UpdateValue(_merit); }
- void operator+=(const cMerit & _m){ UpdateValue(value + _m.GetDouble()); }
-
- int operator>(const cMerit & _m) const { return value > _m.GetDouble(); }
- int operator<(const cMerit & _m) const { return value < _m.GetDouble(); }
- int operator>=(const cMerit & _m) const { return value >= _m.GetDouble(); }
- int operator<=(const cMerit & _m) const { return value <= _m.GetDouble(); }
-
- int operator==(const cMerit & _m) const { return value == _m.GetDouble(); }
- int operator==(const double _m) const { return value == _m; }
- int operator==(const UINT _m) const { return (offset==0 && base==_m); }
-
- int operator!=(const cMerit & _m) const { return value != _m.GetDouble(); }
- int operator!=(const double _m) const { return value != _m; }
- int operator!=(const UINT _m) const { return (offset!=0 || base!=_m); }
-
- void Clear() { value = 0; base = 0; offset = 0; bits = 0; }
-
- // @TCC - This function fails for values > UINT_MAX...
- UINT GetUInt() const {
- assert(value < UINT_MAX); // Fails for merit values > UINT_MAX.
- return (UINT) value; }
-
- double GetDouble() const { return value; }
-
- int GetBit(UINT bit_num) const {
- return ( bit_num >= offset && bit_num < (UINT)bits ) ?
- ( base >> (bit_num-offset) ) & 1 : 0; }
-
- int GetNumBits() const { return bits; }
-
- double CalcFitness(int gestation_time) const {
- return ( gestation_time != 0 ) ? value / ((double) gestation_time) : 0; }
-
- std::ostream & BinaryPrint(std::ostream & os = std::cout) const ;
-};
-
-std::ostream & operator<<(std::ostream & os, const cMerit & merit);
-
-#endif
Deleted: trunk/source/tools/message_class.hh
===================================================================
--- trunk/source/tools/message_class.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_class.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,44 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef MESSAGE_CLASS_HH
-#define MESSAGE_CLASS_HH
-
-class cMessageDisplay;
-class cMessageType;
-
-class cMessageClass{
-public:
- cMessageClass(
- const char *class_name,
- cMessageDisplay **msg_display,
- bool is_fatal,
- bool is_prefix,
- bool no_prefix
- );
-public:
- void configure(cMessageType *message_type);
-public:
- const char *const m_class_name;
- cMessageDisplay **m_msg_display;
- bool const m_is_fatal;
- bool const m_is_prefix;
- bool const m_no_prefix;
-private:
- bool _configured;
-};
-
-/*
-Declaration of the five message classes.
-*/
-extern cMessageClass MCInfo;
-extern cMessageClass MCDebug;
-extern cMessageClass MCError;
-extern cMessageClass MCFatal;
-extern cMessageClass MCNoPrefix;
-
-#endif
Deleted: trunk/source/tools/message_closure.hh
===================================================================
--- trunk/source/tools/message_closure.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_closure.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,131 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef MESSAGE_CLOSURE_HH
-#define MESSAGE_CLOSURE_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-
-class cMessageType;
-class cString; // aggregate
-class QString;
-
-class cMessageClosure{
-private:
- cMessageType &_type;
- const char *_function;
- const char *_file;
- int _line;
- int _error;
- int _op_count;
- cString _msg;
-public:
- cMessageClosure(
- cMessageType &type,
- const char *function_name,
- const char *file_name,
- int line_number
- );
- ~cMessageClosure(void);
-public:
- /*
- operator<< and operator() definitions for cMessageClosure.
-
- Any kind of input can be placed behind the operator<<, really, but try
- to not (further) overcrowd the class...
-
- The operator is meant to convert its input into a string for display.
- If for example you implement
- cMessageClosure &operator<<(const myClass &instance);
- then you can write a message thus:
- DemoDebug << "this is a myClass instance: " << my_instance;
- with the result:
- "Debug [Demo] this is a myClass instance: stuff in my_instance."
- */
- cMessageClosure &operator<<(char c);
- cMessageClosure &operator<<(unsigned char c);
- cMessageClosure &operator<<(int i);
- cMessageClosure &operator<<(unsigned int i);
- cMessageClosure &operator<<(long i);
- cMessageClosure &operator<<(unsigned long i);
- cMessageClosure &operator<<(float f);
- cMessageClosure &operator<<(double f);
- cMessageClosure &operator<<(const void *p);
- cMessageClosure &operator<<(const char *s);
- cMessageClosure &operator<<(const QString &s);
- /*
- QString support is implemented outside of core of avida, in qt gui, so
- that QString can remain undefined in gui-less builds. -- kgn
- */
-
- cMessageClosure &operator()(char c){ return operator<<(c); }
- cMessageClosure &operator()(unsigned char c){ return operator<<(c); }
- cMessageClosure &operator()(int i){ return operator<<(i); }
- cMessageClosure &operator()(unsigned int i){ return operator<<(i); }
- cMessageClosure &operator()(long i){ return operator<<(i); }
- cMessageClosure &operator()(unsigned long i){ return operator<<(i); }
- cMessageClosure &operator()(float f){ return operator<<(f); }
- cMessageClosure &operator()(double f){ return operator<<(f); }
- cMessageClosure &operator()(const void *p){ return operator<<(p); }
- cMessageClosure &operator()(const char *s){ return operator<<(s); }
- cMessageClosure &operator()(const QString &s){ return operator<<(s); }
-
- /*
- cMessageClosure::va():
-
- Support for cString-based operator<< and operator() definitions in
- cMessageClosure. Variable argument lists are formatted and printed, a
- la printf, into a temporary buffer; the contents of this buffer are
- then appended to the cString _msg.
- */
- cMessageClosure &va(const char *fmt, ...);
-private:
- void prefix(void);
-};
-
-/*
-you probably don't need to change these macros...
-*/
-
-// window compatibility
-#ifdef WIN32
-# ifndef __PRETTY_FUNCTION__
-# define __PRETTY_FUNCTION__ "<unknown on win32>"
-# endif
-#endif
-
-#define _MSG_CLOSURE_FL(x)\
- cMessageClosure(\
- x,\
- __PRETTY_FUNCTION__,\
- __FILE__,\
- __LINE__\
- )
-
-#define _INFO_MSG(type)\
- if (Info_ ## type ## _Msg.m_is_active)\
- _MSG_CLOSURE_FL(Info_ ## type ## _Msg)
-
-#define _DEBUG_MSG(type)\
- if (Debug_ ## type ## _Msg.m_is_active)\
- _MSG_CLOSURE_FL(Debug_ ## type ## _Msg)
-
-#define _ERROR_MSG(type)\
- if (Error_ ## type ## _Msg.m_is_active)\
- _MSG_CLOSURE_FL(Error_ ## type ## _Msg)
-
-#define _FATAL_MSG(type)\
- if (Fatal_ ## type ## _Msg.m_is_active)\
- _MSG_CLOSURE_FL(Fatal_ ## type ## _Msg)
-
-#define _PLAIN_MSG(type)\
- if (type ## _Msg.m_is_active)\
- _MSG_CLOSURE_FL(type ## _Msg)
-
-#endif
Deleted: trunk/source/tools/message_display.cc
===================================================================
--- trunk/source/tools/message_display.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_display.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,352 +0,0 @@
-
-#ifndef _LIMITS_H___
-#include <limits.h>
-#endif
-#ifndef _STDIO_H_
-#include <stdio.h>
-#endif
-#ifndef _STDARG_H
-#include <stdarg.h>
-#endif
-
-#ifndef TRIO_TRIO_H
-#include "../third-party/trio/trio.h"
-#endif
-
-#ifndef _CPP_IOSTREAM
-#include <iostream>
-#endif
-
-#ifndef MESSAGE_DISPLAY_HDRS_HH
-#include "message_display_hdrs.hh"
-#endif
-
-
-using namespace std;
-
-
-/*
-pointers to the cMessageDisplay instantiations actually in use.
-each of the message classes gets a handle to one of the cMessageDisplay
-instantiations, so that by using the manipulator functions
- void setStandardOutDisplay(cMessageDisplay &out)
-and
- void setStandardErrDisplay(cMessageDisplay &err),
-the output and error messages can be redirected from, say, the console
-to a graphical window and back again (if you want).
-*/
-static cMessageDisplay *s_info_display;
-static cMessageDisplay *s_debug_display;
-static cMessageDisplay *s_error_display;
-static cMessageDisplay *s_fatal_display;
-static cMessageDisplay *s_noprefix_display;
-
-
-
-void setInfoDisplay(cMessageDisplay &info){
- cout << "<setInfoDisplay>" << endl;
- s_info_display = &info;
- cout << "<setInfoDisplay> done." << endl;
-}
-void setDebugDisplay(cMessageDisplay &debug){
- cout << "<setDebugDisplay>" << endl;
- s_debug_display = &debug;
- cout << "<setDebugDisplay> done." << endl;
-}
-void setErrorDisplay(cMessageDisplay &error){
- cout << "<setErrorDisplay>" << endl;
- s_error_display = &error;
- cout << "<setErrorDisplay> done." << endl;
-}
-void setFatalDisplay(cMessageDisplay &fatal){
- cout << "<setFatalDisplay>" << endl;
- s_fatal_display = &fatal;
- cout << "<setFatalDisplay> done." << endl;
-}
-void setNoPrefixDisplay(cMessageDisplay &noprefix){
- cout << "<setNoPrefixDisplay>" << endl;
- s_noprefix_display = &noprefix;
- cout << "<setNoPrefixDisplay> done." << endl;
-}
-
-
-/*
-These booleans determine whether to print the function, file, and line
-number containing the message call. The booleans are reset according to
-the contents of the environment variable "DEBUG_MESSAGING", which should
-be a comma-delimited list containing any of the three words
- "chatter,where,function".
-
-Message types in the classes MCFatal and MCNoPrefix are always
-displayed; the remaining messages will only be displayed if
-DEBUG_MESSAGING contains "chatter".
-
-The line number and file containing the message call are printed if
-DEBUG_MESSAGING contains "where".
-
-The function containing the message call is printed only if
-DEBUG_MESSAGING contains "function".
-
-Note that message types of class "MCNoPrefix" will not print the
-function, file, or line number.
-*/
-static bool show_function = false;
-static bool show_where = false;
-static bool be_quiet = true;
-
-
-/*
-Definition of the five message classes.
-*/
-cMessageClass MCInfo("Info:", &s_info_display, false, false, false);
-cMessageClass MCDebug("Debug:", &s_debug_display, false, false, false);
-cMessageClass MCError("Error:", &s_error_display, false, true, false);
-cMessageClass MCFatal("Fatal:", &s_fatal_display, true, true, false);
-cMessageClass MCNoPrefix("NoPrefix:", &s_noprefix_display, false, true, true);
-
-/*
-cMessageClass constructor.
-*/
-cMessageClass::cMessageClass(
- const char *class_name,
- cMessageDisplay **msg_display,
- bool is_fatal,
- bool is_prefix,
- bool no_prefix
-):m_class_name(class_name),
- m_msg_display(msg_display),
- m_is_fatal(is_fatal),
- m_is_prefix(is_prefix),
- m_no_prefix(no_prefix),
- _configured(false)
-{
- *msg_display = 0;
-}
-
-
-/*
-This configures the behavior of each cMessageClass and cMessageType
-according the contents of the environment variable DEBUG_MESSAGING.
-this is affected by setting the static booleans "show_function,
-show_where, be_quiet".
-
-These booleans determine whether to print the function, file, and line
-number containing the message call. the booleans are reset according to
-the contents of the environment variable "DEBUG_MESSAGING", which should
-be a comma-delimited list containing any of the three words
- "chatter,where,function".
-
-Message types in the classes MCFatal and MCNoPrefix are always
-displayed; the remaining messages will only be displayed if
-DEBUG_MESSAGING contains "chatter".
-
-The line number and file containing the message call are printed if
-DEBUG_MESSAGING contains "where".
-
-The function containing the message call is printed only if
-DEBUG_MESSAGING contains "function".
-
-Message types of class "MCNoPrefix" will not print the function, file,
-or line number.
-*/
-void
-cMessageClass::configure(cMessageType *message_type){
- if(!_configured){
- _configured = true;
- char *denv = getenv("DEBUG_MESSAGING");
- if(denv){
- denv = strdup(denv);
- char *tok = strtok(denv, ",");
- while(tok){
- if(strcmp(tok,"where") == 0){
- show_where = true;
- } else if (strcmp(tok,"function") == 0){
- show_function = true;
- } else if (strcmp(tok,"chatter") == 0){
- be_quiet = false;
- }
- tok = strtok(NULL,",");
- }
- free(denv);
- }
- }
- if( (this == &MCInfo)
- ||(this == &MCDebug)
- ||(this == &MCError)
- ) message_type->m_is_active = !be_quiet;
-}
-
-
-/*
-cMessageType constructor.
-*/
-cMessageType::cMessageType(
- const char *type_name,
- cMessageClass &message_class
-):m_type_name(type_name),
- m_message_class(message_class),
- m_is_active(true)
-{ message_class.configure(this); }
-
-
-/*
-cMessageClosure constructor and destructor.
-*/
-cMessageClosure::cMessageClosure(
- cMessageType &type,
- const char *function_name,
- const char *file_name,
- int line_number
-):_type(type),
- _function(function_name),
- _file(file_name),
- _line(line_number),
- _error(INT_MAX),
- _op_count(0)
-{}
-
-cMessageClosure::~cMessageClosure(void){
- if(!(*_type.m_message_class.m_msg_display)){
- cerr << "<~cMessageClosure> Warning:" << endl;
- cerr << "<~cMessageClosure> message display classes not fully initialized;" << endl;
- cerr << "<~cMessageClosure> directing messages of class \""
- << cString(_type.m_type_name)
- << "\" to its default output device..." << endl;
- if(&_type.m_message_class == &MCInfo) {
- (*_type.m_message_class.m_msg_display) = &s_info_msg_cout;
- } else if(&_type.m_message_class == &MCDebug) {
- (*_type.m_message_class.m_msg_display) = &s_debug_msg_cerr;
- } else if(&_type.m_message_class == &MCError) {
- (*_type.m_message_class.m_msg_display) = &s_error_msg_cerr;
- } else if(&_type.m_message_class == &MCFatal) {
- (*_type.m_message_class.m_msg_display) = &s_fatal_msg_cerr;
- } else if(&_type.m_message_class == &MCNoPrefix) {
- (*_type.m_message_class.m_msg_display) = &s_noprefix_msg_cout;
- } else {
- (*_type.m_message_class.m_msg_display) = &s_noprefix_msg_cout;
- }
- }
- (*_type.m_message_class.m_msg_display)->out(_msg);
- if(_type.m_message_class.m_is_fatal) (*_type.m_message_class.m_msg_display)->abort();
-}
-
-
-/*
-Pretty-printing for cMessageClosure.
-*/
-void
-cMessageClosure::prefix(void){
- if(_op_count++ == 0 && !_type.m_message_class.m_no_prefix){
- if(_type.m_message_class.m_is_prefix){
- _msg += _type.m_type_name;
- _msg += '-';
- }
- _msg += _type.m_message_class.m_class_name;
- if(!_type.m_message_class.m_is_prefix || show_function || show_where){
- bool colon = false;
- if(!_type.m_message_class.m_is_prefix){
- _msg += _type.m_type_name;
- _msg += ": ";
- }
- if(show_function || show_where){
- _msg += "<";
- }
- if(show_function){
- _msg += _function;
- colon = true;
- }
- if(show_where){
- if(colon){_msg += ':';}
- _msg += _file;
- _msg += ':';
- // FIXME: consider move this varargs gunk to cString. -- kgn.
- {
- int size = trio_snprintf((char *) 0, 0, "%i", _line);
- char *buf = new char[size + 1];
- assert(buf != 0);
- trio_snprintf(buf, size+1, "%i", _line);
- _msg += buf;
- delete[] buf;
- }
- }
- if(show_function || show_where){
- _msg += ">";
- }
- _msg += ' ';
- } else {
- _msg += ':';
- }
- }
-}
-
-
-/*
-cMessageClosure::va():
-
-Support for cString-based operator<< and operator() definitions in
-cMessageClosure. Variable argument lists are formatted and then printed
-into a temporary buffer; the contents of this buffer are then appended
-to the cString _msg.
-*/
-
-// FIXME: consider move this varargs gunk to cString. -- kgn.
-cMessageClosure &
-cMessageClosure::va(const char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- int size = trio_vsnprintf((char *) 0, 0, fmt, ap);
- va_end(ap);
-
- char *buf = new char[size + 1];
- assert(buf != 0);
-
- va_start(ap, fmt);
- trio_vsnprintf(buf, size+1, fmt, ap);
- va_end(ap);
-
- prefix();
- _msg += buf;
- delete[] buf;
-
- return *this;
-}
-
-/*
-operator<< and operator() definitions for cMessageClosure.
-
-Any kind of input can be placed behind the operator<<, really, but try
-to not (further) overcrowd the class...
-
-The operator is meant to convert its input into a string for display.
-If for example you implement
- cMessageClosure &operator<<(const myClass &instance);
-then you can write a message thus:
- DemoDebug << "this is a myClass instance: " << my_instance;
-with the result:
- "Debug [Demo] this is a myClass instance: stuff in my_instance."
-*/
-cMessageClosure &cMessageClosure::operator<<(char c){ prefix(); _msg += c; return *this; }
-cMessageClosure &cMessageClosure::operator<<(unsigned char c){ prefix(); _msg += c; return *this; }
-cMessageClosure &cMessageClosure::operator<<(int i){ return va("%d", i); }
-cMessageClosure &cMessageClosure::operator<<(unsigned int i){ return va("%u", i); }
-cMessageClosure &cMessageClosure::operator<<(long i){ return va("%ld", i); }
-cMessageClosure &cMessageClosure::operator<<(unsigned long i){ return va("%lu", i); }
-cMessageClosure &cMessageClosure::operator<<(float f){ return va("%g", f); }
-cMessageClosure &cMessageClosure::operator<<(double f){ return va("%g", f); }
-cMessageClosure &cMessageClosure::operator<<(const void *p){ return va("%p", p); }
-cMessageClosure &cMessageClosure::operator<<(const char *s){ prefix(); _msg += s; return *this; }
-
-/*
-Definition of the message type "NoPrefix_Msg".
-*/
-cMessageType NoPrefix_Msg("NoPrefix", MCNoPrefix);
-cMessageType Info_GEN_Msg("General", MCInfo);
-cMessageType Debug_GEN_Msg("General", MCDebug);
-cMessageType Error_GEN_Msg("General", MCError);
-cMessageType Fatal_GEN_Msg("General", MCFatal);
-
-
-
-
Deleted: trunk/source/tools/message_display.hh
===================================================================
--- trunk/source/tools/message_display.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_display.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,40 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef MESSAGE_DISPLAY_HH
-#define MESSAGE_DISPLAY_HH
-
-/*
-cMessageDisplay displays the message "final_msg" to the user/programmer.
-cMessageDisplay is meant to be subclassed, where
- out(string final_msg)
-is reimplemented to display "final_msg" in the desired manner.
-
-Instances of the subclass may then be passed to
- setStandardOutDisplay(cMessageDisplay &)
-and
- setStandardErrDisplay(cMessageDisplay &)
-with expected results.
-*/
-
-class cString;
-
-class cMessageDisplay{
-public:
- virtual ~cMessageDisplay() { ; }
-
- virtual void out(cString &final_msg){}
- virtual void abort(){ abort(); }
-};
-
-void setInfoDisplay(cMessageDisplay &info);
-void setDebugDisplay(cMessageDisplay &debug);
-void setErrorDisplay(cMessageDisplay &error);
-void setFatalDisplay(cMessageDisplay &fatal);
-void setNoPrefixDisplay(cMessageDisplay &noprefix);
-
-#endif
Deleted: trunk/source/tools/message_display_hdrs.hh
===================================================================
--- trunk/source/tools/message_display_hdrs.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_display_hdrs.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,41 +0,0 @@
-#ifndef MESSAGE_DISPLAY_HDRS_HH
-#define MESSAGE_DISPLAY_HDRS_HH
-
-#ifndef _CPP_IOSTREAM
-#include <iostream>
-#endif
-#ifndef DEFAULT_MESSAGE_DISPLAY_HH
-#include "cDefaultMessageDisplay.h"
-#endif
-#ifndef MESSAGE_CLASS_HH
-#include "message_class.hh"
-#endif
-#ifndef MESSAGE_CLOSURE_HH
-#include "message_closure.hh"
-#endif
-#ifndef MESSAGE_DISPLAY_HH
-#include "message_display.hh"
-#endif
-#ifndef MESSAGE_TYPE_HH
-#include "message_type.hh"
-#endif
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-
-#ifndef MESSAGE_DISPLAY_HH
-#include "message_display.hh"
-#endif
-
-extern cMessageType NoPrefix_Msg;
-extern cMessageType Info_GEN_Msg;
-extern cMessageType Debug_GEN_Msg;
-extern cMessageType Error_GEN_Msg;
-extern cMessageType Fatal_GEN_Msg;
-#define Message _PLAIN_MSG(NoPrefix)
-#define GenInfo _INFO_MSG(GEN)
-#define GenDebug _DEBUG_MSG(GEN)
-#define GenError _ERROR_MSG(GEN)
-#define GenFatal _FATAL_MSG(GEN)
-
-#endif
Deleted: trunk/source/tools/message_type.hh
===================================================================
--- trunk/source/tools/message_type.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/message_type.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,25 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef MESSAGE_TYPE_HH
-#define MESSAGE_TYPE_HH
-
-class cMessageClass;
-
-class cMessageType{
-public:
- cMessageType(
- const char *type_name,
- cMessageClass &message_class
- );
-public:
- const char *m_type_name;
- const cMessageClass &m_message_class;
- bool m_is_active;
-};
-
-#endif
Deleted: trunk/source/tools/prob_schedule.cc
===================================================================
--- trunk/source/tools/prob_schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/prob_schedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,45 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "prob_schedule.hh"
-
-#include "cChangeList.h"
-#include "merit.hh"
-#include "tools.hh"
-
-
-///////////////////
-// cProbSchedule
-///////////////////
-
-// The larger merits cause problems here; things need to be re-thought out.
-
-cProbSchedule::cProbSchedule(int _item_count)
- : cSchedule(_item_count)
- , chart(_item_count)
-{
-}
-
-cProbSchedule::~cProbSchedule()
-{
-}
-
-
-int cProbSchedule::GetNextID()
-{
- assert(chart.GetTotalWeight() > 0);
- const double position = g_random.GetDouble(chart.GetTotalWeight());
- return chart.FindPosition(position);
-}
-
-void cProbSchedule::Adjust(int item_id, const cMerit & item_merit)
-{
- if (cChangeList *change_list = GetChangeList()) {
- change_list->MarkChange(item_id);
- }
- chart.SetWeight(item_id, item_merit.GetDouble());
-}
Deleted: trunk/source/tools/prob_schedule.hh
===================================================================
--- trunk/source/tools/prob_schedule.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/prob_schedule.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,37 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef PROB_SCHEDULE_HH
-#define PROB_SCHEDULE_HH
-
-#ifndef SCHEDULE_HH
-#include "schedule.hh"
-#endif
-#ifndef WEIGHTED_INDEX_HH
-#include "weighted_index.hh"
-#endif
-
-/**
- * The Probiblistic Schedule has the chance for an item to
- * be scheduled proportional to the merit of that item.
- **/
-
-class cWeightedIndex; // aggregate
-class cMerit;
-
-class cProbSchedule : public cSchedule {
-private:
- cWeightedIndex chart;
-public:
- cProbSchedule(int num_cells);
- ~cProbSchedule();
-
- void Adjust(int item_id, const cMerit & merit);
- int GetNextID();
-};
-
-#endif
Deleted: trunk/source/tools/random.cc
===================================================================
--- trunk/source/tools/random.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/random.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,216 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2000 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef RANDOM_HH
-#include "random.hh"
-#endif
-
-#ifndef TARRAY_HH
-#include "tArray.hh"
-#endif
-
-/* FIXME this is not defined in Visual Studio.net. -- kgn */
-//#ifdef MSVC_COMPILER
-/* FIXME find out what the VS.n macro might be. for now use WIN32 -- kgn */
-#ifdef WIN32
-#include <process.h>
-#else
-#include <unistd.h>
-#endif
-
-
-// Constants //////////////////////////////////////////////////////////////////
-
-// Statistical Approximation
-const unsigned int cRandom::_BINOMIAL_TO_NORMAL=50; //if < n*p*(1-p)
-const unsigned int cRandom::_BINOMIAL_TO_POISSON=1000; //if < n
-
-// Engine
-const unsigned int cRandom::_RAND_MBIG=1000000000;
-const unsigned int cRandom::_RAND_MSEED=161803398;
-
-// Number Generation
-const double cRandom::_RAND_FAC=(1.0/_RAND_MBIG);
-const double cRandom::_RAND_mP_FAC=(_RAND_MBIG/1000);
-const double cRandom::_RAND_uP_FAC=(_RAND_MBIG/1000000);
-
-
-// Constructor and setup //////////////////////////////////////////////////////
-
-cRandom::cRandom(const int in_seed) :
- seed(0),
- original_seed(0),
- inext(0),
- inextp(0),
- use_count(0),
- expRV(0)
- {
- for( int i=0; i<56; ++i ){
- ma[i] = 0;
- }
- ResetSeed(in_seed); // Calls init()
- }
-
-
-void cRandom::ResetSeed(const int in_seed){
- //if( in_seed<0 ){ // @TCC - make 0 also be seeded with time * pid
- original_seed = in_seed;
-
- if( in_seed<=0 ){
- int seed_time = (int) time(NULL);
-#ifdef MSVC_COMPILER
- int seed_pid = (int) _getpid();
-#else
- int seed_pid = (int) getpid();
-#endif
- seed = seed_time ^ (seed_pid << 8);
- }
- else {
- seed = in_seed;
- }
-
- if( seed < 0 ) seed*=-1;
- seed%=_RAND_MSEED;
-
- init();
- initStatFunctions();
-}
-
-
-void cRandom::init(){
- int mj, mk, ii, i;
-
- // Clear variables
- inext = 0;
- inextp = 0;
- expRV = 0;
- for( i=0; i<56; ++i ){
- ma[i] = 0;
- }
-
- mj = _RAND_MSEED - seed;
- mj %= _RAND_MBIG;
- ma[55] = mj;
- mk = 1;
-
- for (i = 1; i < 55; ++i) {
- ii = (21 * i) % 55;
- ma[ii] = mk;
- mk = mj - mk;
- if (mk < 0) mk += _RAND_MBIG;
- mj = ma[ii];
- }
-
- for (int k = 0; k < 4; ++k) {
- for (int j = 1; j < 55; ++j) {
- ma[j] -= ma[1 + (j + 30) % 55];
- if (ma[j] < 0) ma[j] += _RAND_MBIG;
- }
- }
-
- inext = 0;
- inextp = 31;
-}
-
-void cRandom::initStatFunctions(){
- // Setup variables used by Statistical Distribution functions
- expRV=-log(GetDouble());
-}
-
-
-// Statistical functions //////////////////////////////////////////////////////
-
-double cRandom::GetRandNormal(){
- // Draw from a Unit Normal Dist
- // Using Rejection Method and saving of initial exponential random variable
- double expRV2;
- while( 1 ){
- expRV2=-log(GetDouble());
- expRV-=(expRV2-1)*(expRV2-1)/2;
- if( expRV>0 ) break;
- expRV=-log(GetDouble());
- }
- if( P(.5) )
- return expRV2;
- else
- return -expRV2;
-}
-
-unsigned int cRandom::GetRandPoisson(const double mean){
- // Draw from a Poisson Dist with mean
- // if cannot calculate, returns UINT_MAX
- // Uses Rejection Method
- unsigned int k=0;
- double a=exp(-mean);
- double u=GetDouble();
- if( a <=0 ) return UINT_MAX; // cannot calculate, so return UINT_MAX
- while( u>=a ){
- u*=GetDouble();
- ++k;
- }
- return k;
-}
-
-unsigned int cRandom::GetFullRandBinomial(const double n, const double p){
- // Actually try n Bernoulli events with probability p
- unsigned int k=0;
- for( unsigned int i=0; i<n; ++i )
- if( P(p) ) k++;
- return k;
-}
-
-unsigned int cRandom::GetRandBinomial(const double n, const double p){
- // Approximate Binomial if appropriate
- // if np(1-p) is large, use a Normal approx
- if( n*p*(1-p) >= _BINOMIAL_TO_NORMAL ){
- return (unsigned int)(GetRandNormal(n*p,n*p*(1-p))+.5);
- }
- // elseif n is large, use a Poisson approx
- if( n >= _BINOMIAL_TO_POISSON ){
- unsigned int k=GetRandPoisson(n,p);
- if( k < UINT_MAX ) // if approx worked
- return k;
- }
- // otherwise, actually generate the randBinomial
- return GetFullRandBinomial(n,p);
-}
-
-
-bool cRandom::Choose(int num_in, tArray<int> & out_array){
- // If you ask for more than you pass in...
- assert ( num_in >= out_array.GetSize() );
-
- if (num_in == out_array.GetSize()) {
- // init array to 0's
- for(int i = 0; i < out_array.GetSize(); i++) out_array[i] = i;
- return true;
- }
-
- int choice_num = 0;
- // @CAO this could be done a lot faster when choose size is close to
- // full size. However we need to rememebr to watch out for larger num_in
- while (choice_num < out_array.GetSize()) {
- int next = (int) GetUInt(num_in);
-
- // See if this choice is ok to use...
- bool ok = true;
- for (int i = 0; i < choice_num; i++) {
- if (out_array[i] == next) {
- ok = false;
- break;
- }
- }
-
- // And if its good, record it.
- if (ok == true) {
- out_array[choice_num] = next;
- choice_num++;
- }
- }
-
- return true;
-}
Deleted: trunk/source/tools/random.hh
===================================================================
--- trunk/source/tools/random.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/random.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,270 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-/******************************************************************************
-
-cRandom
-
-Random number generator
-Random variables from various statistical distributions
-
-******************************************************************************/
-
-#ifndef RANDOM_HH
-#define RANDOM_HH
-
-#include <time.h>
-#include <limits.h>
-#include <math.h>
-
-#ifndef UINT
-#define UINT unsigned int
-#endif
-
-/**
- * A versatile and fast pseudo random number generator.
- **/
-
-template <class T> class tArray;
-
-class cRandom{
-public:
- /**
- * Set up the random generator object.
- * @param in_seed The seed of the random number generator.
- * A negative seed means that the random number generator gets its
- * seed from the actual system time.
- **/
- cRandom(const int in_seed=-1);
-
- inline int GetUseCount() { return use_count; }
-
-
- /**
- * @return The seed that was actually used to start the random sequence.
- **/
- inline int GetSeed(){ return seed; }
-
- /**
- * @return The seed that was originally provided by the user.
- **/
- inline int GetOriginalSeed(){ return original_seed; }
-
- /**
- * Starts a new sequence of pseudo random numbers.
- *
- * @param new_seed The seed for the new sequence.
- * A negative seed means that the random number generator gets its
- * seed from the actual system time.
- **/
- void ResetSeed(const int new_seed);
-
-
- // Random Number Generation /////////////////////////////////////////////////
-
- /**
- * Generate a double between 0 and 1.
- *
- * @return The pseudo random number.
- **/
- inline double GetDouble(){ return Get()*_RAND_FAC; }
-
- /**
- * Generate a double between 0 and a given number.
- *
- * @return The pseudo random number.
- * @param max The upper bound for the random numbers (will never be returned).
- **/
- inline double GetDouble(const double max){ return GetDouble() * max;}
-
- /**
- * Generate a double out of a given interval.
- *
- * @return The pseudo random number.
- * @param min The lower bound for the random numbers.
- * @param max The upper bound for the random numbers (will never be returned).
- **/
- inline double GetDouble(const double min, const double max){
- return GetDouble()*(max-min)+min;}
-
- /**
- * Generate an unsigned int.
- *
- * @return The pseudo random number.
- * @param max The upper bound for the random numbers (will never be returned).
- **/
- inline unsigned int GetUInt(const unsigned int max){
- return (int) (GetDouble()*max);}
-
- /**
- * Generate an unsigned int out of an interval.
- *
- * @return The pseudo random number.
- * @param min The lower bound for the random numbers.
- * @param max The upper bound for the random numbers (will never be returned).
- **/
- inline unsigned int GetUInt(const unsigned int min, const unsigned int max){
- return GetUInt(max - min) + min; }
-
- /**
- * Generate an int out of an interval.
- *
- * @return The pseudo random number.
- * @param min The lower bound for the random numbers.
- * @param max The upper bound for the random numbers (will never be returned).
- **/
- inline int GetInt(const int max){
- return (int)GetUInt(max); }
- inline int GetInt(const int min, const int max){
- return ((int)GetUInt(max - min)) + min; }
-
-
- // Random Event Generation //////////////////////////////////////////////////
-
- // P(p) => if p < [0,1) random variable
- inline bool P(const double _p){
- return (Get()<(_p*_RAND_MBIG));}
- inline bool mP(const double _p){ // p = _p*10^-3
- return (Get()<_RAND_mP_FAC && Get()<(_p*_RAND_MBIG));}
- inline bool uP(const double _p){ // p = _p*10^-6
- return (Get()<_RAND_uP_FAC && Get()<(_p*_RAND_MBIG));}
- inline bool pP(const double _p){ // p = _p*10^-6
- return (Get()<_RAND_uP_FAC && Get()<_RAND_uP_FAC &&
- Get()<(_p*_RAND_MBIG));}
-
-
- // Other neat stuff /////////////////////////////////////////////////////////
- inline UINT MutateByte(UINT value);
- inline UINT ClearByte(UINT value);
- inline UINT MutateBit(UINT value);
- inline UINT MutateBit(UINT value, int in_byte);
-
- bool Choose(int num_in, tArray<int> & out_array);
-
-
- // Statistical functions ////////////////////////////////////////////////////
-
- // Distributions //
-
- /**
- * Generate a random variable drawn from a unit normal distribution.
- **/
- double GetRandNormal();
- /**
- * Generate a random variable drawn from a distribution with given
- * mean and variance.
- **/
- inline double GetRandNormal(const double mean, const double variance){
- return mean+GetRandNormal()*sqrt(variance);
- }
-
- /**
- * Generate a random variable drawn from a Poisson distribution.
- **/
- inline unsigned int GetRandPoisson(const double n, double p) {
- // Optimizes for speed and calculability using symetry of the distribution
- if( p>.5 ) return (unsigned int)n-GetRandPoisson(n*(1-p));
- else return GetRandPoisson(n*p);
- }
-
- /**
- * Generate a random variable drawn from a Poisson distribution.
- *
- * @param mean The mean of the distribution.
- **/
- unsigned int GetRandPoisson(const double mean);
-
- /**
- * Generate a random variable drawn from a Binomial distribution.
- *
- * This function is exact, but slow.
- * @see cRandom::GetRandBinomial
- **/
- unsigned int GetFullRandBinomial(const double n, const double p); // Exact
-
- /**
- * Generate a random variable drawn from a Binomial distribution.
- *
- * This function is faster than @ref cRandom::GetFullRandBinomial(), but
- * uses some approximations.
- *
- * @see cRandom::GetFullRandBinomial
- **/
- unsigned int GetRandBinomial(const double n, const double p); // Approx
-
-
- // Internals ////////////////////////////////////////////////////////////////
-private:
- // Internal memebers
- int seed;
- int original_seed;
- int inext;
- int inextp;
- int ma[56];
- int use_count;
-
- // Constants ////////////////////////////////////////////////////////////////
- // Statistical Approximation
- static const unsigned int _BINOMIAL_TO_NORMAL; //if < n*p*(1-p)
- static const unsigned int _BINOMIAL_TO_POISSON; //if < n && !Normal approx
- // Engine
- static const unsigned int _RAND_MBIG;
- static const unsigned int _RAND_MSEED;
- // Number Generation
- static const double _RAND_FAC;
- static const double _RAND_mP_FAC;
- static const double _RAND_uP_FAC;
-
- // Members & functions for stat functions
- double expRV; // Exponential Random Variable for the randNormal function
-
- // Internal functions
- void init(); // Setup (called by ResetSeed(in_seed);
- void initStatFunctions();
-
- // Basic Random number
- // Returns a random number [0,_RAND_MBIG)
- inline unsigned int Get(){
- // use_count++; // Turn this on if random uses need to be tracked.
-
- if (++inext == 56) inext = 0;
- if (++inextp == 56) inextp = 0;
- int mj = ma[inext] - ma[inextp];
- if (mj < 0) mj += _RAND_MBIG;
- ma[inext] = mj;
- return mj;
- }
-
-};
-
-inline UINT cRandom::MutateByte(UINT value) {
- int byte_pos = 8 * GetUInt(4);
- int new_byte = GetUInt(256);
- value &= ~(255 << byte_pos);
- value |= new_byte << byte_pos;
- return value;
-}
-
-inline UINT cRandom::ClearByte(UINT value) {
- int byte_pos = 8 * GetUInt(4);
- value &= ~(255 << byte_pos);
- return value;
-}
-
-inline UINT cRandom::MutateBit(UINT value) {
- int bit_pos = GetUInt(32);
- value ^= (1 << bit_pos);
- return value;
-}
-
-inline UINT cRandom::MutateBit(UINT value, int in_byte) {
- int bit_pos = (in_byte) * 8 + GetUInt(8);
- value ^= (1 << bit_pos);
- return value;
-}
-
-#endif
Deleted: trunk/source/tools/ref_block.cc
===================================================================
--- trunk/source/tools/ref_block.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/ref_block.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,25 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef REF_BLOCK_HH
-#include "ref_block.hh"
-#endif
-
-////////////////////
-// cRefBlock
-////////////////////
-
-cRefBlock::cRefBlock(int in_ref, int in_size)
-{
- ref_num = in_ref;
- size = in_size;
-}
-
-cRefBlock::~cRefBlock()
-{
- // nothing needed here...
-}
Deleted: trunk/source/tools/ref_block.hh
===================================================================
--- trunk/source/tools/ref_block.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/ref_block.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,43 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef REF_BLOCK_HH
-#define REF_BLOCK_HH
-
-#ifndef FIXED_COORDS_HH
-#include "cFixedCoords.h"
-#endif
-
-class cFixedCoords; // aggregate
-
-class cRefBlock {
-private:
- int ref_num;
- int size;
- cFixedCoords start_coords;
-public:
- cRefBlock(int in_ref = 0, int in_size = 0);
- ~cRefBlock();
-
- inline int GetRef() const { return ref_num; }
- inline int GetSize() const { return size; }
- inline cFixedCoords GetStart() const { return start_coords; }
-
- inline void SetRef(int in_ref) { ref_num = in_ref; }
- inline void SetSize(int in_size) { size = in_size; }
- inline void SetStart(cFixedCoords &in_coords) { start_coords = in_coords; }
- inline void SetStart(int in_block, int in_offset) {
- start_coords(in_block, in_offset);
- }
-
- inline void operator=(const cRefBlock & in_block) {
- ref_num = in_block.GetRef();
- size = in_block.GetSize();
- }
-};
-
-#endif
Deleted: trunk/source/tools/running_average.cc
===================================================================
--- trunk/source/tools/running_average.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/running_average.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,54 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef RUNNING_AVERAGE_HH
-#include "running_average.hh"
-#endif
-
-#include <assert.h>
-
-// cRunningAverage ////////////////////////////////////////////////////////////
-
-cRunningAverage::cRunningAverage( int window_size ) :
- m_values(0), m_s1(0), m_s2(0), m_window_size( window_size ),
- m_pointer(0), m_n(0)
-{
- assert( m_window_size > 1 );
- m_values = new double[ m_window_size ];
-}
-
-
-cRunningAverage::~cRunningAverage() {
- delete [] m_values;
-}
-
-
-void
-cRunningAverage::Add( double value ) {
- m_s1 += value;
- m_s2 += value*value;
- if ( m_n < m_window_size ) {
- m_values[ m_n ] = value;
- m_n += 1;
- }
- else{
- double out_v = m_values[ m_pointer ];
- m_s1 -= out_v;
- m_s2 -= out_v * out_v;
- m_values[ m_pointer++ ] = value;
- if ( m_pointer == m_window_size ) m_pointer = 0;
- }
-}
-
-
-void
-cRunningAverage::Clear() {
- m_s1 = 0;
- m_s2 = 0;
- m_pointer = 0;
- m_n = 0;
-}
Deleted: trunk/source/tools/running_average.hh
===================================================================
--- trunk/source/tools/running_average.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/running_average.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,56 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef RUNNING_AVERAGE_HH
-#define RUNNING_AVERAGE_HH
-
-#include <math.h>
-
-class cRunningAverage {
-private:
- double *m_values; // Array of actual values
- double m_s1; // average
- double m_s2; // sum of squares
- int m_window_size; // Size of sliding window
- int m_pointer;
- int m_n;
-
-
- cRunningAverage();
- cRunningAverage( const cRunningAverage & );
- cRunningAverage & operator=( const cRunningAverage & );
-public:
- cRunningAverage( int window_size );
- ~cRunningAverage();
-
-
- //manipulators
- void Add( double value );
- void Clear();
-
-
- //accessors
- double Sum() const { return m_s1; }
- double S1() const { return m_s1; }
- double SumOfSquares() const { return m_s2; }
- double S2() const { return m_s2; }
-
- double Average() const { return ( m_n == m_window_size ) ? (m_s1/m_n) : 0; }
-
- double Variance() const { return ( m_n == m_window_size ) ?
- (m_s2 - m_s1*m_s1/m_n) / (m_n-1) : 0; }
-
- double StdDeviation() const { return sqrt(Variance()); }
- double StdError() const { return ( m_n == m_window_size ) ?
- sqrt(m_s2 - m_s1*m_s1/m_n / (m_n * (m_n-1))) : 0; }
-
- // Notation Shortcuts
- double Ave() const { return Average(); }
- double Var() const { return Variance(); }
-};
-
-#endif
Deleted: trunk/source/tools/scaled_block.cc
===================================================================
--- trunk/source/tools/scaled_block.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/scaled_block.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,26 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2000 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef SCALED_BLOCK_HH
-#include "scaled_block.hh"
-#endif
-
-////////////////////
-// cScaledBlock
-////////////////////
-
-cScaledBlock::cScaledBlock(void * in_data, int in_size)
-{
- data = in_data;
- size = in_size;
-}
-
-cScaledBlock::~cScaledBlock()
-{
-}
-
-
Deleted: trunk/source/tools/scaled_block.hh
===================================================================
--- trunk/source/tools/scaled_block.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/scaled_block.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,48 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef SCALED_BLOCK_HH
-#define SCALED_BLOCK_HH
-
-#ifndef FIXED_COORDS_HH
-#include "cFixedCoords.h"
-#endif
-
-/**
- * Class used by @ref cBlockStruct.
- **/
-
-class cFixedCoords; // aggregate
-
-class cScaledBlock {
-private:
- void * data;
- int size;
- cFixedCoords start_coords;
-public:
- cScaledBlock(void * in_data = NULL, int in_size = 0);
- ~cScaledBlock();
-
- inline void * GetData() const { return data; }
- inline int GetSize() const { return size; }
- inline cFixedCoords GetStart() const { return start_coords; }
-
- inline void SetData(void * in_data) { data = in_data; }
- inline void SetSize(int in_size) { size = in_size; }
- inline void SetStart(const cFixedCoords &in_coords)
- { start_coords = in_coords; }
- inline void SetStart(int in_block, int in_offset) {
- start_coords(in_block, in_offset);
- }
-
- inline void operator=(const cScaledBlock & in_block) {
- data = in_block.GetData();
- size = in_block.GetSize();
- }
-};
-
-#endif
Deleted: trunk/source/tools/schedule.cc
===================================================================
--- trunk/source/tools/schedule.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/schedule.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,33 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "schedule.hh"
-
-#include "cChangeList.h"
-
-////////////////
-// cSchedule
-////////////////
-
-cSchedule::cSchedule(int _item_count)
-: item_count(_item_count)
-, m_change_list(0)
-{
-}
-
-cSchedule::~cSchedule()
-{
-}
-
-void cSchedule::SetChangeList(cChangeList *change_list) {
- m_change_list = change_list;
- if (m_change_list) m_change_list->Resize(item_count);
-}
-void cSchedule::SetSize(int _item_count) {
- item_count = _item_count;
- if (m_change_list) m_change_list->Resize(_item_count);
-}
Deleted: trunk/source/tools/schedule.hh
===================================================================
--- trunk/source/tools/schedule.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/schedule.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,37 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef SCHEDULE_HH
-#define SCHEDULE_HH
-
-/**
- * This class is the base object to handle time-slicing. All other schedulers
- * are derived from this class. This is a pure virtual class.
- *
- **/
-
-class cMerit;
-class cChangeList;
-class cSchedule {
-protected:
- int item_count;
- cChangeList *m_change_list;
-public:
- cSchedule(int _item_count);
- virtual ~cSchedule();
-
- virtual bool OK() { return true; }
- virtual void Adjust(int item_id, const cMerit & merit) { ; }
- virtual int GetNextID() = 0;
- virtual double GetStatus(int id) { return 0.0; }
- void SetChangeList(cChangeList *change_list);
- cChangeList *GetChangeList() { return m_change_list; }
-
- void SetSize(int _item_count);
-};
-
-#endif
Deleted: trunk/source/tools/string.cc
===================================================================
--- trunk/source/tools/string.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,641 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "string.hh"
-
-extern "C"{
-#include <stdio.h>
-#include <stdarg.h>
-}
-
-
-using namespace std;
-
-
-// ** class cStringData **
-// -- Constructors --
-cString::cStringData::cStringData(short in_size)
- : refs(1)
- , size(in_size)
- , data(new char[size+1])
-{
- assert(data!=NULL); // Memory Allocation Error: Out of Memory
- data[0] = '\0';
- data[size] = '\0';
-}
-
-cString::cStringData::cStringData(short in_size, const char * in)
- : refs(1)
- , size(in_size)
- , data(new char[size+1])
-{
- assert(data!=NULL); // Memory Allocation Error: Out of Memory
- for( short i = 0; i < size; i++ ) data[i]=in[i];
- data[size] = '\0';
-}
-
-cString::cStringData::cStringData(const cStringData & in)
- : refs(1)
- , size(in.GetSize())
- , data(new char[size+1])
-{
- assert(data!=NULL); // Memory Allocation Error: Out of Memory
- for( short i = 0; i < size; i++ ) data[i]=in[i];
- data[size] = '\0';
-}
-
-
-
-// ** class cString **
-
-// -- Constants --
-const int cString::MAX_LENGTH = MAX_STRING_LENGTH;
-
-
-// -- Comparisons --
-
-bool cString::operator== (const cString & in) const {
- // Compares sizes first since we have that info anyway
- int i=-1;
- if( GetSize() == in.GetSize() ){
- for( i=0; i<GetSize() && (*this)[i]==in[i]; ++i );
- }
- return ( i == GetSize() ); // i == GetSize if all chars matched
-}
-
-
-int cString::Compare(const char * in) const
-{
- // -1 (*this<in), 0 (*this==in), 1 (*this>in) ... just like strcmp()
- assert(in!=NULL); // NULL input string
- int i;
- for( i = 0;
- i < GetSize() && in[i]!='\0' && (*this)[i] == in[i];
- i++ );
-
- if( i == GetSize() && in[i] == '\0' ) {
- return 0; // *this == in
- }
-
- // They're not equal!
- if ( i < GetSize() && (*this)[i] > in[i] ) return 1; // *this > in
- return -1; // *this < in
-}
-
-bool cString::IsContinueLine()
-{
- bool found = false;
- bool goodstufffound = false;
- int j = GetSize() - 1;
-
- // Scan the line from the end. If the last non-whitespace line is
- // continueation character the line expects a line to be concatenated on
- // to it
-
- while ((j >= 0) && !found && !goodstufffound) {
- if (!IsWhitespace(j)) {
- if ((*this)[j] == CONTINUE_LINE_CHAR) {
- found = true;
- RemovePos(j);
- } else {
- goodstufffound = true;
- }
- }
- j--;
- }
- return (found);
-}
-
-// -- Information --
-
-int cString::CountWhitespace(int start) const
-{
- assert(start >= 0); // Negative Index into String
- if (start >= GetSize()) return 0;
- int count = 0;
- while (start+count<GetSize() && IsWhitespace(start+count)) count++;
- return count;
-}
-
-
-int cString::CountWordsize(int start) const {
- assert(start >= 0); // Negative Index into String
- if( start>=GetSize() ) return 0;
- int count = 0;
- while( start+count<GetSize() && !IsWhitespace(start+count) )
- ++count;
- return count;
-}
-
-
-int cString::CountLinesize(int start) const
-{
- assert(start >= 0); // Negative Index into String
- if( start>=GetSize() ) return 0;
- int count = 0;
- while( start+count<GetSize() && (*this)[start+count]!='\n' )
- count++;
- return count;
-}
-
-
-int cString::CountNumLines() const
-{
- int num_lines = 1;
- for( int i=0; i<GetSize(); ++i ){
- if( (*this)[i] == '\n' ) num_lines++;
- }
- return num_lines;
-}
-
-
-int cString::CountNumWords() const
-{
- int num_words = 0;
- int pos = CountWhitespace(); // Skip initial whitespace.
- while( pos<GetSize() ) {
- pos += CountWordsize(pos);
- pos += CountWhitespace(pos);
- num_words++;
- }
- return num_words;
-}
-
-
-// -- Search --
-int cString::Find(char in_char, int start) const
-{
- int pos = start;
- assert (pos >= 0); // Negative Position: setting to 0
- assert (pos <= GetSize()); // Position Past End of String: setting to end.
- if (pos <= 0) pos = 0;
- else if (pos > GetSize()) pos = GetSize();
-
- while( pos < GetSize() ) {
- if( (*this)[pos] == in_char) return pos; // Found!
- pos++;
- }
- return -1; // Not Found
-}
-
-
-int cString::FindWord(const cString & in, int pos) const
-{
- assert (pos >= 0); // Negative Position: setting to 0
- assert (pos <= GetSize()); // Position Past End of String: setting to end.
- if (pos <= 0) pos = 0;
- else if (pos > GetSize()) pos = GetSize();
-
- // While there is enough space to find
- while (pos != -1 && pos + in.GetSize() < GetSize()) {
- cerr << in << " " << pos << endl;
- if( (pos=Find(in, pos)) >= 0 ){ // try to find it
- // if it's got whitespace on both sides, it's a word
- if( ( pos==0 || IsWhitespace(pos-1) )
- && ( pos==GetSize()-1 || IsWhitespace(pos+in.GetSize()) ) ){
- return pos;
- } else {
- pos++; // go on and look further down
- }
- }
- }
- return -1;
-}
-
-
-cString cString::GetWord(int word_id) const
-{
- // Find positon of word
- int pos = 0;
- int cur_word = 0;
- while( pos<GetSize() && cur_word<word_id ) { // If this isn't the word
- pos += CountWhitespace(pos); // Skip leading whitespace
- pos += CountWordsize(pos); // Skip this word
- cur_word++;
- }
- // Return GetWordAt position... (it will skip any leading whitespace)
- return GetWordAt(pos);
-}
-
-
-cString cString::GetWordAt(int start) const
-{
- int pos = start + CountWhitespace(start); // Skip past initial whitespace.
- int word_size = CountWordsize(pos); // Get size of word
- cString new_string(word_size); // Allocate new_string that size
- for (int i = 0; i < word_size; i++) { // Copy the chars to new_string
- new_string[i] = (*this)[pos + i];
- }
- return new_string;
-}
-
-bool cString::IsWhitespace() const
-{
- for( int i=0; i < GetSize(); ++i){
- if ( IsWhitespace(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsUpperLetter() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsUpperLetter(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsLowerLetter() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsLowerLetter(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsLetter() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsLetter(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsNumber() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsNumber(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsNumeric() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsNumber(i) == false ) return false;
- }
- return true;
-}
-
-bool cString::IsAlphaNumeric() const
-{
- for (int i = 0; i < GetSize(); ++i) {
- if ( IsAlphaNumeric(i) == false ) return false;
- }
- return true;
-}
-
-
-
-cString cString::Substring(int start, int size) const
-{
- assert(size > 0); // Non-Positive Size
- assert(start >= 0); // Negative Position
- assert(start + size <= GetSize()); // Position+Size Past End of String
-
- cString new_string(size);
- for (int i=0; i<size; i++) {
- new_string[i] = (*this)[i+start];
- }
- return new_string;
-}
-
-bool cString::IsSubstring(const cString & in_string, int start) const
-{
- assert (start >= 0); // Negative start position
-
- // If the potential sub-string won't fit, return false;
- if ( start + in_string.GetSize() > GetSize() ) return false;
-
- // Otherwise, check character by character.
- for (int i = 0; i < in_string.GetSize(); i++) {
- if ( (*this)[i+start] != in_string[i] ) return false;
- }
-
- return true;
-}
-
-
-// -- Modifiers --
-
-cString & cString::Set(const char * fmt, ...)
-{
- va_list argp;
- char buf[MAX_LENGTH];
- va_start(argp, fmt);
- vsprintf(buf, fmt, argp);
- va_end(argp);
- (*this) = buf;
- return *this;
-}
-
-
-int cString::Replace(const cString & old_st, const cString & new_st, int pos)
-{
- int location;
- if( (location=Find(old_st, pos)) >= 0 ){ // If we find the old_st
- Insert(new_st, location, old_st.GetSize());
- }
- return location;
-}
-
-
-int cString::LeftJustify()
-{
- int ws_count = CountWhitespace();
- if( ws_count>0 )
- InsertStr(0, NULL, 0, ws_count);
- return ws_count;
-}
-
-
-int cString::RightJustify()
-{
- int ws_count = 0;
- while( GetSize()-ws_count-1>0 && IsWhitespace(GetSize()-ws_count-1) )
- ws_count++;
- if( ws_count>0 )
- InsertStr(0, NULL, GetSize()-ws_count, ws_count);
- return ws_count;
-}
-
-
-cString cString::Pop(const char delim)
-{
- int pos;
- cString rv("");
- if( (pos=Find(delim)) >= 0 ){ // if it is found at all
- if( pos > 0 ){ // if the first char is not delim, return substring
- rv = Substring(0,pos);
- }
- // Trim off the front
- InsertStr(0, NULL, 0, pos+1);
- }
-
- // If the deliminator is *not* found, return the whole string.
- else {
- rv = *this;
- *this = "";
- }
- return rv;
-}
-
-
-cString cString::PopWord()
-{
- // If there is nothing here, there is nothing to be popped.
- if (GetSize() == 0) return "";
-
- const int start_pos = CountWhitespace();
- const int word_size = CountWordsize(start_pos);
-
- // If the string is not all whitespace, save the word we cut off...
- cString rv("");
- if (word_size > 0) rv = Substring(start_pos, word_size);
-
- // Trim off the front
- const int word_end = start_pos + word_size;
- const int new_start = word_end + CountWhitespace(word_end);
- InsertStr(0, NULL, 0, new_start); // Insert null in place of old word.
-
- return rv;
-}
-
-
-cString & cString::ToLower()
-{
- for (int pos = 0; pos < GetSize(); pos++) {
- if( (*this)[pos] >= 'A' && (*this)[pos] <= 'Z' )
- (*this)[pos] += 'a' - 'A';
- }
-
- return *this;
-}
-
-
-cString & cString::ToUpper()
-{
- for (int pos = 0; pos < GetSize(); pos++) {
- if( (*this)[pos] >= 'a' && (*this)[pos] <= 'z' )
- (*this)[pos] += 'A' - 'a';
- }
-
- return *this;
-}
-
-
-void cString::Reverse()
-{
- cString new_st(GetSize());
- for( int i=0; i<GetSize(); ++i ){
- // new_st[i] = (*this)[GetSize()-i-1]; // @CAO Problem in new gcc
- new_st[i] = GetData()[GetSize()-i-1];
- }
- (*this) = new_st;
-}
-
-
-void cString::CompressWhitespace()
-{
- // Eats initial whitespace
- // 2 pass method...
- int i;
- int pos = 0;
- int start_pos = CountWhitespace();
- int new_size = 0;
- bool ws = false;
-
- // count the number of characters that we will need in the new string
- for( i=start_pos; i<GetSize(); ++i ){
- if( IsWhitespace(i) ){ // if it whitespace...
- if( ws == false ){ // if we arn't already in a whitespace block
- ws = true; // we are now in a whitespace block
- }
- }else{ // it isn't whitespace, so count
- if( ws==true ){ // if there was a whitespace block
- ++new_size; // inc once for the block
- ws = false;
- }
- ++new_size;
- }
- }
-
- cString new_st(new_size); // Allocate new string
-
- // Copy over the characters
- // pos will be the location in new_st, while i is the index into this
- ws = false;
- for( i=start_pos; i<GetSize(); ++i ){
- if( IsWhitespace(i) ){ // if it whitespace...
- if( ws == false ){ // if we arn't already in a whitespace block
- ws = true; // we are now in a whitespace block
- }
- }else{ // it isn't whitespace, so count
- if( ws==true ){ // if there was a whitespace block
- new_st[pos] = ' '; // put a space in for the whitespace block
- ++pos; // inc once for the block
- ws = false;
- }
- // new_st[pos] = (*this)[i]; // copy it & increment pos @CAO prob in gcc
- new_st[pos] = GetData()[i]; // copy it & increment pos
- ++pos;
- }
- }
-
- (*this) = new_st; // assign the new_st to this
-}
-
-
-void cString::RemoveWhitespace(){
- int i;
- int new_size = 0;
- for( i=0; i<GetSize(); ++i ){ // count new size
- if( !IsWhitespace(i) ) ++new_size;
- }
- cString new_st(new_size); // allocate new string
- int pos = 0;
- for( i=0; i<GetSize(); ++i ){ // count new size
- if( !IsWhitespace(i) ){
- new_st[pos] = GetData()[i]; // copy it & increment pos @CAO prob in GCC
- ++pos;
- }
- }
- (*this) = new_st; // assign the new_st to this
-}
-
-
-void cString::RemoveChar(char out_char){
- int i;
- int new_size = 0;
- for( i=0; i<GetSize(); ++i ){ // count new size
- if( GetData()[i] != out_char ) ++new_size;
- }
- cString new_st(new_size); // allocate new string
- int pos = 0;
- for( i=0; i<GetSize(); ++i ){ // count new size
- if( GetData()[i] != out_char ){
- new_st[pos] = GetData()[i]; // copy it & increment pos @CAO prob in GCC
- ++pos;
- }
- }
- (*this) = new_st; // assign the new_st to this
-}
-
-void cString::RemovePos(int pos){
- int i;
- int new_size = GetSize() - 1;
- cString new_st(new_size); // allocate new string
- int newpos = 0;
- for( i=0; i<GetSize(); ++i ){ // count new size
- if( i != pos ){
- new_st[newpos++] = GetData()[i]; // copy it & increment pos
- }
- }
- (*this) = new_st; // assign the new_st to this
-}
-
-
-
-// -- Internal Methods --
-
-cString & cString::AppendStr(const int in_size, const char * in)
-{
- assert (in_size == 0 || in != NULL); // NULL input string
-
- // Allocate a new string
- cStringData * new_value = new cStringData(GetSize()+in_size);
- assert (new_value != NULL); // Memory Allocation Error: Out of Memory
- for(int i=0; i<GetSize(); ++i ) { // Copy self up to pos
- (*new_value)[i] = this->operator[](i);
- }
- for(int i=0; i<in_size; ++i ) { // Copy in
- assert(in[i] != '\0'); // Input String Contains '\\0' or too Short
- (*new_value)[i+GetSize()] = in[i];
- }
- TakeValue(new_value); // Reassing data to new data
- return(*this);
-}
-
-
-cString & cString::InsertStr(const int in_size, const char * in,
- int pos, int excise )
-{
- // Inserts 'in' (of length 'in_size') at postition 'pos'
- // Also excises 'excise' characters from 'pos'
- // If 'in_size'==0 then 'in' can == NULL and only excise happens
-
- // Validate inputs:
- assert (in_size >= 0); // Negative input size
- assert (pos >= 0); // Negative position
- assert (pos <= GetSize()); // Position past end of string
- assert (excise >= 0); // Negative excise
- assert (excise <= GetSize()-pos); // Excise number too large
- assert (excise > 0 || in_size > 0); // Make sure a change is made!
- assert (in_size == 0 || in != NULL); // NULL input string
-
- // Allocate a new string
- const int new_size = GetSize() + in_size - excise;
- cStringData * new_value = new cStringData(new_size);
- assert (new_value != NULL); // Memory Allocation Error: Out of Memory
-
- for(int i = 0; i < pos; ++i ){ // Copy self up to pos
- (*new_value)[i] = this->operator[](i);
- }
- for(int i = 0; i < in_size; ++i ){ // Copy in
- assert( in[i] != '\0'); // Input String Contains '\\0' or too Short
- (*new_value)[i+pos] = in[i];
- }
- for(int i=pos+excise; i<GetSize(); ++i ){ // Copy rest of self
- (*new_value)[i+in_size-excise] = this->operator[](i);
- }
-
- TakeValue(new_value); // Reassing data to new data
- return(*this);
-}
-
-
-int cString::FindStr(const char * in, const int in_size, int pos) const
-{
- assert (pos>=0); // Negative position
- assert (pos<=GetSize()); // Position past end of string
-
- while (pos < GetSize()) {
- if( GetSize()-pos < in_size ) return -1; // Too near this string's end.
- if( (*this)[pos] == in[0] ){
- // see if we have found the string...
- int i;
- for( i = 1; i < in_size; i++ ){
- assert (pos+i < GetSize()); // Reached end of (*this) in Find
- assert (in[i] != '\0'); // Reached end of 'in' in Find
- if( (*this)[pos + i] != in[i] ) break; // Match failure!
- }
- // If we have made it fully through the loop, we have found a match!
- if( i == in_size ) return pos;
- }
- pos++;
- }
- return -1;
-}
-
-
-
-// {{{ ** External cString Functions **
-
-istream & operator >> (istream & in, cString & string)
-{
- char buf[cString::MAX_LENGTH];
- in>>buf;
- string=buf;
- return in;
-}
-
-ostream & operator << (ostream & out, const cString & string)
-{
- out << string.GetData();
- return out;
-}
-
Deleted: trunk/source/tools/string.hh
===================================================================
--- trunk/source/tools/string.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,627 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_HH
-#define STRING_HH
-
-#include <stdlib.h>
-#include <iostream>
-#include <string.h>
-#include <assert.h>
-
-#define MAX_STRING_LENGTH 4096
-#define MAX_STRING_REF_COUNT 32767
-#define CONTINUE_LINE_CHAR '\\'
-
-/**
- * A multipurpose string class with many convenient methods of
- * manipulating and comparing strings.
- **/
-
-class cString {
-protected:
- void CopyOnWrite(){
- if( value->IsShared() ){ // if it is shared
- value->RemoveRef(); // remove our reference count
- value = new cStringData(*value); // make own copy of value
- }
- }
-
- // -- Contained Classes --
-private:
- // Declarations (only needed)
- class cStringData;
-
- // {{{ -- cCharProxy -- To detect rvalue vs lvalue ---------------------
-
- class cCharProxy{
- private:
- cString & string;
- short index;
-
- public:
- cCharProxy( cString & _string, short _index) :
- string(_string), index(_index) {;}
-
- inline cCharProxy & operator= (char c); // lvalue
- inline cCharProxy & operator+= (char c); // lvalue
- inline cCharProxy & operator-= (char c); // lvalue
- inline cCharProxy & operator++ (); // lvalue (prefix)
- inline char operator++ (int dummy); // lvalue (postfix)
- inline cCharProxy & operator-- (); // lvalue (prefix)
- inline char operator-- (int dummy); // lvalue (postfix)
- inline operator char () const ; // rvalue
- };
-
- //friend cCharProxy; // Telling rvalue vs lvalue ....
- // porting to gcc 3.1 -- k
- friend class cCharProxy; // Telling rvalue vs lvalue ....
-
- // }}} End cCharProxy
- // {{{ -- cStringData -- Holds the actual data and is reference count --
- class cStringData{
- // NOTE: Terminating NULL is always there (you can't assign!!)
-
- private:
- short refs; // Number of references
- short size; // size of data (NOT INCLUDING TRAILING NULL)
- char * data;
-
- public:
- explicit cStringData(short in_size);
- cStringData(short in_size, const char * in);
- cStringData(const cStringData & in);
-
- ~cStringData(){
- assert(refs == 0); // Deleting cStringData with References!!
- delete [] data;
- }
-
-
- cStringData & operator= (const cStringData & in) {
- delete [] data;
- size = in.GetSize();
- data = new char [size+1];
- assert(data != NULL); // Memory Allocation Error: Out of Memory
- for( short i=0; i<size; ++i ) data[i]=in[i];
- data[size] = '\0';
- return (*this);
- }
-
-
- short GetSize() const { return size; }
-
- const char * GetData() const { return data; }
-
- char operator[] (int index) const {
- assert(index >= 0); // Lower Bounds Error
- assert(index <= size); // Upper Bounds Error
- return data[index];
- }
-
- char & operator[](int index) {
- assert(index >= 0); // Lower Bounds Error
- assert(index <= size); // Upper Bounds Error
- assert(index != size); // Cannot Change Terminating NULL
- return data[index];
- }
-
-
- bool IsShared() { return (refs > 1); }
- bool AtMaxRefs() { return (refs >= MAX_STRING_REF_COUNT); }
-
- short RemoveRef() {
- assert( refs > 0 ); // Reference count corrupted
- return(--refs);
- }
-
- cStringData * NewRef() { ++refs; return this; }
-
- };
- // }}} End cStringData
-
- // -- Constants --
-public:
- static const int MAX_LENGTH;
-
-
-
- // -- INTERFACE -----------------------------------------------------------
-public:
-
- // -- Constructors --
- cString(const char * in = "") : value(new cStringData(strlen(in), in)) {
- assert( in != NULL ); // NULL input string
- assert( value != NULL ); // Memory Allocation Error: Out of Memory
- }
- explicit cString(const int size) : value(new cStringData(size)) {
- assert( value!=NULL ); // Memory Allocation Error: Out of Memory
- }
- cString(const cString & in) { CopyString(in); }
-
-
- // -- Destructor --
- virtual ~cString() { if( value->RemoveRef() == 0 ) delete value; }
-
-
- // Cast to const char *
- operator const char * () const { return value->GetData(); }
- const char * operator() () const { return value->GetData(); } // Depricated
- const char * GetData() const { return value->GetData(); } // Depricated
-
-
- // Assignment Operators
- cString & operator= (const cString & in){
- if( value->RemoveRef() == 0 ) delete value;
- CopyString(in);
- return *this;
- }
- cString & operator= (const char * in){
- assert( in != NULL ); // NULL input string
- if( value->RemoveRef() == 0 ) delete value;
- value = new cStringData(strlen(in),in);
- assert(value != NULL); // Memory Allocation Error: Out of Memory
- return *this;
- }
-
-
- /**
- * Get the size of the string (not including the terminating '\0').
- **/
- int GetSize() const { return value->GetSize(); }
-
-
- // Comparisons
- int Compare(const char * in) const; // strcmp like function
- bool operator== (const char * in) const { return (Compare(in)==0); }
- bool operator== (const cString & in) const; // A bit optimized
- bool operator!= (const char * in) const { return !(*this==in); }
- bool operator< (const char * in) const { return (Compare(in)<0); }
- bool operator> (const char * in) const { return (Compare(in)>0); }
- bool operator<= (const char * in) const { return (Compare(in)<=0); }
- bool operator>= (const char * in) const { return (Compare(in)>=0); }
-
- // Concatenation
- cString & operator+= (const char in) { return AppendStr(1,&in); }
- cString & operator+= (const char * in){ return AppendStr(strlen(in),in); }
- cString & operator+= (const cString & in){return AppendStr(in.GetSize(),in);}
- cString operator+ (const char in_char){ return (cString(*this) += in_char); }
- cString operator+ (const char * in) { return (cString(*this) += in); }
- cString operator+ (const cString & in){ return (cString(*this) += in); }
-
-
- // Additional modifiers
- cString & Set(const char * fmt, ...);
-
- cString & Insert(const char in, int pos=0, int excise=0){
- return InsertStr(1, &in, pos, excise); }
- cString & Insert(const char * in, int pos=0, int excise=0){
- return InsertStr(strlen(in), in, pos, excise); }
- cString & Insert(const cString & in, int pos=0, int excise=0){
- return InsertStr(in.GetSize(), in, pos, excise); }
-
-
- // Removes 'size' characters from 'pos' (default size = to end of string)
- cString & Clip(int pos, int size = -1 /*end of string*/ ){
- if( size < 0 ) size = GetSize()-pos;
- return InsertStr(0, NULL, pos, size); }
- cString & ClipFront(int size){ // Clip off first 'clip_size' chars
- return InsertStr(0, NULL, 0, size); }
- cString & ClipEnd(int size){ // Clip off last 'clip_size' chars
- return InsertStr(0, NULL, GetSize()-size, size); }
-
- /**
- * Find and replace a substring in the string with a different substring.
- * If the substring is not found, the string object is not changed.
- *
- * @return The position at which the substring was found, or -1 if it wasn't found.
- * @param old_string The substring that is going to be replaced.
- * @param new_string The replacement.
- * @param pos The position at which the search should start.
- **/
- int Replace(const cString & old_st, const cString & new_st, int pos=0);
-
- cString Pop(const char delim); // Remove and return up to delim char
-
- /**
- * Remove the first word.
- *
- * @return The removed word.
- **/
- cString PopWord();
-
- /**
- * Remove the first line.
- *
- * @return The removed line.
- **/
- cString PopLine(){ return Pop('\n'); }
-
- /**
- * Remove begining whitespace.
- *
- * @return The number of characters removed.
- **/
- int LeftJustify();
-
- /**
- * Remove ending whitespace.
- *
- * @return The number of characters removed.
- **/
- int RightJustify();
-
- /**
- * Reverse the order of the characters in the string.
- **/
- void Reverse();
-
- /**
- * Convert the string to lowercase.
- **/
- cString & ToLower();
-
- /**
- * Convert the string to uppercase.
- **/
- cString & ToUpper();
-
- /**
- * Replace all blocks of whitespace with a single space (' ').
- *
- * @see cString::IsWhitespace()
- **/
- void CompressWhitespace();
-
- /**
- * Get rid of all(!) whitespace.
- *
- * @see cString::IsWhitespace()
- **/
- void RemoveWhitespace();
-
- /**
- * Get rid of all occurances of a specific character.
- *
- * @see cString::RemoveWhitespace()
- **/
- void RemoveChar(char out_char);
-
- /**
- * Get rid of one character at a specific location
- **/
- void RemovePos(int pos);
-
- // Individal Char Access
- inline char operator[] (int index) const {
- return (char)((*value)[index]);
- // Below should work, but fails in HP CC -- TCC
- // return const_cast(const cStringData&, *value)[index];
- }
- cCharProxy operator[] (int index) { return cCharProxy(*this,index); }
-
-
- /**
- * Convert string to int.
- *
- * @return The integer value corresponding to the string.
- **/
- int AsInt() const { return atoi(*this); }
-
- /**
- * Convert string to double.
- *
- * @return The double value corresponding to the string.
- **/
- double AsDouble() const { return atof(*this); }
-
- // Accessors & Information
- /**
- * Tests whether the string is empty.
- **/
- bool IsEmpty() const { return GetSize()==0; } // Can just call GetSize
-
- /**
- * Test if the continuation character is at the end of the line
- * if it is strip off the charecter and return true else return
- * false
- **/
- bool IsContinueLine();
-
- /**
- * Counts whitespace, beginning at the given position.
- *
- * @param start The index at which counting should begin.
- **/
- int CountWhitespace(int start=0) const;
-
- /**
- * Counts non-whitespace, beginning at the given position.
- *
- * @param start The index at which counting should begin.
- **/
- int CountWordsize(int start=0) const;
-
- /**
- * Counts until the first occurrence of '\n', beginning at the
- * given position.
- *
- * @param start The index at which counting should begin.
- **/
- int CountLinesize(int start=0) const;
-
- /**
- * Counts the number of lines in a string.
- **/
- int CountNumLines() const;
-
- /**
- * Counts the number of separate words in a string.
- **/
- int CountNumWords() const;
-
- /**
- * Get a specific word from a string.
- *
- * @param word_id The number of the word, counted from the beginning of
- * the string, starting with 0.
- **/
- cString GetWord(int word_id=0) const;
-
- /**
- * Get the next word after the specified position. Any leading whitespace
- * is removed.
- *
- * @param start The position at which the function should start
- * searching for a word.
- **/
- cString GetWordAt(int start=0) const;
-
- /**
- * Test if a character is whitespace. Currently, as whitespace count
- * ' ', '\r', '\t', '\n'.
- *
- * @param pos The position of the character to test.
- **/
- bool IsWhitespace(int pos) const {
- return ( (*this)[pos] == ' ' || (*this)[pos] == '\t' ||
- (*this)[pos] == '\r' || (*this)[pos] == '\n' );
- }
-
- /**
- * Test if a character is a capital letter.
- *
- * @param pos The position of the character to test.
- **/
- bool IsUpperLetter(int pos) const {
- return ((*this)[pos] >= 'A' && (*this)[pos] <= 'Z');
- }
-
- /**
- * Test if a character is not a capital letter.
- *
- * @param pos The position of the character to test.
- **/
- bool IsLowerLetter(int pos) const {
- return ((*this)[pos] >= 'a' && (*this)[pos] <= 'z');
- }
-
- /**
- * Test if a character is a letter.
- *
- * @param pos The position of the character to test.
- **/
- bool IsLetter(int pos) const {
- return IsUpperLetter(pos) || IsLowerLetter(pos);
- }
-
- /**
- * Test if a character is a number (this includes expressions
- * such as -3.4e5).
- *
- * @param pos The position of the character to test.
- **/
- bool IsNumber(int pos) const {
- return ( ( (*this)[pos] >= '0' && (*this)[pos] <= '9' ) ||
- (*this)[pos] == '-' || (*this)[pos] == '+' ||
- (*this)[pos] == '.' || (*this)[pos] == 'e' ||
- (*this)[pos] == 'E' );
- }
-
- /**
- * Test if a character is a numeral (0, 1, ..., 9).
- *
- * @param pos The position of the character to test.
- **/
- bool IsNumeric(int pos) const {
- return ((*this)[pos] >= '0' && (*this)[pos] <= '9');
- }
-
- /**
- * Test if a character is either a numeral or a letter.
- *
- * @param pos The position of the character to test.
- **/
- bool IsAlphaNumeric(int pos) const {
- return IsLetter(pos) || IsNumber(pos);
- }
-
- /**
- * Test whether the complete string consits only of whitespace.
- **/
- bool IsWhitespace() const;
-
- /**
- * Test whether the complete string consits only of uppercase letters.
- **/
- bool IsUpperLetter() const;
-
- /**
- * Test whether the complete string consits only of lowercase letters.
- **/
- bool IsLowerLetter() const;
-
- /**
- * Test whether the complete string consits only of letters.
- **/
- bool IsLetter() const;
-
- /**
- * Test whether the complete string can be seen as a number.
- **/
- bool IsNumber() const;
-
- /**
- * Test whether the complete string consits only of numerals.
- **/
- bool IsNumeric() const;
-
- /**
- * Test whether the complete string consits only of letters or numerals.
- **/
- bool IsAlphaNumeric() const;
-
- /**
- * Search for a single character.
- *
- * @return The first occurence after pos, or -1 if not found
- **/
- int Find(char in_char, int pos=0) const;
-
- /**
- * Search for a substring.
- *
- * @return The first occurence after pos, or -1 if not found
- **/
- int Find(const char * in, int pos=0) const{
- return FindStr(in, strlen(in), pos); }
-
- /**
- * Search for a substring.
- *
- * @return The first occurence after pos, or -1 if not found
- **/
- int Find(const cString & in, int pos=0) const{
- return FindStr(in, in.GetSize(), pos); }
-
- /**
- * Search for a word.
- *
- * @return The first occurence after pos, or -1 if not found
- **/
- int FindWord(const cString & in, int pos=0) const;
-
-
- /**
- * Cut out a substring.
- *
- * @return The substring.
- * @param start The beginning of the substring in the string.
- * @param size The number of characters in the substring.
- **/
- cString Substring(int start, int size) const ;
-
- bool IsSubstring(const cString & in_string, int start) const;
-
-
- // {{{ -- INTERNALS -------------------------------------------------------
-protected:
- // -- Internal Functions --
-
- void CopyString(const cString & in) {
- if (in.value->AtMaxRefs() == true) {
- cStringData * old_data = in.value;
- old_data->RemoveRef(); // remove our reference count
- // Copy the _value_ of the old reference. (we need to const-cast here...)
- ( (cString &) in ).value = new cStringData(*old_data);
- }
- value = in.value->NewRef();
- }
-
- void TakeValue(cStringData * new_ref){ // If you made new_value!
- if( value->RemoveRef() == 0 ) delete value;
- value = new_ref;
- }
-
- // Methods that take input string size (unsafe to call from outside)
- cString & AppendStr(const int in_size, const char * in); // Optimized
- cString & InsertStr(const int in_size, const char * in,
- int pos, int excise=0);
- int FindStr(const char * in_string, const int in_size, int pos) const;
-
- // -- Internal Data --
-protected:
- cStringData * value;
-
-// }}} End Internals
-
-};
-
-
-// {{{ ** External cString Functions **
-
-// iostream input
-std::istream & operator >> (std::istream & in, cString & string);
-std::ostream & operator << (std::ostream & out, const cString & string);
-
-// }}}
-
-// -- INLINE INCLUDES --
-
-cString::cCharProxy & cString::cCharProxy::operator= (char c){ // lvalue
- string.CopyOnWrite();
- (*(string.value))[index] = c;
- return *this;
-}
-
-cString::cCharProxy & cString::cCharProxy::operator+= (char c){ // lvalue
- string.CopyOnWrite();
- (*(string.value))[index] += c;
- return *this;
-}
-
-cString::cCharProxy & cString::cCharProxy::operator-= (char c){ // lvalue
- string.CopyOnWrite();
- (*(string.value))[index] -= c;
- return *this;
-}
-
-cString::cCharProxy & cString::cCharProxy::operator++ (){ // lvalue (prefix)
- string.CopyOnWrite();
- ++(*(string.value))[index];
- return *this;
-}
-
-char cString::cCharProxy::operator++ (int dummy){ // lvalue (postfix)
- (void)dummy;
- char rv = (*(string.value))[index];
- string.CopyOnWrite();
- ++(*(string.value))[index];
- return rv;
-}
-
-cString::cCharProxy & cString::cCharProxy::operator-- (){ // lvalue (prefix)
- string.CopyOnWrite();
- --(*(string.value))[index];
- return *this;
-}
-
-char cString::cCharProxy::operator-- (int dummy){ // lvalue (postfix)
- (void)dummy;
- char rv = (*(string.value))[index];
- string.CopyOnWrite();
- --(*(string.value))[index];
- return rv;
-}
-
-cString::cCharProxy::operator char () const { // rvalue
- return (char)((*(string.value))[index]);
- // Below should work, but fails in HP CC -- TCC
- // return const_cast(const cStringData&, *(string.value))[index];
-}
-
-#endif
Deleted: trunk/source/tools/string_iterator.cc
===================================================================
--- trunk/source/tools/string_iterator.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_iterator.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,25 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_ITERATOR_HH
-#include "string_iterator.hh"
-#endif
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef STRING_LIST_HH
-#include "string_list.hh"
-#endif
-
-const cString cStringIterator::null_str("");
-
-cStringIterator::cStringIterator(const cStringList & in_list)
- : list_it(in_list.GetList())
-{
- Reset();
-}
Deleted: trunk/source/tools/string_iterator.hh
===================================================================
--- trunk/source/tools/string_iterator.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_iterator.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,40 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_ITERATOR_HH
-#define STRING_ITERATOR_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef TLIST_HH
-#include "tList.hh"
-#endif
-
-class cString; // aggregate
-class cStringList;
-template <class T> class tConstListIterator; // aggregate
-
-class cStringIterator {
-private:
- tConstListIterator<cString> list_it;
- static const cString null_str;
-public:
- cStringIterator(const cStringList & in_list);
-
- void Reset() { list_it.Reset(); }
- const cString & Get() {
- if (list_it.Get() == NULL) return null_str;
- return *(list_it.Get());
- }
- const cString & Next() { list_it.Next(); return Get(); }
- const cString & Prev() { list_it.Prev(); return Get(); }
- bool AtRoot() const { return list_it.AtRoot(); }
- bool AtEnd() const { return list_it.AtEnd(); }
-};
-
-#endif
Deleted: trunk/source/tools/string_list.cc
===================================================================
--- trunk/source/tools/string_list.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_list.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,75 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#include "functions.h"
-#ifndef STRING_ITERATOR_HH
-#include "string_iterator.hh"
-#endif
-#ifndef STRING_LIST_HH
-#include "string_list.hh"
-#endif
-
-
-using namespace std;
-
-
-
-cStringList::cStringList(const cString & _list, char seperator)
-{
- Load(_list, seperator);
-}
-
-cStringList::cStringList(const cStringList & _list)
-{
- tConstListIterator<cString> list_it(_list.string_list);
- while (list_it.Next() != NULL) {
- string_list.PushRear(new cString( *(list_it.Get()) ));
- }
-}
-
-cStringList::~cStringList()
-{
- while (string_list.GetSize() > 0) delete string_list.Pop();
-}
-
-
-cStringList & cStringList::operator=(const cStringList & _list)
-{
- // If this list already as anything in it, make sure to delete it.
- Clear();
-
- // Now add the new list into this one.
- tConstListIterator<cString> list_it(_list.string_list);
- while (list_it.Next() != NULL) {
- string_list.PushRear(new cString( *(list_it.Get()) ));
- }
- return *this;
-}
-
-bool cStringList::HasString(const cString & test_string) const
-{
- tConstListIterator<cString> string_it(string_list);
- const cString * cur_string = NULL;
- while ((cur_string = string_it.Next()) != NULL) {
- if (test_string == *cur_string) {
- return true;
- }
- }
- return false;
-}
-
-cString cStringList::PopString(const cString & test_string)
-{
- tListIterator<cString> string_it(string_list);
- const cString * cur_string = NULL;
- while ((cur_string = string_it.Next()) != NULL) {
- if (test_string == *cur_string) {
- return ReturnString(string_list.Remove(string_it));
- }
- }
- return "";
-}
Deleted: trunk/source/tools/string_list.hh
===================================================================
--- trunk/source/tools/string_list.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_list.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,58 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_LIST_HH
-#define STRING_LIST_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-#ifndef TLIST_HH
-#include "tList.hh"
-#endif
-
-class cString; // aggregate
-template <class T> class tList; // aggregate
-
-class cStringList {
-private:
- tList<cString> string_list;
-
- inline cString ReturnString(cString * out_string) {
- cString tmp_string(*out_string);
- delete out_string;
- return tmp_string;
- }
-public:
- cStringList() { ; }
- cStringList(const cString & _list, char seperator=' ');
- cStringList(const cStringList & _list);
- ~cStringList();
-
- cStringList & operator=(const cStringList & _list);
-
- int GetSize() const { return string_list.GetSize(); }
- cString GetLine(int line_num) const { return *(string_list.GetPos(line_num)); }
- const tList<cString> & GetList() const { return string_list; }
-
- bool HasString(const cString & test_string) const;
- cString PopString(const cString & test_string);
-
- void Push(const cString & _in) { string_list.Push(new cString(_in));}
- void PushRear(const cString & _in) { string_list.PushRear(new cString(_in));}
- cString Pop() { return ReturnString(string_list.Pop()); }
- cString PopRear() { return ReturnString(string_list.PopRear()); }
-
- void Load(cString _list, char seperator=' ') {
- while (_list.GetSize() > 0) PushRear(_list.Pop(seperator));
- }
- void Clear() {
- while (string_list.GetSize() > 0) delete string_list.Pop();
- }
-};
-
-#endif
Deleted: trunk/source/tools/string_util.cc
===================================================================
--- trunk/source/tools/string_util.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_util.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,290 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2001 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_UTIL_HH
-#include "string_util.hh"
-#endif
-
-
-#include "functions.h"
-#include "tMatrix.hh"
-
-extern "C"{
-#include <stdio.h>
-#include <stdarg.h>
-}
-
-
-using namespace std;
-
-
-cString cStringUtil::Stringf(const char * fmt, ...) {
- va_list argp;
- char buf[MAX_STRING_LENGTH];
-
- va_start(argp, fmt);
- vsprintf(buf, fmt, argp);
- va_end(argp);
-
- return cString(buf);
-}
-
-
-cString cStringUtil::ToRomanNumeral(const int in_value) {
- cString ret_string;
- if (in_value < 0) {
- ret_string = "-";
- ret_string += ToRomanNumeral(-in_value);
- } else if (in_value > 3999) {
- // Out of bounds; return a blank;
- } else if (in_value >= 1000) {
- ret_string = "M";
- ret_string += ToRomanNumeral(in_value - 1000);
- } else if (in_value >= 900) {
- ret_string = "CM";
- ret_string += ToRomanNumeral(in_value - 900);
- } else if (in_value >= 500) {
- ret_string = "D";
- ret_string += ToRomanNumeral(in_value - 500);
- } else if (in_value >= 400) {
- ret_string = "CD";
- ret_string += ToRomanNumeral(in_value - 400);
- } else if (in_value >= 100) {
- ret_string = "C";
- ret_string += ToRomanNumeral(in_value - 100);
- } else if (in_value >= 90) {
- ret_string = "XC";
- ret_string += ToRomanNumeral(in_value - 90);
- } else if (in_value >= 50) {
- ret_string = "L";
- ret_string += ToRomanNumeral(in_value - 50);
- } else if (in_value >= 40) {
- ret_string = "XL";
- ret_string += ToRomanNumeral(in_value - 40);
- } else if (in_value >= 10) {
- ret_string = "X";
- ret_string += ToRomanNumeral(in_value - 10);
- } else if (in_value == 9) {
- ret_string = "IX";
- } else if (in_value >= 5) {
- ret_string = "V";
- ret_string += ToRomanNumeral(in_value - 5);
- } else if (in_value == 4) {
- ret_string = "IV";
- } else if (in_value > 0) {
- ret_string = "I";
- ret_string += ToRomanNumeral(in_value - 1);
- }
- // else we already have it exactly and don't need to return anything.
- return ret_string;
-}
-
-
-int cStringUtil::StrLength(const char * in){
- // if 'in'==NULL return 0;
- int size = 0;
- if( in != NULL ){
- while( in[size]!='\0' ) ++size; // Count chars in _in
- }
- return size;
-}
-
-
-int cStringUtil::Distance(const cString & string1, const cString & string2,
- int offset)
-{
- if (offset < 0) return cStringUtil::Distance(string2, string1, -offset);
-
- const int size1 = string1.GetSize();
- const int size2 = string2.GetSize();
-
- // Calculate by how much the strings overlap.
- int overlap = Min( size1 - offset, size2 );
-
- // Initialize the distance to that part of the strings which do not
- // overlap.
- int num_diffs = size1 + size2 - 2 * overlap;
-
- // Step through the overlapped section and add on any additional differences.
- for (int i = 0; i < overlap; i++) {
- if (string1[i + offset] != string2[i]) num_diffs++;
- }
-
- return num_diffs;
-}
-
-
-int cStringUtil::EditDistance(const cString & string1, const cString & string2)
-{
- const int size1 = string1.GetSize();
- const int size2 = string2.GetSize();
-
- if (size1 == 0) return size2;
- if (size2 == 0) return size1;
-
- int * cur_row = new int[size1]; // The row we are calculating
- int * prev_row = new int[size1]; // The last row we calculated
-
- // Initialize the previous row to record the differece from nothing.
- for (int i = 0; i < size1; i++) prev_row[i] = i + 1;
-
- // Loop through all of the other rows
- for (int i = 0; i < size2; i++) {
- // Initialize the first entry in the current row.
- if (string1[0] == string2[i]) cur_row[0] = i;
- else cur_row[0] = (i < prev_row[0]) ? (i+1) : (prev_row[0] + 1);
-
- // Move down the cur_row and fill it in.
- for (int j = 1; j < size1; j++) {
- // If the values are equal, keep the value in the upper left.
- if (string1[j] == string2[i]) {
- cur_row[j] = prev_row[j-1];
- }
-
- // Otherwise, set the current position the the minimal of the three
- // numbers to the upper right in the chart plus one.
- else {
- cur_row[j] =
- (prev_row[j] < prev_row[j-1]) ? prev_row[j] : prev_row[j-1];
- if (cur_row[j-1] < cur_row[j]) cur_row[j] = cur_row[j-1];
- cur_row[j]++;
- }
- }
-
- // Swap cur_row and prev_row. (we only really need to move the cur row
- // over to prev, but this saves us from having to keep re-allocating
- // new rows. We recycle!
- int * temp_row = cur_row;
- cur_row = prev_row;
- prev_row = temp_row;
- }
-
- // Now that we are done, return the bottom-right corner of the chart.
-
- const int value = prev_row[size1 - 1];
-
- delete [] cur_row;
- delete [] prev_row;
-
- return value;
-}
-
-
-int cStringUtil::EditDistance(const cString & string1, const cString & string2,
- cString & info, const char gap)
-{
- const int size1 = string1.GetSize();
- const int size2 = string2.GetSize();
-
- if (!size1) return size2;
- if (!size2) return size1;
-
- tMatrix<double> dist_matrix(size2+1, size1+1);
-
- // Keep track of changes in a mut_matrix.
- // N=None, M=Mutations, I=Insertion, D=Deletion
- tMatrix<char> mut_matrix(size2+1, size1+1);
-
- // Initialize the first row and col to record the differece from nothing.
- for (int i = 0; i < size1+1; i++) {
- dist_matrix(0,i) = (double) i;
- mut_matrix(0,i) = 'I';
- }
- for (int i = 0; i < size2+1; i++) {
- dist_matrix(i,0) = (double) i;
- mut_matrix(i,0) = 'D';
- }
- mut_matrix(0,0) = 'N';
-
- for (int i = 0; i < size2; i++) {
- // Move down the cur_row and fill it out.
- for (int j = 0; j < size1; j++) {
- // If the values are equal, keep the value in the upper left.
- if (string1[j] == string2[i]) {
- dist_matrix(i+1,j+1) = dist_matrix(i,j);
- mut_matrix(i+1,j+1) = 'N';
- continue; // Move on to next entry...
- }
-
- // Otherwise, set the current position the the minimal of the three
- // numbers above (insertion), to the left (deletion), or upper left
- // (mutation) in the chart, plus one.
- double mut_dist = dist_matrix(i,j) + 1;
- if ((string1[j] == gap) || (string2[i] == gap)) mut_dist -= 0.0001;
- const double ins_dist = dist_matrix(i+1,j) + (string1[j] != gap);
- const double del_dist = dist_matrix(i,j+1) + (string2[i] != gap);
-
- if (mut_dist < ins_dist && mut_dist < del_dist) { // Mutation!
- dist_matrix(i+1,j+1) = mut_dist;
- mut_matrix(i+1,j+1) = 'M';
- } else if (ins_dist < del_dist) { // Insertion!
- dist_matrix(i+1,j+1) = ins_dist;
- mut_matrix(i+1,j+1) = 'I';
- } else { // Deletion!
- dist_matrix(i+1,j+1) = del_dist;
- mut_matrix(i+1,j+1) = 'D';
- }
- }
- }
-
- // Construct the list of changes
- int pos1 = size1;
- int pos2 = size2;
- info = "";
-
- cString mut_string;
- while (pos1 > 0 || pos2 > 0) {
- if (mut_matrix(pos2, pos1) == 'N') {
- pos1--; pos2--;
- continue;
- }
-
- // There is a mutation here; determine the type...
- const char old_char = (pos2 > 0) ? string2[pos2-1] : '\0';
- const char new_char = (pos1 > 0) ? string1[pos1-1] : '\0';
-
- if (mut_matrix(pos2, pos1) == 'M') {
- mut_string.Set("M%d%c%c", pos2-1, old_char, new_char);
- pos1--; pos2--;
- }
- else if (mut_matrix(pos2, pos1) == 'D') {
- mut_string.Set("D%d%c", pos2-1, old_char);
- pos2--;
- }
- else { // if (mut_matrix(pos2, pos1) == 'I') {
- mut_string.Set("I%d%c", pos1-1, new_char);
- pos1--;
- }
-
- if (info.GetSize() > 0) mut_string += ",";
- info.Insert(mut_string);
- }
-
- // Now that we are done, return the bottom-right corner of the chart.
- return (int) dist_matrix(size2, size1);
-}
-
-const cString & cStringUtil::Convert(const cString & in_string,
- const cString & out_string)
-{
- return in_string;
-}
-
-bool cStringUtil::Convert(const cString & in_string, bool type_bool)
-{
- return (in_string.AsInt() != 0);
-}
-
-int cStringUtil::Convert(const cString & in_string, int type_int)
-{
- return in_string.AsInt();
-}
-
-double cStringUtil::Convert(const cString & in_string, double type_double)
-{
- return in_string.AsDouble();
-}
Deleted: trunk/source/tools/string_util.hh
===================================================================
--- trunk/source/tools/string_util.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/string_util.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,57 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1993 - 2003 California Institute of Technology //
-// //
-// Read the COPYING and README files, or contact 'avida at alife.org', //
-// before continuing. SOME RESTRICTIONS MAY APPLY TO USE OF THIS FILE. //
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef STRING_UTIL_HH
-#define STRING_UTIL_HH
-
-#ifndef STRING_HH
-#include "string.hh"
-#endif
-
-class cString; // aggregate
-
-struct cStringUtil {
- static cString Stringf(const char * fmt, ...);
- static cString ToRomanNumeral(const int in_value);
- static int StrLength(const char * _in);
-
- /**
- * Calculate the Hamming distance between two strings.
- *
- * @return The Hamming distance.
- * @param string1 the first string to compare.
- * @param string2 the second string to compare.
- * @param offset This parameter determines how many characters the second
- * string should be shifted wrt. the first before the comparison.
- **/
- static int Distance(const cString & string1, const cString & string2,
- int offset=0);
-
- /**
- * Calculate the edit distance between two strings.
- *
- * @return The Edit (Levenstein) distance.
- * @param string1 the first string to compare.
- * @param string2 the second string to compare.
- * @param description The string to write out the differences
- **/
- static int EditDistance(const cString & string1, const cString & string2);
- static int EditDistance(const cString & string1, const cString & string2,
- cString & info, const char gap=' ');
-
- /**
- * Various, overloaded conversion functions for use in templates. Note
- * that in all cases, the second argument is simply to set the return type.
- **/
- static const cString & Convert(const cString & in_string,
- const cString & out_string);
- static bool Convert(const cString & in_string, bool type_bool);
- static int Convert(const cString & in_string, int type_int);
- static double Convert(const cString & in_string, double type_double);
-};
-
-#endif
Modified: trunk/source/tools/tBuffer.hh
===================================================================
--- trunk/source/tools/tBuffer.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tBuffer.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -12,7 +12,7 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/tools/tDataEntry.hh
===================================================================
--- trunk/source/tools/tDataEntry.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tDataEntry.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,10 +11,10 @@
#include <iostream>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TDATAENTRYBASE_HH
#include "tDataEntryBase.hh"
Modified: trunk/source/tools/tDataEntryCommand.hh
===================================================================
--- trunk/source/tools/tDataEntryCommand.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tDataEntryCommand.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#include <iostream>
#ifndef STRING_LIST_HH
-#include "string_list.hh"
+#include "cStringList.h"
#endif
#ifndef TDATAENTRYBASE_HH
#include "tDataEntryBase.hh"
Modified: trunk/source/tools/tDictionary.hh
===================================================================
--- trunk/source/tools/tDictionary.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tDictionary.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -46,10 +46,10 @@
#define TDICTIONARY_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/tools/tHashTable.hh
===================================================================
--- trunk/source/tools/tHashTable.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tHashTable.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -48,10 +48,10 @@
#define THASH_TABLE_HH
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TARRAY_HH
#include "tArray.hh"
Modified: trunk/source/tools/tools.cc
===================================================================
--- trunk/source/tools/tools.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tools.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -15,7 +15,7 @@
#include <stdio.h>
#ifndef STRING_HH
-#include "string.hh"
+#include "cString.h"
#endif
#ifdef WIN32
Modified: trunk/source/tools/tools.hh
===================================================================
--- trunk/source/tools/tools.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tools.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -11,7 +11,7 @@
#define TOOLS_HH
#ifndef RANDOM_HH
-#include "random.hh"
+#include "cRandom.h"
#endif
extern cRandom g_random;
Modified: trunk/source/tools/tools.pri
===================================================================
--- trunk/source/tools/tools.pri 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/tools/tools.pri 2005-10-08 02:02:38 UTC (rev 338)
@@ -1,6 +1,6 @@
tools {
- HEADERS += $$TOOLS_HH/indexed_block_struct.hh \
+ HEADERS += $$TOOLS_HH/cIndexedBlockStruct.h \
$$TOOLS_HH/cBlockStruct.h \
$$TOOLS_HH/cDataEntry.h \
$$TOOLS_HH/cDataManager_Base.h \
@@ -8,13 +8,13 @@
$$TOOLS_HH/cFile.h \
$$TOOLS_HH/cFixedBlock.h \
$$TOOLS_HH/functions.h \
- $$TOOLS_HH/merit.hh \
- $$TOOLS_HH/message_display.hh \
- $$TOOLS_HH/message_display_hdrs.hh \
- $$TOOLS_HH/random.hh \
- $$TOOLS_HH/string.hh \
- $$TOOLS_HH/string_list.hh \
- $$TOOLS_HH/string_util.hh \
+ $$TOOLS_HH/cMerit.h \
+ $$TOOLS_HH/cMessageDisplay.h \
+ $$TOOLS_HH/cMessageDisplay_headers.h \
+ $$TOOLS_HH/cRandom.h \
+ $$TOOLS_HH/cString.h \
+ $$TOOLS_HH/cStringList.h \
+ $$TOOLS_HH/cStringUtil.h \
$$TOOLS_HH/tArray.hh \
$$TOOLS_HH/tBuffer.hh \
$$TOOLS_HH/tDictionary.hh \
@@ -39,27 +39,27 @@
$$TOOLS_CC/cFile.cc \
$$TOOLS_CC/cFixedBlock.cc \
$$TOOLS_CC/cGenesis.cc \
- $$TOOLS_CC/help_alias.cc \
- $$TOOLS_CC/help_manager.cc \
- $$TOOLS_CC/help_type.cc \
- $$TOOLS_CC/histogram.cc \
- $$TOOLS_CC/indexed_block_struct.cc \
- $$TOOLS_CC/init_file.cc \
- $$TOOLS_CC/int_sum.cc \
- $$TOOLS_CC/integrated_schedule.cc \
- $$TOOLS_CC/integrated_schedule_node.cc \
- $$TOOLS_CC/merit.cc \
- $$TOOLS_CC/message_display.cc \
- $$TOOLS_CC/prob_schedule.cc \
- $$TOOLS_CC/random.cc \
- $$TOOLS_CC/ref_block.cc \
- $$TOOLS_CC/running_average.cc \
- $$TOOLS_CC/scaled_block.cc \
- $$TOOLS_CC/schedule.cc \
- $$TOOLS_CC/string.cc \
- $$TOOLS_CC/string_iterator.cc \
- $$TOOLS_CC/string_list.cc \
- $$TOOLS_CC/string_util.cc \
+ $$TOOLS_CC/cHelpAlias.cc \
+ $$TOOLS_CC/cHelpManager.cc \
+ $$TOOLS_CC/cHelpType.cc \
+ $$TOOLS_CC/cHistogram.cc \
+ $$TOOLS_CC/cIndexedBlockStruct.cc \
+ $$TOOLS_CC/cInitFile.cc \
+ $$TOOLS_CC/cIntSum.cc \
+ $$TOOLS_CC/cIntegratedSchedule.cc \
+ $$TOOLS_CC/cIntegratedScheduleNode.cc \
+ $$TOOLS_CC/cMerit.cc \
+ $$TOOLS_CC/cMessageDisplay.cc \
+ $$TOOLS_CC/cProbSchedule.cc \
+ $$TOOLS_CC/cRandom.cc \
+ $$TOOLS_CC/cRefBlock.cc \
+ $$TOOLS_CC/cRunningAverage.cc \
+ $$TOOLS_CC/cScaledBlock.cc \
+ $$TOOLS_CC/cSchedule.cc \
+ $$TOOLS_CC/cString.cc \
+ $$TOOLS_CC/cStringIterator.cc \
+ $$TOOLS_CC/cStringList.cc \
+ $$TOOLS_CC/cStringUtil.cc \
$$TOOLS_CC/tools.cc \
$$TOOLS_CC/weighted_index.cc
}
Modified: trunk/source/utils/hist_map/Makefile
===================================================================
--- trunk/source/utils/hist_map/Makefile 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/hist_map/Makefile 2005-10-08 02:02:38 UTC (rev 338)
@@ -28,8 +28,8 @@
### List Source Files in the Project #########################################
SRC = hist_map2.cc ../../tools/cFile.cc \
- ../../tools/init_file.cc ../../tools/string.cc \
- ../../tools/string_list.cc ../../tools/string_iterator.cc \
+ ../../tools/cInitFile.cc ../../tools/cString.cc \
+ ../../tools/cStringList.cc ../../tools/cStringIterator.cc \
### List Object Files (for each source file there is a object file) ###########
OBJ = $(SRC:.cc=.o)
@@ -72,15 +72,15 @@
# DO NOT DELETE
hist_map2.o: ../../tools/tMatrix.hh ../../tools/tArray.hh
-hist_map2.o: ../../tools/string.hh ../../tools/cFile.h
-hist_map2.o: ../../tools/init_file.hh ../../tools/string_list.hh
+hist_map2.o: ../../tools/cString.h ../../tools/cFile.h
+hist_map2.o: ../../tools/cInitFile.h ../../tools/cStringList.h
hist_map2.o: ../../tools/tList.hh
-../../tools/file.o: ../../tools/cFile.h ../../tools/string.hh
-../../tools/file.o: ../../tools/init_file.hh ../../tools/string_list.hh
+../../tools/file.o: ../../tools/cFile.h ../../tools/cString.h
+../../tools/file.o: ../../tools/cInitFile.h ../../tools/cStringList.h
../../tools/file.o: ../../tools/tList.hh ../../tools/tArray.hh
-../../tools/file.o: ../../tools/cGenesis.h ../../tools/string_iterator.hh
-../../tools/file.o: ../../tools/tools.hh ../../tools/random.hh
-../../tools/init_file.o: ../../tools/init_file.hh ../../tools/string_list.hh
+../../tools/file.o: ../../tools/cGenesis.h ../../tools/cStringIterator.h
+../../tools/file.o: ../../tools/tools.hh ../../tools/cRandom.h
+../../tools/init_file.o: ../../tools/cInitFile.h ../../tools/cStringList.h
../../tools/init_file.o: ../../tools/tList.hh ../../tools/tArray.hh
-../../tools/init_file.o: ../../tools/string_iterator.hh
-../../tools/string.o: ../../tools/string.hh
+../../tools/init_file.o: ../../tools/cStringIterator.h
+../../tools/string.o: ../../tools/cString.h
Modified: trunk/source/utils/hist_map/hist_map.cc
===================================================================
--- trunk/source/utils/hist_map/hist_map.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/hist_map/hist_map.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -6,7 +6,7 @@
#include "../../tools/tMatrix.hh"
-#include "../../tools/string.hh"
+#include "../../tools/cString.h"
#include "../../tools/cFile.h"
Modified: trunk/source/utils/hist_map/hist_map2.cc
===================================================================
--- trunk/source/utils/hist_map/hist_map2.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/hist_map/hist_map2.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -6,9 +6,9 @@
#include "../../tools/tMatrix.hh"
-#include "../../tools/string.hh"
+#include "../../tools/cString.h"
#include "../../tools/cFile.h"
-#include "../../tools/init_file.hh"
+#include "../../tools/cInitFile.h"
using namespace std;
Modified: trunk/source/utils/matlabify.cc
===================================================================
--- trunk/source/utils/matlabify.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/matlabify.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#include <iostream>
using namespace std;
-#include "../tools/init_file.hh"
+#include "../tools/cInitFile.h"
int main(int argc, char * argv[])
{
Modified: trunk/source/utils/task_events/task_event_gen.cc
===================================================================
--- trunk/source/utils/task_events/task_event_gen.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/task_events/task_event_gen.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -2,10 +2,10 @@
#include "../../tools/tArray.hh"
#include "../../tools/cFile.h"
-#include "../../tools/random.hh"
-#include "../../tools/string.hh"
-#include "../../tools/init_file.hh"
-#include "../../tools/string_list.hh"
+#include "../../tools/cRandom.h"
+#include "../../tools/cString.h"
+#include "../../tools/cInitFile.h"
+#include "../../tools/cStringList.h"
using namespace std;
Modified: trunk/source/utils/task_events/task_event_gen.old.cc
===================================================================
--- trunk/source/utils/task_events/task_event_gen.old.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/utils/task_events/task_event_gen.old.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -2,10 +2,10 @@
#include "../../tools/tArray.hh"
#include "../../tools/cFile.h"
-#include "../../tools/random.hh"
-#include "../../tools/string.hh"
-#include "../../tools/init_file.hh"
-#include "../../tools/string_list.hh"
+#include "../../tools/cRandom.h"
+#include "../../tools/cString.h"
+#include "../../tools/cInitFile.h"
+#include "../../tools/cStringList.h"
using namespace std;
Modified: trunk/source/viewers/menu.hh
===================================================================
--- trunk/source/viewers/menu.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/viewers/menu.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -8,7 +8,7 @@
#ifndef VIEW_MENU_HH
#define VIEW_MENU_HH
-#include "string.hh"
+#include "cString.h"
#include "ncurses.hh"
#include "ansi.hh"
Modified: trunk/source/viewers/text_screen.hh
===================================================================
--- trunk/source/viewers/text_screen.hh 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/viewers/text_screen.hh 2005-10-08 02:02:38 UTC (rev 338)
@@ -9,7 +9,7 @@
#define VIEW_TEXT_SCREEN_HH
-#include "merit.hh"
+#include "cMerit.h"
#include "cInstSet.h"
#include "defs.hh"
Modified: trunk/source/viewers/zoom_screen.cc
===================================================================
--- trunk/source/viewers/zoom_screen.cc 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/source/viewers/zoom_screen.cc 2005-10-08 02:02:38 UTC (rev 338)
@@ -18,7 +18,7 @@
#include "cPopulation.h"
#include "cPopulationCell.h"
#ifndef STRING_UTIL_HH
-#include "string_util.hh"
+#include "cStringUtil.h"
#endif
#ifndef TASK_ENTRY_HH
#include "cTaskEntry.h"
Modified: trunk/status.xml
===================================================================
--- trunk/status.xml 2005-10-07 01:02:35 UTC (rev 337)
+++ trunk/status.xml 2005-10-08 02:02:38 UTC (rev 338)
@@ -703,7 +703,7 @@
the more acurate STERILIZE_*
</action>
<action dev="CAO" type="fix" context="bug">
- Added #include <string.h> in string.hh and debug.hh -- it was crashing on
+ Added #include <string.h> in cString.h and debug.hh -- it was crashing on
calls to strlen() on some newer compilers.
</action>
<action dev="CAO" type="fix" context="bug">
More information about the Avida-cvs
mailing list