Details

Time bar (total: 6.3s)

analyze373.0ms (5.9%)

Algorithm
search
egg-herbie
Rules
511×unsub-neg_binary64_2118
501×sub-neg_binary64_2117
352×associate--l+_binary64_2061
328×associate-+l+_binary64_2057
312×neg-mul-1_binary64_2120
308×neg-sub0_binary64_2119
296×associate-+r+_binary64_2056
251×associate-*l*_binary64_2065
245×distribute-rgt-neg-in_binary64_2082
243×distribute-rgt-in_binary64_2074
232×distribute-rgt-out_binary64_2077
217×associate-*r*_binary64_2064
205×distribute-neg-in_binary64_2085
185×distribute-lft-in_binary64_2073
179×*-commutative_binary64_2055
144×associate-+l-_binary64_2059
131×+-commutative_binary64_2054
101×distribute-lft-neg-out_binary64_2083
92×associate-+r-_binary64_2058
88×distribute-rgt-neg-out_binary64_2084
84×unswap-sqr_binary64_2092
81×cancel-sign-sub-inv_binary64_2090
58×associate--r+_binary64_2060
40×*-rgt-identity_binary64_2114
36×cancel-sign-sub_binary64_2089
28×distribute-lft-out_binary64_2075
27×*-lft-identity_binary64_2113
23×remove-double-neg_binary64_2112
22×associate--r-_binary64_2063
20×sub0-neg_binary64_2111 sqr-pow_binary64_2096 distribute-lft-neg-in_binary64_2081
16×+-rgt-identity_binary64_2109
10×pow-plus_binary64_2187
mul0-rgt_binary64_2107 mul0-lft_binary64_2106 difference-of-sqr--1_binary64_2095
cube-unmult_binary64_2161 difference-of-squares_binary64_2093 swap-sqr_binary64_2091 distribute-lft1-in_binary64_2079
unpow2_binary64_2189 rem-sqrt-square_binary64_2137 difference-of-sqr-1_binary64_2094
unpow3_binary64_2190 mul-1-neg_binary64_2116
cube-prod_binary64_2152 --rgt-identity_binary64_2110 distribute-neg-out_binary64_2086 distribute-rgt1-in_binary64_2080
unpow1/2_binary64_2188 unpow1_binary64_2182 1-exp_binary64_2168 pow-sqr_binary64_2097
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_2387 erf-erfc_binary64_2386 erf-odd_binary64_2385 if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 not-gte_binary64_2376 not-lte_binary64_2375 not-gt_binary64_2374 not-lt_binary64_2373 gte-same_binary64_2372 lte-same_binary64_2371 gt-same_binary64_2370 lt-same_binary64_2369 sinh---cosh_binary64_2316 sinh-+-cosh_binary64_2315 sinh-cosh_binary64_2314 tanh-def-c_binary64_2313 tanh-def-b_binary64_2312 tanh-def-a_binary64_2311 cosh-def_binary64_2310 sinh-def_binary64_2309 tan-neg_binary64_2256 cos-neg_binary64_2255 sin-neg_binary64_2254 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 hang-m-tan_binary64_2250 hang-p-tan_binary64_2249 hang-m0-tan_binary64_2248 hang-p0-tan_binary64_2247 hang-0m-tan_binary64_2246 hang-0p-tan_binary64_2245 tan-+PI/2_binary64_2244 tan-+PI_binary64_2243 tan-PI_binary64_2242 tan-PI/3_binary64_2241 tan-PI/4_binary64_2240 tan-PI/6_binary64_2239 cos-+PI/2_binary64_2238 cos-+PI_binary64_2237 cos-PI_binary64_2236 cos-PI/2_binary64_2235 cos-PI/3_binary64_2234 cos-PI/4_binary64_2233 cos-PI/6_binary64_2232 sin-+PI/2_binary64_2231 sin-+PI_binary64_2230 sin-PI_binary64_2229 sin-PI/2_binary64_2228 sin-PI/3_binary64_2227 sin-PI/4_binary64_2226 sin-PI/6_binary64_2225 sub-1-sin_binary64_2224 sub-1-cos_binary64_2223 -1-add-sin_binary64_2222 -1-add-cos_binary64_2221 1-sub-sin_binary64_2220 1-sub-cos_binary64_2219 cos-sin-sum_binary64_2218 log-E_binary64_2214 log-pow_binary64_2213 log-rec_binary64_2212 log-div_binary64_2211 log-prod_binary64_2210 pow-base-0_binary64_2208 unpow1/3_binary64_2191 exp-to-pow_binary64_2186 pow-base-1_binary64_2184 unpow0_binary64_2183 unpow-1_binary64_2181 exp-lft-cube_binary64_2180 exp-lft-sqr_binary64_2179 exp-cbrt_binary64_2178 exp-sqrt_binary64_2177 exp-prod_binary64_2176 div-exp_binary64_2175 rec-exp_binary64_2174 prod-exp_binary64_2173 exp-diff_binary64_2172 exp-neg_binary64_2171 exp-sum_binary64_2170 e-exp-1_binary64_2169 exp-1-e_binary64_2167 exp-0_binary64_2166 rem-log-exp_binary64_2165 rem-exp-log_binary64_2164 cube-mult_binary64_2154 cube-div_binary64_2153 cube-neg_binary64_2151 rem-3cbrt-rft_binary64_2150 rem-3cbrt-lft_binary64_2149 rem-cbrt-cube_binary64_2148 rem-cube-cbrt_binary64_2147 sqr-abs_binary64_2139 sqr-neg_binary64_2138 rem-square-sqrt_binary64_2136 times-frac_binary64_2130 div-sub_binary64_2129 /-rgt-identity_binary64_2115 +-lft-identity_binary64_2108 div0_binary64_2105 *-inverses_binary64_2104 +-inverses_binary64_2103 lft-mult-inverse_binary64_2102 rgt-mult-inverse_binary64_2101 remove-double-div_binary64_2100 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 distribute-rgt-out--_binary64_2078 distribute-lft-out--_binary64_2076 count-2_binary64_2072 associate-/l/_binary64_2071 associate-/r/_binary64_2070 associate-/l*_binary64_2069 associate-/r*_binary64_2068 associate-*l/_binary64_2067 associate-*r/_binary64_2066 associate--l-_binary64_2062
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02986
19086
225886
366086
4191286
5340586
6457386
7499486
8500086
9492386
022
122
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%68.7%6.3%6
25%53.1%22%7
25%46.8%28.2%8
25%33.6%41.5%9
28.1%18%54%10
31.6%12.1%56.3%11
33.4%5.9%60.8%12
35.2%3.8%61%13
36.1%2.9%61%14
Compiler

Compiled 30 to 20 computations (33.3% saved)

sample32.0ms (0.5%)

Algorithm
intervals
Results
18.0ms256×body128valid
Compiler

Compiled 59 to 41 computations (30.5% saved)

simplify78.0ms (1.2%)

Algorithm
egg-herbie
Rules
705×unsub-neg_binary64_2118
556×cancel-sign-sub-inv_binary64_2090
344×+-commutative_binary64_2054
342×distribute-rgt-in_binary64_2074
317×sub-neg_binary64_2117
271×associate-*l*_binary64_2065
266×distribute-rgt-neg-in_binary64_2082
248×distribute-lft-in_binary64_2073
233×neg-sub0_binary64_2119
226×neg-mul-1_binary64_2120
213×associate-*r*_binary64_2064
206×distribute-lft-neg-in_binary64_2081
185×associate--l+_binary64_2061
173×associate-+l+_binary64_2057
162×unswap-sqr_binary64_2092
155×distribute-rgt-out_binary64_2077
153×distribute-neg-in_binary64_2085
151×associate-+r+_binary64_2056
102×*-commutative_binary64_2055
76×distribute-lft-out_binary64_2075
73×associate-+l-_binary64_2059
64×distribute-lft-neg-out_binary64_2083
48×associate-+r-_binary64_2058
45×difference-of-sqr--1_binary64_2095
44×remove-double-neg_binary64_2112
43×distribute-rgt-neg-out_binary64_2084
41×*-rgt-identity_binary64_2114
38×associate--r+_binary64_2060
31×sqr-pow_binary64_2096
29×*-lft-identity_binary64_2113
16×cube-prod_binary64_2152
13×pow-plus_binary64_2187
11×sub0-neg_binary64_2111 associate--r-_binary64_2063
mul-1-neg_binary64_2116 +-rgt-identity_binary64_2109 distribute-rgt-out--_binary64_2078
mul0-rgt_binary64_2107 mul0-lft_binary64_2106 distribute-lft1-in_binary64_2079
unpow3_binary64_2190 cube-unmult_binary64_2161 swap-sqr_binary64_2091 distribute-rgt1-in_binary64_2080
unpow2_binary64_2189 sqr-neg_binary64_2138 difference-of-sqr-1_binary64_2094 distribute-lft-out--_binary64_2076
difference-of-squares_binary64_2093
unpow1_binary64_2182 cube-neg_binary64_2151 rem-sqrt-square_binary64_2137 pow-sqr_binary64_2097
cube-mult_binary64_2154
unpow1/2_binary64_2188 1-exp_binary64_2168 --rgt-identity_binary64_2110 cancel-sign-sub_binary64_2089 distribute-neg-out_binary64_2086
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_2387 erf-erfc_binary64_2386 erf-odd_binary64_2385 if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 not-gte_binary64_2376 not-lte_binary64_2375 not-gt_binary64_2374 not-lt_binary64_2373 gte-same_binary64_2372 lte-same_binary64_2371 gt-same_binary64_2370 lt-same_binary64_2369 sinh---cosh_binary64_2316 sinh-+-cosh_binary64_2315 sinh-cosh_binary64_2314 tanh-def-c_binary64_2313 tanh-def-b_binary64_2312 tanh-def-a_binary64_2311 cosh-def_binary64_2310 sinh-def_binary64_2309 tan-neg_binary64_2256 cos-neg_binary64_2255 sin-neg_binary64_2254 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 hang-m-tan_binary64_2250 hang-p-tan_binary64_2249 hang-m0-tan_binary64_2248 hang-p0-tan_binary64_2247 hang-0m-tan_binary64_2246 hang-0p-tan_binary64_2245 tan-+PI/2_binary64_2244 tan-+PI_binary64_2243 tan-PI_binary64_2242 tan-PI/3_binary64_2241 tan-PI/4_binary64_2240 tan-PI/6_binary64_2239 cos-+PI/2_binary64_2238 cos-+PI_binary64_2237 cos-PI_binary64_2236 cos-PI/2_binary64_2235 cos-PI/3_binary64_2234 cos-PI/4_binary64_2233 cos-PI/6_binary64_2232 sin-+PI/2_binary64_2231 sin-+PI_binary64_2230 sin-PI_binary64_2229 sin-PI/2_binary64_2228 sin-PI/3_binary64_2227 sin-PI/4_binary64_2226 sin-PI/6_binary64_2225 sub-1-sin_binary64_2224 sub-1-cos_binary64_2223 -1-add-sin_binary64_2222 -1-add-cos_binary64_2221 1-sub-sin_binary64_2220 1-sub-cos_binary64_2219 cos-sin-sum_binary64_2218 log-E_binary64_2214 log-pow_binary64_2213 log-rec_binary64_2212 log-div_binary64_2211 log-prod_binary64_2210 pow-base-0_binary64_2208 unpow1/3_binary64_2191 exp-to-pow_binary64_2186 pow-base-1_binary64_2184 unpow0_binary64_2183 unpow-1_binary64_2181 exp-lft-cube_binary64_2180 exp-lft-sqr_binary64_2179 exp-cbrt_binary64_2178 exp-sqrt_binary64_2177 exp-prod_binary64_2176 div-exp_binary64_2175 rec-exp_binary64_2174 prod-exp_binary64_2173 exp-diff_binary64_2172 exp-neg_binary64_2171 exp-sum_binary64_2170 e-exp-1_binary64_2169 exp-1-e_binary64_2167 exp-0_binary64_2166 rem-log-exp_binary64_2165 rem-exp-log_binary64_2164 cube-div_binary64_2153 rem-3cbrt-rft_binary64_2150 rem-3cbrt-lft_binary64_2149 rem-cbrt-cube_binary64_2148 rem-cube-cbrt_binary64_2147 sqr-abs_binary64_2139 rem-square-sqrt_binary64_2136 times-frac_binary64_2130 div-sub_binary64_2129 /-rgt-identity_binary64_2115 +-lft-identity_binary64_2108 div0_binary64_2105 *-inverses_binary64_2104 +-inverses_binary64_2103 lft-mult-inverse_binary64_2102 rgt-mult-inverse_binary64_2101 remove-double-div_binary64_2100 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 count-2_binary64_2072 associate-/l/_binary64_2071 associate-/r/_binary64_2070 associate-/l*_binary64_2069 associate-/r*_binary64_2068 associate-*l/_binary64_2067 associate-*r/_binary64_2066 associate--l-_binary64_2062
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01943
15543
215043
338943
4108343
5223143
6432843
7471443
8491543

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
0.2b
Counts
2 → 1
Compiler

Compiled 58 to 38 computations (34.5% saved)

localize19.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.6b
(*.f64 (*.f64 b b) (+.f64 3 a))

rewrite229.0ms (3.6%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
19×add-sqr-sqrt_binary64_2146
18×associate-*r/_binary64_2066
17×pow1_binary64_2185 add-exp-log_binary64_2162 *-un-lft-identity_binary64_2124
16×add-cbrt-cube_binary64_2160
13×associate-*r*_binary64_2064
12×add-cube-cbrt_binary64_2159
pow-prod-down_binary64_2195 prod-exp_binary64_2173 cbrt-unprod_binary64_2157
distribute-rgt-in_binary64_2074 distribute-lft-in_binary64_2073 cancel-sign-sub-inv_binary64_2090
associate-*l*_binary64_2065
add-log-exp_binary64_2163 flip3-+_binary64_2127 flip-+_binary64_2098 frac-add_binary64_2132
unswap-sqr_binary64_2092 *-commutative_binary64_2055 unpow-prod-down_binary64_2203 pow-unpow_binary64_2201 flip3--_binary64_2128 flip--_binary64_2099
sub-neg_binary64_2117 difference-of-squares_binary64_2093
distribute-lft-out_binary64_2075 pow-pow_binary64_2196 pow-to-exp_binary64_2193 pow-exp_binary64_2192 unpow2_binary64_2189 sqr-pow_binary64_2096 distribute-lft-out--_binary64_2076
Counts
4 → 100
Calls

4 calls:

18.0ms
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
10.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
9.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Compiler

Compiled 3912 to 2021 computations (48.3% saved)

series777.0ms (12.4%)

Error
0.0b
Counts
4 → 43
Calls

4 calls:

290.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
242.0ms
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
113.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
63.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
Compiler

Compiled 3151 to 2238 computations (29% saved)

simplify108.0ms (1.7%)

Algorithm
egg-herbie
Rules
403×associate-*l*_binary64_2065
324×associate-*r*_binary64_2064
283×exp-prod_binary64_2176
232×associate-+l+_binary64_2057
223×associate-+r+_binary64_2056
206×*-commutative_binary64_2055
168×distribute-rgt-in_binary64_2074
163×+-commutative_binary64_2054
160×distribute-lft-in_binary64_2073
137×exp-sum_binary64_2170
126×unswap-sqr_binary64_2092
122×neg-mul-1_binary64_2120
121×neg-sub0_binary64_2119
106×cancel-sign-sub-inv_binary64_2090
85×log-prod_binary64_2210
79×distribute-rgt-neg-in_binary64_2082
71×cube-prod_binary64_2152 distribute-rgt-out_binary64_2077
70×sqr-pow_binary64_2096
62×distribute-lft-neg-in_binary64_2081
49×distribute-rgt-neg-out_binary64_2084 distribute-lft-neg-out_binary64_2083
34×*-lft-identity_binary64_2113
33×sub-neg_binary64_2117
32×exp-diff_binary64_2172
30×distribute-lft-out_binary64_2075
22×*-rgt-identity_binary64_2114 distribute-neg-in_binary64_2085 associate--r+_binary64_2060
20×swap-sqr_binary64_2091
19×pow-plus_binary64_2187 associate--l+_binary64_2061
18×associate-+l-_binary64_2059
17×unpow3_binary64_2190
16×log-pow_binary64_2213
15×rem-sqrt-square_binary64_2137
14×cube-unmult_binary64_2161 associate-+r-_binary64_2058
13×exp-neg_binary64_2171
12×distribute-rgt-out--_binary64_2078
11×unsub-neg_binary64_2118 pow-sqr_binary64_2097
cube-mult_binary64_2154
unpow1/2_binary64_2188
unpow2_binary64_2189 div-sub_binary64_2129
unpow1_binary64_2182
difference-of-squares_binary64_2093 distribute-rgt1-in_binary64_2080 distribute-lft-out--_binary64_2076
exp-lft-cube_binary64_2180 associate-/l/_binary64_2071 associate-*r/_binary64_2066 associate--l-_binary64_2062
rem-square-sqrt_binary64_2136 count-2_binary64_2072
1-exp_binary64_2168 exp-1-e_binary64_2167 rem-3cbrt-rft_binary64_2150 rem-3cbrt-lft_binary64_2149 mul-1-neg_binary64_2116 associate-/r/_binary64_2070 associate-/l*_binary64_2069
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_2387 erf-erfc_binary64_2386 erf-odd_binary64_2385 if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 not-gte_binary64_2376 not-lte_binary64_2375 not-gt_binary64_2374 not-lt_binary64_2373 gte-same_binary64_2372 lte-same_binary64_2371 gt-same_binary64_2370 lt-same_binary64_2369 sinh---cosh_binary64_2316 sinh-+-cosh_binary64_2315 sinh-cosh_binary64_2314 tanh-def-c_binary64_2313 tanh-def-b_binary64_2312 tanh-def-a_binary64_2311 cosh-def_binary64_2310 sinh-def_binary64_2309 tan-neg_binary64_2256 cos-neg_binary64_2255 sin-neg_binary64_2254 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 hang-m-tan_binary64_2250 hang-p-tan_binary64_2249 hang-m0-tan_binary64_2248 hang-p0-tan_binary64_2247 hang-0m-tan_binary64_2246 hang-0p-tan_binary64_2245 tan-+PI/2_binary64_2244 tan-+PI_binary64_2243 tan-PI_binary64_2242 tan-PI/3_binary64_2241 tan-PI/4_binary64_2240 tan-PI/6_binary64_2239 cos-+PI/2_binary64_2238 cos-+PI_binary64_2237 cos-PI_binary64_2236 cos-PI/2_binary64_2235 cos-PI/3_binary64_2234 cos-PI/4_binary64_2233 cos-PI/6_binary64_2232 sin-+PI/2_binary64_2231 sin-+PI_binary64_2230 sin-PI_binary64_2229 sin-PI/2_binary64_2228 sin-PI/3_binary64_2227 sin-PI/4_binary64_2226 sin-PI/6_binary64_2225 sub-1-sin_binary64_2224 sub-1-cos_binary64_2223 -1-add-sin_binary64_2222 -1-add-cos_binary64_2221 1-sub-sin_binary64_2220 1-sub-cos_binary64_2219 cos-sin-sum_binary64_2218 log-E_binary64_2214 log-rec_binary64_2212 log-div_binary64_2211 pow-base-0_binary64_2208 unpow1/3_binary64_2191 exp-to-pow_binary64_2186 pow-base-1_binary64_2184 unpow0_binary64_2183 unpow-1_binary64_2181 exp-lft-sqr_binary64_2179 exp-cbrt_binary64_2178 exp-sqrt_binary64_2177 div-exp_binary64_2175 rec-exp_binary64_2174 prod-exp_binary64_2173 e-exp-1_binary64_2169 exp-0_binary64_2166 rem-log-exp_binary64_2165 rem-exp-log_binary64_2164 cube-div_binary64_2153 cube-neg_binary64_2151 rem-cbrt-cube_binary64_2148 rem-cube-cbrt_binary64_2147 sqr-abs_binary64_2139 sqr-neg_binary64_2138 times-frac_binary64_2130 /-rgt-identity_binary64_2115 remove-double-neg_binary64_2112 sub0-neg_binary64_2111 --rgt-identity_binary64_2110 +-rgt-identity_binary64_2109 +-lft-identity_binary64_2108 mul0-rgt_binary64_2107 mul0-lft_binary64_2106 div0_binary64_2105 *-inverses_binary64_2104 +-inverses_binary64_2103 lft-mult-inverse_binary64_2102 rgt-mult-inverse_binary64_2101 remove-double-div_binary64_2100 difference-of-sqr--1_binary64_2095 difference-of-sqr-1_binary64_2094 cancel-sign-sub_binary64_2089 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 distribute-neg-out_binary64_2086 distribute-lft1-in_binary64_2079 associate-/r*_binary64_2068 associate-*l/_binary64_2067 associate--r-_binary64_2063
Counts
143 → 122
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02352509
16462319
222992310
342192303
449302303

prune208.0ms (3.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1211122
Fresh000
Picked011
Done000
Total1212123
Error
0.0b
Counts
123 → 2
Compiler

Compiled 4181 to 2163 computations (48.3% saved)

localize28.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.5b
(*.f64 a (*.f64 b b))
0.6b
(*.f64 (*.f64 b b) (+.f64 3 a))
1.4b
(*.f64 a (*.f64 a (*.f64 b b)))

rewrite256.0ms (4.1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
28×pow1_binary64_2185 add-exp-log_binary64_2162 add-cbrt-cube_binary64_2160
16×add-sqr-sqrt_binary64_2146
15×pow-prod-down_binary64_2195 prod-exp_binary64_2173 cbrt-unprod_binary64_2157 *-un-lft-identity_binary64_2124
12×associate-*r*_binary64_2064
10×add-cube-cbrt_binary64_2159
associate-*l*_binary64_2065
cancel-sign-sub-inv_binary64_2090
distribute-rgt-in_binary64_2074 distribute-lft-in_binary64_2073
add-log-exp_binary64_2163 *-commutative_binary64_2055 associate-*r/_binary64_2066
unswap-sqr_binary64_2092
sub-neg_binary64_2117 difference-of-squares_binary64_2093
flip3-+_binary64_2127 flip-+_binary64_2098 distribute-lft-out_binary64_2075 flip3--_binary64_2128 flip--_binary64_2099 distribute-lft-out--_binary64_2076
Counts
4 → 96
Calls

4 calls:

10.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
9.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
8.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
6.0ms
(*.f64 a (*.f64 b b))
Compiler

Compiled 4174 to 2266 computations (45.7% saved)

series462.0ms (7.4%)

Error
0.0b
Counts
4 → 26
Calls

4 calls:

127.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
120.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
101.0ms
(*.f64 a (*.f64 b b))
71.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
Compiler

Compiled 2701 to 1928 computations (28.6% saved)

simplify125.0ms (2%)

Algorithm
egg-herbie
Rules
415×distribute-rgt-in_binary64_2074
398×distribute-lft-in_binary64_2073
319×associate-*l*_binary64_2065
267×exp-prod_binary64_2176 associate-*r*_binary64_2064
216×unsub-neg_binary64_2118
214×distribute-rgt-neg-out_binary64_2084
208×distribute-lft-neg-out_binary64_2083
156×unswap-sqr_binary64_2092
141×*-commutative_binary64_2055
126×sqr-pow_binary64_2096
122×log-prod_binary64_2210
89×cube-prod_binary64_2152
70×distribute-rgt-neg-in_binary64_2082
68×*-lft-identity_binary64_2113
65×swap-sqr_binary64_2091
64×*-rgt-identity_binary64_2114
60×distribute-lft-neg-in_binary64_2081
54×exp-neg_binary64_2171
53×neg-mul-1_binary64_2120 neg-sub0_binary64_2119
43×exp-sum_binary64_2170
36×exp-diff_binary64_2172
33×unpow3_binary64_2190
31×sub-neg_binary64_2117
29×pow-sqr_binary64_2097
28×+-commutative_binary64_2054
27×cube-mult_binary64_2154
26×associate-+l+_binary64_2057
25×cancel-sign-sub-inv_binary64_2090 associate-+r+_binary64_2056
17×pow-plus_binary64_2187
15×cube-unmult_binary64_2161
13×log-pow_binary64_2213
12×mul0-rgt_binary64_2107 mul0-lft_binary64_2106
11×unpow1/2_binary64_2188 distribute-rgt-out_binary64_2077
difference-of-squares_binary64_2093 associate-/l*_binary64_2069
div-sub_binary64_2129 sub0-neg_binary64_2111 associate-+l-_binary64_2059
rem-sqrt-square_binary64_2137 distribute-neg-in_binary64_2085 distribute-lft-out_binary64_2075
difference-of-sqr-1_binary64_2094 distribute-rgt-out--_binary64_2078 associate-+r-_binary64_2058
unpow2_binary64_2189 unpow1_binary64_2182 exp-lft-cube_binary64_2180 +-rgt-identity_binary64_2109 count-2_binary64_2072
prod-exp_binary64_2173 1-exp_binary64_2168 exp-1-e_binary64_2167 rem-3cbrt-lft_binary64_2149 sqr-neg_binary64_2138 rem-square-sqrt_binary64_2136 mul-1-neg_binary64_2116 distribute-rgt1-in_binary64_2080
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_2387 erf-erfc_binary64_2386 erf-odd_binary64_2385 if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 not-gte_binary64_2376 not-lte_binary64_2375 not-gt_binary64_2374 not-lt_binary64_2373 gte-same_binary64_2372 lte-same_binary64_2371 gt-same_binary64_2370 lt-same_binary64_2369 sinh---cosh_binary64_2316 sinh-+-cosh_binary64_2315 sinh-cosh_binary64_2314 tanh-def-c_binary64_2313 tanh-def-b_binary64_2312 tanh-def-a_binary64_2311 cosh-def_binary64_2310 sinh-def_binary64_2309 tan-neg_binary64_2256 cos-neg_binary64_2255 sin-neg_binary64_2254 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 hang-m-tan_binary64_2250 hang-p-tan_binary64_2249 hang-m0-tan_binary64_2248 hang-p0-tan_binary64_2247 hang-0m-tan_binary64_2246 hang-0p-tan_binary64_2245 tan-+PI/2_binary64_2244 tan-+PI_binary64_2243 tan-PI_binary64_2242 tan-PI/3_binary64_2241 tan-PI/4_binary64_2240 tan-PI/6_binary64_2239 cos-+PI/2_binary64_2238 cos-+PI_binary64_2237 cos-PI_binary64_2236 cos-PI/2_binary64_2235 cos-PI/3_binary64_2234 cos-PI/4_binary64_2233 cos-PI/6_binary64_2232 sin-+PI/2_binary64_2231 sin-+PI_binary64_2230 sin-PI_binary64_2229 sin-PI/2_binary64_2228 sin-PI/3_binary64_2227 sin-PI/4_binary64_2226 sin-PI/6_binary64_2225 sub-1-sin_binary64_2224 sub-1-cos_binary64_2223 -1-add-sin_binary64_2222 -1-add-cos_binary64_2221 1-sub-sin_binary64_2220 1-sub-cos_binary64_2219 cos-sin-sum_binary64_2218 log-E_binary64_2214 log-rec_binary64_2212 log-div_binary64_2211 pow-base-0_binary64_2208 unpow1/3_binary64_2191 exp-to-pow_binary64_2186 pow-base-1_binary64_2184 unpow0_binary64_2183 unpow-1_binary64_2181 exp-lft-sqr_binary64_2179 exp-cbrt_binary64_2178 exp-sqrt_binary64_2177 div-exp_binary64_2175 rec-exp_binary64_2174 e-exp-1_binary64_2169 exp-0_binary64_2166 rem-log-exp_binary64_2165 rem-exp-log_binary64_2164 cube-div_binary64_2153 cube-neg_binary64_2151 rem-3cbrt-rft_binary64_2150 rem-cbrt-cube_binary64_2148 rem-cube-cbrt_binary64_2147 sqr-abs_binary64_2139 times-frac_binary64_2130 /-rgt-identity_binary64_2115 remove-double-neg_binary64_2112 --rgt-identity_binary64_2110 +-lft-identity_binary64_2108 div0_binary64_2105 *-inverses_binary64_2104 +-inverses_binary64_2103 lft-mult-inverse_binary64_2102 rgt-mult-inverse_binary64_2101 remove-double-div_binary64_2100 difference-of-sqr--1_binary64_2095 cancel-sign-sub_binary64_2089 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 distribute-neg-out_binary64_2086 distribute-lft1-in_binary64_2079 distribute-lft-out--_binary64_2076 associate-/l/_binary64_2071 associate-/r/_binary64_2070 associate-/r*_binary64_2068 associate-*l/_binary64_2067 associate-*r/_binary64_2066 associate--r-_binary64_2063 associate--l-_binary64_2062 associate--l+_binary64_2061 associate--r+_binary64_2060
Counts
122 → 100
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01531527
13921276
213261241
333141219
445651219
549891219
649291219

prune188.0ms (3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New991100
Fresh000
Picked101
Done011
Total1002102
Error
0.0b
Counts
102 → 2
Compiler

Compiled 3984 to 2244 computations (43.7% saved)

localize26.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.0b
(*.f64 4 (+.f64 (-.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.5b
(*.f64 a (*.f64 b b))
0.6b
(*.f64 (*.f64 b b) (+.f64 3 a))
1.4b
(*.f64 a (*.f64 a (*.f64 b b)))

rewrite247.0ms (3.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
25×pow1_binary64_2185 add-exp-log_binary64_2162 add-cbrt-cube_binary64_2160
13×pow-prod-down_binary64_2195 prod-exp_binary64_2173 cbrt-unprod_binary64_2157 add-sqr-sqrt_binary64_2146
12×associate-*r/_binary64_2066
11×*-un-lft-identity_binary64_2124
10×associate-*l*_binary64_2065
add-cube-cbrt_binary64_2159 associate-*r*_binary64_2064
add-log-exp_binary64_2163 *-commutative_binary64_2055 flip3-+_binary64_2127 flip-+_binary64_2098 frac-add_binary64_2132
unswap-sqr_binary64_2092
distribute-rgt-in_binary64_2074 distribute-lft-in_binary64_2073 flip3--_binary64_2128 flip--_binary64_2099
distribute-lft-out_binary64_2075
Counts
4 → 90
Calls

4 calls:

15.0ms
(*.f64 4 (+.f64 (-.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 (*.f64 b b) (+.f64 3 a))))
9.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
8.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
6.0ms
(*.f64 a (*.f64 b b))
Compiler

Compiled 4278 to 2343 computations (45.2% saved)

series658.0ms (10.5%)

Error
0.0b
Counts
4 → 31
Calls

4 calls:

256.0ms
(*.f64 4 (+.f64 (-.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 (*.f64 b b) (+.f64 3 a))))
122.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
119.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
104.0ms
(*.f64 a (*.f64 b b))
Compiler

Compiled 3126 to 2278 computations (27.1% saved)

simplify99.0ms (1.6%)

Algorithm
egg-herbie
Rules
304×associate-*l*_binary64_2065
303×associate-*r*_binary64_2064
257×associate-+r+_binary64_2056
251×associate-+l+_binary64_2057
209×unswap-sqr_binary64_2092
198×cancel-sign-sub-inv_binary64_2090
194×exp-prod_binary64_2176
175×+-commutative_binary64_2054
169×*-commutative_binary64_2055
158×exp-sum_binary64_2170
155×distribute-rgt-in_binary64_2074
150×distribute-lft-in_binary64_2073
131×neg-mul-1_binary64_2120
105×distribute-rgt-neg-in_binary64_2082
88×distribute-lft-neg-in_binary64_2081
66×distribute-rgt-out_binary64_2077
61×cube-prod_binary64_2152
57×log-prod_binary64_2210
53×sqr-pow_binary64_2096
48×sub-neg_binary64_2117
42×exp-diff_binary64_2172
41×distribute-lft-out_binary64_2075
37×associate--r+_binary64_2060
35×distribute-lft-neg-out_binary64_2083
27×distribute-rgt-out--_binary64_2078
26×distribute-rgt-neg-out_binary64_2084
24×neg-sub0_binary64_2119 swap-sqr_binary64_2091
23×distribute-neg-in_binary64_2085
21×unpow3_binary64_2190 difference-of-squares_binary64_2093
20×*-rgt-identity_binary64_2114
19×associate--l+_binary64_2061 associate-+l-_binary64_2059
17×associate-+r-_binary64_2058
14×cube-mult_binary64_2154 *-lft-identity_binary64_2113
12×distribute-rgt1-in_binary64_2080
11×pow-plus_binary64_2187
10×div-sub_binary64_2129
distribute-lft-out--_binary64_2076
cube-unmult_binary64_2161 pow-sqr_binary64_2097
associate-/l*_binary64_2069
log-pow_binary64_2213
rem-sqrt-square_binary64_2137 unsub-neg_binary64_2118 associate--l-_binary64_2062
unpow2_binary64_2189 unpow1/2_binary64_2188 exp-lft-cube_binary64_2180 distribute-lft1-in_binary64_2079
unpow1_binary64_2182 count-2_binary64_2072 associate--r-_binary64_2063
1-exp_binary64_2168 exp-1-e_binary64_2167
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_2387 erf-erfc_binary64_2386 erf-odd_binary64_2385 if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 not-gte_binary64_2376 not-lte_binary64_2375 not-gt_binary64_2374 not-lt_binary64_2373 gte-same_binary64_2372 lte-same_binary64_2371 gt-same_binary64_2370 lt-same_binary64_2369 sinh---cosh_binary64_2316 sinh-+-cosh_binary64_2315 sinh-cosh_binary64_2314 tanh-def-c_binary64_2313 tanh-def-b_binary64_2312 tanh-def-a_binary64_2311 cosh-def_binary64_2310 sinh-def_binary64_2309 tan-neg_binary64_2256 cos-neg_binary64_2255 sin-neg_binary64_2254 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 hang-m-tan_binary64_2250 hang-p-tan_binary64_2249 hang-m0-tan_binary64_2248 hang-p0-tan_binary64_2247 hang-0m-tan_binary64_2246 hang-0p-tan_binary64_2245 tan-+PI/2_binary64_2244 tan-+PI_binary64_2243 tan-PI_binary64_2242 tan-PI/3_binary64_2241 tan-PI/4_binary64_2240 tan-PI/6_binary64_2239 cos-+PI/2_binary64_2238 cos-+PI_binary64_2237 cos-PI_binary64_2236 cos-PI/2_binary64_2235 cos-PI/3_binary64_2234 cos-PI/4_binary64_2233 cos-PI/6_binary64_2232 sin-+PI/2_binary64_2231 sin-+PI_binary64_2230 sin-PI_binary64_2229 sin-PI/2_binary64_2228 sin-PI/3_binary64_2227 sin-PI/4_binary64_2226 sin-PI/6_binary64_2225 sub-1-sin_binary64_2224 sub-1-cos_binary64_2223 -1-add-sin_binary64_2222 -1-add-cos_binary64_2221 1-sub-sin_binary64_2220 1-sub-cos_binary64_2219 cos-sin-sum_binary64_2218 log-E_binary64_2214 log-rec_binary64_2212 log-div_binary64_2211 pow-base-0_binary64_2208 unpow1/3_binary64_2191 exp-to-pow_binary64_2186 pow-base-1_binary64_2184 unpow0_binary64_2183 unpow-1_binary64_2181 exp-lft-sqr_binary64_2179 exp-cbrt_binary64_2178 exp-sqrt_binary64_2177 div-exp_binary64_2175 rec-exp_binary64_2174 prod-exp_binary64_2173 exp-neg_binary64_2171 e-exp-1_binary64_2169 exp-0_binary64_2166 rem-log-exp_binary64_2165 rem-exp-log_binary64_2164 cube-div_binary64_2153 cube-neg_binary64_2151 rem-3cbrt-rft_binary64_2150 rem-3cbrt-lft_binary64_2149 rem-cbrt-cube_binary64_2148 rem-cube-cbrt_binary64_2147 sqr-abs_binary64_2139 sqr-neg_binary64_2138 rem-square-sqrt_binary64_2136 times-frac_binary64_2130 mul-1-neg_binary64_2116 /-rgt-identity_binary64_2115 remove-double-neg_binary64_2112 sub0-neg_binary64_2111 --rgt-identity_binary64_2110 +-rgt-identity_binary64_2109 +-lft-identity_binary64_2108 mul0-rgt_binary64_2107 mul0-lft_binary64_2106 div0_binary64_2105 *-inverses_binary64_2104 +-inverses_binary64_2103 lft-mult-inverse_binary64_2102 rgt-mult-inverse_binary64_2101 remove-double-div_binary64_2100 difference-of-sqr--1_binary64_2095 difference-of-sqr-1_binary64_2094 cancel-sign-sub_binary64_2089 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 distribute-neg-out_binary64_2086 associate-/l/_binary64_2071 associate-/r/_binary64_2070 associate-/r*_binary64_2068 associate-*l/_binary64_2067 associate-*r/_binary64_2066
Counts
121 → 99
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01822183
15261889
221041847
344411843
449671843

prune206.0ms (3.3%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New99099
Fresh000
Picked011
Done011
Total992101
Error
0.0b
Counts
101 → 2
Compiler

Compiled 4199 to 2379 computations (43.3% saved)

regimes448.0ms (7.1%)

Accuracy

Total 0.0b remaining (52.3%)

Threshold costs 0.0b (52.3%)

Compiler

Compiled 5991 to 4168 computations (30.4% saved)

bsearch0.0ms (0%)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
13×+-commutative_binary64_2054
11×*-commutative_binary64_2055
neg-mul-1_binary64_2120 neg-sub0_binary64_2119
distribute-rgt-neg-in_binary64_2082
sub-neg_binary64_2117 distribute-lft-neg-in_binary64_2081
unsub-neg_binary64_2118 *-rgt-identity_binary64_2114 distribute-rgt-neg-out_binary64_2084
*-lft-identity_binary64_2113 distribute-lft-neg-out_binary64_2083
cancel-sign-sub-inv_binary64_2090
1-exp_binary64_2168
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same if-if-and-not_binary64_2384 if-if-and_binary64_2383 if-if-or-not_binary64_2382 if-if-or_binary64_2381 if-not_binary64_2380 if-same_binary64_2379 if-false_binary64_2378 if-true_binary64_2377 tan-0_binary64_2253 cos-0_binary64_2252 sin-0_binary64_2251 unpow1_binary64_2182 e-exp-1_binary64_2169 exp-1-e_binary64_2167 exp-0_binary64_2166 sqr-abs_binary64_2139 sqr-neg_binary64_2138 mul-1-neg_binary64_2116 /-rgt-identity_binary64_2115 remove-double-neg_binary64_2112 sub0-neg_binary64_2111 --rgt-identity_binary64_2110 +-rgt-identity_binary64_2109 +-lft-identity_binary64_2108 cancel-sign-sub_binary64_2089 distribute-neg-frac_binary64_2088 distribute-frac-neg_binary64_2087 distribute-neg-out_binary64_2086 distribute-neg-in_binary64_2085
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02660
14858
25958
37258
48558
58558
68358

end0.0ms (0%)

sample1.7s (27.2%)

Algorithm
intervals
Results
589.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 1149 to 802 computations (30.2% saved)

Profiling

Loading profile data...