# runs BF on data and saves the best RPN expressions in results.dat # all the .dat files are created after I run this script # the .scr are needed to run the fortran code import numpy as np import os import shutil import subprocess from subprocess import call import sys import csv import sympy as sp from pathlib import Path from sympy.parsing.sympy_parser import parse_expr # sep_type = 3 for add and 2 for mult and 1 for normal def brute_force(pathdir,filename,BF_try_time,BF_ops_file_type,sep_type="*"): try_time = BF_try_time try_time_prefactor = BF_try_time file_type = BF_ops_file_type try: os.remove("results.dat") except: pass if sep_type=="*": # 'check=False' because it will return exit status 124 when it time out subprocess.run([Path("./brute_force_oneFile_v2.scr").resolve(), file_type, "%s" %try_time, Path(pathdir+filename).resolve()], shell=False, check=False) #subprocess.call(["./brute_force_oneFile_mdl_v3.scr", file_type, "%s" %try_time, pathdir+filename, "10", "0"]) if sep_type=="+": # 'check=False' because it will return exit status 124 when it time out subprocess.run([Path("./brute_force_oneFile_v3.scr").resolve(), file_type, "%s" %try_time, Path(pathdir+filename).resolve()], shell=False, check=False) #subprocess.call(["./brute_force_oneFile_mdl_v2.scr", file_type, "%s" %try_time, pathdir+filename, "10", "0"]) return 1