
#include <time.h>
#include <windows.h>
#include <stdio.h>

double bar() {
   
   return 1.0;
}

double bar2() {
    return 1.0;
}

double bar3() {
    return 1.0;
}


double foo() {
   double a = 0;
   for(int i = 0; i < 1000; i++) {
      LARGE_INTEGER clava_timing_start_0, clava_timing_end_0, clava_timing_frequency_0;
      QueryPerformanceFrequency(&clava_timing_frequency_0);
      QueryPerformanceCounter(&clava_timing_start_0);
      a += bar();
      QueryPerformanceCounter(&clava_timing_end_0);
      double clava_timing_duration_0 = ((clava_timing_end_0.QuadPart-clava_timing_start_0.QuadPart) / (double)clava_timing_frequency_0.QuadPart) * (1000);
      printf("Time:%fms\n", clava_timing_duration_0);
   }
   
   return a;
}


int main() {
   LARGE_INTEGER clava_timing_start_1, clava_timing_end_1, clava_timing_frequency_1;
   QueryPerformanceFrequency(&clava_timing_frequency_1);
   QueryPerformanceCounter(&clava_timing_start_1);
   foo();
   QueryPerformanceCounter(&clava_timing_end_1);
   double clava_timing_duration_1 = ((clava_timing_end_1.QuadPart-clava_timing_start_1.QuadPart) / (double)clava_timing_frequency_1.QuadPart) * (1000);
   printf("Time:%fms\n", clava_timing_duration_1);
   
   LARGE_INTEGER clava_timing_start_2, clava_timing_end_2, clava_timing_frequency_2;
   QueryPerformanceFrequency(&clava_timing_frequency_2);
   QueryPerformanceCounter(&clava_timing_start_2);
   bar2();
   QueryPerformanceCounter(&clava_timing_end_2);
   double clava_timing_duration_2 = ((clava_timing_end_2.QuadPart-clava_timing_start_2.QuadPart) / (double)clava_timing_frequency_2.QuadPart) * (1000);
   printf("I want to print the value of the elapsed time (%f), which is in the unit 'ms' and put other stuff after it\n", clava_timing_duration_2);
   
   LARGE_INTEGER clava_timing_start_3, clava_timing_end_3, clava_timing_frequency_3;
   QueryPerformanceFrequency(&clava_timing_frequency_3);
   QueryPerformanceCounter(&clava_timing_start_3);
   bar3();
   QueryPerformanceCounter(&clava_timing_end_3);
   double clava_timing_duration_3 = ((clava_timing_end_3.QuadPart-clava_timing_start_3.QuadPart) / (double)clava_timing_frequency_3.QuadPart) * (1000);
   printf("%fms\n", clava_timing_duration_3);
   printf("This should appear after the timer print\n");
}
