1 # For licensing info see the included LICENSE file
3 # Josef Moudrik, <J dot Moudrik at standard google mail ending>, 2012
5 from correlation_checker
import CorrelationChecker
6 from measurements
import MethodAnalyzer
8 from constants
import CONSTANTS
9 from search
import search
11 from stanek_data
import MEASURED_DATA
, PRECISE_DATA
, method_resolution
17 # compute avg sdsq for each method
19 for m
in MEASURED_DATA
:
21 ma
.computeStats(verbose
=True)
23 # compute list of Numbers from measured data
24 # this takes into account:
26 # 2) number of samples
28 # Convert measurements to Numbers
29 MEASUREMENTS
= map(lambda m
: m
.toNumber(method_resolution
, ma
), MEASURED_DATA
) # + PRECISE_DATA)
30 # Now I add some derived numbers, (like rectangle surface (a*b), once you have measured `a` and `b`.
31 md
= dict( (n
.string
, n
) for n
in MEASUREMENTS
)
33 obvod
= 2 * md
['Predek_Sirka'] + 2 * md
['Bok_Sirka']
35 obvod
.string
= 'Obvod_Stanku'
36 MEASUREMENTS
.append(obvod
)
38 for base
in [ "Dvere", "Menu_Deska", "Stitek", "Klicova_Dirka", "Bok_O_2", "Predek_O_1", "Vnitrek_Okynka" ]:
39 obsah
= md
[ base
+ "_Vyska" ] * md
[ base
+ "_Sirka" ]
41 obsah
.string
= base
+ '_Obsah'
42 print md
[ base
+ "_Vyska" ].longStr()
43 print md
[ base
+ "_Sirka" ].longStr()
45 MEASUREMENTS
.append(obsah
)
47 if __name__
== "__main__":
49 # Define searching operators
58 OPS_1
.append(operators
.Div())
60 #OPS_1.append(operators.Plus())
61 #OPS_1.append(operators.Minus())
62 #OPS_1.extend(operators.OPERATORS_ARITHMETIC)
63 # for num in [1]: #, 10**10, 10**9, 10**6, 10**3]:#, 1/3.0, 1/6.0, 1/9.0]:
64 #OPS_2.append(operators.Times(num))
66 #for num in [10**10, 10**9, 10**6, 10**3]:#, 1/3.0, 1/6.0, 1/9.0]:
67 # OPS_2.append(operators.Times(num))
68 #OPS_2.extend(reversed(operators.OPERATORS_ARITHMETIC))
69 #OPS_2.append( operators.Div() )
77 #OPS_1.append(operators.Div())
78 OPS_1.append(operators.Plus())
79 OPS_1.append(operators.Minus())
80 #OPS_1.extend(perators.OPERATORS_ARITHMETIC)
81 for num in [10**9, 10**6, 10**3 ]: # 1/3.0, 1/6.0, 1/9.0]:
82 OPS_1.append(operators.Times(num))
83 #OPS_2 = list(reversed(operators.OPERATORS_ARITHMETIC))
84 OPS_2 = [ operators.Div() ]
95 # we want to look for constants
96 TARGETS
= CorrelationChecker(CONSTANTS
)
102 search( MEASUREMENTS
, OPS
, TARGETS
, MAX_ROUND
, mem_limit
=1*1024**2)