Details

Time bar (total: 11.2s)

analyze600.0ms (5.3%)

Algorithm
search
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
0%99.9%0.1%5
0%99.9%0.1%6
14%85.8%0.1%7
22.6%77.2%0.1%8
23.8%74.5%1.7%9
40%56%4%10
47.3%48.7%4%11
48.4%45.8%5.8%12
58.6%32.4%9%13
63.4%27.5%9%14
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample19.0ms (0.2%)

Algorithm
intervals
Results
7.0ms256×body128valid
1.0ms24×body128invalid
Compiler

Compiled 15 to 16 computations (-6.7% saved)

simplify752.0ms (6.7%)

Algorithm
egg-herbie
Rules
1157×exp-prod_binary64_7291
1047×cube-prod_binary64_7267
543×div-sub_binary64_7244
328×distribute-rgt-out--_binary64_7193
235×distribute-rgt-out_binary64_7192
227×sub-neg_binary64_7232
212×swap-sqr_binary64_7206
194×exp-sum_binary64_7285
175×distribute-rgt-neg-in_binary64_7197
139×pow-plus_binary64_7302
136×associate-*l/_binary64_7182
133×exp-diff_binary64_7287
126×sqr-pow_binary64_7211
109×pow-sqr_binary64_7212
103×*-commutative_binary64_7170
102×unsub-neg_binary64_7233
97×difference-of-squares_binary64_7208
91×associate-/l*_binary64_7184
88×times-frac_binary64_7245 distribute-lft-out_binary64_7190 associate-/l/_binary64_7186
86×associate-/r/_binary64_7185
83×unpow3_binary64_7305
79×associate-*r/_binary64_7181
77×cube-mult_binary64_7269
74×distribute-lft-out--_binary64_7191
72×cube-div_binary64_7268
66×distribute-rgt-in_binary64_7189
58×distribute-lft-neg-in_binary64_7196
56×associate-*l*_binary64_7180
54×distribute-lft-in_binary64_7188
53×pow-base-1_binary64_7299
43×associate-*r*_binary64_7179
42×neg-mul-1_binary64_7235 neg-sub0_binary64_7234
38×associate-/r*_binary64_7183
37×distribute-rgt1-in_binary64_7195 associate--l+_binary64_7176
35×associate--r+_binary64_7175
32×associate--r-_binary64_7178
31×distribute-neg-in_binary64_7200
28×associate-+l+_binary64_7172
27×*-lft-identity_binary64_7228
25×*-rgt-identity_binary64_7229 associate-+r+_binary64_7171
22×unswap-sqr_binary64_7207 +-commutative_binary64_7169
20×distribute-rgt-neg-out_binary64_7199 associate--l-_binary64_7177
18×rem-sqrt-square_binary64_7252 distribute-lft-neg-out_binary64_7198
17×+-inverses_binary64_7218
16×div-exp_binary64_7290 prod-exp_binary64_7288 cube-neg_binary64_7266 --rgt-identity_binary64_7225
14×/-rgt-identity_binary64_7230
12×sqr-neg_binary64_7253 difference-of-sqr--1_binary64_7210
11×+-lft-identity_binary64_7223 distribute-neg-frac_binary64_7203
10×associate-+l-_binary64_7174
exp-lft-sqr_binary64_7294
distribute-neg-out_binary64_7201 count-2_binary64_7187
cube-unmult_binary64_7276 cancel-sign-sub-inv_binary64_7205 associate-+r-_binary64_7173
exp-sqrt_binary64_7292 exp-neg_binary64_7286
rec-exp_binary64_7289 remove-double-neg_binary64_7227 remove-double-div_binary64_7215 distribute-frac-neg_binary64_7202
*-inverses_binary64_7219
distribute-lft1-in_binary64_7194
pow-base-0_binary64_7323 1-exp_binary64_7283 exp-1-e_binary64_7282 +-rgt-identity_binary64_7224 div0_binary64_7220 rgt-mult-inverse_binary64_7216 difference-of-sqr-1_binary64_7209
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_7502 erf-erfc_binary64_7501 erf-odd_binary64_7500 if-if-and-not_binary64_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 not-gte_binary64_7491 not-lte_binary64_7490 not-gt_binary64_7489 not-lt_binary64_7488 gte-same_binary64_7487 lte-same_binary64_7486 gt-same_binary64_7485 lt-same_binary64_7484 sinh---cosh_binary64_7431 sinh-+-cosh_binary64_7430 sinh-cosh_binary64_7429 tanh-def-c_binary64_7428 tanh-def-b_binary64_7427 tanh-def-a_binary64_7426 cosh-def_binary64_7425 sinh-def_binary64_7424 tan-neg_binary64_7371 cos-neg_binary64_7370 sin-neg_binary64_7369 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 hang-m-tan_binary64_7365 hang-p-tan_binary64_7364 hang-m0-tan_binary64_7363 hang-p0-tan_binary64_7362 hang-0m-tan_binary64_7361 hang-0p-tan_binary64_7360 tan-+PI/2_binary64_7359 tan-+PI_binary64_7358 tan-PI_binary64_7357 tan-PI/3_binary64_7356 tan-PI/4_binary64_7355 tan-PI/6_binary64_7354 cos-+PI/2_binary64_7353 cos-+PI_binary64_7352 cos-PI_binary64_7351 cos-PI/2_binary64_7350 cos-PI/3_binary64_7349 cos-PI/4_binary64_7348 cos-PI/6_binary64_7347 sin-+PI/2_binary64_7346 sin-+PI_binary64_7345 sin-PI_binary64_7344 sin-PI/2_binary64_7343 sin-PI/3_binary64_7342 sin-PI/4_binary64_7341 sin-PI/6_binary64_7340 sub-1-sin_binary64_7339 sub-1-cos_binary64_7338 -1-add-sin_binary64_7337 -1-add-cos_binary64_7336 1-sub-sin_binary64_7335 1-sub-cos_binary64_7334 cos-sin-sum_binary64_7333 log-E_binary64_7329 log-pow_binary64_7328 log-rec_binary64_7327 log-div_binary64_7326 log-prod_binary64_7325 unpow1/3_binary64_7306 unpow2_binary64_7304 unpow1/2_binary64_7303 exp-to-pow_binary64_7301 unpow0_binary64_7298 unpow1_binary64_7297 unpow-1_binary64_7296 exp-lft-cube_binary64_7295 exp-cbrt_binary64_7293 e-exp-1_binary64_7284 exp-0_binary64_7281 rem-log-exp_binary64_7280 rem-exp-log_binary64_7279 rem-3cbrt-rft_binary64_7265 rem-3cbrt-lft_binary64_7264 rem-cbrt-cube_binary64_7263 rem-cube-cbrt_binary64_7262 sqr-abs_binary64_7254 rem-square-sqrt_binary64_7251 mul-1-neg_binary64_7231 sub0-neg_binary64_7226 mul0-rgt_binary64_7222 mul0-lft_binary64_7221 lft-mult-inverse_binary64_7217 cancel-sign-sub_binary64_7204
Counts
1 → 5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11710
22310
33410
43710
54110
64510
75310
822010
960010
1061610
1167210
12116410
13239210
14262210

prune10.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New235
Fresh011
Picked000
Done000
Total246
Error
0.0b
Counts
6 → 4
Compiler

Compiled 63 to 39 computations (38.1% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 x (/.f64 x (/.f64 z y)))
5.4b
(/.f64 x (/.f64 z y))

rewrite100.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
0b
Rules
75×times-frac_binary64_7245
46×*-un-lft-identity_binary64_7239
44×add-cube-cbrt_binary64_7274 add-sqr-sqrt_binary64_7261
13×associate-/r*_binary64_7183
add-exp-log_binary64_7277 add-cbrt-cube_binary64_7275
div-inv_binary64_7236
add-log-exp_binary64_7278
div-exp_binary64_7290 cbrt-undiv_binary64_7273 associate-/l*_binary64_7184
pow1_binary64_7300
frac-2neg_binary64_7250 clear-num_binary64_7238 associate-/r/_binary64_7185 sum-log_binary64_7330 flip3-+_binary64_7242 flip-+_binary64_7213 distribute-lft-out_binary64_7190 +-commutative_binary64_7169
Counts
2 → 82
Calls

2 calls:

13.0ms
(+.f64 x (/.f64 x (/.f64 z y)))
6.0ms
(/.f64 x (/.f64 z y))
Compiler

Compiled 1338 to 391 computations (70.8% saved)

series332.0ms (2.9%)

Error
0.0b
Counts
2 → 24
Calls

2 calls:

168.0ms
(+.f64 x (/.f64 x (/.f64 z y)))
152.0ms
(/.f64 x (/.f64 z y))
Compiler

Compiled 414 to 262 computations (36.7% saved)

simplify323.0ms (2.9%)

Algorithm
egg-herbie
Rules
403×associate-/r/_binary64_7185
399×associate-/l/_binary64_7186
369×associate-*l/_binary64_7182
323×associate-*l*_binary64_7180
266×distribute-rgt-out_binary64_7192
242×associate-/r*_binary64_7183
237×distribute-rgt-in_binary64_7189
236×div-sub_binary64_7244
210×associate-*r/_binary64_7181
204×*-commutative_binary64_7170
202×associate-*r*_binary64_7179
193×distribute-lft-in_binary64_7188
136×cancel-sign-sub-inv_binary64_7205
124×distribute-lft-out_binary64_7190
120×associate-/l*_binary64_7184
93×distribute-rgt-neg-in_binary64_7197
78×distribute-lft-neg-in_binary64_7196
58×unswap-sqr_binary64_7207
57×distribute-neg-frac_binary64_7203
56×associate-+l+_binary64_7172
53×distribute-rgt-out--_binary64_7193
51×associate-+r+_binary64_7171
48×times-frac_binary64_7245
47×sqr-pow_binary64_7211
46×sub-neg_binary64_7232
39×exp-prod_binary64_7291 cube-prod_binary64_7267 *-rgt-identity_binary64_7229
38×log-prod_binary64_7325
34×*-lft-identity_binary64_7228 +-commutative_binary64_7169
33×cube-div_binary64_7268
31×/-rgt-identity_binary64_7230 swap-sqr_binary64_7206
29×log-div_binary64_7326
28×associate-+l-_binary64_7174
26×neg-sub0_binary64_7234
23×pow-sqr_binary64_7212
22×neg-mul-1_binary64_7235
21×associate--l-_binary64_7177
20×unsub-neg_binary64_7233
19×exp-to-pow_binary64_7301 distribute-lft-neg-out_binary64_7198
17×prod-exp_binary64_7288
16×div-exp_binary64_7290 distribute-lft-out--_binary64_7191
14×associate-+r-_binary64_7173
12×log-pow_binary64_7328 unpow3_binary64_7305 associate--r+_binary64_7175
10×exp-sum_binary64_7285 distribute-rgt-neg-out_binary64_7199 distribute-rgt1-in_binary64_7195
pow-plus_binary64_7302 cube-mult_binary64_7269
cube-unmult_binary64_7276
distribute-neg-out_binary64_7201
sub0-neg_binary64_7226
+-rgt-identity_binary64_7224 associate--r-_binary64_7178 associate--l+_binary64_7176
log-rec_binary64_7327 rec-exp_binary64_7289 exp-diff_binary64_7287
pow-base-1_binary64_7299 remove-double-div_binary64_7215 distribute-neg-in_binary64_7200
div0_binary64_7220 difference-of-squares_binary64_7208 distribute-lft1-in_binary64_7194
1-exp_binary64_7283 exp-1-e_binary64_7282 rem-log-exp_binary64_7280 sqr-neg_binary64_7253 remove-double-neg_binary64_7227 mul0-rgt_binary64_7222 mul0-lft_binary64_7221 count-2_binary64_7187
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_7502 erf-erfc_binary64_7501 erf-odd_binary64_7500 if-if-and-not_binary64_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 not-gte_binary64_7491 not-lte_binary64_7490 not-gt_binary64_7489 not-lt_binary64_7488 gte-same_binary64_7487 lte-same_binary64_7486 gt-same_binary64_7485 lt-same_binary64_7484 sinh---cosh_binary64_7431 sinh-+-cosh_binary64_7430 sinh-cosh_binary64_7429 tanh-def-c_binary64_7428 tanh-def-b_binary64_7427 tanh-def-a_binary64_7426 cosh-def_binary64_7425 sinh-def_binary64_7424 tan-neg_binary64_7371 cos-neg_binary64_7370 sin-neg_binary64_7369 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 hang-m-tan_binary64_7365 hang-p-tan_binary64_7364 hang-m0-tan_binary64_7363 hang-p0-tan_binary64_7362 hang-0m-tan_binary64_7361 hang-0p-tan_binary64_7360 tan-+PI/2_binary64_7359 tan-+PI_binary64_7358 tan-PI_binary64_7357 tan-PI/3_binary64_7356 tan-PI/4_binary64_7355 tan-PI/6_binary64_7354 cos-+PI/2_binary64_7353 cos-+PI_binary64_7352 cos-PI_binary64_7351 cos-PI/2_binary64_7350 cos-PI/3_binary64_7349 cos-PI/4_binary64_7348 cos-PI/6_binary64_7347 sin-+PI/2_binary64_7346 sin-+PI_binary64_7345 sin-PI_binary64_7344 sin-PI/2_binary64_7343 sin-PI/3_binary64_7342 sin-PI/4_binary64_7341 sin-PI/6_binary64_7340 sub-1-sin_binary64_7339 sub-1-cos_binary64_7338 -1-add-sin_binary64_7337 -1-add-cos_binary64_7336 1-sub-sin_binary64_7335 1-sub-cos_binary64_7334 cos-sin-sum_binary64_7333 log-E_binary64_7329 pow-base-0_binary64_7323 unpow1/3_binary64_7306 unpow2_binary64_7304 unpow1/2_binary64_7303 unpow0_binary64_7298 unpow1_binary64_7297 unpow-1_binary64_7296 exp-lft-cube_binary64_7295 exp-lft-sqr_binary64_7294 exp-cbrt_binary64_7293 exp-sqrt_binary64_7292 exp-neg_binary64_7286 e-exp-1_binary64_7284 exp-0_binary64_7281 rem-exp-log_binary64_7279 cube-neg_binary64_7266 rem-3cbrt-rft_binary64_7265 rem-3cbrt-lft_binary64_7264 rem-cbrt-cube_binary64_7263 rem-cube-cbrt_binary64_7262 sqr-abs_binary64_7254 rem-sqrt-square_binary64_7252 rem-square-sqrt_binary64_7251 mul-1-neg_binary64_7231 --rgt-identity_binary64_7225 +-lft-identity_binary64_7223 *-inverses_binary64_7219 +-inverses_binary64_7218 lft-mult-inverse_binary64_7217 rgt-mult-inverse_binary64_7216 difference-of-sqr--1_binary64_7210 difference-of-sqr-1_binary64_7209 cancel-sign-sub_binary64_7204 distribute-frac-neg_binary64_7202
Counts
106 → 392
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01741591
13821555
212501552
330231546
446701546

prune317.0ms (2.8%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New3902392
Fresh033
Picked011
Done000
Total3906396
Error
0b
Counts
396 → 6
Compiler

Compiled 6897 to 1274 computations (81.5% saved)

localize5.0ms (0%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 x (*.f64 x (/.f64 y z)))
5.4b
(*.f64 x (/.f64 y z))

rewrite44.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
15×add-sqr-sqrt_binary64_7261
13×associate-*r*_binary64_7179
10×add-cube-cbrt_binary64_7274 *-un-lft-identity_binary64_7239 times-frac_binary64_7245
add-exp-log_binary64_7277 add-cbrt-cube_binary64_7275
pow1_binary64_7300 add-log-exp_binary64_7278
associate-*l*_binary64_7180
prod-exp_binary64_7288 cbrt-unprod_binary64_7272 unswap-sqr_binary64_7207
pow-prod-down_binary64_7310 div-exp_binary64_7290 cbrt-undiv_binary64_7273 associate-*r/_binary64_7181 div-inv_binary64_7236 *-commutative_binary64_7170 sum-log_binary64_7330 flip3-+_binary64_7242 flip-+_binary64_7213 +-commutative_binary64_7169
Counts
2 → 43
Calls

2 calls:

7.0ms
(*.f64 x (/.f64 y z))
3.0ms
(+.f64 x (*.f64 x (/.f64 y z)))
Compiler

Compiled 615 to 185 computations (69.9% saved)

series352.0ms (3.1%)

Error
0b
Counts
2 → 24
Calls

2 calls:

180.0ms
(+.f64 x (*.f64 x (/.f64 y z)))
160.0ms
(*.f64 x (/.f64 y z))
Compiler

Compiled 414 to 262 computations (36.7% saved)

simplify190.0ms (1.7%)

Algorithm
egg-herbie
Rules
354×associate-*l/_binary64_7182
319×div-sub_binary64_7244
315×associate-/l*_binary64_7184
304×cancel-sign-sub-inv_binary64_7205
293×associate-*r/_binary64_7181
283×distribute-rgt-in_binary64_7189
243×unswap-sqr_binary64_7207
231×distribute-lft-in_binary64_7188
201×times-frac_binary64_7245
150×associate-/l/_binary64_7186
148×sub-neg_binary64_7232
140×distribute-rgt-out_binary64_7192
132×unsub-neg_binary64_7233
120×sqr-pow_binary64_7211
118×associate-+l+_binary64_7172
116×*-commutative_binary64_7170
113×associate-+r+_binary64_7171
109×*-lft-identity_binary64_7228
104×distribute-neg-frac_binary64_7203
92×associate-*l*_binary64_7180
83×*-rgt-identity_binary64_7229
78×neg-mul-1_binary64_7235
72×distribute-rgt-neg-in_binary64_7197
66×associate-*r*_binary64_7179
64×neg-sub0_binary64_7234
62×pow-sqr_binary64_7212 associate-/r/_binary64_7185
57×distribute-lft-out_binary64_7190
56×distribute-lft-neg-in_binary64_7196
54×cube-div_binary64_7268
53×associate-/r*_binary64_7183
49×log-div_binary64_7326
47×associate-+l-_binary64_7174
42×log-prod_binary64_7325
40×cube-prod_binary64_7267 sub0-neg_binary64_7226
38×+-commutative_binary64_7169
37×distribute-rgt-out--_binary64_7193
34×exp-prod_binary64_7291
29×swap-sqr_binary64_7206
28×remove-double-div_binary64_7215
26×associate--l-_binary64_7177
23×distribute-lft-neg-out_binary64_7198 associate-+r-_binary64_7173
18×/-rgt-identity_binary64_7230 distribute-rgt1-in_binary64_7195
17×log-rec_binary64_7327 unpow3_binary64_7305
15×cube-mult_binary64_7269
12×+-rgt-identity_binary64_7224 distribute-lft-out--_binary64_7191
10×prod-exp_binary64_7288 mul0-lft_binary64_7221
div-exp_binary64_7290 +-lft-identity_binary64_7223 mul0-rgt_binary64_7222 distribute-rgt-neg-out_binary64_7199
exp-sum_binary64_7285 div0_binary64_7220 distribute-neg-out_binary64_7201 associate--r+_binary64_7175
pow-plus_binary64_7302 distribute-lft1-in_binary64_7194 associate--l+_binary64_7176
log-pow_binary64_7328
exp-diff_binary64_7287
rec-exp_binary64_7289 cube-unmult_binary64_7276 --rgt-identity_binary64_7225 difference-of-squares_binary64_7208 associate--r-_binary64_7178
exp-to-pow_binary64_7301 pow-base-1_binary64_7299 remove-double-neg_binary64_7227 distribute-frac-neg_binary64_7202
1-exp_binary64_7283 exp-1-e_binary64_7282 rem-log-exp_binary64_7280 +-inverses_binary64_7218 rgt-mult-inverse_binary64_7216 difference-of-sqr-1_binary64_7209 distribute-neg-in_binary64_7200 count-2_binary64_7187
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_7502 erf-erfc_binary64_7501 erf-odd_binary64_7500 if-if-and-not_binary64_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 not-gte_binary64_7491 not-lte_binary64_7490 not-gt_binary64_7489 not-lt_binary64_7488 gte-same_binary64_7487 lte-same_binary64_7486 gt-same_binary64_7485 lt-same_binary64_7484 sinh---cosh_binary64_7431 sinh-+-cosh_binary64_7430 sinh-cosh_binary64_7429 tanh-def-c_binary64_7428 tanh-def-b_binary64_7427 tanh-def-a_binary64_7426 cosh-def_binary64_7425 sinh-def_binary64_7424 tan-neg_binary64_7371 cos-neg_binary64_7370 sin-neg_binary64_7369 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 hang-m-tan_binary64_7365 hang-p-tan_binary64_7364 hang-m0-tan_binary64_7363 hang-p0-tan_binary64_7362 hang-0m-tan_binary64_7361 hang-0p-tan_binary64_7360 tan-+PI/2_binary64_7359 tan-+PI_binary64_7358 tan-PI_binary64_7357 tan-PI/3_binary64_7356 tan-PI/4_binary64_7355 tan-PI/6_binary64_7354 cos-+PI/2_binary64_7353 cos-+PI_binary64_7352 cos-PI_binary64_7351 cos-PI/2_binary64_7350 cos-PI/3_binary64_7349 cos-PI/4_binary64_7348 cos-PI/6_binary64_7347 sin-+PI/2_binary64_7346 sin-+PI_binary64_7345 sin-PI_binary64_7344 sin-PI/2_binary64_7343 sin-PI/3_binary64_7342 sin-PI/4_binary64_7341 sin-PI/6_binary64_7340 sub-1-sin_binary64_7339 sub-1-cos_binary64_7338 -1-add-sin_binary64_7337 -1-add-cos_binary64_7336 1-sub-sin_binary64_7335 1-sub-cos_binary64_7334 cos-sin-sum_binary64_7333 log-E_binary64_7329 pow-base-0_binary64_7323 unpow1/3_binary64_7306 unpow2_binary64_7304 unpow1/2_binary64_7303 unpow0_binary64_7298 unpow1_binary64_7297 unpow-1_binary64_7296 exp-lft-cube_binary64_7295 exp-lft-sqr_binary64_7294 exp-cbrt_binary64_7293 exp-sqrt_binary64_7292 exp-neg_binary64_7286 e-exp-1_binary64_7284 exp-0_binary64_7281 rem-exp-log_binary64_7279 cube-neg_binary64_7266 rem-3cbrt-rft_binary64_7265 rem-3cbrt-lft_binary64_7264 rem-cbrt-cube_binary64_7263 rem-cube-cbrt_binary64_7262 sqr-abs_binary64_7254 sqr-neg_binary64_7253 rem-sqrt-square_binary64_7252 rem-square-sqrt_binary64_7251 mul-1-neg_binary64_7231 *-inverses_binary64_7219 lft-mult-inverse_binary64_7217 difference-of-sqr--1_binary64_7210 cancel-sign-sub_binary64_7204
Counts
67 → 68
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
092709
1228685
2823682
32581682
44066682

prune58.0ms (0.5%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New68068
Fresh044
Picked011
Done011
Total68674
Error
0b
Counts
74 → 6
Compiler

Compiled 1122 to 337 computations (70% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 x (*.f64 (/.f64 1 z) (*.f64 x y)))
6.6b
(*.f64 (/.f64 1 z) (*.f64 x y))

rewrite62.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
24×add-exp-log_binary64_7277
14×add-cbrt-cube_binary64_7275
13×associate-*l*_binary64_7180
12×prod-exp_binary64_7288
add-cube-cbrt_binary64_7274 add-sqr-sqrt_binary64_7261 *-un-lft-identity_binary64_7239 times-frac_binary64_7245
pow1_binary64_7300
cbrt-unprod_binary64_7272
div-exp_binary64_7290 add-log-exp_binary64_7278
pow-prod-down_binary64_7310
1-exp_binary64_7283 rec-exp_binary64_7289 cbrt-undiv_binary64_7273
associate-*l/_binary64_7182 div-inv_binary64_7236 associate-*r*_binary64_7179 *-commutative_binary64_7170 sum-log_binary64_7330 flip3-+_binary64_7242 flip-+_binary64_7213 +-commutative_binary64_7169
Counts
2 → 48
Calls

2 calls:

8.0ms
(*.f64 (/.f64 1 z) (*.f64 x y))
4.0ms
(+.f64 x (*.f64 (/.f64 1 z) (*.f64 x y)))
Compiler

Compiled 806 to 423 computations (47.5% saved)

series330.0ms (2.9%)

Error
0b
Counts
2 → 24
Calls

2 calls:

168.0ms
(+.f64 x (*.f64 (/.f64 1 z) (*.f64 x y)))
151.0ms
(*.f64 (/.f64 1 z) (*.f64 x y))
Compiler

Compiled 414 to 262 computations (36.7% saved)

simplify231.0ms (2.1%)

Algorithm
egg-herbie
Rules
535×associate-/r*_binary64_7183
490×associate-/l/_binary64_7186
381×associate-/r/_binary64_7185
302×times-frac_binary64_7245
237×associate-/l*_binary64_7184
218×distribute-rgt-in_binary64_7189
211×associate-*l/_binary64_7182
183×distribute-lft-in_binary64_7188 *-commutative_binary64_7170
146×associate-*r*_binary64_7179
138×distribute-rgt-neg-in_binary64_7197
135×cancel-sign-sub-inv_binary64_7205
127×associate-*r/_binary64_7181
123×associate-*l*_binary64_7180
118×distribute-lft-neg-in_binary64_7196
112×associate-+l+_binary64_7172
106×unswap-sqr_binary64_7207 associate-+r+_binary64_7171
102×distribute-rgt-out_binary64_7192
71×distribute-neg-frac_binary64_7203
64×sqr-pow_binary64_7211
49×sub-neg_binary64_7232
43×exp-prod_binary64_7291 distribute-rgt-out--_binary64_7193
39×+-commutative_binary64_7169
35×neg-mul-1_binary64_7235
34×*-rgt-identity_binary64_7229
33×neg-sub0_binary64_7234 *-lft-identity_binary64_7228 distribute-lft-out_binary64_7190
29×div-sub_binary64_7244
28×log-prod_binary64_7325
27×pow-sqr_binary64_7212
26×associate-+l-_binary64_7174
24×swap-sqr_binary64_7206
22×cube-prod_binary64_7267
18×distribute-lft-neg-out_binary64_7198
17×log-div_binary64_7326 distribute-neg-in_binary64_7200 associate--r+_binary64_7175 associate-+r-_binary64_7173
16×unsub-neg_binary64_7233
15×cube-div_binary64_7268
11×log-pow_binary64_7328
10×unpow3_binary64_7305
pow-plus_binary64_7302
cube-mult_binary64_7269 /-rgt-identity_binary64_7230
distribute-rgt-neg-out_binary64_7199 distribute-rgt1-in_binary64_7195 distribute-lft-out--_binary64_7191
sub0-neg_binary64_7226 +-rgt-identity_binary64_7224
log-rec_binary64_7327 exp-to-pow_binary64_7301 cube-unmult_binary64_7276
pow-base-1_binary64_7299 associate--l+_binary64_7176
prod-exp_binary64_7288 exp-sum_binary64_7285 difference-of-squares_binary64_7208 associate--r-_binary64_7178
1-exp_binary64_7283 exp-1-e_binary64_7282 rem-log-exp_binary64_7280 rem-cbrt-cube_binary64_7263 rem-sqrt-square_binary64_7252 remove-double-neg_binary64_7227 div0_binary64_7220 count-2_binary64_7187
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_7502 erf-erfc_binary64_7501 erf-odd_binary64_7500 if-if-and-not_binary64_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 not-gte_binary64_7491 not-lte_binary64_7490 not-gt_binary64_7489 not-lt_binary64_7488 gte-same_binary64_7487 lte-same_binary64_7486 gt-same_binary64_7485 lt-same_binary64_7484 sinh---cosh_binary64_7431 sinh-+-cosh_binary64_7430 sinh-cosh_binary64_7429 tanh-def-c_binary64_7428 tanh-def-b_binary64_7427 tanh-def-a_binary64_7426 cosh-def_binary64_7425 sinh-def_binary64_7424 tan-neg_binary64_7371 cos-neg_binary64_7370 sin-neg_binary64_7369 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 hang-m-tan_binary64_7365 hang-p-tan_binary64_7364 hang-m0-tan_binary64_7363 hang-p0-tan_binary64_7362 hang-0m-tan_binary64_7361 hang-0p-tan_binary64_7360 tan-+PI/2_binary64_7359 tan-+PI_binary64_7358 tan-PI_binary64_7357 tan-PI/3_binary64_7356 tan-PI/4_binary64_7355 tan-PI/6_binary64_7354 cos-+PI/2_binary64_7353 cos-+PI_binary64_7352 cos-PI_binary64_7351 cos-PI/2_binary64_7350 cos-PI/3_binary64_7349 cos-PI/4_binary64_7348 cos-PI/6_binary64_7347 sin-+PI/2_binary64_7346 sin-+PI_binary64_7345 sin-PI_binary64_7344 sin-PI/2_binary64_7343 sin-PI/3_binary64_7342 sin-PI/4_binary64_7341 sin-PI/6_binary64_7340 sub-1-sin_binary64_7339 sub-1-cos_binary64_7338 -1-add-sin_binary64_7337 -1-add-cos_binary64_7336 1-sub-sin_binary64_7335 1-sub-cos_binary64_7334 cos-sin-sum_binary64_7333 log-E_binary64_7329 pow-base-0_binary64_7323 unpow1/3_binary64_7306 unpow2_binary64_7304 unpow1/2_binary64_7303 unpow0_binary64_7298 unpow1_binary64_7297 unpow-1_binary64_7296 exp-lft-cube_binary64_7295 exp-lft-sqr_binary64_7294 exp-cbrt_binary64_7293 exp-sqrt_binary64_7292 div-exp_binary64_7290 rec-exp_binary64_7289 exp-diff_binary64_7287 exp-neg_binary64_7286 e-exp-1_binary64_7284 exp-0_binary64_7281 rem-exp-log_binary64_7279 cube-neg_binary64_7266 rem-3cbrt-rft_binary64_7265 rem-3cbrt-lft_binary64_7264 rem-cube-cbrt_binary64_7262 sqr-abs_binary64_7254 sqr-neg_binary64_7253 rem-square-sqrt_binary64_7251 mul-1-neg_binary64_7231 --rgt-identity_binary64_7225 +-lft-identity_binary64_7223 mul0-rgt_binary64_7222 mul0-lft_binary64_7221 *-inverses_binary64_7219 +-inverses_binary64_7218 lft-mult-inverse_binary64_7217 rgt-mult-inverse_binary64_7216 remove-double-div_binary64_7215 difference-of-sqr--1_binary64_7210 difference-of-sqr-1_binary64_7209 cancel-sign-sub_binary64_7204 distribute-frac-neg_binary64_7202 distribute-neg-out_binary64_7201 distribute-lft1-in_binary64_7194 associate--l-_binary64_7177
Counts
72 → 190
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0102742
1267718
2865695
32137692
44966692

prune144.0ms (1.3%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1900190
Fresh033
Picked011
Done022
Total1906196
Error
0b
Counts
196 → 6
Compiler

Compiled 2982 to 913 computations (69.4% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

6.3b
(*.f64 (/.f64 x z) y)
12.9b
(cbrt.f64 (/.f64 x (/.f64 z y)))
12.9b
(cbrt.f64 (/.f64 x (/.f64 z y)))
12.9b
(cbrt.f64 (*.f64 (/.f64 x z) y))

rewrite225.0ms (2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
142×times-frac_binary64_7245
89×cbrt-prod_binary64_7270
87×add-sqr-sqrt_binary64_7261
82×add-cube-cbrt_binary64_7274 *-un-lft-identity_binary64_7239
13×associate-*l*_binary64_7180
add-exp-log_binary64_7277 add-cbrt-cube_binary64_7275 div-inv_binary64_7236
pow1_binary64_7300
add-log-exp_binary64_7278
pow1/3_binary64_7321 cbrt-div_binary64_7271 associate-*r*_binary64_7179
associate-*l/_binary64_7182 associate-/r/_binary64_7185 prod-exp_binary64_7288 cbrt-unprod_binary64_7272 unswap-sqr_binary64_7207
pow-prod-down_binary64_7310 div-exp_binary64_7290 cbrt-undiv_binary64_7273 *-commutative_binary64_7170
Counts
4 → 148
Calls

4 calls:

7.0ms
(*.f64 (/.f64 x z) y)
6.0ms
(cbrt.f64 (/.f64 x (/.f64 z y)))
5.0ms
(cbrt.f64 (/.f64 x (/.f64 z y)))
4.0ms
(cbrt.f64 (*.f64 (/.f64 x z) y))
Compiler

Compiled 4697 to 1005 computations (78.6% saved)

series1.8s (15.6%)

Error
0b
Counts
4 → 36
Calls

4 calls:

525.0ms
(cbrt.f64 (*.f64 (/.f64 x z) y))
523.0ms
(cbrt.f64 (/.f64 x (/.f64 z y)))
518.0ms
(cbrt.f64 (/.f64 x (/.f64 z y)))
151.0ms
(*.f64 (/.f64 x z) y)
Compiler

Compiled 2889 to 1579 computations (45.3% saved)

simplify2.9s (25.8%)

Algorithm
egg-herbie
Rules
489×times-frac_binary64_7245
382×associate-*l/_binary64_7182
381×associate-/l*_binary64_7184
354×associate-*l*_binary64_7180
259×exp-prod_binary64_7291
241×associate-*r/_binary64_7181
240×associate-/l/_binary64_7186
235×associate-*r*_binary64_7179
197×associate-/r/_binary64_7185
188×*-commutative_binary64_7170
174×associate-/r*_binary64_7183
168×exp-sum_binary64_7285
109×distribute-rgt-in_binary64_7189
103×unswap-sqr_binary64_7207
98×log-prod_binary64_7325
94×exp-diff_binary64_7287
93×associate-+l-_binary64_7174
86×unsub-neg_binary64_7233
85×cancel-sign-sub-inv_binary64_7205
83×div-sub_binary64_7244 sub-neg_binary64_7232
81×sqr-pow_binary64_7211
72×associate-+r+_binary64_7171
69×distribute-lft-in_binary64_7188
61×log-div_binary64_7326
57×log-pow_binary64_7328
56×exp-to-pow_binary64_7301
55×associate-+l+_binary64_7172
53×associate--l-_binary64_7177
52×associate-+r-_binary64_7173
50×associate--r-_binary64_7178
46×distribute-neg-out_binary64_7201
41×associate--r+_binary64_7175
36×+-commutative_binary64_7169
34×pow-sqr_binary64_7212
33×*-rgt-identity_binary64_7229
32×/-rgt-identity_binary64_7230
31×cube-prod_binary64_7267
30×associate--l+_binary64_7176
29×distribute-lft-out_binary64_7190
24×neg-mul-1_binary64_7235 swap-sqr_binary64_7206
23×pow-plus_binary64_7302 cube-div_binary64_7268 neg-sub0_binary64_7234
22×unpow1/3_binary64_7306 *-lft-identity_binary64_7228
21×log-rec_binary64_7327
20×sub0-neg_binary64_7226
19×distribute-lft-neg-in_binary64_7196
18×unpow3_binary64_7305
16×distribute-rgt-out_binary64_7192
15×distribute-neg-in_binary64_7200 distribute-rgt-neg-out_binary64_7199 distribute-lft-neg-out_binary64_7198
12×exp-neg_binary64_7286 remove-double-div_binary64_7215
11×distribute-rgt-neg-in_binary64_7197 distribute-rgt-out--_binary64_7193
10×rem-exp-log_binary64_7279
distribute-frac-neg_binary64_7202
cube-unmult_binary64_7276
prod-exp_binary64_7288 distribute-lft-out--_binary64_7191
remove-double-neg_binary64_7227
+-rgt-identity_binary64_7224
pow-base-1_binary64_7299
cube-mult_binary64_7269 rem-sqrt-square_binary64_7252 +-lft-identity_binary64_7223
rem-3cbrt-lft_binary64_7264 --rgt-identity_binary64_7225 mul0-lft_binary64_7221 distribute-rgt1-in_binary64_7195 count-2_binary64_7187
exp-sqrt_binary64_7292 div-exp_binary64_7290 rec-exp_binary64_7289 1-exp_binary64_7283 exp-1-e_binary64_7282 rem-log-exp_binary64_7280 rem-cbrt-cube_binary64_7263 mul0-rgt_binary64_7222 div0_binary64_7220
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_7502 erf-erfc_binary64_7501 erf-odd_binary64_7500 if-if-and-not_binary64_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 not-gte_binary64_7491 not-lte_binary64_7490 not-gt_binary64_7489 not-lt_binary64_7488 gte-same_binary64_7487 lte-same_binary64_7486 gt-same_binary64_7485 lt-same_binary64_7484 sinh---cosh_binary64_7431 sinh-+-cosh_binary64_7430 sinh-cosh_binary64_7429 tanh-def-c_binary64_7428 tanh-def-b_binary64_7427 tanh-def-a_binary64_7426 cosh-def_binary64_7425 sinh-def_binary64_7424 tan-neg_binary64_7371 cos-neg_binary64_7370 sin-neg_binary64_7369 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 hang-m-tan_binary64_7365 hang-p-tan_binary64_7364 hang-m0-tan_binary64_7363 hang-p0-tan_binary64_7362 hang-0m-tan_binary64_7361 hang-0p-tan_binary64_7360 tan-+PI/2_binary64_7359 tan-+PI_binary64_7358 tan-PI_binary64_7357 tan-PI/3_binary64_7356 tan-PI/4_binary64_7355 tan-PI/6_binary64_7354 cos-+PI/2_binary64_7353 cos-+PI_binary64_7352 cos-PI_binary64_7351 cos-PI/2_binary64_7350 cos-PI/3_binary64_7349 cos-PI/4_binary64_7348 cos-PI/6_binary64_7347 sin-+PI/2_binary64_7346 sin-+PI_binary64_7345 sin-PI_binary64_7344 sin-PI/2_binary64_7343 sin-PI/3_binary64_7342 sin-PI/4_binary64_7341 sin-PI/6_binary64_7340 sub-1-sin_binary64_7339 sub-1-cos_binary64_7338 -1-add-sin_binary64_7337 -1-add-cos_binary64_7336 1-sub-sin_binary64_7335 1-sub-cos_binary64_7334 cos-sin-sum_binary64_7333 log-E_binary64_7329 pow-base-0_binary64_7323 unpow2_binary64_7304 unpow1/2_binary64_7303 unpow0_binary64_7298 unpow1_binary64_7297 unpow-1_binary64_7296 exp-lft-cube_binary64_7295 exp-lft-sqr_binary64_7294 exp-cbrt_binary64_7293 e-exp-1_binary64_7284 exp-0_binary64_7281 cube-neg_binary64_7266 rem-3cbrt-rft_binary64_7265 rem-cube-cbrt_binary64_7262 sqr-abs_binary64_7254 sqr-neg_binary64_7253 rem-square-sqrt_binary64_7251 mul-1-neg_binary64_7231 *-inverses_binary64_7219 +-inverses_binary64_7218 lft-mult-inverse_binary64_7217 rgt-mult-inverse_binary64_7216 difference-of-sqr--1_binary64_7210 difference-of-sqr-1_binary64_7209 difference-of-squares_binary64_7208 cancel-sign-sub_binary64_7204 distribute-neg-frac_binary64_7203 distribute-lft1-in_binary64_7194
Counts
184 → 1098
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02993543
15153309
212973257
334703150
447823106

prune1.4s (12.2%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New109801098
Fresh022
Picked011
Done033
Total109861104
Error
0b
Counts
1104 → 6
Compiler

Compiled 35597 to 5084 computations (85.7% saved)

regimes235.0ms (2.1%)

Accuracy

Total 0.5b remaining (98.8%)

Threshold costs 0.5b (98.8%)

Compiler

Compiled 796 to 626 computations (21.4% saved)

bsearch1.0ms (0%)

Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_7170 +-commutative_binary64_7169
1-exp_binary64_7283
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_7499 if-if-and_binary64_7498 if-if-or-not_binary64_7497 if-if-or_binary64_7496 if-not_binary64_7495 if-same_binary64_7494 if-false_binary64_7493 if-true_binary64_7492 tan-0_binary64_7368 cos-0_binary64_7367 sin-0_binary64_7366 unpow1_binary64_7297 e-exp-1_binary64_7284 exp-1-e_binary64_7282 exp-0_binary64_7281 sqr-abs_binary64_7254 sqr-neg_binary64_7253 neg-mul-1_binary64_7235 neg-sub0_binary64_7234 unsub-neg_binary64_7233 sub-neg_binary64_7232 mul-1-neg_binary64_7231 /-rgt-identity_binary64_7230 *-rgt-identity_binary64_7229 *-lft-identity_binary64_7228 remove-double-neg_binary64_7227 sub0-neg_binary64_7226 --rgt-identity_binary64_7225 +-rgt-identity_binary64_7224 +-lft-identity_binary64_7223 cancel-sign-sub-inv_binary64_7205 cancel-sign-sub_binary64_7204 distribute-neg-frac_binary64_7203 distribute-frac-neg_binary64_7202 distribute-neg-out_binary64_7201 distribute-neg-in_binary64_7200 distribute-rgt-neg-out_binary64_7199 distribute-lft-neg-out_binary64_7198 distribute-rgt-neg-in_binary64_7197 distribute-lft-neg-in_binary64_7196
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031116
141116
Proof
(if real (<= f64 (/ f64 (* f64 h0 (+ f64 h1 h2)) h2) h3) (+ f64 h0 (/ f64 h0 (/ f64 h2 h1))) (if real (<= f64 (/ f64 (* f64 h0 (+ f64 h1 h2)) h2) -41062700574637671882989325364930646056360930026608910864237051308087541509174171851031745555294443071499654337211732833861632) (+ f64 h0 (* f64 (/ f64 1 h2) (* f64 h0 h1))) (if real (<= f64 (/ f64 (* f64 h0 (+ f64 h1 h2)) h2) 8101654669496653/483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928) (+ f64 h0 (/ f64 h0 (/ f64 h2 h1))) (if real (<= f64 (/ f64 (* f64 h0 (+ f64 h1 h2)) h2) 75367768443051554742567876254354861289508214887286808845474456985323936045784499370788457458498580854938111267852941460578091647666686128248468196964875915419889288368925088724064758039128828485792498043692994234541436592724939593205217151361551617678330882018049865272352200385248409395254697046048768) (+ f64 h0 (* f64 (/ f64 1 h2) (* f64 h0 h1))) (+ f64 h0 (* f64 h0 (/ f64 h1 h2)))))))

end0.0ms (0%)

sample847.0ms (7.5%)

Algorithm
intervals
Results
223.0ms8000×body128valid
23.0ms725×body128invalid
Compiler

Compiled 288 to 198 computations (31.3% saved)

Profiling

Loading profile data...