Details

Time bar (total: 9.8s)

analyze425.0ms (4.4%)

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
25%74.9%0.1%7
31.2%68.6%0.1%8
42.1%57.7%0.1%9
56.9%42.9%0.1%10
59.5%40.4%0.1%11
68.1%31.8%0.1%12
75.1%24.4%0.5%13
75.7%23.3%1%14
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample43.0ms (0.4%)

Algorithm
intervals
Results
12.0ms168×body128valid
10.0ms48×body1024valid
4.0ms26×body512valid
1.0ms13×body256valid
1.0ms21×body128invalid
1.0msbody512invalid
0.0msbody2048valid
0.0msbody256invalid
Compiler

Compiled 17 to 18 computations (-5.9% saved)

simplify156.0ms (1.6%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64_8207
12×*-commutative_binary64_8193
10×associate-/r/_binary64_8208
associate-*l/_binary64_8205
associate-/l/_binary64_8209 associate-/r*_binary64_8206 associate-*r/_binary64_8204
times-frac_binary64_8268
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_8525 erf-erfc_binary64_8524 erf-odd_binary64_8523 if-if-and-not_binary64_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 not-gte_binary64_8514 not-lte_binary64_8513 not-gt_binary64_8512 not-lt_binary64_8511 gte-same_binary64_8510 lte-same_binary64_8509 gt-same_binary64_8508 lt-same_binary64_8507 sinh---cosh_binary64_8454 sinh-+-cosh_binary64_8453 sinh-cosh_binary64_8452 tanh-def-c_binary64_8451 tanh-def-b_binary64_8450 tanh-def-a_binary64_8449 cosh-def_binary64_8448 sinh-def_binary64_8447 tan-neg_binary64_8394 cos-neg_binary64_8393 sin-neg_binary64_8392 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 hang-m-tan_binary64_8388 hang-p-tan_binary64_8387 hang-m0-tan_binary64_8386 hang-p0-tan_binary64_8385 hang-0m-tan_binary64_8384 hang-0p-tan_binary64_8383 tan-+PI/2_binary64_8382 tan-+PI_binary64_8381 tan-PI_binary64_8380 tan-PI/3_binary64_8379 tan-PI/4_binary64_8378 tan-PI/6_binary64_8377 cos-+PI/2_binary64_8376 cos-+PI_binary64_8375 cos-PI_binary64_8374 cos-PI/2_binary64_8373 cos-PI/3_binary64_8372 cos-PI/4_binary64_8371 cos-PI/6_binary64_8370 sin-+PI/2_binary64_8369 sin-+PI_binary64_8368 sin-PI_binary64_8367 sin-PI/2_binary64_8366 sin-PI/3_binary64_8365 sin-PI/4_binary64_8364 sin-PI/6_binary64_8363 sub-1-sin_binary64_8362 sub-1-cos_binary64_8361 -1-add-sin_binary64_8360 -1-add-cos_binary64_8359 1-sub-sin_binary64_8358 1-sub-cos_binary64_8357 cos-sin-sum_binary64_8356 log-E_binary64_8352 log-pow_binary64_8351 log-rec_binary64_8350 log-div_binary64_8349 log-prod_binary64_8348 pow-base-0_binary64_8346 unpow1/3_binary64_8329 unpow3_binary64_8328 unpow2_binary64_8327 unpow1/2_binary64_8326 pow-plus_binary64_8325 exp-to-pow_binary64_8324 pow-base-1_binary64_8322 unpow0_binary64_8321 unpow1_binary64_8320 unpow-1_binary64_8319 exp-lft-cube_binary64_8318 exp-lft-sqr_binary64_8317 exp-cbrt_binary64_8316 exp-sqrt_binary64_8315 exp-prod_binary64_8314 div-exp_binary64_8313 rec-exp_binary64_8312 prod-exp_binary64_8311 exp-diff_binary64_8310 exp-neg_binary64_8309 exp-sum_binary64_8308 e-exp-1_binary64_8307 1-exp_binary64_8306 exp-1-e_binary64_8305 exp-0_binary64_8304 rem-log-exp_binary64_8303 rem-exp-log_binary64_8302 cube-unmult_binary64_8299 cube-mult_binary64_8292 cube-div_binary64_8291 cube-prod_binary64_8290 cube-neg_binary64_8289 rem-3cbrt-rft_binary64_8288 rem-3cbrt-lft_binary64_8287 rem-cbrt-cube_binary64_8286 rem-cube-cbrt_binary64_8285 sqr-abs_binary64_8277 sqr-neg_binary64_8276 rem-sqrt-square_binary64_8275 rem-square-sqrt_binary64_8274 div-sub_binary64_8267 neg-mul-1_binary64_8258 neg-sub0_binary64_8257 unsub-neg_binary64_8256 sub-neg_binary64_8255 mul-1-neg_binary64_8254 /-rgt-identity_binary64_8253 *-rgt-identity_binary64_8252 *-lft-identity_binary64_8251 remove-double-neg_binary64_8250 sub0-neg_binary64_8249 --rgt-identity_binary64_8248 +-rgt-identity_binary64_8247 +-lft-identity_binary64_8246 mul0-rgt_binary64_8245 mul0-lft_binary64_8244 div0_binary64_8243 *-inverses_binary64_8242 +-inverses_binary64_8241 lft-mult-inverse_binary64_8240 rgt-mult-inverse_binary64_8239 remove-double-div_binary64_8238 pow-sqr_binary64_8235 sqr-pow_binary64_8234 difference-of-sqr--1_binary64_8233 difference-of-sqr-1_binary64_8232 difference-of-squares_binary64_8231 unswap-sqr_binary64_8230 swap-sqr_binary64_8229 cancel-sign-sub-inv_binary64_8228 cancel-sign-sub_binary64_8227 distribute-neg-frac_binary64_8226 distribute-frac-neg_binary64_8225 distribute-neg-out_binary64_8224 distribute-neg-in_binary64_8223 distribute-rgt-neg-out_binary64_8222 distribute-lft-neg-out_binary64_8221 distribute-rgt-neg-in_binary64_8220 distribute-lft-neg-in_binary64_8219 distribute-rgt1-in_binary64_8218 distribute-lft1-in_binary64_8217 distribute-rgt-out--_binary64_8216 distribute-rgt-out_binary64_8215 distribute-lft-out--_binary64_8214 distribute-lft-out_binary64_8213 distribute-rgt-in_binary64_8212 distribute-lft-in_binary64_8211 count-2_binary64_8210 associate-*l*_binary64_8203 associate-*r*_binary64_8202 associate--r-_binary64_8201 associate--l-_binary64_8200 associate--l+_binary64_8199 associate--r+_binary64_8198 associate-+l-_binary64_8197 associate-+r-_binary64_8196 associate-+l+_binary64_8195 associate-+r+_binary64_8194 +-commutative_binary64_8192
Counts
1 → 4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11312
22412
34812
46312
56812

prune11.0ms (0.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New044
Fresh011
Picked000
Done000
Total055
Error
0.0b
Counts
5 → 5
Compiler

Compiled 72 to 51 computations (29.2% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.1b
(/.f64 (sin.f64 y) y)
0.1b
(*.f64 x (/.f64 (sin.f64 y) y))
2.0b
(/.f64 (*.f64 x (/.f64 (sin.f64 y) y)) z)

rewrite104.0ms (1.1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
26×add-sqr-sqrt_binary64_8284
22×times-frac_binary64_8268
21×add-cube-cbrt_binary64_8297 *-un-lft-identity_binary64_8262
19×add-exp-log_binary64_8300 add-cbrt-cube_binary64_8298
13×associate-*r*_binary64_8202
div-exp_binary64_8313 cbrt-undiv_binary64_8296 associate-/r*_binary64_8206
pow1_binary64_8323
prod-exp_binary64_8311 cbrt-unprod_binary64_8295 associate-/l*_binary64_8207
add-log-exp_binary64_8301 div-inv_binary64_8259 associate-*l*_binary64_8203
frac-2neg_binary64_8273 clear-num_binary64_8261 associate-*r/_binary64_8204 unswap-sqr_binary64_8230
associate-/l/_binary64_8209 pow-prod-down_binary64_8333 *-commutative_binary64_8193
Counts
3 → 83
Calls

3 calls:

13.0ms
(*.f64 x (/.f64 (sin.f64 y) y))
8.0ms
(/.f64 (*.f64 x (/.f64 (sin.f64 y) y)) z)
4.0ms
(/.f64 (sin.f64 y) y)
Compiler

Compiled 1235 to 325 computations (73.7% saved)

series547.0ms (5.6%)

Error
0.0b
Counts
3 → 27
Calls

3 calls:

317.0ms
(/.f64 (*.f64 x (/.f64 (sin.f64 y) y)) z)
167.0ms
(*.f64 x (/.f64 (sin.f64 y) y))
44.0ms
(/.f64 (sin.f64 y) y)
Compiler

Compiled 736 to 510 computations (30.7% saved)

simplify267.0ms (2.7%)

Algorithm
egg-herbie
Rules
460×associate-/r/_binary64_8208
342×associate-/r*_binary64_8206
305×cancel-sign-sub-inv_binary64_8228
236×*-commutative_binary64_8193
200×associate-+l-_binary64_8197
189×sub-neg_binary64_8255
137×associate--l-_binary64_8200
131×associate-/l*_binary64_8207
121×distribute-rgt-neg-in_binary64_8220
110×log-div_binary64_8349
108×log-prod_binary64_8348
101×associate-+r-_binary64_8196
98×distribute-lft-neg-in_binary64_8219
97×associate--l+_binary64_8199
95×associate-+l+_binary64_8195
92×associate-*l*_binary64_8203
89×cube-prod_binary64_8290
87×+-commutative_binary64_8192
85×associate-+r+_binary64_8194
81×associate-*r/_binary64_8204 associate-*r*_binary64_8202
80×associate-/l/_binary64_8209
77×cube-div_binary64_8291 sqr-pow_binary64_8234
73×associate-*l/_binary64_8205
72×times-frac_binary64_8268
70×div-sub_binary64_8267
54×neg-mul-1_binary64_8258
51×associate--r+_binary64_8198
49×unsub-neg_binary64_8256 unswap-sqr_binary64_8230
47×neg-sub0_binary64_8257
44×distribute-neg-frac_binary64_8226
43×unpow3_binary64_8328
42×exp-prod_binary64_8314 swap-sqr_binary64_8229
41×*-rgt-identity_binary64_8252
38×distribute-rgt-in_binary64_8212
31×distribute-lft-in_binary64_8211
30×associate--r-_binary64_8201
29×/-rgt-identity_binary64_8253
27×*-lft-identity_binary64_8251
26×pow-sqr_binary64_8235 distribute-neg-out_binary64_8224
21×distribute-lft-out_binary64_8213
20×cube-mult_binary64_8292
17×log-rec_binary64_8350
16×sub0-neg_binary64_8249
14×+-rgt-identity_binary64_8247 distribute-neg-in_binary64_8223 distribute-lft-neg-out_binary64_8221
12×distribute-rgt-out--_binary64_8216
10×pow-plus_binary64_8325
div-exp_binary64_8313 prod-exp_binary64_8311 distribute-rgt-out_binary64_8215
log-pow_binary64_8351 cube-unmult_binary64_8299
distribute-rgt1-in_binary64_8218
distribute-frac-neg_binary64_8225
distribute-lft-out--_binary64_8214
exp-lft-sqr_binary64_8317 div0_binary64_8243 cancel-sign-sub_binary64_8227
exp-to-pow_binary64_8324 rec-exp_binary64_8312
+-lft-identity_binary64_8246 count-2_binary64_8210
unpow2_binary64_8327 unpow1_binary64_8320 exp-sqrt_binary64_8315 exp-diff_binary64_8310 1-exp_binary64_8306 exp-1-e_binary64_8305 rem-log-exp_binary64_8303 rem-sqrt-square_binary64_8275 remove-double-neg_binary64_8250 *-inverses_binary64_8242 rgt-mult-inverse_binary64_8239 remove-double-div_binary64_8238
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_8525 erf-erfc_binary64_8524 erf-odd_binary64_8523 if-if-and-not_binary64_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 not-gte_binary64_8514 not-lte_binary64_8513 not-gt_binary64_8512 not-lt_binary64_8511 gte-same_binary64_8510 lte-same_binary64_8509 gt-same_binary64_8508 lt-same_binary64_8507 sinh---cosh_binary64_8454 sinh-+-cosh_binary64_8453 sinh-cosh_binary64_8452 tanh-def-c_binary64_8451 tanh-def-b_binary64_8450 tanh-def-a_binary64_8449 cosh-def_binary64_8448 sinh-def_binary64_8447 tan-neg_binary64_8394 cos-neg_binary64_8393 sin-neg_binary64_8392 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 hang-m-tan_binary64_8388 hang-p-tan_binary64_8387 hang-m0-tan_binary64_8386 hang-p0-tan_binary64_8385 hang-0m-tan_binary64_8384 hang-0p-tan_binary64_8383 tan-+PI/2_binary64_8382 tan-+PI_binary64_8381 tan-PI_binary64_8380 tan-PI/3_binary64_8379 tan-PI/4_binary64_8378 tan-PI/6_binary64_8377 cos-+PI/2_binary64_8376 cos-+PI_binary64_8375 cos-PI_binary64_8374 cos-PI/2_binary64_8373 cos-PI/3_binary64_8372 cos-PI/4_binary64_8371 cos-PI/6_binary64_8370 sin-+PI/2_binary64_8369 sin-+PI_binary64_8368 sin-PI_binary64_8367 sin-PI/2_binary64_8366 sin-PI/3_binary64_8365 sin-PI/4_binary64_8364 sin-PI/6_binary64_8363 sub-1-sin_binary64_8362 sub-1-cos_binary64_8361 -1-add-sin_binary64_8360 -1-add-cos_binary64_8359 1-sub-sin_binary64_8358 1-sub-cos_binary64_8357 cos-sin-sum_binary64_8356 log-E_binary64_8352 pow-base-0_binary64_8346 unpow1/3_binary64_8329 unpow1/2_binary64_8326 pow-base-1_binary64_8322 unpow0_binary64_8321 unpow-1_binary64_8319 exp-lft-cube_binary64_8318 exp-cbrt_binary64_8316 exp-neg_binary64_8309 exp-sum_binary64_8308 e-exp-1_binary64_8307 exp-0_binary64_8304 rem-exp-log_binary64_8302 cube-neg_binary64_8289 rem-3cbrt-rft_binary64_8288 rem-3cbrt-lft_binary64_8287 rem-cbrt-cube_binary64_8286 rem-cube-cbrt_binary64_8285 sqr-abs_binary64_8277 sqr-neg_binary64_8276 rem-square-sqrt_binary64_8274 mul-1-neg_binary64_8254 --rgt-identity_binary64_8248 mul0-rgt_binary64_8245 mul0-lft_binary64_8244 +-inverses_binary64_8241 lft-mult-inverse_binary64_8240 difference-of-sqr--1_binary64_8233 difference-of-sqr-1_binary64_8232 difference-of-squares_binary64_8231 distribute-rgt-neg-out_binary64_8222 distribute-lft1-in_binary64_8217
Counts
110 → 180
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01631632
14021449
214511443
330571440
449421440

prune161.0ms (1.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1746180
Fresh314
Picked011
Done000
Total1778185
Error
0.0b
Counts
185 → 8
Compiler

Compiled 2919 to 684 computations (76.6% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.1b
(/.f64 (sin.f64 y) y)
0.1b
(/.f64 (/.f64 (sin.f64 y) y) z)
3.0b
(*.f64 x (/.f64 (/.f64 (sin.f64 y) y) z))

rewrite196.0ms (2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
153×times-frac_binary64_8268
98×add-sqr-sqrt_binary64_8284
89×add-cube-cbrt_binary64_8297 *-un-lft-identity_binary64_8262
43×associate-*r*_binary64_8202
19×add-exp-log_binary64_8300 add-cbrt-cube_binary64_8298
16×associate-/l*_binary64_8207
10×div-inv_binary64_8259
div-exp_binary64_8313 cbrt-undiv_binary64_8296
associate-/r*_binary64_8206
pow1_binary64_8323
prod-exp_binary64_8311 add-log-exp_binary64_8301 cbrt-unprod_binary64_8295 unswap-sqr_binary64_8230 associate-*l*_binary64_8203
frac-2neg_binary64_8273 clear-num_binary64_8261
pow-prod-down_binary64_8333 associate-*r/_binary64_8204 *-commutative_binary64_8193 associate-/l/_binary64_8209
Counts
3 → 162
Calls

3 calls:

17.0ms
(*.f64 x (/.f64 (/.f64 (sin.f64 y) y) z))
7.0ms
(/.f64 (/.f64 (sin.f64 y) y) z)
4.0ms
(/.f64 (sin.f64 y) y)
Compiler

Compiled 2909 to 688 computations (76.3% saved)

series580.0ms (5.9%)

Error
0.0b
Counts
3 → 27
Calls

3 calls:

343.0ms
(*.f64 x (/.f64 (/.f64 (sin.f64 y) y) z))
170.0ms
(/.f64 (/.f64 (sin.f64 y) y) z)
45.0ms
(/.f64 (sin.f64 y) y)
Compiler

Compiled 752 to 527 computations (29.9% saved)

simplify372.0ms (3.8%)

Algorithm
egg-herbie
Rules
539×associate-/r/_binary64_8208
314×*-commutative_binary64_8193
309×cancel-sign-sub-inv_binary64_8228
192×associate-+l-_binary64_8197
189×associate-/l/_binary64_8209
177×sub-neg_binary64_8255
160×associate-/l*_binary64_8207
145×associate-*l/_binary64_8205 associate-*l*_binary64_8203
142×associate-*r/_binary64_8204
113×associate--l-_binary64_8200
110×associate-*r*_binary64_8202
108×distribute-rgt-neg-in_binary64_8220
101×associate-+r-_binary64_8196
96×associate-/r*_binary64_8206
92×distribute-lft-neg-in_binary64_8219
91×associate--l+_binary64_8199
75×unswap-sqr_binary64_8230
74×log-prod_binary64_8348
68×sqr-pow_binary64_8234
65×cube-prod_binary64_8290
64×times-frac_binary64_8268
62×*-rgt-identity_binary64_8252
59×*-lft-identity_binary64_8251
54×log-div_binary64_8349 associate--r+_binary64_8198
50×+-commutative_binary64_8192
45×cube-div_binary64_8291 unsub-neg_binary64_8256
44×neg-mul-1_binary64_8258
41×associate--r-_binary64_8201
39×neg-sub0_binary64_8257 distribute-neg-frac_binary64_8226
38×swap-sqr_binary64_8229
36×exp-prod_binary64_8314
34×associate-+l+_binary64_8195
32×div-sub_binary64_8267
29×distribute-rgt-out--_binary64_8216
27×/-rgt-identity_binary64_8253
26×pow-sqr_binary64_8235 associate-+r+_binary64_8194
24×distribute-neg-out_binary64_8224
22×distribute-rgt-in_binary64_8212
20×sub0-neg_binary64_8249 distribute-lft-out_binary64_8213
16×div-exp_binary64_8313 prod-exp_binary64_8311 distribute-rgt-out_binary64_8215
15×+-rgt-identity_binary64_8247
13×unpow3_binary64_8328 cube-mult_binary64_8292 distribute-lft-neg-out_binary64_8221
11×distribute-neg-in_binary64_8223
10×distribute-lft-in_binary64_8211
cube-unmult_binary64_8299
log-rec_binary64_8350 pow-plus_binary64_8325 distribute-rgt1-in_binary64_8218
exp-lft-sqr_binary64_8317 cancel-sign-sub_binary64_8227
rec-exp_binary64_8312 distribute-frac-neg_binary64_8225
log-pow_binary64_8351 remove-double-div_binary64_8238 distribute-lft-out--_binary64_8214
+-lft-identity_binary64_8246 div0_binary64_8243 count-2_binary64_8210
unpow2_binary64_8327 exp-to-pow_binary64_8324 unpow1_binary64_8320 exp-sqrt_binary64_8315 exp-diff_binary64_8310 1-exp_binary64_8306 exp-1-e_binary64_8305 rem-log-exp_binary64_8303 rem-sqrt-square_binary64_8275 remove-double-neg_binary64_8250 *-inverses_binary64_8242 rgt-mult-inverse_binary64_8239
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_8525 erf-erfc_binary64_8524 erf-odd_binary64_8523 if-if-and-not_binary64_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 not-gte_binary64_8514 not-lte_binary64_8513 not-gt_binary64_8512 not-lt_binary64_8511 gte-same_binary64_8510 lte-same_binary64_8509 gt-same_binary64_8508 lt-same_binary64_8507 sinh---cosh_binary64_8454 sinh-+-cosh_binary64_8453 sinh-cosh_binary64_8452 tanh-def-c_binary64_8451 tanh-def-b_binary64_8450 tanh-def-a_binary64_8449 cosh-def_binary64_8448 sinh-def_binary64_8447 tan-neg_binary64_8394 cos-neg_binary64_8393 sin-neg_binary64_8392 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 hang-m-tan_binary64_8388 hang-p-tan_binary64_8387 hang-m0-tan_binary64_8386 hang-p0-tan_binary64_8385 hang-0m-tan_binary64_8384 hang-0p-tan_binary64_8383 tan-+PI/2_binary64_8382 tan-+PI_binary64_8381 tan-PI_binary64_8380 tan-PI/3_binary64_8379 tan-PI/4_binary64_8378 tan-PI/6_binary64_8377 cos-+PI/2_binary64_8376 cos-+PI_binary64_8375 cos-PI_binary64_8374 cos-PI/2_binary64_8373 cos-PI/3_binary64_8372 cos-PI/4_binary64_8371 cos-PI/6_binary64_8370 sin-+PI/2_binary64_8369 sin-+PI_binary64_8368 sin-PI_binary64_8367 sin-PI/2_binary64_8366 sin-PI/3_binary64_8365 sin-PI/4_binary64_8364 sin-PI/6_binary64_8363 sub-1-sin_binary64_8362 sub-1-cos_binary64_8361 -1-add-sin_binary64_8360 -1-add-cos_binary64_8359 1-sub-sin_binary64_8358 1-sub-cos_binary64_8357 cos-sin-sum_binary64_8356 log-E_binary64_8352 pow-base-0_binary64_8346 unpow1/3_binary64_8329 unpow1/2_binary64_8326 pow-base-1_binary64_8322 unpow0_binary64_8321 unpow-1_binary64_8319 exp-lft-cube_binary64_8318 exp-cbrt_binary64_8316 exp-neg_binary64_8309 exp-sum_binary64_8308 e-exp-1_binary64_8307 exp-0_binary64_8304 rem-exp-log_binary64_8302 cube-neg_binary64_8289 rem-3cbrt-rft_binary64_8288 rem-3cbrt-lft_binary64_8287 rem-cbrt-cube_binary64_8286 rem-cube-cbrt_binary64_8285 sqr-abs_binary64_8277 sqr-neg_binary64_8276 rem-square-sqrt_binary64_8274 mul-1-neg_binary64_8254 --rgt-identity_binary64_8248 mul0-rgt_binary64_8245 mul0-lft_binary64_8244 +-inverses_binary64_8241 lft-mult-inverse_binary64_8240 difference-of-sqr--1_binary64_8233 difference-of-sqr-1_binary64_8232 difference-of-squares_binary64_8231 distribute-rgt-neg-out_binary64_8222 distribute-lft1-in_binary64_8217
Counts
189 → 418
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02713417
16533216
221123216
332333216

prune388.0ms (4%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New4171418
Fresh066
Picked011
Done011
Total4179426
Error
0b
Counts
426 → 9
Compiler

Compiled 7930 to 1521 computations (80.8% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.1b
(/.f64 x (/.f64 y (sin.f64 y)))
0.1b
(/.f64 y (sin.f64 y))
2.2b
(*.f64 (/.f64 x (/.f64 y (sin.f64 y))) (/.f64 1 z))

rewrite264.0ms (2.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
174×times-frac_binary64_8268
125×add-sqr-sqrt_binary64_8284
98×*-un-lft-identity_binary64_8262
95×add-cube-cbrt_binary64_8297
49×add-exp-log_binary64_8300
44×associate-*l*_binary64_8203
31×add-cbrt-cube_binary64_8298
22×div-exp_binary64_8313
16×associate-/r*_binary64_8206
13×cbrt-undiv_binary64_8296 associate-*r*_binary64_8202
12×prod-exp_binary64_8311
11×div-inv_binary64_8259
unswap-sqr_binary64_8230
cbrt-unprod_binary64_8295 associate-/l*_binary64_8207
pow1_binary64_8323
1-exp_binary64_8306 rec-exp_binary64_8312 add-log-exp_binary64_8301
associate-/r/_binary64_8208 frac-2neg_binary64_8273 clear-num_binary64_8261
pow-prod-down_binary64_8333 frac-times_binary64_8272 un-div-inv_binary64_8260 associate-*l/_binary64_8205 associate-*r/_binary64_8204 *-commutative_binary64_8193
Counts
3 → 194
Calls

3 calls:

23.0ms
(*.f64 (/.f64 x (/.f64 y (sin.f64 y))) (/.f64 1 z))
6.0ms
(/.f64 x (/.f64 y (sin.f64 y)))
4.0ms
(/.f64 y (sin.f64 y))
Compiler

Compiled 3878 to 1287 computations (66.8% saved)

series567.0ms (5.8%)

Error
0b
Counts
3 → 27
Calls

3 calls:

323.0ms
(*.f64 (/.f64 x (/.f64 y (sin.f64 y))) (/.f64 1 z))
164.0ms
(/.f64 x (/.f64 y (sin.f64 y)))
59.0ms
(/.f64 y (sin.f64 y))
Compiler

Compiled 810 to 590 computations (27.2% saved)

simplify651.0ms (6.7%)

Algorithm
egg-herbie
Rules
320×associate-/l*_binary64_8207
276×associate-*l/_binary64_8205
253×associate-*r/_binary64_8204
235×cancel-sign-sub-inv_binary64_8228
219×*-commutative_binary64_8193
198×associate-/r/_binary64_8208
197×associate-*l*_binary64_8203
179×associate-/l/_binary64_8209
160×sub-neg_binary64_8255
156×associate-+l-_binary64_8197
148×associate-*r*_binary64_8202
127×associate--l-_binary64_8200
97×*-rgt-identity_binary64_8252
94×sqr-pow_binary64_8234
89×log-div_binary64_8349
81×times-frac_binary64_8268
80×distribute-rgt-neg-in_binary64_8220
79×cube-div_binary64_8291
77×distribute-lft-out--_binary64_8214
76×associate--l+_binary64_8199
72×associate--r+_binary64_8198
69×associate-+r-_binary64_8196
65×distribute-lft-neg-in_binary64_8219
64×unswap-sqr_binary64_8230
61×cube-prod_binary64_8290
58×associate--r-_binary64_8201
57×log-prod_binary64_8348
55×neg-mul-1_binary64_8258 distribute-lft-out_binary64_8213
54×distribute-rgt-in_binary64_8212
52×div-sub_binary64_8267 associate-/r*_binary64_8206
51×+-commutative_binary64_8192
50×unsub-neg_binary64_8256
46×associate-+l+_binary64_8195
45×exp-prod_binary64_8314 /-rgt-identity_binary64_8253 swap-sqr_binary64_8229
42×neg-sub0_binary64_8257
38×distribute-neg-out_binary64_8224
34×distribute-neg-frac_binary64_8226
31×pow-sqr_binary64_8235 associate-+r+_binary64_8194
29×sub0-neg_binary64_8249
28×distribute-rgt-out_binary64_8215 distribute-lft-in_binary64_8211
26×*-lft-identity_binary64_8251 distribute-lft-neg-out_binary64_8221
25×unpow3_binary64_8328 cube-mult_binary64_8292
22×distribute-rgt-out--_binary64_8216
20×distribute-neg-in_binary64_8223
17×log-rec_binary64_8350
12×+-lft-identity_binary64_8246
cube-unmult_binary64_8299 +-rgt-identity_binary64_8247 distribute-rgt-neg-out_binary64_8222
pow-plus_binary64_8325
distribute-rgt1-in_binary64_8218
log-pow_binary64_8351
remove-double-div_binary64_8238
rem-sqrt-square_binary64_8275 remove-double-neg_binary64_8250 div0_binary64_8243 count-2_binary64_8210
unpow2_binary64_8327 pow-base-1_binary64_8322 unpow1_binary64_8320 exp-sqrt_binary64_8315 div-exp_binary64_8313 rec-exp_binary64_8312 prod-exp_binary64_8311 exp-diff_binary64_8310 1-exp_binary64_8306 exp-1-e_binary64_8305 rem-log-exp_binary64_8303 rem-cbrt-cube_binary64_8286 sqr-neg_binary64_8276 --rgt-identity_binary64_8248 *-inverses_binary64_8242 rgt-mult-inverse_binary64_8239 cancel-sign-sub_binary64_8227 distribute-frac-neg_binary64_8225
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_8525 erf-erfc_binary64_8524 erf-odd_binary64_8523 if-if-and-not_binary64_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 not-gte_binary64_8514 not-lte_binary64_8513 not-gt_binary64_8512 not-lt_binary64_8511 gte-same_binary64_8510 lte-same_binary64_8509 gt-same_binary64_8508 lt-same_binary64_8507 sinh---cosh_binary64_8454 sinh-+-cosh_binary64_8453 sinh-cosh_binary64_8452 tanh-def-c_binary64_8451 tanh-def-b_binary64_8450 tanh-def-a_binary64_8449 cosh-def_binary64_8448 sinh-def_binary64_8447 tan-neg_binary64_8394 cos-neg_binary64_8393 sin-neg_binary64_8392 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 hang-m-tan_binary64_8388 hang-p-tan_binary64_8387 hang-m0-tan_binary64_8386 hang-p0-tan_binary64_8385 hang-0m-tan_binary64_8384 hang-0p-tan_binary64_8383 tan-+PI/2_binary64_8382 tan-+PI_binary64_8381 tan-PI_binary64_8380 tan-PI/3_binary64_8379 tan-PI/4_binary64_8378 tan-PI/6_binary64_8377 cos-+PI/2_binary64_8376 cos-+PI_binary64_8375 cos-PI_binary64_8374 cos-PI/2_binary64_8373 cos-PI/3_binary64_8372 cos-PI/4_binary64_8371 cos-PI/6_binary64_8370 sin-+PI/2_binary64_8369 sin-+PI_binary64_8368 sin-PI_binary64_8367 sin-PI/2_binary64_8366 sin-PI/3_binary64_8365 sin-PI/4_binary64_8364 sin-PI/6_binary64_8363 sub-1-sin_binary64_8362 sub-1-cos_binary64_8361 -1-add-sin_binary64_8360 -1-add-cos_binary64_8359 1-sub-sin_binary64_8358 1-sub-cos_binary64_8357 cos-sin-sum_binary64_8356 log-E_binary64_8352 pow-base-0_binary64_8346 unpow1/3_binary64_8329 unpow1/2_binary64_8326 exp-to-pow_binary64_8324 unpow0_binary64_8321 unpow-1_binary64_8319 exp-lft-cube_binary64_8318 exp-lft-sqr_binary64_8317 exp-cbrt_binary64_8316 exp-neg_binary64_8309 exp-sum_binary64_8308 e-exp-1_binary64_8307 exp-0_binary64_8304 rem-exp-log_binary64_8302 cube-neg_binary64_8289 rem-3cbrt-rft_binary64_8288 rem-3cbrt-lft_binary64_8287 rem-cube-cbrt_binary64_8285 sqr-abs_binary64_8277 rem-square-sqrt_binary64_8274 mul-1-neg_binary64_8254 mul0-rgt_binary64_8245 mul0-lft_binary64_8244 +-inverses_binary64_8241 lft-mult-inverse_binary64_8240 difference-of-sqr--1_binary64_8233 difference-of-sqr-1_binary64_8232 difference-of-squares_binary64_8231 distribute-lft1-in_binary64_8217
Counts
221 → 564
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03244172
18613782
229383736
332093733

prune600.0ms (6.1%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New5640564
Fresh066
Picked011
Done022
Total5649573
Error
0b
Counts
573 → 9
Compiler

Compiled 11633 to 3082 computations (73.5% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.1b
(/.f64 y (sin.f64 y))
0.6b
(/.f64 1 (*.f64 (/.f64 z x) (/.f64 y (sin.f64 y))))
2.5b
(*.f64 (/.f64 z x) (/.f64 y (sin.f64 y)))

rewrite137.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
61×add-exp-log_binary64_8300
39×add-sqr-sqrt_binary64_8284
35×add-cbrt-cube_binary64_8298
34×times-frac_binary64_8268
27×div-exp_binary64_8313 add-cube-cbrt_binary64_8297 *-un-lft-identity_binary64_8262
16×prod-exp_binary64_8311
14×cbrt-undiv_binary64_8296
13×associate-*l*_binary64_8203 associate-*r*_binary64_8202
pow1_binary64_8323 cbrt-unprod_binary64_8295
associate-/l*_binary64_8207
1-exp_binary64_8306 rec-exp_binary64_8312
unswap-sqr_binary64_8230 div-inv_binary64_8259 associate-/r*_binary64_8206
add-log-exp_binary64_8301 associate-/r/_binary64_8208
pow-prod-down_binary64_8333 frac-times_binary64_8272 associate-*l/_binary64_8205 associate-*r/_binary64_8204 pow-flip_binary64_8336 frac-2neg_binary64_8273 clear-num_binary64_8261
*-commutative_binary64_8193 inv-pow_binary64_8347
Counts
3 → 120
Calls

3 calls:

12.0ms
(*.f64 (/.f64 z x) (/.f64 y (sin.f64 y)))
9.0ms
(/.f64 1 (*.f64 (/.f64 z x) (/.f64 y (sin.f64 y))))
4.0ms
(/.f64 y (sin.f64 y))
Compiler

Compiled 2070 to 626 computations (69.8% saved)

series785.0ms (8%)

Error
0b
Counts
3 → 30
Calls

3 calls:

364.0ms
(*.f64 (/.f64 z x) (/.f64 y (sin.f64 y)))
325.0ms
(/.f64 1 (*.f64 (/.f64 z x) (/.f64 y (sin.f64 y))))
68.0ms
(/.f64 y (sin.f64 y))
Compiler

Compiled 924 to 648 computations (29.9% saved)

simplify987.0ms (10.1%)

Algorithm
egg-herbie
Rules
491×associate-/r*_binary64_8206
328×*-commutative_binary64_8193
164×associate-/l*_binary64_8207
159×associate-*r/_binary64_8204
156×associate-*l/_binary64_8205
147×cancel-sign-sub-inv_binary64_8228
139×distribute-rgt-in_binary64_8212
127×log-div_binary64_8349
115×cube-div_binary64_8291
112×sub-neg_binary64_8255
106×associate-+l-_binary64_8197
104×associate-+l+_binary64_8195
101×unsub-neg_binary64_8256
98×distribute-lft-in_binary64_8211
97×exp-prod_binary64_8314
94×associate--l-_binary64_8200
92×log-prod_binary64_8348
89×sqr-pow_binary64_8234
86×associate-*l*_binary64_8203
85×times-frac_binary64_8268 distribute-rgt-neg-in_binary64_8220
83×+-commutative_binary64_8192
81×div-sub_binary64_8267
80×associate-+r+_binary64_8194
76×distribute-lft-neg-in_binary64_8219 associate-/l/_binary64_8209
74×associate-*r*_binary64_8202
73×associate--r+_binary64_8198
72×associate-/r/_binary64_8208
71×neg-mul-1_binary64_8258
67×distribute-neg-frac_binary64_8226
64×swap-sqr_binary64_8229
63×unswap-sqr_binary64_8230
62×cube-prod_binary64_8290 neg-sub0_binary64_8257 associate--l+_binary64_8199
60×associate-+r-_binary64_8196
57×associate--r-_binary64_8201
39×distribute-neg-in_binary64_8223
37×/-rgt-identity_binary64_8253 distribute-lft-neg-out_binary64_8221
36×*-lft-identity_binary64_8251
34×*-rgt-identity_binary64_8252
33×unpow3_binary64_8328 exp-diff_binary64_8310
30×exp-to-pow_binary64_8324 pow-sqr_binary64_8235
24×distribute-rgt-neg-out_binary64_8222
23×log-rec_binary64_8350
20×cube-mult_binary64_8292
17×log-pow_binary64_8351
16×pow-plus_binary64_8325 sub0-neg_binary64_8249 distribute-neg-out_binary64_8224
11×distribute-rgt-out_binary64_8215
cube-unmult_binary64_8299 +-lft-identity_binary64_8246 distribute-rgt-out--_binary64_8216
mul0-lft_binary64_8244
mul0-rgt_binary64_8245
remove-double-div_binary64_8238 distribute-lft-out_binary64_8213
pow-base-1_binary64_8322 remove-double-neg_binary64_8250 +-rgt-identity_binary64_8247 cancel-sign-sub_binary64_8227 distribute-rgt1-in_binary64_8218 distribute-lft-out--_binary64_8214
exp-sqrt_binary64_8315
rem-sqrt-square_binary64_8275 div0_binary64_8243 count-2_binary64_8210
sin-neg_binary64_8392 unpow2_binary64_8327 unpow1_binary64_8320 exp-lft-sqr_binary64_8317 div-exp_binary64_8313 rec-exp_binary64_8312 prod-exp_binary64_8311 1-exp_binary64_8306 exp-1-e_binary64_8305 rem-log-exp_binary64_8303 rem-cbrt-cube_binary64_8286 --rgt-identity_binary64_8248 *-inverses_binary64_8242 rgt-mult-inverse_binary64_8239
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_8525 erf-erfc_binary64_8524 erf-odd_binary64_8523 if-if-and-not_binary64_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 not-gte_binary64_8514 not-lte_binary64_8513 not-gt_binary64_8512 not-lt_binary64_8511 gte-same_binary64_8510 lte-same_binary64_8509 gt-same_binary64_8508 lt-same_binary64_8507 sinh---cosh_binary64_8454 sinh-+-cosh_binary64_8453 sinh-cosh_binary64_8452 tanh-def-c_binary64_8451 tanh-def-b_binary64_8450 tanh-def-a_binary64_8449 cosh-def_binary64_8448 sinh-def_binary64_8447 tan-neg_binary64_8394 cos-neg_binary64_8393 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 hang-m-tan_binary64_8388 hang-p-tan_binary64_8387 hang-m0-tan_binary64_8386 hang-p0-tan_binary64_8385 hang-0m-tan_binary64_8384 hang-0p-tan_binary64_8383 tan-+PI/2_binary64_8382 tan-+PI_binary64_8381 tan-PI_binary64_8380 tan-PI/3_binary64_8379 tan-PI/4_binary64_8378 tan-PI/6_binary64_8377 cos-+PI/2_binary64_8376 cos-+PI_binary64_8375 cos-PI_binary64_8374 cos-PI/2_binary64_8373 cos-PI/3_binary64_8372 cos-PI/4_binary64_8371 cos-PI/6_binary64_8370 sin-+PI/2_binary64_8369 sin-+PI_binary64_8368 sin-PI_binary64_8367 sin-PI/2_binary64_8366 sin-PI/3_binary64_8365 sin-PI/4_binary64_8364 sin-PI/6_binary64_8363 sub-1-sin_binary64_8362 sub-1-cos_binary64_8361 -1-add-sin_binary64_8360 -1-add-cos_binary64_8359 1-sub-sin_binary64_8358 1-sub-cos_binary64_8357 cos-sin-sum_binary64_8356 log-E_binary64_8352 pow-base-0_binary64_8346 unpow1/3_binary64_8329 unpow1/2_binary64_8326 unpow0_binary64_8321 unpow-1_binary64_8319 exp-lft-cube_binary64_8318 exp-cbrt_binary64_8316 exp-neg_binary64_8309 exp-sum_binary64_8308 e-exp-1_binary64_8307 exp-0_binary64_8304 rem-exp-log_binary64_8302 cube-neg_binary64_8289 rem-3cbrt-rft_binary64_8288 rem-3cbrt-lft_binary64_8287 rem-cube-cbrt_binary64_8285 sqr-abs_binary64_8277 sqr-neg_binary64_8276 rem-square-sqrt_binary64_8274 mul-1-neg_binary64_8254 +-inverses_binary64_8241 lft-mult-inverse_binary64_8240 difference-of-sqr--1_binary64_8233 difference-of-sqr-1_binary64_8232 difference-of-squares_binary64_8231 distribute-frac-neg_binary64_8225 distribute-lft1-in_binary64_8217
Counts
150 → 288
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02242577
15662231
218342137
330692137
448342137

prune239.0ms (2.4%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New2880288
Fresh055
Picked011
Done033
Total2889297
Error
0b
Counts
297 → 9
Compiler

Compiled 4697 to 1331 computations (71.7% saved)

regimes483.0ms (4.9%)

Accuracy

Total 1.4b remaining (99.9%)

Threshold costs 0b (0%)

Compiler

Compiled 3712 to 2565 computations (30.9% saved)

bsearch0.0ms (0%)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_8193
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_8522 if-if-and_binary64_8521 if-if-or-not_binary64_8520 if-if-or_binary64_8519 if-not_binary64_8518 if-same_binary64_8517 if-false_binary64_8516 if-true_binary64_8515 tan-0_binary64_8391 cos-0_binary64_8390 sin-0_binary64_8389 unpow1_binary64_8320 e-exp-1_binary64_8307 1-exp_binary64_8306 exp-1-e_binary64_8305 exp-0_binary64_8304 sqr-abs_binary64_8277 sqr-neg_binary64_8276 neg-mul-1_binary64_8258 neg-sub0_binary64_8257 unsub-neg_binary64_8256 sub-neg_binary64_8255 mul-1-neg_binary64_8254 /-rgt-identity_binary64_8253 *-rgt-identity_binary64_8252 *-lft-identity_binary64_8251 remove-double-neg_binary64_8250 sub0-neg_binary64_8249 --rgt-identity_binary64_8248 +-rgt-identity_binary64_8247 +-lft-identity_binary64_8246 cancel-sign-sub-inv_binary64_8228 cancel-sign-sub_binary64_8227 distribute-neg-frac_binary64_8226 distribute-frac-neg_binary64_8225 distribute-neg-out_binary64_8224 distribute-neg-in_binary64_8223 distribute-rgt-neg-out_binary64_8222 distribute-lft-neg-out_binary64_8221 distribute-rgt-neg-in_binary64_8220 distribute-lft-neg-in_binary64_8219 +-commutative_binary64_8192
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01246
11446
Proof
(=> (* f64 (* f64 h0 (* f64 (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)) (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)))) (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)))) *-commutative_binary64_8193 => (* f64 (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)) (* f64 h0 (* f64 (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)) (/ f64 (cbrt f64 (/ f64 (sin f64 h1) h1)) (cbrt f64 h2)))))

end0.0ms (0%)

sample1.8s (18.2%)

Algorithm
intervals
Results
312.0ms1414×body1024valid
299.0ms5412×body128valid
114.0ms758×body512valid
43.0ms412×body256valid
27.0ms514×body128invalid
10.0ms66×body512invalid
6.0ms53×body256invalid
4.0ms19×body1024invalid
1.0msbody2048valid
Compiler

Compiled 657 to 444 computations (32.4% saved)

Profiling

Loading profile data...