text: #include<vector>
  #include<nlohmann/json.hpp>
  #include<fstream>
  #include<iomanip>
  #include<clib/synthesizer.h>
  #include<time.h>
  #include<iostream>
  extern "C" {
  #include "../../../benchmarks/Github/code/marton78_pffft/self_contained_code.c"
  }
  char *output_file; 
  char *pre_accel_dump_file; // optional dump file. 
  using json = nlohmann::json;
  const char* __asan_default_options() { return "detect_leaks=0"; }
  
  
  clock_t AcceleratorStart;
  clock_t AcceleratorTotalNanos = 0;
  void StartAcceleratorTimer() {
  	AcceleratorStart = clock();
  }
  
  void StopAcceleratorTimer() {
  	AcceleratorTotalNanos +=
  		(clock()) - AcceleratorStart;
  }
  
  void write_output(PFFFT_Setup* setup, float * input, float * output, float * work, pffft_direction_t direction) {
  
      json output_json;
  std::vector<json> output_temp_1;
  for (unsigned int i2 = 0; i2 < setup->N * 2; i2++) {
  float output_temp_3 = output[i2];
  
  output_temp_1.push_back(output_temp_3);
  }
  output_json["output"] = output_temp_1;
  std::ofstream out_str(output_file); 
  out_str << std::setw(4) << output_json << std::endl;
  }
  int main(int argc, char **argv) {
      char *inpname = argv[1]; 
      output_file = argv[2]; 
  
      std::ifstream ifs(inpname); 
      json input_json = json::parse(ifs);
  std::vector<float> input_vec;
  int n = 0;
  for (auto& elem : input_json["input"]) {
  float input_inner = elem;
  input_vec.push_back(input_inner);
  n += 1;
  }
  float*input = &input_vec[0];
  float work[n];
  float output[n];
  n /= 2;
  
  clock_t begin = clock();
  PFFFT_Setup *setup = pffft_new_setup(n, PFFFT_COMPLEX);
  pffft_direction_t direction = PFFFT_FORWARD;
  for (int i = 0; i < TIMES; i ++) {
  	pffft_transform_ordered(setup, input, output, work, direction);
  }
  clock_t end = clock();
  std::cout << "Time: " << (double) (end - begin) / CLOCKS_PER_SEC << std::endl;
  std::cout << "AccTime: " << (double) AcceleratorTotalNanos / CLOCKS_PER_SEC << std::endl;
  write_output(setup, input, output, work, direction);
  }
  