def search(mass_in, tolerance, delta, restrict): global formulas formulas = [] # read rt if restrict: b, rt_inverted_CHNOPS = parse_rt("rt_CHNOPS.txt") else: b, rt_inverted_CHNOPS = parse_rt("rt.txt") # initialize variables mass_int = int(math.floor(mass_in * b)) k = len(rt_inverted_CHNOPS) c = [0 for i in range(0, k)] # setup the space of search, in terms of precision/tolerance precision_left = 5 precision_right = 15 if tolerance * b > precision_left: precision_left = int(math.ceil(tolerance * b)) if tolerance * b > precision_right: precision_right = int(math.ceil(tolerance * b)) for mass in range(mass_int - precision_left, mass_int + precision_right): find_all(mass_in, mass, k-1, c, sorted_masses_with_blowup_CHNOPS(b), rt_inverted_CHNOPS) return formulas
n = [infinite for r in range(0, a1)] n[0] = 0 file_handler.write(str(n) + '\n') for i in range(1, k): d = fractions.gcd(a1, a[i]) for p in range(0, d): new_n = find_n(n, p, d) if new_n < infinite: for repeat in range(1, a1/d): new_n = new_n + a[i] r = new_n % a1 new_n = min(new_n, n[r]) n[r] = new_n file_handler.write(str(n) + '\n') file_handler.close() if __name__ == '__main__': time_start = datetime.datetime.utcnow() round_robin([5, 8, 9, 12], "rt_testing.txt") round_robin(sorted_masses_with_blowup_CHNOPS(b), "rt_CHNOPS.txt") round_robin(sorted_masses_with_blowup_elements(b), "rt.txt") time_end = datetime.datetime.utcnow() print "All computations successul in " + str(time_end - time_start)