55int main(
int argc,
char ** argv) {
57 hal_init_perfcounters(1, 1);
63 ticks mark_min = 0xFFFFFFFFFFFFFFFF;
72 ticks mark_current = 0;
91 printf(
"\nNumbers correspond for \033[1;33mCGLHash2\033[0m.\n");
93 printf(
"// Running experiments:\t");
102 mark_0 = get_timestamp();
104 mark_1 = get_timestamp();
108 mark_two_isogeny[
i] = 0;
109 mark_two_isogeny[
i] = mark_1 - mark_0;
111 if(mark_min > mark_two_isogeny[
i])
112 mark_min = mark_two_isogeny[
i];
114 if(mark_max < mark_two_isogeny[
i])
115 mark_max = mark_two_isogeny[
i];
117 mark_mean += mark_two_isogeny[
i];
121 printf(
"Average: \033[1;32m%llu\033[0m\n\n", (
unsigned long long)mark_mean );
127 printf(
"Q1: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
130 printf(
"Median: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
133 printf(
"Q3: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
137 printf(
"Min: \033[1;34m%llu\033[0m\n", (
unsigned long long)mark_min );
138 printf(
"Max: \033[1;31m%llu\033[0m\n", (
unsigned long long)mark_max );
146 mark_min = 0xFFFFFFFFFFFFFFFF;
167 printf(
"Numbers correspond for \033[1;33mCGLHash3\033[0m.\n");
169 printf(
"// Running experiments:\t");
177 mark_0 = get_timestamp();
179 mark_1 = get_timestamp();
183 mark_three_isogeny[
i] = 0;
184 mark_three_isogeny[
i] = mark_1 - mark_0;
186 if(mark_min > mark_three_isogeny[
i])
187 mark_min = mark_three_isogeny[
i];
189 if(mark_max < mark_three_isogeny[
i])
190 mark_max = mark_three_isogeny[
i];
192 mark_mean += mark_three_isogeny[
i];
196 printf(
"Average: \033[1;32m%llu\033[0m\n\n", (
unsigned long long)mark_mean );
202 printf(
"Q1: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
205 printf(
"Median: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
208 printf(
"Q3: \033[1;33m%llu\033[0m\n", (
unsigned long long)mark_current );
212 printf(
"Min: \033[1;34m%llu\033[0m\n", (
unsigned long long)mark_min );
213 printf(
"Max: \033[1;31m%llu\033[0m\n", (
unsigned long long)mark_max );
217 char benchmarks_statistics_file_name[256];
219 strcpy(benchmarks_statistics_file_name,
"BENCH-STATS-");
222 strcat(benchmarks_statistics_file_name,
"CLOCK-CYCLES-");
224 strcat(benchmarks_statistics_file_name,
"NANOSECONDS-");
227 strcat(benchmarks_statistics_file_name,
FIELD_NAME);
228 strcat(benchmarks_statistics_file_name,
".csv");
230 printStatisticsFile(benchmarks_statistics_file_name, mark_two_isogeny, mark_three_isogeny);
void quicksort(ticks arr[], int low, int high)
void swap(ticks *a, ticks *b)
int partition(ticks arr[], int low, int high)