def process_file(file, mantissa, exp, range_my_dict, abs_my_dict): try: print("\n\n\n\n" + file + "\n\n\n\n\n") f = open(file, "r") file_name = (ntpath.basename(file).split(".")[0] ).lower() # (file.split(".")[0]).lower() text = f.read() text = text[:-1] f.close() myYacc = FPRyacc(text, False) start_time = time.time() T = TreeModel( myYacc, mantissa, exp, [40, 10], 50, 250000) #, error_model="typical", dependent_mode="p-box") end_time = time.time() print("Exe time --- %s seconds ---" % (end_time - start_time)) finalTime = end_time - start_time if os.path.exists(output_path + file_name): shutil.rmtree(output_path + file_name) os.makedirs(output_path + file_name) #loadedSamples, values_samples, abs_err_samples, rel_err_samples = T.generate_error_samples(5, file_name) loadedGolden, values_golden, abs_err_golden, rel_err_golden, err_golden = T.generate_error_samples( golden_model_time, file_name, golden=True) with open( output_path + file_name + "/" + file_name + "_constraints_log.out", "w+") as log: print(T.logging_constraints, file=log) f = open( output_path + file_name + "/" + file_name + "_CDF_summary.out", "w+") f.write("Execution Time:" + str(finalTime) + "s \n\n") plot_range_analysis_CDF(T, loadedGolden, values_golden, f, file_name, range_my_dict.get(file_name)) plot_abs_error_analysis_CDF(T, loadedGolden, abs_err_golden, f, file_name, abs_my_dict.get(file_name), rel_my_dict.get(file_name)) #plot_error_analysis_CDF(T, loadedGolden, err_golden, f, file_name, abs_my_dict.get(file_name), rel_my_dict.get(file_name)) #plot_abs_error_analysis_CDF(T.relative_err_distr, loadedGolden, rel_err_samples, rel_err_golden, f, file_name, abs_my_dict.get(file_name), rel_my_dict.get(file_name)) f.flush() f.close() f = open( output_path + file_name + "/" + file_name + "_PDF_summary.out", "w+") f.write("Execution Time:" + str(finalTime) + "s \n\n") #plot_range_analysis_PDF(T.final_quantized_distr, loadedGolden, values_golden, f, file_name, range_my_dict.get(file_name)) #plot_error_analysis_PDF(T.abs_err_distr, loadedGolden, abs_err_samples, abs_err_golden, f, file_name, abs_my_dict.get(file_name), rel_my_dict.get(file_name)) f.flush() f.close() except Exception as e: logging.error(traceback.format_exc()) finally: del values_golden, abs_err_golden, rel_err_golden gc.collect() matplotlib.pyplot.close("all")