#include "util.h" #include "kmp.h" #include #include #ifdef TIME #include #endif int main(int argc, char **argv) { char *text_file_path = get_text_file(argc, argv); int text_len, pattern_len; #ifdef TIME long_long start_time = PAPI_get_real_usec(); #endif char *text = read_file(text_file_path, &text_len); char *pattern = read_file("data/pattern.txt", &pattern_len); int lps[pattern_len]; create_lps(pattern, pattern_len, lps); int match_number = 0; int residue = 0; #ifdef TIME long_long start_search = PAPI_get_real_usec(); #endif int *matches = search_pattern(text, pattern, lps, &match_number, &residue); free(text); #ifdef TIME long_long end_time = PAPI_get_real_usec(); #endif printf("found %d matches\n", match_number); #ifdef TIME printf("total elapsed: %d\n", end_time - start_time); printf("search elapsed: %d\n", end_time - start_search); #endif }