From e602cff985169e792ca2f5fe047c4cc8ab5ad040 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Fri, 4 Dec 2020 18:37:07 +0100 Subject: Support benchmarking --- 1/part1.c | 7 +++++-- 1/part2.c | 7 +++++-- 1/part2_fast.c | 7 +++++-- 2/part1.c | 8 ++++++-- 2/part2.c | 8 ++++++-- 3/part1.c | 4 ++-- 3/part2.c | 4 ++-- 4/part1.c | 4 ++-- 4/part2.c | 4 ++-- prepare | 4 ++++ run | 3 +++ 11 files changed, 42 insertions(+), 18 deletions(-) create mode 100755 prepare create mode 100755 run diff --git a/1/part1.c b/1/part1.c index 62ef852..07f1251 100644 --- a/1/part1.c +++ b/1/part1.c @@ -18,9 +18,12 @@ int repair(const int * arr) return 0; } -int main() +int main(int argc, char *argv[]) { - FILE *file = fopen("input", "r"); + FILE *file = fopen(argv[1], "r"); + if (!file) { + return 1; + } char buffer[8] = { 0 }; int input[INPUT_LEN] = { 0 }; diff --git a/1/part2.c b/1/part2.c index 6efb387..adf487c 100644 --- a/1/part2.c +++ b/1/part2.c @@ -20,9 +20,12 @@ int repair(const int *arr) return 0; } -int main() +int main(int argc, char *argv[]) { - FILE *file = fopen("input", "r"); + FILE *file = fopen(argv[1], "r"); + if (!file) { + return 1; + } char buffer[8] = { 0 }; int input[INPUT_LEN] = { 0 }; diff --git a/1/part2_fast.c b/1/part2_fast.c index 1d9afb1..b38894b 100644 --- a/1/part2_fast.c +++ b/1/part2_fast.c @@ -121,9 +121,12 @@ int repair_avx(const int *arr) return 0; } -int main() +int main(int argc, char *argv[]) { - FILE *file = fopen("input", "r"); + FILE *file = fopen(argv[1], "r"); + if (!file) { + return 1; + } char buffer[8] = { 0 }; int input[INPUT_LEN] = { 0 }; diff --git a/2/part1.c b/2/part1.c index 3d53cba..9a74a2c 100644 --- a/2/part1.c +++ b/2/part1.c @@ -20,9 +20,13 @@ bool is_valid_password(char *pass, char *policy) return occ >= min && occ <= max; } -int main() +int main(int argc, char *argv[]) { - FILE *file = fopen("input", "r"); + FILE *file = fopen(argv[1], "r"); + if (!file) { + return 1; + } + char buffer[128] = { 0 }; int valid = 0; while (fgets(buffer, 128, file)) { diff --git a/2/part2.c b/2/part2.c index b167fcf..c6219a1 100644 --- a/2/part2.c +++ b/2/part2.c @@ -13,9 +13,13 @@ bool is_valid_password(char *pass, char *policy) return (pass[pos1] == c) != (pass[pos2] == c); } -int main() +int main(int argc, char *argv[]) { - FILE *file = fopen("input", "r"); + FILE *file = fopen(argv[1], "r"); + if (!file) { + return 1; + } + char buffer[128] = { 0 }; int valid = 0; while (fgets(buffer, 128, file)) { diff --git a/3/part1.c b/3/part1.c index b6d209a..0373328 100644 --- a/3/part1.c +++ b/3/part1.c @@ -31,7 +31,7 @@ int count_trees(const char *filename) return hit; } -int main() +int main(int argc, char *argv[]) { - printf("%i", count_trees("input")); + printf("%i", count_trees(argv[1])); } diff --git a/3/part2.c b/3/part2.c index 9214c25..7362c12 100644 --- a/3/part2.c +++ b/3/part2.c @@ -33,8 +33,8 @@ int count_trees(int inc_right, int inc_down, const char *filename) return hit; } -int main() +int main(int argc, char *argv[]) { - long mul = (long)count_trees(1, 1, "input") * count_trees(3, 1, "input") * count_trees(5, 1, "input") * count_trees(7, 1, "input") * count_trees(1, 2, "input"); + long mul = (long)count_trees(1, 1, argv[1]) * count_trees(3, 1, argv[1]) * count_trees(5, 1, argv[1]) * count_trees(7, 1, argv[1]) * count_trees(1, 2, argv[1]); printf("%li\n", mul); } diff --git a/4/part1.c b/4/part1.c index 7b53e3c..65c3b99 100644 --- a/4/part1.c +++ b/4/part1.c @@ -62,7 +62,7 @@ int count_valid_passports(const char *filename) return correct; } -int main() +int main(int argc, char *argv[]) { - printf("%i", count_valid_passports("input")); + printf("%i", count_valid_passports(argv[1])); } diff --git a/4/part2.c b/4/part2.c index 73a4560..f132753 100644 --- a/4/part2.c +++ b/4/part2.c @@ -129,7 +129,7 @@ int count_valid_passports(const char *filename) return correct; } -int main() +int main(int argc, char *argv[]) { - printf("%i", count_valid_passports("input")); + printf("%i", count_valid_passports(argv[1])); } diff --git a/prepare b/prepare new file mode 100755 index 0000000..0ec70db --- /dev/null +++ b/prepare @@ -0,0 +1,4 @@ +#!/bin/bash + +cd "$1" +gcc -Wall -pedantic -O3 -march=native -mtune=native -flto -o "part$2" "part$2.c" diff --git a/run b/run new file mode 100755 index 0000000..a071f3a --- /dev/null +++ b/run @@ -0,0 +1,3 @@ +#!/bin/bash + +./$1/part$2 "$3" -- cgit v1.2.3