diff options
author | Matt Turner <mattst88@gmail.com> | 2008-11-15 05:23:15 +0000 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2008-11-15 05:23:15 +0000 |
commit | 0a0699aba70c04e3e6c5847b47cee75025e96255 (patch) | |
tree | 1f56669779fd2d69b6802b9eae52ee89a20bc381 | |
parent | 991b62808450c54ac721f345d82426fde3e6289f (diff) |
Use stdbool.h, bool, true, false instead of manually defining
git-svn-id: svn://mattst88.com/svn/cleanbench/trunk@60 0d43b9a7-5ab2-4d7b-af9d-f64450cef757
-rw-r--r-- | assignment.c | 7 | ||||
-rw-r--r-- | bitfield.c | 7 | ||||
-rw-r--r-- | cleanbench.c | 99 | ||||
-rw-r--r-- | cleanbench.h | 25 | ||||
-rw-r--r-- | fourier.c | 7 | ||||
-rw-r--r-- | fpemulation.c | 7 | ||||
-rw-r--r-- | huffman.c | 7 | ||||
-rw-r--r-- | idea.c | 7 | ||||
-rw-r--r-- | linear.c | 7 | ||||
-rw-r--r-- | neural.c | 28 | ||||
-rw-r--r-- | numsort.c | 9 | ||||
-rw-r--r-- | stringsort.c | 21 |
12 files changed, 119 insertions, 112 deletions
diff --git a/assignment.c b/assignment.c index afed56f..a4f4d03 100644 --- a/assignment.c +++ b/assignment.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -76,10 +77,10 @@ DoAssign(void) clock_t total_time = 0; int iterations = 0; static int num_arrays = 1; - static int is_adjusted = FALSE; + static bool is_adjusted = false; - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Self-is_adjustedment code. The system begins by working on 1 ** array. If it does that in no time, then two arrays @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -49,11 +50,11 @@ DoBitops(void) clock_t total_time = 0; int iterations = 0; unsigned long nbitops; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static int bitop_array_size = 30; - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; bitarray = realloc(bitarray, ARRAY_SIZE * sizeof(unsigned long)); if (!bitarray) { diff --git a/cleanbench.c b/cleanbench.c index 66e58ed..6792bce 100644 --- a/cleanbench.c +++ b/cleanbench.c @@ -1,11 +1,36 @@ #include <stdio.h> #include <stdlib.h> -#include <ctype.h> +#include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> +#include <limits.h> +#include <time.h> #include "cleanbench.h" -#include "hardware.h" +#include "randnum.h" + +void DoNumSort(void); +void DoStringSort(void); +void DoBitops(void); +void DoEmFloat(void); +void DoFourier(void); +void DoAssign(void); +void DoIDEA(void); +void DoHuffman(void); +void DoNNET(void); +void DoLU(void); + +double getNumSortScore(void); +double getStringSortScore(void); +double getBitfieldScore(void); +double getEmFloatScore(void); +double getFourierScore(void); +double getAssignmentScore(void); +double getIDEAScore(void); +double getHuffmanScore(void); +double getNNETScore(void); +double getLinearScore(void); static int bench_with_confidence(int fid, double *mean, double *stdev, unsigned long *numtries); static int calc_confidence(double scores[], int num_scores, double *c_half_interval,double *smean, double *sdev); @@ -29,7 +54,7 @@ enum { int main(int argc, char *argv[]) { - const char* test_name[] = { + const char* benchmark_name[] = { "NUMERIC SORT ", "FP EMULATION ", "IDEA ", @@ -46,7 +71,7 @@ main(int argc, char *argv[]) ** Indexes -- Baseline is DELL Pentium XP90 ** 11/28/94 */ - const double bindex[] = { + const double old_index[] = { 38.993, /* Numeric sort */ 2.084, /* FP Emulation */ 65.382, /* IDEA */ @@ -64,7 +89,7 @@ main(int argc, char *argv[]) ** Linux kernel 2.0.32, libc-5.4.38, gcc-2.7.2.3) ** Nov/30/97 */ - const double linux_bindex[] = { + const double linux_index[] = { 118.73, /* Numeric sort */ 9.0314, /* FP Emulation */ 220.21, /* IDEA */ @@ -77,39 +102,39 @@ main(int argc, char *argv[]) 26.732 /* LU Decomposition */ }; - double linux_memindex = 1.0; /* Linux memory index (mainly integer operations)*/ - double linux_intindex = 1.0; /* Linux integer index */ - double linux_fpindex = 1.0; /* Linux floating-point index */ - double intindex = 1.0; /* Integer index */ - double fpindex = 1.0; /* Floating-point index */ - double bmean; /* Benchmark mean */ - double bstdev; /* Benchmark stdev */ - unsigned long bnumrun; /* # of runs */ - int test; /* Index */ + double linux_memindex = 1.0; /* Linux memory index */ + double linux_intindex = 1.0; /* Linux integer index */ + double linux_fpindex = 1.0; /* Linux floating-point index */ + double intindex = 1.0; /* Old Integer index */ + double fpindex = 1.0; /* Old Floating-point index */ + double average; /* Average of benchmark results */ + double std_dev; /* Standard deviation of benchmark results */ + unsigned long runs; /* # of runs */ + int benchmark = 0; puts( "TEST : Iterations/sec. : Old Index : New Index\n" " : : Pentium 90 : AMD K6/233\n" "--------------------:------------------:-------------:------------"); - for (test = 0; test < NUMTESTS; test++) { - printf("%s :", test_name[test]); + for (; benchmark < NUMTESTS; benchmark++) { + printf("%s :", benchmark_name[benchmark]); - if (!bench_with_confidence(test, &bmean, &bstdev, &bnumrun)) { - printf( "\n** WARNING: The current test result is NOT 95 %% statistically certain.\n" + if (!bench_with_confidence(benchmark, &average, &std_dev, &runs)) { + printf( "\n** WARNING: The current benchmark result is NOT 95 %% statistically certain.\n" "** WARNING: The variation among the individual results is too large.\n" " :"); } - printf(" %15.5g : %9.2f : %9.2f\n", bmean, bmean / bindex[test], bmean / linux_bindex[test]); + printf(" %15.5g : %9.2f : %9.2f\n", average, average / old_index[benchmark], average / linux_index[benchmark]); - if (test >= FOURIER) { - fpindex *= bmean / bindex[test]; - linux_fpindex *= bmean / linux_bindex[test]; + if (benchmark >= FOURIER) { + fpindex *= average /old_index[benchmark]; + linux_fpindex *= average / linux_index[benchmark]; } else { - intindex *= bmean / bindex[test]; - if (test <= HUFFMAN) { - linux_intindex *= bmean / linux_bindex[test]; + intindex *= average / old_index[benchmark]; + if (benchmark <= HUFFMAN) { + linux_intindex *= average / linux_index[benchmark]; } else { - linux_memindex *= bmean / linux_bindex[test]; + linux_memindex *= average / linux_index[benchmark]; } } } @@ -132,9 +157,9 @@ main(int argc, char *argv[]) /************************** ** bench_with_confidence ** *************************** -** Given a benchmark id that indicates a function, this routine -** repeatedly calls that benchmark, seeking to collect and replace -** scores to get 5 that meet the confidence criteria. +** Given a benchmark, this routine repeatedly calls that benchmark, +** seeking to collect and replace scores to get 5 that meet the +** confidence criteria. ** ** The above is mathematically questionable, as the statistical theory ** depends on independent observations, and if we exchange data points @@ -144,8 +169,8 @@ main(int argc, char *argv[]) ** along. We simply do more runs and hope to get a big enough sample ** size so that things stabilize. Uwe F. Mayer ** -** Return TRUE if ok, FALSE if failure. Returns mean -** and std. deviation of results if successful. +** Return true; false on failure. Returns mean +** and standard deviation through argument list if successful. */ static int bench_with_confidence(int benchmark, double *mean, /* Mean of scores */ @@ -189,13 +214,13 @@ for (i=0;i<5;i++) while(1) { /* - ** Calculate confidence. Should always return TRUE + ** Calculate confidence. Should always return true */ if (0!=calc_confidence(myscores, *numtries, &c_half_interval, mean, - stdev)) return FALSE; + stdev)) return false; /* ** Is the length of the half interval 5% or less of mean? @@ -206,13 +231,13 @@ while(1) /* We now simply add a new test run and hope that the runs finally stabilize, Uwe F. Mayer */ - if(*numtries==30) return FALSE; + if(*numtries==30) return false; (*funcpointer[benchmark])(); myscores[*numtries]=getScore(benchmark); *numtries+=1; } - return TRUE; + return true; } /******************** @@ -243,7 +268,7 @@ double student_t[30]={0.0 , 12.706 , 4.303 , 3.182 , 2.776 , 2.571 , int i; /* Index */ if ((num_scores<2) || (num_scores>30)) { puts("Internal error: calc_confidence called with an illegal number of scores"); - return TRUE; + return true; } /* ** First calculate mean. @@ -269,7 +294,7 @@ for(i=0;i<num_scores;i++) { ** observations). See any introduction to statistics. */ *c_half_interval=student_t[num_scores-1] * (*sdev) / sqrt((double)num_scores); -return FALSE; +return false; } /************* diff --git a/cleanbench.h b/cleanbench.h index ef36aaf..7bf2833 100644 --- a/cleanbench.h +++ b/cleanbench.h @@ -1,27 +1,2 @@ -#define TRUE 1 -#define FALSE 0 - #define MINIMUM_TICKS 60 #define MINIMUM_SECONDS 5 /* Minimum number of seconds to run each test */ - -void DoNumSort(void); -void DoStringSort(void); -void DoBitops(void); -void DoEmFloat(void); -void DoFourier(void); -void DoAssign(void); -void DoIDEA(void); -void DoHuffman(void); -void DoNNET(void); -void DoLU(void); - -double getNumSortScore(void); -double getStringSortScore(void); -double getBitfieldScore(void); -double getEmFloatScore(void); -double getFourierScore(void); -double getAssignmentScore(void); -double getIDEAScore(void); -double getHuffmanScore(void); -double getNNETScore(void); -double getLinearScore(void); @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -44,11 +45,11 @@ DoFourier(void) double* bbase = NULL; clock_t total_time = 0; int iterations = 0; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static int array_size = 100; - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; while (1) { abase = realloc(abase, array_size * sizeof(double)); diff --git a/fpemulation.c b/fpemulation.c index 4089e71..bd4b320 100644 --- a/fpemulation.c +++ b/fpemulation.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -48,7 +49,7 @@ DoEmFloat(void) clock_t total_time = 0; int iterations = 0; unsigned long i = 1; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static long loops = 0; abase = malloc(ARRAY_SIZE * sizeof(InternalFPF)); @@ -76,8 +77,8 @@ DoEmFloat(void) SetupCPUEmFloatArrays(abase, bbase); /* FIXME: ugly */ /* See if we need to do self-adjusting code.*/ - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Do an iteration of the tests. If the elapsed time is @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -71,7 +72,7 @@ DoHuffman(void) char* plaintext = NULL; clock_t total_time = 0; int iterations = 0; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static int loops = 100; /* @@ -132,8 +133,8 @@ DoHuffman(void) /* ** See if we need to perform self adjustment loop. */ - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Do self-adjustment. This involves initializing the ** # of loops and increasing the loop count until we @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -72,7 +73,7 @@ DoIDEA(void) IDEAkey Z, DK; uint16_t userkey[8]; int i; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static int loops = 100; randnum(3); @@ -131,8 +132,8 @@ DoIDEA(void) /* ** See if we need to perform self adjustment loop. */ - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Do self-adjustment. This involves initializing the ** # of loops and increasing the loop count until we @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -77,7 +78,7 @@ DoLU(void) int n; int i; static int num_arrays = 0; - static int is_adjusted = FALSE; + static bool is_adjusted = false; /* ** Our first step is to build a "solvable" problem. This @@ -107,8 +108,8 @@ DoLU(void) ** auto-adjust. If so, repeatedly call the DoLUIteration routine, ** increasing the number of solutions per iteration as you go. */ - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; for(i=1;i<=ARRAY_MAX;i++) { @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -45,8 +46,6 @@ */ #define LOOP_MAX 500000L -#define T 1 /* TRUE */ -#define F 0 /* FALSE */ #define ERR -1 #define MAXPATS 10 /* max number of patterns in data file */ #define IN_X_SIZE 5 /* number of neurodes/row of input layer */ @@ -86,7 +85,7 @@ double avg_out_error[MAXPATS]; /* average error each pattern */ int iteration_count; /* number of passes thru network so far */ int numpats; /* number of patterns in data file */ int numpasses; /* number of training passes through data file */ -int learned; /* flag--if TRUE, network has learned all patterns */ +int learned; /* flag--if true, network has learned all patterns */ static clock_t DoNNetIteration(unsigned long nloops); static void do_mid_forward(int patt); @@ -122,7 +121,7 @@ DoNNET(void) /* const char* context="CPU:NNET"; */ /* Since we never fprintf errors here, we don't need this */ clock_t total_time = 0; int iterations = 0; - static int is_adjusted = FALSE; + static bool is_adjusted = false; static int loops = 1; /* @@ -147,8 +146,8 @@ DoNNET(void) /* ** See if we need to perform self adjustment loop. */ - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Do self-adjustment. This involves initializing the ** # of loops and increasing the loop count until we @@ -196,9 +195,9 @@ while(nloops--) randomize_wts(); zero_changes(); iteration_count=1; - learned = F; + learned = false; numpasses = 0; - while (learned == F) + while (!learned) { for (patt=0; patt<numpats; patt++) { @@ -275,7 +274,6 @@ for (neurode=0; neurode<OUT_SIZE; neurode++) sum = 1.0/(1.0+exp(-sum)); out_out[neurode] = sum; } -return; } /************************* @@ -284,7 +282,7 @@ return; ** Display the actual output vs. the desired output of the ** network. ** Once the training is complete, and the "learned" flag set -** to TRUE, then display_output sends its output to both +** to true, then display_output sends its output to both ** the screen and to a text output file. ** ** NOTE: This routine has been disabled in the benchmark @@ -548,8 +546,8 @@ static int check_out_error() { int result,i,error; -result = T; -error = F; +result = true; +error = false; worst_pass_error(); /* identify the worst error in this pass */ /* @@ -566,11 +564,11 @@ for (i=0; i<numpats; i++) i+1,tot_out_error[i]); */ - if (worst_error >= STOP) result = F; - if (tot_out_error[i] >= 16.0) error = T; + if (worst_error >= STOP) result = false; + if (tot_out_error[i] >= 16.0) error = true; } -if (error == T) result = ERR; +if (error) result = ERR; #ifdef DEBUG @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -21,7 +22,7 @@ ** The following constant NUMARRAYSIZE determines the ** default # of elements in each numeric array */ -#define ARRAY_SIZE 8111L +#define ARRAY_SIZE 8111 static clock_t DoNumSortIteration(long *array, unsigned int num_arrays); static void LoadNumArrayWithRand(long *array, unsigned int num_arrays); @@ -44,10 +45,10 @@ DoNumSort (void) clock_t total_time = 0; int iterations = 0; static int num_arrays = 1; - static int is_adjusted = FALSE; + static bool is_adjusted = false; - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Self-is_adjustedment code. The system begins by sorting 1 ** array. If it does that in no time, then two arrays diff --git a/stringsort.c b/stringsort.c index d19d14f..a8ff4f3 100644 --- a/stringsort.c +++ b/stringsort.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <stdint.h> +#include <stdbool.h> #include <string.h> #include <math.h> #include <limits.h> @@ -18,7 +19,7 @@ ** The following constant STRINGARRAYSIZE determines ** the default # of bytes allocated to each string array. */ -#define ARRAY_SIZE 8111L +#define ARRAY_SIZE 8111 static clock_t DoStringSortIteration(unsigned char *array, @@ -59,10 +60,10 @@ void DoStringSort(void) clock_t total_time = 0; int iterations = 0; static int num_arrays = 1; - static int is_adjusted = FALSE; + static bool is_adjusted = false; - if (is_adjusted == FALSE) { - is_adjusted = TRUE; + if (is_adjusted == false) { + is_adjusted = true; /* ** Initialize the number of arrays. */ @@ -422,7 +423,7 @@ for(i=top; i>0; --i) ** 2) A pointer to a string array ** 3) The number of elements in the string array ** 4) Offsets to two strings (a & b) -** This function returns TRUE if string a is < string b. +** This function returns true if string a is < string b. */ static int str_is_less(unsigned long *optrarray, /* Offset pointers */ unsigned char *strarray, /* String array */ @@ -446,18 +447,18 @@ slen=strncmp((char *)(strarray+*(optrarray+a)), if(slen==0) { /* - ** They match. Return TRUE if the length of a + ** They match. Return true if the length of a ** is greater than the length of b. */ if(*(strarray+*(optrarray+a)) > *(strarray+*(optrarray+b))) - return TRUE; - return FALSE; + return true; + return false; } -if(slen<0) return TRUE; /* a is strictly less than b */ +if(slen<0) return true; /* a is strictly less than b */ -return FALSE; /* Only other possibility */ +return false; /* Only other possibility */ } /************ |