diff --git a/results_applied.txt b/results_applied.txt new file mode 100644 index 0000000..305e7b7 --- /dev/null +++ b/results_applied.txt @@ -0,0 +1,24 @@ +== ALL 132 + base total 1590 solved 132/132 violations 0 + A total 1580 solved 132/132 violations 0 + B total 1601 solved 132/132 violations 0 + chandrupatla total 1382 solved 132/132 violations 0 + brent total 1503 solved 132/132 violations 1 + toms748 total 1756 solved 132/132 violations 1 + A: T1 ✗ (1580 vs 1382, +14.3%) T2 ✗ (40/46/46 p=0.59) T3 ✓ (viol 0, solved 132 vs 132) -> does NOT transfer + vs brent total 1580 vs 1503 per problem 48/48/36 p=0.23 + vs toms748 total 1580 vs 1756 per problem 97/17/18 p=2.8e-14 + B: T1 ✗ (1601 vs 1382, +15.8%) T2 ✗ (39/53/40 p=1) T3 ✓ (viol 0, solved 132 vs 132) -> does NOT transfer + vs brent total 1601 vs 1503 per problem 55/41/36 p=0.059 + vs toms748 total 1601 vs 1756 per problem 96/19/17 p=1.5e-14 + +== PER GROUP: A / B / Chandrupatla / Brent / TOMS748 totals; A vs Chandrupatla w/t/l + GSL n= 10 268 / 267 / 123 / 202 / 203 2/1/7 + colebrook n= 36 426 / 402 / 400 / 431 / 530 3/17/16 + irr n= 12 199 / 213 / 167 / 186 / 270 1/0/11 + kepler n= 35 310 / 312 / 325 / 322 / 339 20/11/4 + lambert n= 7 79 / 105 / 65 / 66 / 84 3/2/2 + planck n= 7 66 / 67 / 68 / 66 / 74 2/5/0 + vdw n= 20 183 / 186 / 190 / 192 / 207 9/7/4 + well n= 5 49 / 49 / 44 / 38 / 49 0/3/2 +applied done diff --git a/sweep_applied.json b/sweep_applied.json new file mode 100644 index 0000000..38e4245 --- /dev/null +++ b/sweep_applied.json @@ -0,0 +1 @@ +{"base": {"G.sin[3,4]": [24, true, false], "G.sin[-4,-3]": [24, true, false], "G.sin[-1/3,1]": [10, true, false], "G.cos[0,3]": [26, true, false], "G.cos[-3,0]": [26, true, false], "G.x^20-1": [12, true, false], "G.sqrt|x|sgn": [84, true, false], "G.x^2-1e-8": [21, true, false], "G.x*exp(-x)": [10, true, false], "G.(x-1)^7": [63, true, false], "P.kepler.e0.1.M0.001": [6, true, false], "P.kepler.e0.1.M0.01": [6, true, false], "P.kepler.e0.1.M0.1": [7, true, false], "P.kepler.e0.1.M0.5": [7, true, false], "P.kepler.e0.1.M1.0": [7, true, false], "P.kepler.e0.1.M2.0": [7, true, false], "P.kepler.e0.1.M3.0": [7, true, false], "P.kepler.e0.5.M0.001": [6, true, false], "P.kepler.e0.5.M0.01": [7, true, false], "P.kepler.e0.5.M0.1": [7, true, false], "P.kepler.e0.5.M0.5": [8, true, false], "P.kepler.e0.5.M1.0": [8, true, false], "P.kepler.e0.5.M2.0": [8, true, false], "P.kepler.e0.5.M3.0": [7, true, false], "P.kepler.e0.9.M0.001": [8, true, false], "P.kepler.e0.9.M0.01": [11, true, false], "P.kepler.e0.9.M0.1": [9, true, false], "P.kepler.e0.9.M0.5": [10, true, false], "P.kepler.e0.9.M1.0": [8, true, false], "P.kepler.e0.9.M2.0": [8, true, false], "P.kepler.e0.9.M3.0": [7, true, false], "P.kepler.e0.99.M0.001": [9, true, false], "P.kepler.e0.99.M0.01": [14, true, false], "P.kepler.e0.99.M0.1": [12, true, false], "P.kepler.e0.99.M0.5": [11, true, false], "P.kepler.e0.99.M1.0": [9, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [7, true, false], "P.kepler.e0.999.M0.001": [19, true, false], "P.kepler.e0.999.M0.01": [17, true, false], "P.kepler.e0.999.M0.1": [12, true, false], "P.kepler.e0.999.M0.5": [10, true, false], "P.kepler.e0.999.M1.0": [9, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [7, true, false], "P.colebrook.Re4e+03.e0.0": [12, true, false], "P.colebrook.Re4e+03.e1e-06": [11, true, false], "P.colebrook.Re4e+03.e0.0001": [10, true, false], "P.colebrook.Re4e+03.e0.001": [10, true, false], "P.colebrook.Re4e+03.e0.01": [10, true, false], "P.colebrook.Re4e+03.e0.05": [9, true, false], "P.colebrook.Re1e+04.e0.0": [12, true, false], "P.colebrook.Re1e+04.e1e-06": [11, true, false], "P.colebrook.Re1e+04.e0.0001": [11, true, false], "P.colebrook.Re1e+04.e0.001": [11, true, false], "P.colebrook.Re1e+04.e0.01": [11, true, false], "P.colebrook.Re1e+04.e0.05": [13, true, false], "P.colebrook.Re1e+05.e0.0": [13, true, false], "P.colebrook.Re1e+05.e1e-06": [12, true, false], "P.colebrook.Re1e+05.e0.0001": [12, true, false], "P.colebrook.Re1e+05.e0.001": [12, true, false], "P.colebrook.Re1e+05.e0.01": [10, true, false], "P.colebrook.Re1e+05.e0.05": [9, true, false], "P.colebrook.Re1e+06.e0.0": [13, true, false], "P.colebrook.Re1e+06.e1e-06": [13, true, false], "P.colebrook.Re1e+06.e0.0001": [12, true, false], "P.colebrook.Re1e+06.e0.001": [13, true, false], "P.colebrook.Re1e+06.e0.01": [11, true, false], "P.colebrook.Re1e+06.e0.05": [10, true, false], "P.colebrook.Re1e+07.e0.0": [13, true, false], "P.colebrook.Re1e+07.e1e-06": [16, true, false], "P.colebrook.Re1e+07.e0.0001": [12, true, false], "P.colebrook.Re1e+07.e0.001": [12, true, false], "P.colebrook.Re1e+07.e0.01": [11, true, false], "P.colebrook.Re1e+07.e0.05": [9, true, false], "P.colebrook.Re1e+08.e0.0": [13, true, false], "P.colebrook.Re1e+08.e1e-06": [13, true, false], "P.colebrook.Re1e+08.e0.0001": [12, true, false], "P.colebrook.Re1e+08.e0.001": [16, true, false], "P.colebrook.Re1e+08.e0.01": [11, true, false], "P.colebrook.Re1e+08.e0.05": [10, true, false], "P.lambert.y1e-06": [6, true, false], "P.lambert.y0.001": [6, true, false], "P.lambert.y0.1": [8, true, false], "P.lambert.y1.0": [8, true, false], "P.lambert.y10.0": [10, true, false], "P.lambert.y1000.0": [14, true, false], "P.lambert.y1000000.0": [23, true, false], "P.planck.n2": [10, true, false], "P.planck.n3": [9, true, false], "P.planck.n4": [9, true, false], "P.planck.n5": [10, true, false], "P.planck.n6": [10, true, false], "P.planck.n8": [9, true, false], "P.planck.n10": [9, true, false], "P.vdw.T280.P1": [6, true, false], "P.vdw.T280.P10": [8, true, false], "P.vdw.T280.P40": [9, true, false], "P.vdw.T280.P73": [12, true, false], "P.vdw.T280.P100": [13, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [10, true, false], "P.vdw.T304.P73": [12, true, false], "P.vdw.T304.P100": [13, true, false], "P.vdw.T350.P1": [7, true, false], "P.vdw.T350.P10": [8, true, false], "P.vdw.T350.P40": [8, true, false], "P.vdw.T350.P73": [10, true, false], "P.vdw.T350.P100": [11, true, false], "P.vdw.T500.P1": [7, true, false], "P.vdw.T500.P10": [7, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [9, true, false], "P.irr.c5.n5": [14, true, false], "P.irr.c5.n10": [16, true, false], "P.irr.c5.n30": [19, true, false], "P.irr.c10.n5": [14, true, false], "P.irr.c10.n10": [16, true, false], "P.irr.c10.n30": [19, true, false], "P.irr.c20.n5": [14, true, false], "P.irr.c20.n10": [16, true, false], "P.irr.c20.n30": [17, true, false], "P.irr.c50.n5": [13, true, false], "P.irr.c50.n10": [14, true, false], "P.irr.c50.n30": [14, true, false], "P.well.z01": [8, true, false], "P.well.z03": [9, true, false], "P.well.z05": [13, true, false], "P.well.z010": [9, true, false], "P.well.z020": [10, true, false]}, "A": {"G.sin[3,4]": [24, true, false], "G.sin[-4,-3]": [24, true, false], "G.sin[-1/3,1]": [10, true, false], "G.cos[0,3]": [26, true, false], "G.cos[-3,0]": [26, true, false], "G.x^20-1": [12, true, false], "G.sqrt|x|sgn": [84, true, false], "G.x^2-1e-8": [21, true, false], "G.x*exp(-x)": [15, true, false], "G.(x-1)^7": [26, true, false], "P.kepler.e0.1.M0.001": [6, true, false], "P.kepler.e0.1.M0.01": [6, true, false], "P.kepler.e0.1.M0.1": [7, true, false], "P.kepler.e0.1.M0.5": [7, true, false], "P.kepler.e0.1.M1.0": [7, true, false], "P.kepler.e0.1.M2.0": [7, true, false], "P.kepler.e0.1.M3.0": [7, true, false], "P.kepler.e0.5.M0.001": [6, true, false], "P.kepler.e0.5.M0.01": [7, true, false], "P.kepler.e0.5.M0.1": [7, true, false], "P.kepler.e0.5.M0.5": [8, true, false], "P.kepler.e0.5.M1.0": [8, true, false], "P.kepler.e0.5.M2.0": [8, true, false], "P.kepler.e0.5.M3.0": [7, true, false], "P.kepler.e0.9.M0.001": [8, true, false], "P.kepler.e0.9.M0.01": [11, true, false], "P.kepler.e0.9.M0.1": [9, true, false], "P.kepler.e0.9.M0.5": [10, true, false], "P.kepler.e0.9.M1.0": [8, true, false], "P.kepler.e0.9.M2.0": [8, true, false], "P.kepler.e0.9.M3.0": [7, true, false], "P.kepler.e0.99.M0.001": [9, true, false], "P.kepler.e0.99.M0.01": [12, true, false], "P.kepler.e0.99.M0.1": [12, true, false], "P.kepler.e0.99.M0.5": [10, true, false], "P.kepler.e0.99.M1.0": [9, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [7, true, false], "P.kepler.e0.999.M0.001": [15, true, false], "P.kepler.e0.999.M0.01": [22, true, false], "P.kepler.e0.999.M0.1": [11, true, false], "P.kepler.e0.999.M0.5": [9, true, false], "P.kepler.e0.999.M1.0": [10, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [7, true, false], "P.colebrook.Re4e+03.e0.0": [12, true, false], "P.colebrook.Re4e+03.e1e-06": [11, true, false], "P.colebrook.Re4e+03.e0.0001": [10, true, false], "P.colebrook.Re4e+03.e0.001": [10, true, false], "P.colebrook.Re4e+03.e0.01": [11, true, false], "P.colebrook.Re4e+03.e0.05": [9, true, false], "P.colebrook.Re1e+04.e0.0": [12, true, false], "P.colebrook.Re1e+04.e1e-06": [11, true, false], "P.colebrook.Re1e+04.e0.0001": [11, true, false], "P.colebrook.Re1e+04.e0.001": [11, true, false], "P.colebrook.Re1e+04.e0.01": [11, true, false], "P.colebrook.Re1e+04.e0.05": [13, true, false], "P.colebrook.Re1e+05.e0.0": [13, true, false], "P.colebrook.Re1e+05.e1e-06": [12, true, false], "P.colebrook.Re1e+05.e0.0001": [12, true, false], "P.colebrook.Re1e+05.e0.001": [14, true, false], "P.colebrook.Re1e+05.e0.01": [10, true, false], "P.colebrook.Re1e+05.e0.05": [9, true, false], "P.colebrook.Re1e+06.e0.0": [13, true, false], "P.colebrook.Re1e+06.e1e-06": [13, true, false], "P.colebrook.Re1e+06.e0.0001": [12, true, false], "P.colebrook.Re1e+06.e0.001": [14, true, false], "P.colebrook.Re1e+06.e0.01": [11, true, false], "P.colebrook.Re1e+06.e0.05": [10, true, false], "P.colebrook.Re1e+07.e0.0": [13, true, false], "P.colebrook.Re1e+07.e1e-06": [16, true, false], "P.colebrook.Re1e+07.e0.0001": [13, true, false], "P.colebrook.Re1e+07.e0.001": [14, true, false], "P.colebrook.Re1e+07.e0.01": [11, true, false], "P.colebrook.Re1e+07.e0.05": [9, true, false], "P.colebrook.Re1e+08.e0.0": [14, true, false], "P.colebrook.Re1e+08.e1e-06": [13, true, false], "P.colebrook.Re1e+08.e0.0001": [13, true, false], "P.colebrook.Re1e+08.e0.001": [14, true, false], "P.colebrook.Re1e+08.e0.01": [11, true, false], "P.colebrook.Re1e+08.e0.05": [10, true, false], "P.lambert.y1e-06": [6, true, false], "P.lambert.y0.001": [6, true, false], "P.lambert.y0.1": [8, true, false], "P.lambert.y1.0": [8, true, false], "P.lambert.y10.0": [10, true, false], "P.lambert.y1000.0": [15, true, false], "P.lambert.y1000000.0": [26, true, false], "P.planck.n2": [10, true, false], "P.planck.n3": [9, true, false], "P.planck.n4": [9, true, false], "P.planck.n5": [10, true, false], "P.planck.n6": [10, true, false], "P.planck.n8": [9, true, false], "P.planck.n10": [9, true, false], "P.vdw.T280.P1": [6, true, false], "P.vdw.T280.P10": [8, true, false], "P.vdw.T280.P40": [10, true, false], "P.vdw.T280.P73": [12, true, false], "P.vdw.T280.P100": [12, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [9, true, false], "P.vdw.T304.P73": [12, true, false], "P.vdw.T304.P100": [14, true, false], "P.vdw.T350.P1": [7, true, false], "P.vdw.T350.P10": [8, true, false], "P.vdw.T350.P40": [8, true, false], "P.vdw.T350.P73": [9, true, false], "P.vdw.T350.P100": [13, true, false], "P.vdw.T500.P1": [7, true, false], "P.vdw.T500.P10": [7, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [9, true, false], "P.irr.c5.n5": [13, true, false], "P.irr.c5.n10": [16, true, false], "P.irr.c5.n30": [19, true, false], "P.irr.c10.n5": [17, true, false], "P.irr.c10.n10": [16, true, false], "P.irr.c10.n30": [18, true, false], "P.irr.c20.n5": [15, true, false], "P.irr.c20.n10": [17, true, false], "P.irr.c20.n30": [19, true, false], "P.irr.c50.n5": [18, true, false], "P.irr.c50.n10": [17, true, false], "P.irr.c50.n30": [14, true, false], "P.well.z01": [8, true, false], "P.well.z03": [9, true, false], "P.well.z05": [13, true, false], "P.well.z010": [9, true, false], "P.well.z020": [10, true, false]}, "B": {"G.sin[3,4]": [24, true, false], "G.sin[-4,-3]": [24, true, false], "G.sin[-1/3,1]": [10, true, false], "G.cos[0,3]": [26, true, false], "G.cos[-3,0]": [26, true, false], "G.x^20-1": [14, true, false], "G.sqrt|x|sgn": [84, true, false], "G.x^2-1e-8": [21, true, false], "G.x*exp(-x)": [12, true, false], "G.(x-1)^7": [26, true, false], "P.kepler.e0.1.M0.001": [6, true, false], "P.kepler.e0.1.M0.01": [6, true, false], "P.kepler.e0.1.M0.1": [7, true, false], "P.kepler.e0.1.M0.5": [7, true, false], "P.kepler.e0.1.M1.0": [7, true, false], "P.kepler.e0.1.M2.0": [7, true, false], "P.kepler.e0.1.M3.0": [7, true, false], "P.kepler.e0.5.M0.001": [6, true, false], "P.kepler.e0.5.M0.01": [7, true, false], "P.kepler.e0.5.M0.1": [7, true, false], "P.kepler.e0.5.M0.5": [8, true, false], "P.kepler.e0.5.M1.0": [8, true, false], "P.kepler.e0.5.M2.0": [8, true, false], "P.kepler.e0.5.M3.0": [7, true, false], "P.kepler.e0.9.M0.001": [8, true, false], "P.kepler.e0.9.M0.01": [11, true, false], "P.kepler.e0.9.M0.1": [9, true, false], "P.kepler.e0.9.M0.5": [10, true, false], "P.kepler.e0.9.M1.0": [10, true, false], "P.kepler.e0.9.M2.0": [8, true, false], "P.kepler.e0.9.M3.0": [7, true, false], "P.kepler.e0.99.M0.001": [9, true, false], "P.kepler.e0.99.M0.01": [12, true, false], "P.kepler.e0.99.M0.1": [11, true, false], "P.kepler.e0.99.M0.5": [10, true, false], "P.kepler.e0.99.M1.0": [9, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [7, true, false], "P.kepler.e0.999.M0.001": [20, true, false], "P.kepler.e0.999.M0.01": [17, true, false], "P.kepler.e0.999.M0.1": [12, true, false], "P.kepler.e0.999.M0.5": [9, true, false], "P.kepler.e0.999.M1.0": [10, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [7, true, false], "P.colebrook.Re4e+03.e0.0": [11, true, false], "P.colebrook.Re4e+03.e1e-06": [10, true, false], "P.colebrook.Re4e+03.e0.0001": [10, true, false], "P.colebrook.Re4e+03.e0.001": [10, true, false], "P.colebrook.Re4e+03.e0.01": [11, true, false], "P.colebrook.Re4e+03.e0.05": [10, true, false], "P.colebrook.Re1e+04.e0.0": [12, true, false], "P.colebrook.Re1e+04.e1e-06": [11, true, false], "P.colebrook.Re1e+04.e0.0001": [11, true, false], "P.colebrook.Re1e+04.e0.001": [10, true, false], "P.colebrook.Re1e+04.e0.01": [11, true, false], "P.colebrook.Re1e+04.e0.05": [13, true, false], "P.colebrook.Re1e+05.e0.0": [12, true, false], "P.colebrook.Re1e+05.e1e-06": [12, true, false], "P.colebrook.Re1e+05.e0.0001": [12, true, false], "P.colebrook.Re1e+05.e0.001": [11, true, false], "P.colebrook.Re1e+05.e0.01": [10, true, false], "P.colebrook.Re1e+05.e0.05": [10, true, false], "P.colebrook.Re1e+06.e0.0": [13, true, false], "P.colebrook.Re1e+06.e1e-06": [12, true, false], "P.colebrook.Re1e+06.e0.0001": [11, true, false], "P.colebrook.Re1e+06.e0.001": [13, true, false], "P.colebrook.Re1e+06.e0.01": [10, true, false], "P.colebrook.Re1e+06.e0.05": [10, true, false], "P.colebrook.Re1e+07.e0.0": [12, true, false], "P.colebrook.Re1e+07.e1e-06": [12, true, false], "P.colebrook.Re1e+07.e0.0001": [12, true, false], "P.colebrook.Re1e+07.e0.001": [11, true, false], "P.colebrook.Re1e+07.e0.01": [10, true, false], "P.colebrook.Re1e+07.e0.05": [11, true, false], "P.colebrook.Re1e+08.e0.0": [12, true, false], "P.colebrook.Re1e+08.e1e-06": [12, true, false], "P.colebrook.Re1e+08.e0.0001": [12, true, false], "P.colebrook.Re1e+08.e0.001": [11, true, false], "P.colebrook.Re1e+08.e0.01": [10, true, false], "P.colebrook.Re1e+08.e0.05": [11, true, false], "P.lambert.y1e-06": [6, true, false], "P.lambert.y0.001": [6, true, false], "P.lambert.y0.1": [8, true, false], "P.lambert.y1.0": [8, true, false], "P.lambert.y10.0": [10, true, false], "P.lambert.y1000.0": [18, true, false], "P.lambert.y1000000.0": [49, true, false], "P.planck.n2": [10, true, false], "P.planck.n3": [9, true, false], "P.planck.n4": [10, true, false], "P.planck.n5": [10, true, false], "P.planck.n6": [10, true, false], "P.planck.n8": [9, true, false], "P.planck.n10": [9, true, false], "P.vdw.T280.P1": [6, true, false], "P.vdw.T280.P10": [8, true, false], "P.vdw.T280.P40": [9, true, false], "P.vdw.T280.P73": [15, true, false], "P.vdw.T280.P100": [13, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [10, true, false], "P.vdw.T304.P73": [12, true, false], "P.vdw.T304.P100": [14, true, false], "P.vdw.T350.P1": [7, true, false], "P.vdw.T350.P10": [8, true, false], "P.vdw.T350.P40": [8, true, false], "P.vdw.T350.P73": [10, true, false], "P.vdw.T350.P100": [11, true, false], "P.vdw.T500.P1": [7, true, false], "P.vdw.T500.P10": [7, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [9, true, false], "P.irr.c5.n5": [16, true, false], "P.irr.c5.n10": [18, true, false], "P.irr.c5.n30": [24, true, false], "P.irr.c10.n5": [16, true, false], "P.irr.c10.n10": [16, true, false], "P.irr.c10.n30": [19, true, false], "P.irr.c20.n5": [15, true, false], "P.irr.c20.n10": [20, true, false], "P.irr.c20.n30": [19, true, false], "P.irr.c50.n5": [14, true, false], "P.irr.c50.n10": [19, true, false], "P.irr.c50.n30": [17, true, false], "P.well.z01": [8, true, false], "P.well.z03": [9, true, false], "P.well.z05": [13, true, false], "P.well.z010": [9, true, false], "P.well.z020": [10, true, false]}, "chandrupatla": {"G.sin[3,4]": [8, true, false], "G.sin[-4,-3]": [8, true, false], "G.sin[-1/3,1]": [9, true, false], "G.cos[0,3]": [9, true, false], "G.cos[-3,0]": [9, true, false], "G.x^20-1": [13, true, false], "G.sqrt|x|sgn": [4, true, false], "G.x^2-1e-8": [21, true, false], "G.x*exp(-x)": [10, true, false], "G.(x-1)^7": [32, true, false], "P.kepler.e0.1.M0.001": [6, true, false], "P.kepler.e0.1.M0.01": [7, true, false], "P.kepler.e0.1.M0.1": [7, true, false], "P.kepler.e0.1.M0.5": [7, true, false], "P.kepler.e0.1.M1.0": [7, true, false], "P.kepler.e0.1.M2.0": [7, true, false], "P.kepler.e0.1.M3.0": [8, true, false], "P.kepler.e0.5.M0.001": [7, true, false], "P.kepler.e0.5.M0.01": [8, true, false], "P.kepler.e0.5.M0.1": [8, true, false], "P.kepler.e0.5.M0.5": [9, true, false], "P.kepler.e0.5.M1.0": [8, true, false], "P.kepler.e0.5.M2.0": [9, true, false], "P.kepler.e0.5.M3.0": [8, true, false], "P.kepler.e0.9.M0.001": [10, true, false], "P.kepler.e0.9.M0.01": [11, true, false], "P.kepler.e0.9.M0.1": [11, true, false], "P.kepler.e0.9.M0.5": [11, true, false], "P.kepler.e0.9.M1.0": [10, true, false], "P.kepler.e0.9.M2.0": [9, true, false], "P.kepler.e0.9.M3.0": [9, true, false], "P.kepler.e0.99.M0.001": [12, true, false], "P.kepler.e0.99.M0.01": [13, true, false], "P.kepler.e0.99.M0.1": [11, true, false], "P.kepler.e0.99.M0.5": [11, true, false], "P.kepler.e0.99.M1.0": [9, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [9, true, false], "P.kepler.e0.999.M0.001": [14, true, false], "P.kepler.e0.999.M0.01": [12, true, false], "P.kepler.e0.999.M0.1": [11, true, false], "P.kepler.e0.999.M0.5": [10, true, false], "P.kepler.e0.999.M1.0": [9, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [9, true, false], "P.colebrook.Re4e+03.e0.0": [10, true, false], "P.colebrook.Re4e+03.e1e-06": [11, true, false], "P.colebrook.Re4e+03.e0.0001": [10, true, false], "P.colebrook.Re4e+03.e0.001": [10, true, false], "P.colebrook.Re4e+03.e0.01": [10, true, false], "P.colebrook.Re4e+03.e0.05": [10, true, false], "P.colebrook.Re1e+04.e0.0": [11, true, false], "P.colebrook.Re1e+04.e1e-06": [11, true, false], "P.colebrook.Re1e+04.e0.0001": [11, true, false], "P.colebrook.Re1e+04.e0.001": [11, true, false], "P.colebrook.Re1e+04.e0.01": [11, true, false], "P.colebrook.Re1e+04.e0.05": [10, true, false], "P.colebrook.Re1e+05.e0.0": [12, true, false], "P.colebrook.Re1e+05.e1e-06": [12, true, false], "P.colebrook.Re1e+05.e0.0001": [12, true, false], "P.colebrook.Re1e+05.e0.001": [12, true, false], "P.colebrook.Re1e+05.e0.01": [10, true, false], "P.colebrook.Re1e+05.e0.05": [10, true, false], "P.colebrook.Re1e+06.e0.0": [13, true, false], "P.colebrook.Re1e+06.e1e-06": [13, true, false], "P.colebrook.Re1e+06.e0.0001": [11, true, false], "P.colebrook.Re1e+06.e0.001": [11, true, false], "P.colebrook.Re1e+06.e0.01": [10, true, false], "P.colebrook.Re1e+06.e0.05": [10, true, false], "P.colebrook.Re1e+07.e0.0": [13, true, false], "P.colebrook.Re1e+07.e1e-06": [13, true, false], "P.colebrook.Re1e+07.e0.0001": [13, true, false], "P.colebrook.Re1e+07.e0.001": [10, true, false], "P.colebrook.Re1e+07.e0.01": [10, true, false], "P.colebrook.Re1e+07.e0.05": [10, true, false], "P.colebrook.Re1e+08.e0.0": [13, true, false], "P.colebrook.Re1e+08.e1e-06": [13, true, false], "P.colebrook.Re1e+08.e0.0001": [12, true, false], "P.colebrook.Re1e+08.e0.001": [11, true, false], "P.colebrook.Re1e+08.e0.01": [10, true, false], "P.colebrook.Re1e+08.e0.05": [10, true, false], "P.lambert.y1e-06": [6, true, false], "P.lambert.y0.001": [7, true, false], "P.lambert.y0.1": [9, true, false], "P.lambert.y1.0": [9, true, false], "P.lambert.y10.0": [10, true, false], "P.lambert.y1000.0": [12, true, false], "P.lambert.y1000000.0": [12, true, false], "P.planck.n2": [10, true, false], "P.planck.n3": [10, true, false], "P.planck.n4": [10, true, false], "P.planck.n5": [10, true, false], "P.planck.n6": [10, true, false], "P.planck.n8": [9, true, false], "P.planck.n10": [9, true, false], "P.vdw.T280.P1": [7, true, false], "P.vdw.T280.P10": [8, true, false], "P.vdw.T280.P40": [12, true, false], "P.vdw.T280.P73": [13, true, false], "P.vdw.T280.P100": [13, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [10, true, false], "P.vdw.T304.P73": [13, true, false], "P.vdw.T304.P100": [13, true, false], "P.vdw.T350.P1": [6, true, false], "P.vdw.T350.P10": [8, true, false], "P.vdw.T350.P40": [9, true, false], "P.vdw.T350.P73": [12, true, false], "P.vdw.T350.P100": [11, true, false], "P.vdw.T500.P1": [6, true, false], "P.vdw.T500.P10": [7, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [10, true, false], "P.irr.c5.n5": [14, true, false], "P.irr.c5.n10": [15, true, false], "P.irr.c5.n30": [15, true, false], "P.irr.c10.n5": [14, true, false], "P.irr.c10.n10": [14, true, false], "P.irr.c10.n30": [15, true, false], "P.irr.c20.n5": [12, true, false], "P.irr.c20.n10": [14, true, false], "P.irr.c20.n30": [15, true, false], "P.irr.c50.n5": [13, true, false], "P.irr.c50.n10": [13, true, false], "P.irr.c50.n30": [13, true, false], "P.well.z01": [8, true, false], "P.well.z03": [9, true, false], "P.well.z05": [9, true, false], "P.well.z010": [9, true, false], "P.well.z020": [9, true, false]}, "brent": {"G.sin[3,4]": [7, true, false], "G.sin[-4,-3]": [7, true, false], "G.sin[-1/3,1]": [7, true, false], "G.cos[0,3]": [8, true, false], "G.cos[-3,0]": [8, true, false], "G.x^20-1": [15, true, false], "G.sqrt|x|sgn": [28, true, false], "G.x^2-1e-8": [29, true, false], "G.x*exp(-x)": [11, true, false], "G.(x-1)^7": [82, true, true], "P.kepler.e0.1.M0.001": [6, true, false], "P.kepler.e0.1.M0.01": [7, true, false], "P.kepler.e0.1.M0.1": [7, true, false], "P.kepler.e0.1.M0.5": [7, true, false], "P.kepler.e0.1.M1.0": [7, true, false], "P.kepler.e0.1.M2.0": [7, true, false], "P.kepler.e0.1.M3.0": [7, true, false], "P.kepler.e0.5.M0.001": [6, true, false], "P.kepler.e0.5.M0.01": [7, true, false], "P.kepler.e0.5.M0.1": [7, true, false], "P.kepler.e0.5.M0.5": [9, true, false], "P.kepler.e0.5.M1.0": [9, true, false], "P.kepler.e0.5.M2.0": [9, true, false], "P.kepler.e0.5.M3.0": [7, true, false], "P.kepler.e0.9.M0.001": [7, true, false], "P.kepler.e0.9.M0.01": [8, true, false], "P.kepler.e0.9.M0.1": [12, true, false], "P.kepler.e0.9.M0.5": [12, true, false], "P.kepler.e0.9.M1.0": [10, true, false], "P.kepler.e0.9.M2.0": [8, true, false], "P.kepler.e0.9.M3.0": [7, true, false], "P.kepler.e0.99.M0.001": [10, true, false], "P.kepler.e0.99.M0.01": [15, true, false], "P.kepler.e0.99.M0.1": [13, true, false], "P.kepler.e0.99.M0.5": [11, true, false], "P.kepler.e0.99.M1.0": [10, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [7, true, false], "P.kepler.e0.999.M0.001": [16, true, false], "P.kepler.e0.999.M0.01": [15, true, false], "P.kepler.e0.999.M0.1": [13, true, false], "P.kepler.e0.999.M0.5": [11, true, false], "P.kepler.e0.999.M1.0": [10, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [7, true, false], "P.colebrook.Re4e+03.e0.0": [12, true, false], "P.colebrook.Re4e+03.e1e-06": [11, true, false], "P.colebrook.Re4e+03.e0.0001": [11, true, false], "P.colebrook.Re4e+03.e0.001": [11, true, false], "P.colebrook.Re4e+03.e0.01": [11, true, false], "P.colebrook.Re4e+03.e0.05": [11, true, false], "P.colebrook.Re1e+04.e0.0": [12, true, false], "P.colebrook.Re1e+04.e1e-06": [12, true, false], "P.colebrook.Re1e+04.e0.0001": [12, true, false], "P.colebrook.Re1e+04.e0.001": [12, true, false], "P.colebrook.Re1e+04.e0.01": [11, true, false], "P.colebrook.Re1e+04.e0.05": [11, true, false], "P.colebrook.Re1e+05.e0.0": [13, true, false], "P.colebrook.Re1e+05.e1e-06": [12, true, false], "P.colebrook.Re1e+05.e0.0001": [13, true, false], "P.colebrook.Re1e+05.e0.001": [11, true, false], "P.colebrook.Re1e+05.e0.01": [12, true, false], "P.colebrook.Re1e+05.e0.05": [11, true, false], "P.colebrook.Re1e+06.e0.0": [13, true, false], "P.colebrook.Re1e+06.e1e-06": [13, true, false], "P.colebrook.Re1e+06.e0.0001": [13, true, false], "P.colebrook.Re1e+06.e0.001": [12, true, false], "P.colebrook.Re1e+06.e0.01": [11, true, false], "P.colebrook.Re1e+06.e0.05": [11, true, false], "P.colebrook.Re1e+07.e0.0": [13, true, false], "P.colebrook.Re1e+07.e1e-06": [14, true, false], "P.colebrook.Re1e+07.e0.0001": [13, true, false], "P.colebrook.Re1e+07.e0.001": [12, true, false], "P.colebrook.Re1e+07.e0.01": [11, true, false], "P.colebrook.Re1e+07.e0.05": [11, true, false], "P.colebrook.Re1e+08.e0.0": [14, true, false], "P.colebrook.Re1e+08.e1e-06": [14, true, false], "P.colebrook.Re1e+08.e0.0001": [13, true, false], "P.colebrook.Re1e+08.e0.001": [12, true, false], "P.colebrook.Re1e+08.e0.01": [11, true, false], "P.colebrook.Re1e+08.e0.05": [11, true, false], "P.lambert.y1e-06": [5, true, false], "P.lambert.y0.001": [7, true, false], "P.lambert.y0.1": [8, true, false], "P.lambert.y1.0": [9, true, false], "P.lambert.y10.0": [11, true, false], "P.lambert.y1000.0": [14, true, false], "P.lambert.y1000000.0": [12, true, false], "P.planck.n2": [11, true, false], "P.planck.n3": [10, true, false], "P.planck.n4": [10, true, false], "P.planck.n5": [9, true, false], "P.planck.n6": [9, true, false], "P.planck.n8": [8, true, false], "P.planck.n10": [9, true, false], "P.vdw.T280.P1": [7, true, false], "P.vdw.T280.P10": [9, true, false], "P.vdw.T280.P40": [11, true, false], "P.vdw.T280.P73": [13, true, false], "P.vdw.T280.P100": [12, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [10, true, false], "P.vdw.T304.P73": [15, true, false], "P.vdw.T304.P100": [13, true, false], "P.vdw.T350.P1": [7, true, false], "P.vdw.T350.P10": [8, true, false], "P.vdw.T350.P40": [10, true, false], "P.vdw.T350.P73": [11, true, false], "P.vdw.T350.P100": [12, true, false], "P.vdw.T500.P1": [6, true, false], "P.vdw.T500.P10": [7, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [9, true, false], "P.irr.c5.n5": [15, true, false], "P.irr.c5.n10": [16, true, false], "P.irr.c5.n30": [18, true, false], "P.irr.c10.n5": [15, true, false], "P.irr.c10.n10": [16, true, false], "P.irr.c10.n30": [17, true, false], "P.irr.c20.n5": [15, true, false], "P.irr.c20.n10": [13, true, false], "P.irr.c20.n30": [15, true, false], "P.irr.c50.n5": [15, true, false], "P.irr.c50.n10": [16, true, false], "P.irr.c50.n30": [15, true, false], "P.well.z01": [8, true, false], "P.well.z03": [8, true, false], "P.well.z05": [8, true, false], "P.well.z010": [7, true, false], "P.well.z020": [7, true, false]}, "toms748": {"G.sin[3,4]": [9, true, false], "G.sin[-4,-3]": [9, true, false], "G.sin[-1/3,1]": [8, true, false], "G.cos[0,3]": [11, true, false], "G.cos[-3,0]": [11, true, false], "G.x^20-1": [19, true, false], "G.sqrt|x|sgn": [33, true, false], "G.x^2-1e-8": [23, true, false], "G.x*exp(-x)": [13, true, false], "G.(x-1)^7": [67, true, true], "P.kepler.e0.1.M0.001": [7, true, false], "P.kepler.e0.1.M0.01": [8, true, false], "P.kepler.e0.1.M0.1": [9, true, false], "P.kepler.e0.1.M0.5": [8, true, false], "P.kepler.e0.1.M1.0": [8, true, false], "P.kepler.e0.1.M2.0": [8, true, false], "P.kepler.e0.1.M3.0": [6, true, false], "P.kepler.e0.5.M0.001": [8, true, false], "P.kepler.e0.5.M0.01": [9, true, false], "P.kepler.e0.5.M0.1": [10, true, false], "P.kepler.e0.5.M0.5": [9, true, false], "P.kepler.e0.5.M1.0": [8, true, false], "P.kepler.e0.5.M2.0": [11, true, false], "P.kepler.e0.5.M3.0": [8, true, false], "P.kepler.e0.9.M0.001": [9, true, false], "P.kepler.e0.9.M0.01": [11, true, false], "P.kepler.e0.9.M0.1": [15, true, false], "P.kepler.e0.9.M0.5": [9, true, false], "P.kepler.e0.9.M1.0": [9, true, false], "P.kepler.e0.9.M2.0": [9, true, false], "P.kepler.e0.9.M3.0": [8, true, false], "P.kepler.e0.99.M0.001": [15, true, false], "P.kepler.e0.99.M0.01": [13, true, false], "P.kepler.e0.99.M0.1": [11, true, false], "P.kepler.e0.99.M0.5": [13, true, false], "P.kepler.e0.99.M1.0": [9, true, false], "P.kepler.e0.99.M2.0": [9, true, false], "P.kepler.e0.99.M3.0": [8, true, false], "P.kepler.e0.999.M0.001": [13, true, false], "P.kepler.e0.999.M0.01": [14, true, false], "P.kepler.e0.999.M0.1": [11, true, false], "P.kepler.e0.999.M0.5": [10, true, false], "P.kepler.e0.999.M1.0": [9, true, false], "P.kepler.e0.999.M2.0": [9, true, false], "P.kepler.e0.999.M3.0": [8, true, false], "P.colebrook.Re4e+03.e0.0": [15, true, false], "P.colebrook.Re4e+03.e1e-06": [15, true, false], "P.colebrook.Re4e+03.e0.0001": [14, true, false], "P.colebrook.Re4e+03.e0.001": [14, true, false], "P.colebrook.Re4e+03.e0.01": [14, true, false], "P.colebrook.Re4e+03.e0.05": [12, true, false], "P.colebrook.Re1e+04.e0.0": [15, true, false], "P.colebrook.Re1e+04.e1e-06": [15, true, false], "P.colebrook.Re1e+04.e0.0001": [15, true, false], "P.colebrook.Re1e+04.e0.001": [15, true, false], "P.colebrook.Re1e+04.e0.01": [15, true, false], "P.colebrook.Re1e+04.e0.05": [12, true, false], "P.colebrook.Re1e+05.e0.0": [15, true, false], "P.colebrook.Re1e+05.e1e-06": [15, true, false], "P.colebrook.Re1e+05.e0.0001": [16, true, false], "P.colebrook.Re1e+05.e0.001": [16, true, false], "P.colebrook.Re1e+05.e0.01": [14, true, false], "P.colebrook.Re1e+05.e0.05": [12, true, false], "P.colebrook.Re1e+06.e0.0": [16, true, false], "P.colebrook.Re1e+06.e1e-06": [16, true, false], "P.colebrook.Re1e+06.e0.0001": [16, true, false], "P.colebrook.Re1e+06.e0.001": [17, true, false], "P.colebrook.Re1e+06.e0.01": [15, true, false], "P.colebrook.Re1e+06.e0.05": [12, true, false], "P.colebrook.Re1e+07.e0.0": [15, true, false], "P.colebrook.Re1e+07.e1e-06": [15, true, false], "P.colebrook.Re1e+07.e0.0001": [16, true, false], "P.colebrook.Re1e+07.e0.001": [16, true, false], "P.colebrook.Re1e+07.e0.01": [15, true, false], "P.colebrook.Re1e+07.e0.05": [12, true, false], "P.colebrook.Re1e+08.e0.0": [15, true, false], "P.colebrook.Re1e+08.e1e-06": [16, true, false], "P.colebrook.Re1e+08.e0.0001": [16, true, false], "P.colebrook.Re1e+08.e0.001": [16, true, false], "P.colebrook.Re1e+08.e0.01": [15, true, false], "P.colebrook.Re1e+08.e0.05": [12, true, false], "P.lambert.y1e-06": [7, true, false], "P.lambert.y0.001": [9, true, false], "P.lambert.y0.1": [10, true, false], "P.lambert.y1.0": [9, true, false], "P.lambert.y10.0": [16, true, false], "P.lambert.y1000.0": [16, true, false], "P.lambert.y1000000.0": [17, true, false], "P.planck.n2": [11, true, false], "P.planck.n3": [11, true, false], "P.planck.n4": [10, true, false], "P.planck.n5": [11, true, false], "P.planck.n6": [10, true, false], "P.planck.n8": [10, true, false], "P.planck.n10": [11, true, false], "P.vdw.T280.P1": [9, true, false], "P.vdw.T280.P10": [8, true, false], "P.vdw.T280.P40": [11, true, false], "P.vdw.T280.P73": [17, true, false], "P.vdw.T280.P100": [15, true, false], "P.vdw.T304.P1": [7, true, false], "P.vdw.T304.P10": [8, true, false], "P.vdw.T304.P40": [10, true, false], "P.vdw.T304.P73": [16, true, false], "P.vdw.T304.P100": [17, true, false], "P.vdw.T350.P1": [7, true, false], "P.vdw.T350.P10": [9, true, false], "P.vdw.T350.P40": [9, true, false], "P.vdw.T350.P73": [11, true, false], "P.vdw.T350.P100": [12, true, false], "P.vdw.T500.P1": [7, true, false], "P.vdw.T500.P10": [8, true, false], "P.vdw.T500.P40": [8, true, false], "P.vdw.T500.P73": [9, true, false], "P.vdw.T500.P100": [9, true, false], "P.irr.c5.n5": [18, true, false], "P.irr.c5.n10": [25, true, false], "P.irr.c5.n30": [27, true, false], "P.irr.c10.n5": [20, true, false], "P.irr.c10.n10": [24, true, false], "P.irr.c10.n30": [26, true, false], "P.irr.c20.n5": [20, true, false], "P.irr.c20.n10": [23, true, false], "P.irr.c20.n30": [23, true, false], "P.irr.c50.n5": [20, true, false], "P.irr.c50.n10": [22, true, false], "P.irr.c50.n30": [22, true, false], "P.well.z01": [9, true, false], "P.well.z03": [9, true, false], "P.well.z05": [11, true, false], "P.well.z010": [9, true, false], "P.well.z020": [11, true, false]}} \ No newline at end of file diff --git a/sweep_applied.py b/sweep_applied.py new file mode 100644 index 0000000..18acc42 --- /dev/null +++ b/sweep_applied.py @@ -0,0 +1,96 @@ +"""PREREG_applied_2026-09-21: variants A, B, the plain rule and the three library rivals on +the GSL test suite and the applied equations (corpus_applied.py). + + python -u sweep_applied.py run -> sweep_applied.json, then the verdicts + python -u sweep_applied.py --report verdicts only +""" +from __future__ import annotations + +import json +import math +import sys +from multiprocessing import Pool + +from corpus_applied import build +from corpus_roots_jl import solved +from sweep_full import MAXFEV, XTOL, make_method +from sweep_oos import CONFIGS as OOS_CONFIGS +from sweep_oos import sign_p + +NAMES = ("base", "A", "B", "chandrupatla", "brent", "toms748") + + +def evaluate(name): + method = make_method(OOS_CONFIGS[name]) + probs, _ = build() + res = {} + for pid, f, a, b in probs: + try: + x, n, conv = method(f, a, b, XTOL, MAXFEV) + x = float(x) + except Exception: + x, n, conv = float("nan"), MAXFEV, False + ok = bool(conv and solved(f, x)) + over = ok and int(n) > 2 * math.ceil(math.log2(abs(b - a) / XTOL)) + 4 + res[pid] = [int(n), ok, bool(over)] + return name, res + + +def cost(v): + return v[0] if v[1] else MAXFEV + + +def group(pid): + return "GSL" if pid.startswith("G.") else pid.split(".")[1] + + +def report(R): + ch = R["chandrupatla"] + pids = list(R["A"]) + print("== ALL 132") + for k in NAMES: + r = R[k] + print(f" {k:<14} total {sum(cost(v) for v in r.values()):6d} solved " + f"{sum(v[1] for v in r.values()):3d}/{len(r)} violations {sum(v[2] for v in r.values())}") + for v_name in ("A", "B"): + r = R[v_name] + tot, tot_ch = sum(cost(r[p]) for p in pids), sum(cost(ch[p]) for p in pids) + w = sum(cost(r[p]) < cost(ch[p]) for p in pids) + l = sum(cost(r[p]) > cost(ch[p]) for p in pids) + viol = sum(r[p][2] for p in pids) + sv, sc = sum(r[p][1] for p in pids), sum(ch[p][1] for p in pids) + t1, t2, t3 = tot < tot_ch, w > l and sign_p(w, l) < 0.05, viol == 0 and sv >= sc + print(f" {v_name}: T1 {'✓' if t1 else '✗'} ({tot} vs {tot_ch}, {100 * (tot - tot_ch) / tot_ch:+.1f}%)" + f" T2 {'✓' if t2 else '✗'} ({w}/{len(pids) - w - l}/{l} p={sign_p(w, l):.2g})" + f" T3 {'✓' if t3 else '✗'} (viol {viol}, solved {sv} vs {sc}) -> " + + ("TRANSFERS" if t1 and t2 and t3 else "does NOT transfer")) + for rn in ("brent", "toms748"): + o = R[rn] + w2 = sum(cost(r[p]) < cost(o[p]) for p in pids) + l2 = sum(cost(r[p]) > cost(o[p]) for p in pids) + print(f" vs {rn:<8} total {tot} vs {sum(cost(o[p]) for p in pids)} " + f"per problem {w2}/{len(pids) - w2 - l2}/{l2} p={sign_p(w2, l2):.2g}") + print("\n== PER GROUP: A / B / Chandrupatla / Brent / TOMS748 totals; A vs Chandrupatla w/t/l") + for g in sorted({group(p) for p in pids}): + sel = [p for p in pids if group(p) == g] + tots = [sum(cost(R[k][p]) for p in sel) for k in ("A", "B", "chandrupatla", "brent", "toms748")] + w = sum(cost(R["A"][p]) < cost(ch[p]) for p in sel) + l = sum(cost(R["A"][p]) > cost(ch[p]) for p in sel) + print(f" {g:<10} n={len(sel):3d} " + " / ".join(f"{t:5d}" for t in tots) + + f" {w}/{len(sel) - w - l}/{l}") + + +def main(): + if "--report" not in sys.argv: + with Pool(len(NAMES)) as pool: + R = dict(pool.map(evaluate, NAMES)) + with open("sweep_applied.json", "w", encoding="utf8") as fh: + json.dump(R, fh) + with open("sweep_applied.json", encoding="utf8") as fh: + R = json.load(fh) + report(R) + print("applied done") + + +if __name__ == "__main__": + main()