[Avida-SVN] r2260 - in development: Avida.xcodeproj source source/analyze source/cpu source/main support/config

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Tue Jan 8 20:46:35 PST 2008


Author: brysonda
Date: 2008-01-08 23:46:35 -0500 (Tue, 08 Jan 2008)
New Revision: 2260

Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/analyze/cAnalyze.cc
   development/source/cpu/cHeadCPU.cc
   development/source/defs.h
   development/source/main/cTaskLib.cc
   development/support/config/avida.cfg
Log:
Fix Xcode Project
- added to new analyze files into the project, removed old
- fixed spurious linker warnings due to odd visibility flags

Fix various cAnalyze.cc warnings.

Finally commit updated version 2.9 identifiers for development branch.


Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/Avida.xcodeproj/project.pbxproj	2008-01-09 04:46:35 UTC (rev 2260)
@@ -184,6 +184,8 @@
 		7049F3730A66AD7E00640512 /* default-transsmt.org in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7049F36F0A66AD7E00640512 /* default-transsmt.org */; };
 		704C21DC0C28C3980038F1A5 /* libtcmalloc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 70AA941909D486AE006A24C8 /* libtcmalloc.a */; };
 		70658C5A085DF67D00486BED /* libncurses.5.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 70658C59085DF67D00486BED /* libncurses.5.4.dylib */; };
+		7076FEB00D347FD000556CAF /* cAnalyzeTreeStats_CumulativeStemminess.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7076FEAE0D347FD000556CAF /* cAnalyzeTreeStats_CumulativeStemminess.cc */; };
+		7076FEB10D347FD000556CAF /* cAnalyzeTreeStats_Gamma.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7076FEAF0D347FD000556CAF /* cAnalyzeTreeStats_Gamma.cc */; };
 		70AA941A09D486CA006A24C8 /* system-alloc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70DCF50209CFB0B400924128 /* system-alloc.cc */; };
 		70AA941B09D486CB006A24C8 /* tcmalloc-logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70DCF57F09CFBD3D00924128 /* tcmalloc-logging.cc */; };
 		70AA941C09D486CD006A24C8 /* tcmalloc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70DCF56309CFBB9500924128 /* tcmalloc.cc */; };
@@ -196,7 +198,6 @@
 		B4FA258A0C5EB65E0086D4B5 /* cPlasticPhenotype.cc in Sources */ = {isa = PBXBuildFile; fileRef = B4FA25810C5EB6510086D4B5 /* cPlasticPhenotype.cc */; };
 		B4FA25A90C5EB7880086D4B5 /* cPhenPlastGenotype.cc in Sources */ = {isa = PBXBuildFile; fileRef = B4FA259E0C5EB7600086D4B5 /* cPhenPlastGenotype.cc */; };
 		B516AF840C91E2D400023D53 /* cDemeCellEvent.cc in Sources */ = {isa = PBXBuildFile; fileRef = B516AF790C91E24600023D53 /* cDemeCellEvent.cc */; };
-		DCD8AC1F0C8A7C30004CBE6F /* cAnalyzeGenotypeTreeStats.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCA4BEC10C8A758800D81B58 /* cAnalyzeGenotypeTreeStats.cc */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXBuildRule section */
@@ -484,6 +485,10 @@
 		70731668097C6E0C00815164 /* cASSymbol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cASSymbol.h; sourceTree = "<group>"; };
 		70731669097C6E0C00815164 /* cASSymbol.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cASSymbol.cc; sourceTree = "<group>"; };
 		707415C70AA7E4100064A546 /* main.css */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = main.css; sourceTree = "<group>"; };
+		7076FEAE0D347FD000556CAF /* cAnalyzeTreeStats_CumulativeStemminess.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cAnalyzeTreeStats_CumulativeStemminess.cc; sourceTree = "<group>"; };
+		7076FEAF0D347FD000556CAF /* cAnalyzeTreeStats_Gamma.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cAnalyzeTreeStats_Gamma.cc; sourceTree = "<group>"; };
+		7076FEB40D347FEC00556CAF /* cAnalyzeTreeStats_CumulativeStemminess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAnalyzeTreeStats_CumulativeStemminess.h; sourceTree = "<group>"; };
+		7076FEB50D347FEC00556CAF /* cAnalyzeTreeStats_Gamma.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAnalyzeTreeStats_Gamma.h; sourceTree = "<group>"; };
 		707AEEEF09E80725001AEA89 /* cAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAction.h; sourceTree = "<group>"; };
 		707AEEFE09E83381001AEA89 /* cActionLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cActionLibrary.h; sourceTree = "<group>"; };
 		707AEF8C09EA8B2D001AEA89 /* cAnalyzeCommandAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAnalyzeCommandAction.h; sourceTree = "<group>"; };
@@ -821,8 +826,6 @@
 		B4FA259E0C5EB7600086D4B5 /* cPhenPlastGenotype.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cPhenPlastGenotype.cc; sourceTree = "<group>"; };
 		B516AF790C91E24600023D53 /* cDemeCellEvent.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = cDemeCellEvent.cc; path = source/main/cDemeCellEvent.cc; sourceTree = SOURCE_ROOT; };
 		B516AF7A0C91E24600023D53 /* cDemeCellEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cDemeCellEvent.h; path = source/main/cDemeCellEvent.h; sourceTree = SOURCE_ROOT; };
-		DCA4BEC10C8A758800D81B58 /* cAnalyzeGenotypeTreeStats.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cAnalyzeGenotypeTreeStats.cc; sourceTree = "<group>"; };
-		DCA4BEC20C8A758800D81B58 /* cAnalyzeGenotypeTreeStats.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cAnalyzeGenotypeTreeStats.h; sourceTree = "<group>"; };
 		DCC30FCF0762539D008F7A48 /* Doxyfile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Doxyfile; sourceTree = "<group>"; };
 		DCC3109C0762539E008F7A48 /* avida.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = avida.cc; sourceTree = "<group>"; };
 		DCC31547076253A4008F7A48 /* cCycleCheck.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCycleCheck.cc; sourceTree = "<group>"; };
@@ -959,8 +962,10 @@
 		70422A1B091B141000A5E67F /* analyze */ = {
 			isa = PBXGroup;
 			children = (
-				DCA4BEC10C8A758800D81B58 /* cAnalyzeGenotypeTreeStats.cc */,
-				DCA4BEC20C8A758800D81B58 /* cAnalyzeGenotypeTreeStats.h */,
+				7076FEB40D347FEC00556CAF /* cAnalyzeTreeStats_CumulativeStemminess.h */,
+				7076FEB50D347FEC00556CAF /* cAnalyzeTreeStats_Gamma.h */,
+				7076FEAE0D347FD000556CAF /* cAnalyzeTreeStats_CumulativeStemminess.cc */,
+				7076FEAF0D347FD000556CAF /* cAnalyzeTreeStats_Gamma.cc */,
 				709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */,
 				709D92490A5D94FD00D6A163 /* cMutationalNeighborhood.h */,
 				709D924A0A5D94FD00D6A163 /* cMutationalNeighborhoodResults.h */,
@@ -1778,11 +1783,16 @@
 /* Begin PBXProject section */
 		DCC30C4D0762532C008F7A48 /* Project object */ = {
 			isa = PBXProject;
+			attributes = {
+				BuildIndependentTargetsInParallel = NO;
+			};
 			buildConfigurationList = 702442D70859E0B00059BD9B /* Build configuration list for PBXProject "Avida" */;
+			compatibilityVersion = "Xcode 2.4";
 			hasScannedForEncodings = 0;
 			mainGroup = DCC30C490762532C008F7A48;
 			productRefGroup = DCC3164E07626CF3008F7A48 /* Products */;
 			projectDirPath = "";
+			projectRoot = "";
 			targets = (
 				7023ED520C0A590200362B9C /* full-suite */,
 				DCC3164C07626CF3008F7A48 /* avida */,
@@ -1854,7 +1864,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				DCD8AC1F0C8A7C30004CBE6F /* cAnalyzeGenotypeTreeStats.cc in Sources */,
 				7023EC3A0C0A431B00362B9C /* avida.cc in Sources */,
 				7023EC3B0C0A431B00362B9C /* cActionLibrary.cc in Sources */,
 				7023EC3C0C0A431B00362B9C /* cAnalyze.cc in Sources */,
@@ -1963,6 +1972,8 @@
 				B4FA258A0C5EB65E0086D4B5 /* cPlasticPhenotype.cc in Sources */,
 				B4FA25A90C5EB7880086D4B5 /* cPhenPlastGenotype.cc in Sources */,
 				B516AF840C91E2D400023D53 /* cDemeCellEvent.cc in Sources */,
+				7076FEB00D347FD000556CAF /* cAnalyzeTreeStats_CumulativeStemminess.cc in Sources */,
+				7076FEB10D347FD000556CAF /* cAnalyzeTreeStats_Gamma.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2072,66 +2083,35 @@
 		56F555D50C3B36AD00E2E929 /* Development */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "avida-text";
-				ZERO_LINK = YES;
 			};
 			name = Development;
 		};
 		56F555D60C3B36AD00E2E929 /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "avida-text";
-				ZERO_LINK = NO;
 			};
 			name = Deployment;
 		};
 		56F555D70C3B36AD00E2E929 /* Deployment-G5 */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "avida-text";
-				ZERO_LINK = YES;
 			};
 			name = "Deployment-G5";
 		};
 		56F555D80C3B36AD00E2E929 /* Deployment-Universal */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "avida-text";
-				ZERO_LINK = YES;
 			};
 			name = "Deployment-Universal";
 		};
 		56F555D90C3B36AD00E2E929 /* Profile */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "avida-text";
-				ZERO_LINK = YES;
 			};
 			name = Profile;
 		};
@@ -2145,22 +2125,7 @@
 		700E2B80085DE50C00CF158A /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ALTIVEC_EXTENSIONS = YES;
-				GCC_AUTO_VECTORIZATION = YES;
-				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_FAST_MATH = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_MODEL_CPU = G4;
-				GCC_OPTIMIZATION_LEVEL = 3;
-				GCC_PREPROCESSOR_DEFINITIONS = REVISION_SUPPORT;
-				GCC_UNROLL_LOOPS = YES;
 				PRODUCT_NAME = "avida-viewer";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
 			};
 			name = Deployment;
 		};
@@ -2174,6 +2139,7 @@
 		7023EC360C0A42BC00362B9C /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				DEPLOYMENT_POSTPROCESSING = NO;
 				PRODUCT_NAME = "avida-core";
 			};
 			name = Deployment;
@@ -2202,10 +2168,6 @@
 		7023ED5A0C0A594300362B9C /* Development */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
 				PRODUCT_NAME = "full-suite";
 			};
 			name = Development;
@@ -2213,11 +2175,7 @@
 		7023ED5B0C0A594300362B9C /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
 				PRODUCT_NAME = "full-suite";
-				ZERO_LINK = NO;
 			};
 			name = Deployment;
 		};
@@ -2245,8 +2203,6 @@
 		702442D30859E0B00059BD9B /* Development */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
-				HEADER_SEARCH_PATHS = /usr/local/boost;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,
@@ -2258,7 +2214,6 @@
 		702442D40859E0B00059BD9B /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,
@@ -2274,11 +2229,13 @@
 				GCC_DEBUGGING_SYMBOLS = full;
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = (
 					DEBUG,
 					REVISION_SUPPORT,
 				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
 				PREBINDING = NO;
 				WARNING_CFLAGS = (
@@ -2302,16 +2259,17 @@
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_SSE3_EXTENSIONS = YES;
 				GCC_FAST_MATH = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
 				GCC_OPTIMIZATION_LEVEL = 3;
 				GCC_PREPROCESSOR_DEFINITIONS = (
 					NDEBUG,
 					REVISION_SUPPORT,
 				);
 				GCC_STRICT_ALIASING = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_UNROLL_LOOPS = YES;
 				PER_ARCH_CFLAGS_i386 = "-DCOMPILE_ARCH=\\\"Intel\\\"";
 				PER_ARCH_CFLAGS_ppc = "-DCOMPILE_ARCH=\\\"G4-G5\\\" -mno-fused-madd -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -falign-loops=16 -falign-jumps=16 -falign-functions=16 -ftree-loop-linear -fsched-interblock -fgcse-sm";
-				SEPARATE_STRIP = YES;
 				WARNING_CFLAGS = (
 					"-Wextra",
 					"-Wno-four-char-constants",
@@ -2332,6 +2290,7 @@
 		70AA942709D48715006A24C8 /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				DEPLOYMENT_POSTPROCESSING = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
 				PRODUCT_NAME = tcmalloc;
 			};
@@ -2356,7 +2315,6 @@
 		70B393DC0944CA6F0018F09D /* Deployment-G5 */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,
@@ -2368,7 +2326,6 @@
 		70B393DD0944CA6F0018F09D /* Profile */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,
@@ -2380,44 +2337,14 @@
 		70B393DE0944CA6F0018F09D /* Deployment-G5 */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ALTIVEC_EXTENSIONS = YES;
-				GCC_AUTO_VECTORIZATION = YES;
-				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_FAST_MATH = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_MODEL_CPU = G4;
-				GCC_OPTIMIZATION_LEVEL = 3;
-				GCC_PREPROCESSOR_DEFINITIONS = REVISION_SUPPORT;
-				GCC_UNROLL_LOOPS = YES;
 				PRODUCT_NAME = "avida-viewer";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
 			};
 			name = "Deployment-G5";
 		};
 		70B393DF0944CA6F0018F09D /* Profile */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ALTIVEC_EXTENSIONS = YES;
-				GCC_AUTO_VECTORIZATION = YES;
-				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_FAST_MATH = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_MODEL_CPU = G4;
-				GCC_OPTIMIZATION_LEVEL = 3;
-				GCC_PREPROCESSOR_DEFINITIONS = REVISION_SUPPORT;
-				GCC_UNROLL_LOOPS = YES;
 				PRODUCT_NAME = "avida-viewer";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
 			};
 			name = Profile;
 		};
@@ -2432,6 +2359,7 @@
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_SSE3_EXTENSIONS = YES;
 				GCC_FAST_MATH = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
 				GCC_MODEL_PPC64 = YES;
 				GCC_MODEL_TUNING = G5;
 				GCC_OPTIMIZATION_LEVEL = 3;
@@ -2440,6 +2368,7 @@
 					REVISION_SUPPORT,
 				);
 				GCC_STRICT_ALIASING = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_UNROLL_LOOPS = YES;
 				OTHER_CFLAGS = (
 					"$(OTHER_CFLAGS_QUOTED_1)",
@@ -2456,7 +2385,6 @@
 				);
 				OTHER_CFLAGS_QUOTED_1 = "-DCOMPILE_ARCH=\\\"G5\\\"";
 				PREBINDING = NO;
-				SEPARATE_STRIP = YES;
 				WARNING_CFLAGS = (
 					"-Wextra",
 					"-Wno-four-char-constants",
@@ -2476,6 +2404,7 @@
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_SSE3_EXTENSIONS = YES;
 				GCC_FAST_MATH = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
 				GCC_MODEL_TUNING = G5;
 				GCC_OPTIMIZATION_LEVEL = 3;
 				GCC_PREPROCESSOR_DEFINITIONS = (
@@ -2483,6 +2412,7 @@
 					REVISION_SUPPORT,
 				);
 				GCC_STRICT_ALIASING = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_UNROLL_LOOPS = YES;
 				OTHER_CFLAGS = (
 					"-mno-fused-madd",
@@ -2505,71 +2435,41 @@
 		70B651580BEA700B002472ED /* Development */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "unit-tests";
-				ZERO_LINK = YES;
 			};
 			name = Development;
 		};
 		70B651590BEA700B002472ED /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "unit-tests";
-				ZERO_LINK = YES;
 			};
 			name = Deployment;
 		};
 		70B6515A0BEA700B002472ED /* Deployment-G5 */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "unit-tests";
-				ZERO_LINK = YES;
 			};
 			name = "Deployment-G5";
 		};
 		70B6515B0BEA700B002472ED /* Deployment-Universal */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "unit-tests";
-				ZERO_LINK = YES;
 			};
 			name = "Deployment-Universal";
 		};
 		70B6515C0BEA700B002472ED /* Profile */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = "$(HOME)/bin";
-				PREBINDING = NO;
 				PRODUCT_NAME = "unit-tests";
-				ZERO_LINK = YES;
 			};
 			name = Profile;
 		};
 		70DCAD18097AF7CC002F8733 /* Development */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				PRODUCT_NAME = "avida-s";
 			};
 			name = Development;
@@ -2577,7 +2477,6 @@
 		70DCAD19097AF7CC002F8733 /* Deployment */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				PRODUCT_NAME = "avida-s";
 			};
 			name = Deployment;
@@ -2585,7 +2484,6 @@
 		70DCAD1A097AF7CC002F8733 /* Deployment-G5 */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				PRODUCT_NAME = "avida-s";
 			};
 			name = "Deployment-G5";
@@ -2593,7 +2491,6 @@
 		70DCAD1B097AF7CC002F8733 /* Profile */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				PRODUCT_NAME = "avida-s";
 			};
 			name = Profile;
@@ -2609,7 +2506,6 @@
 		E626209A0A372B9900C07685 /* Deployment-Universal */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,
@@ -2621,7 +2517,6 @@
 		E626209B0A372B9900C07685 /* Deployment-Universal */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_MODEL_CPU = G4;
 				PRODUCT_NAME = "avida-s";
 			};
 			name = "Deployment-Universal";
@@ -2629,22 +2524,7 @@
 		E626209C0A372B9900C07685 /* Deployment-Universal */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				GCC_ALTIVEC_EXTENSIONS = YES;
-				GCC_AUTO_VECTORIZATION = YES;
-				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_FAST_MATH = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_MODEL_CPU = G4;
-				GCC_OPTIMIZATION_LEVEL = 3;
-				GCC_PREPROCESSOR_DEFINITIONS = REVISION_SUPPORT;
-				GCC_UNROLL_LOOPS = YES;
 				PRODUCT_NAME = "avida-viewer";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
 			};
 			name = "Deployment-Universal";
 		};
@@ -2662,18 +2542,19 @@
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_SSE3_EXTENSIONS = YES;
 				GCC_FAST_MATH = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
 				GCC_OPTIMIZATION_LEVEL = 3;
 				GCC_PREPROCESSOR_DEFINITIONS = (
 					NDEBUG,
 					REVISION_SUPPORT,
 				);
 				GCC_STRICT_ALIASING = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_UNROLL_LOOPS = YES;
 				PER_ARCH_CFLAGS_i386 = "-DCOMPILE_ARCH=\\\"Intel\\\"";
 				PER_ARCH_CFLAGS_ppc = "-DCOMPILE_ARCH=\\\"G4-G5\\\" -mpowerpc-gpopt -mno-fused-madd -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -falign-loops=16 -falign-jumps=16 -falign-functions=16 -ftree-loop-linear -fsched-interblock -fgcse-sm";
 				PREBINDING = NO;
 				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
-				SEPARATE_STRIP = YES;
 				WARNING_CFLAGS = (
 					"-Wextra",
 					"-Wno-four-char-constants",

Modified: development/source/analyze/cAnalyze.cc
===================================================================
--- development/source/analyze/cAnalyze.cc	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/source/analyze/cAnalyze.cc	2008-01-09 04:46:35 UTC (rev 2260)
@@ -3646,7 +3646,7 @@
   ofstream& fp = m_world->GetDataFileOFStream(filename);
 
   int f1=-1, f2=-1, rangecount[2]={0,0}, threshcount[2]={0,0};
-  double f1Max, f1Min, f2Max, f2Min;
+  double f1Max = 0.0, f1Min = 0.0, f2Max = 0.0, f2Min = 0.0;
   
   // first need to find out how many thresh and range resources there are on each function
   // NOTE! this only works for 2-obj. problems right now!
@@ -3700,7 +3700,7 @@
   
    // figure out what index into resources that we loaded goes with update we want
   int index=-1;
-  for (int i=0; i<resources.size(); i++)
+  for (unsigned int i = 0; i < resources.size(); i++)
   {
 	  if (resources.at(i).first == update)
 	  {
@@ -3716,11 +3716,10 @@
   {
   	  // first have to find reaction that matches this resource, so compare names
 	  cString name = m_world->GetEnvironment().GetResourceLib().GetResource(i)->GetName();
-	  cReaction* react;
+	  cReaction* react = NULL;
 	  for (int j=0; j<m_world->GetEnvironment().GetReactionLib().GetSize(); j++)
 	  {
-		  if (m_world->GetEnvironment().GetReactionLib().GetReaction(j)->GetProcesses().GetPos(0)->GetResource()->GetName()
-			  == name)
+		  if (m_world->GetEnvironment().GetReactionLib().GetReaction(j)->GetProcesses().GetPos(0)->GetResource()->GetName() == name)
 		  {
 			  react = m_world->GetEnvironment().GetReactionLib().GetReaction(j);
 			  j = m_world->GetEnvironment().GetReactionLib().GetSize();
@@ -8339,6 +8338,7 @@
   //   FLEX_COMPARE_MAX2   = 5  -- Same as FLEX_COMPARE_MAX, and 0 indicates trait is off.
   //   FLEX_COMPARE_MIN2   = 6  -- Same as FLEX_COMPARE_MIN, BUT 0 still indicates off.
   
+  ADD_GDATA(const cString&, "name", "Genotype Name",                 GetName,           SetName,       0, 0, 0);
   ADD_GDATA(bool,   "viable",       "Is Viable (0/1)",               GetViable,         SetViable,     5, 0, 0);
   ADD_GDATA(int,    "id",           "Genotype ID",                   GetID,             SetID,         0, 0, 0);
   ADD_GDATA(const cString &, "tag", "Genotype Tag",                  GetTag,            SetTag,        0, "(none)","");

Modified: development/source/cpu/cHeadCPU.cc
===================================================================
--- development/source/cpu/cHeadCPU.cc	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/source/cpu/cHeadCPU.cc	2008-01-09 04:46:35 UTC (rev 2260)
@@ -25,11 +25,6 @@
 
 #include "cHeadCPU.h"
 
-#include "cCodeLabel.h"
-#include "cGenome.h"
-#include "cInstruction.h"
-#include "cStringUtil.h"
-
 #include <cassert>
 
 

Modified: development/source/defs.h
===================================================================
--- development/source/defs.h	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/source/defs.h	2008-01-09 04:46:35 UTC (rev 2260)
@@ -26,8 +26,8 @@
 #ifndef defs_h
 #define defs_h
 
-#define VERSION "2.7.0"
-#define VERSION_TAG "Jedi Knight"
+#define VERSION "2.9.0"
+#define VERSION_TAG "Jedi Master"
 
 
 // -= Configurable Features

Modified: development/source/main/cTaskLib.cc
===================================================================
--- development/source/main/cTaskLib.cc	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/source/main/cTaskLib.cc	2008-01-09 04:46:35 UTC (rev 2260)
@@ -74,7 +74,7 @@
   
   // The following if blocks are grouped based on class of task.  Chaining too
   // many if block causes problems block nesting depth in Visual Studio.net 2003.
-
+  
   if (name == "echo")      NewTask(name, "Echo", &cTaskLib::Task_Echo);
   else if (name == "add")  NewTask(name, "Add",  &cTaskLib::Task_Add);
   else if (name == "sub")  NewTask(name, "Sub",  &cTaskLib::Task_Sub);
@@ -341,16 +341,16 @@
     Load_MatchStr(name, info, envreqs, errors);
   else if (name == "match_number")
     Load_MatchNumber(name, info, envreqs, errors);
-
+  
   if (name == "sort_inputs")
     Load_SortInputs(name, info, envreqs, errors);
   else if (name == "fibonacci_seq")
     Load_FibonacciSequence(name, info, envreqs, errors);
-
-   // Optimization Tasks
+  
+  // Optimization Tasks
   if (name == "optimize")
     Load_Optimize(name, info, envreqs, errors);
-
+  
   if (name == "mult")
     Load_Mult(name, info, envreqs, errors);
   else if (name == "div")
@@ -367,14 +367,14 @@
     Load_Sine(name, info, envreqs, errors);
   else if (name == "cosine")
     Load_Cosine(name, info, envreqs, errors);
-
   
+  
   // Communication Tasks
   if (name == "comm_echo")
     NewTask(name, "Echo of Neighbor's Input", &cTaskLib::Task_CommEcho, REQ_NEIGHBOR_INPUT);
   else if (name == "comm_not")
     NewTask(name, "Not of Neighbor's Input", &cTaskLib::Task_CommNot, REQ_NEIGHBOR_INPUT);
-
+  
   // Network Tasks
   if (name == "net_send")
     NewTask(name, "Successfully Sent Network Message", &cTaskLib::Task_NetSend);
@@ -442,7 +442,7 @@
     for (int i = 0; i < 3; i++)  logic_pos += (test_inputs[i] & 1) << i;
     
     if ( logic_out[logic_pos] != -1 &&
-         logic_out[logic_pos] != (test_output & 1) ) {
+        logic_out[logic_pos] != (test_output & 1) ) {
       func_OK = false;
       break;
     }
@@ -1848,18 +1848,18 @@
 {
   tBuffer<int> temp_buf(ctx.GetOutputBuffer());
   //  if (temp_buf[0] != 357913941) return 0;
-
+  
   //  temp_buf.Pop(); // pop the signal value off of the buffer
-
+  
   const cString& string_to_match = ctx.GetTaskEntry()->GetArguments().GetString(0);
   int string_index;
   int num_matched = 0;
   int test_output;
   int max_num_matched = 0;
-
+  
   if (temp_buf.GetNumStored() > 0) {
     test_output = temp_buf[0];
-  
+    
     for (int j = 0; j < string_to_match.GetSize(); j++) {  
       string_index = string_to_match.GetSize() - j - 1; // start with last char in string
       int k = 1 << j;
@@ -1868,7 +1868,7 @@
     }
     max_num_matched = num_matched;
   }
-
+  
   bool used_received = false;
   if (ctx.GetReceivedMessages()) {
     tBuffer<int> received(*(ctx.GetReceivedMessages()));
@@ -1889,7 +1889,7 @@
       }
     }
   }
-
+  
   double bonus = 0.0;
   // return value between 0 & 1 representing the percentage of string that was matched
   double base_bonus = static_cast<double>(max_num_matched) * 2.0 / static_cast<double>(string_to_match.GetSize()) - 1;
@@ -1923,16 +1923,16 @@
 {
   double quality = 0.0;
   const cArgContainer& args = ctx.GetTaskEntry()->GetArguments();
-
+  
   long long diff = ::llabs((long long)args.GetInt(0) - ctx.GetOutputBuffer()[0]);
   int threshold = args.GetInt(1);
-    
+  
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-         // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
-
+  
   return quality;
 }
 
@@ -1966,7 +1966,7 @@
   
   // if less than half, can't possibly reach threshold
   if (stored <= (size / 2)) return 0.0;
-
+  
   tHashTable<int, int> valmap;
   int score = 0;
   int maxscore = 0;
@@ -1976,7 +1976,7 @@
   
   int span_start = -1;
   int span_end = stored;
-
+  
   if (args.GetInt(2)) { // Contiguous
     // scan for the largest contiguous span
     // - in the event of a tie, keep the first discovered
@@ -1990,7 +1990,7 @@
         }
       }
     }
-
+    
     // no span was found
     if (span_start == -1) return 0.0;    
   } else { // Scattered
@@ -2011,7 +2011,7 @@
   tArray<int> sorted(size);
   const bool ascending = (args.GetInt(1) >= 0);
   int count = 1;
-
+  
   // store first value
   valmap.SetValue(output[span_start], span_start);
   sorted[0] = output[span_start];
@@ -2053,7 +2053,7 @@
   }
   
   double quality = 0.0;
-
+  
   // score of 50% expected with random output
   // - only grant quality when less than 50% maximum moves are required
   if (static_cast<double>(score) / static_cast<double>(maxscore) < 0.5) {
@@ -2068,13 +2068,13 @@
 
 
 class cFibSeqState : public cTaskState
-{
-public:
-  int seq[2];
-  int count;
-  
-  cFibSeqState() : count(0) { seq[0] = 1; seq[1] = 0; }
-};
+  {
+  public:
+    int seq[2];
+    int count;
+    
+    cFibSeqState() : count(0) { seq[0] = 1; seq[1] = 0; }
+  };
 
 void cTaskLib::Load_FibonacciSequence(const cString& name, const cString& argstr, cEnvReqs& envreqs, tList<cString>* errors)
 {
@@ -2086,7 +2086,7 @@
   schema.AddEntry("penalty", 0, 0.0);
   
   cArgContainer* args = cArgContainer::Load(argstr, schema, errors);
-
+  
   if (args) NewTask(name, "Fibonacci Sequence", &cTaskLib::Task_FibonacciSequence, 0, args);
 }
 
@@ -2098,7 +2098,7 @@
     state = new cFibSeqState();
     ctx.AddTaskState(state);
   }
-
+  
   const int next = state->seq[0] + state->seq[1];
   
   // If output matches next in sequence
@@ -2119,7 +2119,7 @@
 void cTaskLib::Load_Optimize(const cString& name, const cString& argstr, cEnvReqs& envreqs, tList<cString>* errors)
 {
   cArgSchema schema;
-
+  
   // Integer Arguments
   schema.AddEntry("function", 0, cArgSchema::SCHEMA_INT);
   schema.AddEntry("binary", 1, 0);
@@ -2131,7 +2131,7 @@
   schema.AddEntry("minFx", 2, 0.0);
   schema.AddEntry("thresh", 3, -1.0);
   schema.AddEntry("threshMax", 4, -1.0);
-
+  
   cArgContainer* args = cArgContainer::Load(argstr, schema, errors);
   if (args) 
   {
@@ -2145,20 +2145,20 @@
       // to the appropriate defaults for this function
       switch (args->GetInt(0))
       {
-      case 1:
-        envreqs.SetMinOutputs(1);
-		break;
-      case 2:
-        envreqs.SetMinOutputs(2);
-		break;
-      case 3:
-        envreqs.SetMinOutputs(2);
-		break;
-	  default:
-		  envreqs.SetMinOutputs(2);
+        case 1:
+          envreqs.SetMinOutputs(1);
+          break;
+        case 2:
+          envreqs.SetMinOutputs(2);
+          break;
+        case 3:
+          envreqs.SetMinOutputs(2);
+          break;
+        default:
+          envreqs.SetMinOutputs(2);
       };
     }
-
+    
     NewTask(name, "Optimize", &cTaskLib::Task_Optimize, 0, args);
   }
 }
@@ -2167,217 +2167,217 @@
 {
   // if the org hasn't output yet enough numbers, just return without completing any tasks
   if (ctx.GetOutputBuffer().GetNumStored() < ctx.GetOutputBuffer().GetCapacity()) return 0;
-
+  
   double quality = 0.0;
   const cArgContainer& args = ctx.GetTaskEntry()->GetArguments();
-
+  
   // which function are we currently checking?
   const int function = args.GetInt(0);
-
-   // get however many variables need, turn them into doubles between 0 and 1
-   tArray<double> vars;
-   vars.Resize(args.GetInt(3));
-
-   double Fx = 0.0;
-
-   // some of the problems don't need double variables but use the bit string as a bit string
-   if (function==18)
-   {
-     int tot=0;
-     for (int i=0; i<30; i++)
-       tot+= ctx.GetOutputBuffer()[i];
-     Fx = 1+tot;
-   }
-   else if (function==19)
-   {
-     tArray<double> tempVars;
-     tempVars.Resize(args.GetInt(3));
-     for (int i=0; i<args.GetInt(3); i++)
-       tempVars[i]=0;
-     
-     for (int i=0; i<30; i++)
-       tempVars[0]+= ctx.GetOutputBuffer()[i];
-
-     int len = args.GetInt(2);
-     for (int i = len - 1; i >= 0; i--) 
-     {
-	for (int j=1; j<args.GetInt(3); j++)
-	{
-	  tempVars[j-1] += ctx.GetOutputBuffer()[30+i + len*(args.GetInt(3)-j-1)];
-	}
-     }
-
-     int Gx=0;
-     for (int i=1; i<args.GetInt(3); i++)
-     {
-       if (tempVars[i]==5)
-	  Gx += 1;
-       else 
-	 Gx += tempVars[i]+2;
-     }
-     Fx = Gx*(1/(1+tempVars[0]));
-   }
-   else 
-   {
-     if (args.GetInt(1)) 
-     {
-        int len = args.GetInt(2);
-        double base_pow = args.GetDouble(0);
-
-	tArray<double> tempVars;
-	tempVars.Resize(args.GetInt(3));
-	for (int i=0; i<args.GetInt(3); i++)
-		tempVars[i] = 0;
+  
+  // get however many variables need, turn them into doubles between 0 and 1
+  tArray<double> vars;
+  vars.Resize(args.GetInt(3));
+  
+  double Fx = 0.0;
+  
+  // some of the problems don't need double variables but use the bit string as a bit string
+  if (function==18)
+  {
+    int tot=0;
+    for (int i=0; i<30; i++)
+      tot+= ctx.GetOutputBuffer()[i];
+    Fx = 1+tot;
+  }
+  else if (function==19)
+  {
+    tArray<double> tempVars;
+    tempVars.Resize(args.GetInt(3));
+    for (int i=0; i<args.GetInt(3); i++)
+      tempVars[i]=0;
     
-	double tot = 0;
-	for (int i = len - 1; i >= 0; i--) 
-	{
-		for (int j=0; j<args.GetInt(3); j++)
-		{
-			tempVars[j] += ctx.GetOutputBuffer()[i + len*(args.GetInt(3)-j-1)] * pow(base_pow, (len - 1) - i);
-		}
-		tot += pow(base_pow, double(i));
-	}
-	for (int i=0; i<args.GetInt(3); i++)
-		vars[i] = tempVars[i] / tot;
-	//	cout << "x: " << vars[0] << " ";
-    } 
-    else 
+    for (int i=0; i<30; i++)
+      tempVars[0]+= ctx.GetOutputBuffer()[i];
+    
+    int len = args.GetInt(2);
+    for (int i = len - 1; i >= 0; i--) 
     {
-	  for (int j=0; j<args.GetInt(3); j++)
-		  vars[j] = double(ctx.GetOutputBuffer()[j]) / 0xffffffff;
+      for (int j=1; j<args.GetInt(3); j++)
+      {
+        tempVars[j-1] += ctx.GetOutputBuffer()[30+i + len*(args.GetInt(3)-j-1)];
+      }
     }
-  
-    for (int j=0; j<args.GetInt(3); j++)
+    
+    int Gx = 0;
+    for (int i = 1; i < args.GetInt(3); i++)
     {
-	  if (vars[j] < 0)
-		  vars[j] = 0;
-	  else if (vars[j] > 1)
-		  vars[j] = 1;
+      if (tempVars[i] == 5)
+        Gx += 1;
+      else 
+        Gx += int(tempVars[i]) + 2;
     }
-
-    switch(function) {
-    case 1:
-	  Fx = vars[0];		// F1
-	  //	  cout << "Fx1: " << Fx << " ";
-	  break;
-
-    case 2:
-      Fx = (1.0 + vars[1]) * (1.0 - sqrt(vars[0] / (1.0 + vars[1])));   // F2
-      break;
-
-    case 3:
-      Fx = (1.0 + vars[1]) * (1.0 - pow(vars[0] / (1.0 + vars[1]), 2.0));  // F3
-      break;
-
-    case 4:
-      Fx = (1.0 + vars[1]) * (1.0 - sqrt(vars[0] / (1.0 + vars[1])) - (vars[0] / (1.0 + vars[1])) * sin(3.14159 * vars[0] * 10.0));
-	  break;
-
-    case 5:
-      vars[0] = vars[0] * -2.0;
-      Fx = vars[0]*vars[0] + vars[1]*vars[1];
-      break;
-
-    case 6:
-      vars[0] = vars[0] * -2.0;
-      Fx = (vars[0] + 2.0)*(vars[0] + 2.0) + vars[1]*vars[1];
-      break;
-
-    case 7:
-      vars[0] = vars[0] * 4.0;
-      Fx = sqrt(vars[0]) + vars[1];
-      break;
-
-    case 8:
-      vars[0] = vars[0] * 4.0;
-      Fx = sqrt(4.0 - vars[0]) + vars[1];
-      break;
-
-    case 9:
+    Fx = Gx * (1 / (1 + tempVars[0]));
+  }
+  else 
+  {
+    if (args.GetInt(1)) 
     {
-      double sum = 0;
-      //      cout << "9x: " << vars[0] << " ";
-      for (int i=1; i<args.GetInt(3); i++)
-		  sum += vars[i]/double(args.GetInt(3)-1);
-      double Gx = 1+9*sum;
-      Fx = Gx * (1.0 - sqrt(vars[0]/Gx));
-      break;
-    }
-
-    case 10:
+      int len = args.GetInt(2);
+      double base_pow = args.GetDouble(0);
+      
+      tArray<double> tempVars;
+      tempVars.Resize(args.GetInt(3));
+      for (int i=0; i<args.GetInt(3); i++)
+        tempVars[i] = 0;
+      
+      double tot = 0;
+      for (int i = len - 1; i >= 0; i--) 
+      {
+        for (int j=0; j<args.GetInt(3); j++)
+        {
+          tempVars[j] += ctx.GetOutputBuffer()[i + len*(args.GetInt(3)-j-1)] * pow(base_pow, (len - 1) - i);
+        }
+        tot += pow(base_pow, double(i));
+      }
+      for (int i=0; i<args.GetInt(3); i++)
+        vars[i] = tempVars[i] / tot;
+      //	cout << "x: " << vars[0] << " ";
+    } 
+    else 
     {
-      double sum = 0;
-      for (int i=1; i<args.GetInt(3); i++)
-		  sum += vars[i]/double(args.GetInt(3)-1);
-      double Gx = 1+9*sum;
-      Fx = Gx * (1.0 - pow(vars[0]/Gx, 2.0));
-      break;
+      for (int j=0; j<args.GetInt(3); j++)
+        vars[j] = double(ctx.GetOutputBuffer()[j]) / 0xffffffff;
     }
-
-    case 11:
+    
+    for (int j=0; j<args.GetInt(3); j++)
     {
-      double sum = 0;
-      for (int i=1; i<args.GetInt(3); i++)
-	  sum += vars[i]/double(args.GetInt(3)-1);
-      double Gx = 1+9*sum;
-      Fx = Gx * (1 - sqrt(vars[0]/Gx) - (vars[0]/Gx)*(sin(3.14159*vars[0]*10)));
-      break;
+      if (vars[j] < 0)
+        vars[j] = 0;
+      else if (vars[j] > 1)
+        vars[j] = 1;
     }
-
-    case 12:
-    {
-      vars[0] = vars[0]*.9+.1;
-	Fx = vars[0];
-	break;
+    
+    switch(function) {
+      case 1:
+        Fx = vars[0];		// F1
+        //	  cout << "Fx1: " << Fx << " ";
+        break;
+        
+      case 2:
+        Fx = (1.0 + vars[1]) * (1.0 - sqrt(vars[0] / (1.0 + vars[1])));   // F2
+        break;
+        
+      case 3:
+        Fx = (1.0 + vars[1]) * (1.0 - pow(vars[0] / (1.0 + vars[1]), 2.0));  // F3
+        break;
+        
+      case 4:
+        Fx = (1.0 + vars[1]) * (1.0 - sqrt(vars[0] / (1.0 + vars[1])) - (vars[0] / (1.0 + vars[1])) * sin(3.14159 * vars[0] * 10.0));
+        break;
+        
+      case 5:
+        vars[0] = vars[0] * -2.0;
+        Fx = vars[0]*vars[0] + vars[1]*vars[1];
+        break;
+        
+      case 6:
+        vars[0] = vars[0] * -2.0;
+        Fx = (vars[0] + 2.0)*(vars[0] + 2.0) + vars[1]*vars[1];
+        break;
+        
+      case 7:
+        vars[0] = vars[0] * 4.0;
+        Fx = sqrt(vars[0]) + vars[1];
+        break;
+        
+      case 8:
+        vars[0] = vars[0] * 4.0;
+        Fx = sqrt(4.0 - vars[0]) + vars[1];
+        break;
+        
+      case 9:
+      {
+        double sum = 0;
+        //      cout << "9x: " << vars[0] << " ";
+        for (int i=1; i<args.GetInt(3); i++)
+          sum += vars[i]/double(args.GetInt(3)-1);
+        double Gx = 1+9*sum;
+        Fx = Gx * (1.0 - sqrt(vars[0]/Gx));
+        break;
+      }
+        
+      case 10:
+      {
+        double sum = 0;
+        for (int i=1; i<args.GetInt(3); i++)
+          sum += vars[i]/double(args.GetInt(3)-1);
+        double Gx = 1+9*sum;
+        Fx = Gx * (1.0 - pow(vars[0]/Gx, 2.0));
+        break;
+      }
+        
+      case 11:
+      {
+        double sum = 0;
+        for (int i=1; i<args.GetInt(3); i++)
+          sum += vars[i]/double(args.GetInt(3)-1);
+        double Gx = 1+9*sum;
+        Fx = Gx * (1 - sqrt(vars[0]/Gx) - (vars[0]/Gx)*(sin(3.14159*vars[0]*10)));
+        break;
+      }
+        
+      case 12:
+      {
+        vars[0] = vars[0]*.9+.1;
+        Fx = vars[0];
+        break;
+      }
+        
+      case 13:
+      {
+        vars[0] = vars[0]*.9+.1;
+        vars[1] = vars[1]*5;
+        Fx = (1+vars[1])/vars[0];
+        break;
+      }
+        
+      case 14:
+      {
+        vars[0] = vars[0]*6-3;
+        vars[1] = vars[1]*6-3;
+        Fx = .5*(vars[0]*vars[0]+vars[1]*vars[1]) + sin(vars[0]*vars[0]+vars[1]*vars[1]);
+        break;
+      }
+        
+      case 15:
+      {
+        vars[0] = vars[0]*6-3;
+        vars[1] = vars[1]*6-3;
+        Fx = pow((3*vars[0]-2*vars[1]+4),2)/8.0 + pow((vars[0]-vars[1]+1),2)/27.0 + 15;
+        break;
+      }
+        
+      case 16:
+      {
+        vars[0] = vars[0]*6-3;
+        vars[1] = vars[1]*6-3;
+        Fx = 1.0/(vars[0]*vars[0]+vars[1]*vars[1]+1) - 1.1*exp(-vars[0]*vars[0]-vars[1]*vars[1]);
+        break;
+      }
+        
+      case 17:
+      {
+        double sum = 0;
+        for (int i=1; i<args.GetInt(3); i++)
+          sum += (pow((vars[i]*6-3),2)-10*cos(4*3.14159*(vars[i]*6-3)))/10.0;
+        double Gx = 10+sum;
+        Fx = Gx * (1.0 - sqrt(vars[0]/Gx));
+        break;
+      }
+        
+      default:
+        quality = .001;
     }
-
-    case 13:
-    {
-      vars[0] = vars[0]*.9+.1;
-      vars[1] = vars[1]*5;
-      Fx = (1+vars[1])/vars[0];
-      break;
-    }
-
-  case 14:
-    {
-      vars[0] = vars[0]*6-3;
-      vars[1] = vars[1]*6-3;
-      Fx = .5*(vars[0]*vars[0]+vars[1]*vars[1]) + sin(vars[0]*vars[0]+vars[1]*vars[1]);
-      break;
-    }
-
-  case 15:
-    {
-      vars[0] = vars[0]*6-3;
-      vars[1] = vars[1]*6-3;
-      Fx = pow((3*vars[0]-2*vars[1]+4),2)/8.0 + pow((vars[0]-vars[1]+1),2)/27.0 + 15;
-      break;
-    }
-
-  case 16:
-    {
-      vars[0] = vars[0]*6-3;
-      vars[1] = vars[1]*6-3;
-      Fx = 1.0/(vars[0]*vars[0]+vars[1]*vars[1]+1) - 1.1*exp(-vars[0]*vars[0]-vars[1]*vars[1]);
-      break;
-    }
-
-    case 17:
-    {
-      double sum = 0;
-      for (int i=1; i<args.GetInt(3); i++)
-	sum += (pow((vars[i]*6-3),2)-10*cos(4*3.14159*(vars[i]*6-3)))/10.0;
-      double Gx = 10+sum;
-      Fx = Gx * (1.0 - sqrt(vars[0]/Gx));
-      break;
-    }
-
-    default:
-      quality = .001;
-    }
-   }
+  }
   ctx.SetTaskValue(Fx);
   if (args.GetDouble(3) < 0.0)
   {
@@ -2393,34 +2393,34 @@
     {
       if (Fx <= (args.GetDouble(1) - args.GetDouble(2))*args.GetDouble(3) + args.GetDouble(2))
       {
-		  quality = 1.0;
+        quality = 1.0;
       }
       else
       {
-		  quality = 0.0;
+        quality = 0.0;
       }
     }
     else
     {
-		if ( (Fx >= (args.GetDouble(1) - args.GetDouble(2))*args.GetDouble(3) + args.GetDouble(2))
-			&& (Fx <= (args.GetDouble(1) - args.GetDouble(2))*args.GetDouble(4) + args.GetDouble(2)) )
-			quality = 1.0;
-		else
-			quality = 0.0;
+      if ( (Fx >= (args.GetDouble(1) - args.GetDouble(2))*args.GetDouble(3) + args.GetDouble(2))
+          && (Fx <= (args.GetDouble(1) - args.GetDouble(2))*args.GetDouble(4) + args.GetDouble(2)) )
+        quality = 1.0;
+      else
+        quality = 0.0;
     }
   }
-
+  
   // because want org to only have 1 shot to use outputs for all functions at once, even if they
   // output numbers that give a quality of 0 on a function, still want to mark it as completed
   // so give it a very low quality instead of 0 (if using limited resources they still will get
   // no reward because set the minimum consumed to max*.001, meaning even if they get the max
   // possible fraction they'll be below minimum allowed consumed and will consume nothing
-
+  
   if (quality > 1)
     cout << "\n\nquality > 1!  quality= " << quality << "  Fx= " << Fx << endl;
   
   if (quality < 0.001) return .001;
-
+  
   return quality;
 }
 
@@ -2441,13 +2441,13 @@
 {
   double quality = 0.0;
   const cArgContainer& args = ctx.GetTaskEntry()->GetArguments();
-
+  
   const tBuffer<int>& input_buffer = ctx.GetInputBuffer();
   const long long test_output = ctx.GetOutputBuffer()[0];
   const int input_size = input_buffer.GetNumStored();
   
   long long diff = ((long long)INT_MAX + 1) * 2;
-
+  
   for (int i = 0; i < input_size; i ++) {
     for (int j = 0; j < input_size; j ++) {
       if (i == j) continue;
@@ -2459,7 +2459,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2503,7 +2503,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2544,7 +2544,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2586,7 +2586,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2628,7 +2628,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2670,7 +2670,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2712,7 +2712,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2753,7 +2753,7 @@
   int threshold = args.GetInt(0);
   
   if (threshold < 0 || diff <= threshold) { // Negative threshold == infinite
-                                            // If within threshold range, quality decays based on absolute difference
+    // If within threshold range, quality decays based on absolute difference
     double halflife = -1.0 * fabs(args.GetDouble(0));
     quality = pow(2.0, static_cast<double>(diff) / halflife);
   }
@@ -2768,7 +2768,7 @@
 double cTaskLib::Task_CommEcho(cTaskContext& ctx) const
 {
   const int test_output = ctx.GetOutputBuffer()[0];
-
+  
   tConstListIterator<tBuffer<int> > buff_it(ctx.GetNeighborhoodInputBuffers());  
   
   while (buff_it.Next() != NULL) {
@@ -2778,7 +2778,7 @@
       if (test_output == cur_buff[i]) return 1.0;
     }
   }
-
+  
   return 0.0;
 }
 

Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg	2008-01-08 21:33:34 UTC (rev 2259)
+++ development/support/config/avida.cfg	2008-01-09 04:46:35 UTC (rev 2260)
@@ -3,7 +3,7 @@
 # For more information, see doc/config.html
 #############################################################################
 
-VERSION_ID 2.7.0   # Do not change this value.
+VERSION_ID 2.9.0   # Do not change this value.
 
 ### GENERAL_GROUP ###
 # General Settings




More information about the Avida-cvs mailing list