static void runSieve(void) {
int ITERATIONS = 100000;
boolean *flags;
- int i, prime, k, iter, p;
+ int i, prime, k;
int iterations = 0;
int count;
+ int s = SIZE;
- flags = (void *)malloc(sizeof(*flags) * SIZE);
+ flags = (void *)malloc(sizeof(*flags) * s);
// loop around for measurements
while(ITERATIONS > iterations) {
+#if 0
for(i = 0; i < SIZE; i++)
flags[i] = true;
- for(i = 2; i < SIZE; i++) {
+#endif
+ memset(flags, 0x01010101, s);
+ for(i = 2; i < s; i++) {
if(flags[i]) {
prime = i;
- for(k = i + prime; k < SIZE; k += prime)
+ for(k = i + prime; k < s; k += prime)
flags[k] = false;
}
}
}
// test correctness
count = 0;
- for(i = 2; i < SIZE; i++) {
+ for(i = 2; i < s; i++) {
if(true == flags[i]) {
count++;
}
}
int main(int argc, char *argv[]) {
- int i;
-
printf("Sieve.c\n");
if (argc <= 1) {