Details

Time bar (total: 9.5s)

analyze382.0ms (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
14%85.8%0.1%7
22.6%77.2%0.1%8
23.8%74.5%1.7%9
40%56.4%3.7%10
46.9%48.7%4.4%11
48%45.8%6.2%12
58.1%32.2%9.7%13
62.1%27.2%10.6%14
Compiler

Compiled 10 to 9 computations (10% saved)

sample19.0ms (0.2%)

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

Compiled 19 to 20 computations (-5.3% saved)

simplify455.0ms (4.8%)

Algorithm
egg-herbie
Rules
400×exp-prod_binary64_12406
377×distribute-neg-frac_binary64_12318
318×swap-sqr_binary64_12321
289×distribute-rgt-neg-in_binary64_12312
282×sub-neg_binary64_12347
278×associate-/l*_binary64_12299
274×neg-sub0_binary64_12349
248×neg-mul-1_binary64_12350
236×distribute-rgt-in_binary64_12304
172×distribute-lft-neg-in_binary64_12311
169×distribute-lft-in_binary64_12303
165×div-sub_binary64_12359
164×*-commutative_binary64_12285
157×distribute-rgt-neg-out_binary64_12314
153×unsub-neg_binary64_12348
132×associate-/r*_binary64_12298
121×sqr-pow_binary64_12326
116×associate-/l/_binary64_12301
114×associate-*l/_binary64_12297
106×distribute-rgt-out_binary64_12307
99×associate-*r/_binary64_12296
93×associate-/r/_binary64_12300
91×associate-+l-_binary64_12289
88×distribute-lft-neg-out_binary64_12313
87×cancel-sign-sub-inv_binary64_12320
85×remove-double-neg_binary64_12342
84×distribute-neg-in_binary64_12315
81×distribute-neg-out_binary64_12316
76×pow-sqr_binary64_12327
70×unswap-sqr_binary64_12322 associate--r+_binary64_12290
66×distribute-frac-neg_binary64_12317
65×pow-plus_binary64_12417
63×associate-*r*_binary64_12294
62×associate-*l*_binary64_12295
59×exp-diff_binary64_12402 distribute-rgt-out--_binary64_12308
55×sub0-neg_binary64_12341
54×cube-prod_binary64_12382 associate--l-_binary64_12292
53×associate--r-_binary64_12293
49×cube-div_binary64_12383
45×associate-+r-_binary64_12288
43×exp-sum_binary64_12400
42×difference-of-squares_binary64_12323
40×mul0-rgt_binary64_12337
37×associate--l+_binary64_12291
36×mul0-lft_binary64_12336
35×distribute-rgt1-in_binary64_12310
32×*-rgt-identity_binary64_12344
26×*-lft-identity_binary64_12343
23×sqr-neg_binary64_12368
17×+-commutative_binary64_12284
14×associate-+r+_binary64_12286
13×div0_binary64_12335
11×exp-neg_binary64_12401 mul-1-neg_binary64_12346 /-rgt-identity_binary64_12345
+-rgt-identity_binary64_12339
pow-base-1_binary64_12414
unpow3_binary64_12420 cube-neg_binary64_12381 --rgt-identity_binary64_12340 +-inverses_binary64_12333 distribute-lft1-in_binary64_12309 count-2_binary64_12302 associate-+l+_binary64_12287
cube-mult_binary64_12384
prod-exp_binary64_12403 cube-unmult_binary64_12391 remove-double-div_binary64_12330 difference-of-sqr--1_binary64_12325 cancel-sign-sub_binary64_12319 distribute-lft-out_binary64_12305
*-inverses_binary64_12334 difference-of-sqr-1_binary64_12324 distribute-lft-out--_binary64_12306
exp-lft-sqr_binary64_12409 1-exp_binary64_12398 exp-1-e_binary64_12397 +-lft-identity_binary64_12338 rgt-mult-inverse_binary64_12331
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_12617 erf-erfc_binary64_12616 erf-odd_binary64_12615 if-if-and-not_binary64_12614 if-if-and_binary64_12613 if-if-or-not_binary64_12612 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 not-gte_binary64_12606 not-lte_binary64_12605 not-gt_binary64_12604 not-lt_binary64_12603 gte-same_binary64_12602 lte-same_binary64_12601 gt-same_binary64_12600 lt-same_binary64_12599 sinh---cosh_binary64_12546 sinh-+-cosh_binary64_12545 sinh-cosh_binary64_12544 tanh-def-c_binary64_12543 tanh-def-b_binary64_12542 tanh-def-a_binary64_12541 cosh-def_binary64_12540 sinh-def_binary64_12539 tan-neg_binary64_12486 cos-neg_binary64_12485 sin-neg_binary64_12484 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 hang-m-tan_binary64_12480 hang-p-tan_binary64_12479 hang-m0-tan_binary64_12478 hang-p0-tan_binary64_12477 hang-0m-tan_binary64_12476 hang-0p-tan_binary64_12475 tan-+PI/2_binary64_12474 tan-+PI_binary64_12473 tan-PI_binary64_12472 tan-PI/3_binary64_12471 tan-PI/4_binary64_12470 tan-PI/6_binary64_12469 cos-+PI/2_binary64_12468 cos-+PI_binary64_12467 cos-PI_binary64_12466 cos-PI/2_binary64_12465 cos-PI/3_binary64_12464 cos-PI/4_binary64_12463 cos-PI/6_binary64_12462 sin-+PI/2_binary64_12461 sin-+PI_binary64_12460 sin-PI_binary64_12459 sin-PI/2_binary64_12458 sin-PI/3_binary64_12457 sin-PI/4_binary64_12456 sin-PI/6_binary64_12455 sub-1-sin_binary64_12454 sub-1-cos_binary64_12453 -1-add-sin_binary64_12452 -1-add-cos_binary64_12451 1-sub-sin_binary64_12450 1-sub-cos_binary64_12449 cos-sin-sum_binary64_12448 log-E_binary64_12444 log-pow_binary64_12443 log-rec_binary64_12442 log-div_binary64_12441 log-prod_binary64_12440 pow-base-0_binary64_12438 unpow1/3_binary64_12421 unpow2_binary64_12419 unpow1/2_binary64_12418 exp-to-pow_binary64_12416 unpow0_binary64_12413 unpow1_binary64_12412 unpow-1_binary64_12411 exp-lft-cube_binary64_12410 exp-cbrt_binary64_12408 exp-sqrt_binary64_12407 div-exp_binary64_12405 rec-exp_binary64_12404 e-exp-1_binary64_12399 exp-0_binary64_12396 rem-log-exp_binary64_12395 rem-exp-log_binary64_12394 rem-3cbrt-rft_binary64_12380 rem-3cbrt-lft_binary64_12379 rem-cbrt-cube_binary64_12378 rem-cube-cbrt_binary64_12377 sqr-abs_binary64_12369 rem-sqrt-square_binary64_12367 rem-square-sqrt_binary64_12366 times-frac_binary64_12360 lft-mult-inverse_binary64_12332
Counts
1 → 7
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
12513
24813
315513
430413
567913
6246413
7301513

prune13.0ms (0.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New347
Fresh011
Picked000
Done000
Total358
Error
0.0b
Counts
8 → 5
Compiler

Compiled 108 to 74 computations (31.5% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 (/.f64 (+.f64 y 1) (/.f64 z x)) x)
4.7b
(/.f64 (+.f64 y 1) (/.f64 z x))

rewrite155.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
100×times-frac_binary64_12360
83×*-un-lft-identity_binary64_12354
61×add-sqr-sqrt_binary64_12376
52×add-cube-cbrt_binary64_12389
14×distribute-lft-out_binary64_12305
13×associate-/r*_binary64_12298
add-exp-log_binary64_12392 add-cbrt-cube_binary64_12390
div-inv_binary64_12351
add-log-exp_binary64_12393 associate-/l*_binary64_12299
div-exp_binary64_12405 cbrt-undiv_binary64_12388 difference-of-squares_binary64_12323 cancel-sign-sub-inv_binary64_12320
pow1_binary64_12415 associate-/l/_binary64_12301 associate-/r/_binary64_12300
frac-2neg_binary64_12365 clear-num_binary64_12353 flip3-+_binary64_12357 flip-+_binary64_12328 diff-log_binary64_12446 flip3--_binary64_12358 sub-neg_binary64_12347 flip--_binary64_12329 distribute-rgt-out--_binary64_12308 distribute-lft-out--_binary64_12306
Counts
2 → 105
Calls

2 calls:

28.0ms
(-.f64 (/.f64 (+.f64 y 1) (/.f64 z x)) x)
9.0ms
(/.f64 (+.f64 y 1) (/.f64 z x))
Compiler

Compiled 2047 to 1021 computations (50.1% saved)

series467.0ms (4.9%)

Error
0.0b
Counts
2 → 27
Calls

2 calls:

263.0ms
(-.f64 (/.f64 (+.f64 y 1) (/.f64 z x)) x)
189.0ms
(/.f64 (+.f64 y 1) (/.f64 z x))
Compiler

Compiled 658 to 408 computations (38% saved)

simplify365.0ms (3.8%)

Algorithm
egg-herbie
Rules
457×associate-/r/_binary64_12300
405×associate-/l/_binary64_12301
373×associate-*r*_binary64_12294
360×associate-*r/_binary64_12296
344×associate-/r*_binary64_12298
312×distribute-rgt-out_binary64_12307
246×*-commutative_binary64_12285
201×cancel-sign-sub-inv_binary64_12320
144×distribute-rgt-in_binary64_12304
137×distribute-lft-in_binary64_12303
126×unsub-neg_binary64_12348 distribute-rgt-out--_binary64_12308
125×associate-/l*_binary64_12299
106×sub-neg_binary64_12347
94×associate-*l/_binary64_12297
82×unswap-sqr_binary64_12322
77×distribute-rgt-neg-out_binary64_12314
68×div-sub_binary64_12359
67×distribute-lft-neg-out_binary64_12313
60×sqr-pow_binary64_12326
59×+-commutative_binary64_12284
58×exp-prod_binary64_12406 *-rgt-identity_binary64_12344
51×log-div_binary64_12441 distribute-rgt-neg-in_binary64_12312
50×log-prod_binary64_12440
49×cube-div_binary64_12383
47×swap-sqr_binary64_12321
45×times-frac_binary64_12360
44×cube-prod_binary64_12382 neg-mul-1_binary64_12350 neg-sub0_binary64_12349
42×*-lft-identity_binary64_12343
37×distribute-neg-in_binary64_12315 associate-+l+_binary64_12287
36×exp-sum_binary64_12400 distribute-neg-frac_binary64_12318
34×/-rgt-identity_binary64_12345
27×associate-+r-_binary64_12288 associate-+r+_binary64_12286
26×associate-+l-_binary64_12289
25×pow-sqr_binary64_12327 associate-*l*_binary64_12295
24×distribute-lft-neg-in_binary64_12311
22×distribute-rgt1-in_binary64_12310
20×+-rgt-identity_binary64_12339
17×div-exp_binary64_12405 distribute-neg-out_binary64_12316
16×prod-exp_binary64_12403 difference-of-squares_binary64_12323
15×sub0-neg_binary64_12341 mul0-rgt_binary64_12337 mul0-lft_binary64_12336
13×unpow3_binary64_12420
12×distribute-lft1-in_binary64_12309
11×exp-diff_binary64_12402
cube-mult_binary64_12384
associate--r+_binary64_12290
log-rec_binary64_12442 cube-unmult_binary64_12391
remove-double-neg_binary64_12342 associate--l+_binary64_12291
log-pow_binary64_12443 pow-plus_binary64_12417 rec-exp_binary64_12404 distribute-frac-neg_binary64_12317
div0_binary64_12335 remove-double-div_binary64_12330
difference-of-sqr--1_binary64_12325 cancel-sign-sub_binary64_12319 associate--r-_binary64_12293 associate--l-_binary64_12292
pow-base-1_binary64_12414 1-exp_binary64_12398 exp-1-e_binary64_12397 rem-log-exp_binary64_12395 rem-3cbrt-lft_binary64_12379 sqr-neg_binary64_12368 rem-sqrt-square_binary64_12367 rem-square-sqrt_binary64_12366 mul-1-neg_binary64_12346 distribute-lft-out_binary64_12305 count-2_binary64_12302
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_12617 erf-erfc_binary64_12616 erf-odd_binary64_12615 if-if-and-not_binary64_12614 if-if-and_binary64_12613 if-if-or-not_binary64_12612 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 not-gte_binary64_12606 not-lte_binary64_12605 not-gt_binary64_12604 not-lt_binary64_12603 gte-same_binary64_12602 lte-same_binary64_12601 gt-same_binary64_12600 lt-same_binary64_12599 sinh---cosh_binary64_12546 sinh-+-cosh_binary64_12545 sinh-cosh_binary64_12544 tanh-def-c_binary64_12543 tanh-def-b_binary64_12542 tanh-def-a_binary64_12541 cosh-def_binary64_12540 sinh-def_binary64_12539 tan-neg_binary64_12486 cos-neg_binary64_12485 sin-neg_binary64_12484 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 hang-m-tan_binary64_12480 hang-p-tan_binary64_12479 hang-m0-tan_binary64_12478 hang-p0-tan_binary64_12477 hang-0m-tan_binary64_12476 hang-0p-tan_binary64_12475 tan-+PI/2_binary64_12474 tan-+PI_binary64_12473 tan-PI_binary64_12472 tan-PI/3_binary64_12471 tan-PI/4_binary64_12470 tan-PI/6_binary64_12469 cos-+PI/2_binary64_12468 cos-+PI_binary64_12467 cos-PI_binary64_12466 cos-PI/2_binary64_12465 cos-PI/3_binary64_12464 cos-PI/4_binary64_12463 cos-PI/6_binary64_12462 sin-+PI/2_binary64_12461 sin-+PI_binary64_12460 sin-PI_binary64_12459 sin-PI/2_binary64_12458 sin-PI/3_binary64_12457 sin-PI/4_binary64_12456 sin-PI/6_binary64_12455 sub-1-sin_binary64_12454 sub-1-cos_binary64_12453 -1-add-sin_binary64_12452 -1-add-cos_binary64_12451 1-sub-sin_binary64_12450 1-sub-cos_binary64_12449 cos-sin-sum_binary64_12448 log-E_binary64_12444 pow-base-0_binary64_12438 unpow1/3_binary64_12421 unpow2_binary64_12419 unpow1/2_binary64_12418 exp-to-pow_binary64_12416 unpow0_binary64_12413 unpow1_binary64_12412 unpow-1_binary64_12411 exp-lft-cube_binary64_12410 exp-lft-sqr_binary64_12409 exp-cbrt_binary64_12408 exp-sqrt_binary64_12407 exp-neg_binary64_12401 e-exp-1_binary64_12399 exp-0_binary64_12396 rem-exp-log_binary64_12394 cube-neg_binary64_12381 rem-3cbrt-rft_binary64_12380 rem-cbrt-cube_binary64_12378 rem-cube-cbrt_binary64_12377 sqr-abs_binary64_12369 --rgt-identity_binary64_12340 +-lft-identity_binary64_12338 *-inverses_binary64_12334 +-inverses_binary64_12333 lft-mult-inverse_binary64_12332 rgt-mult-inverse_binary64_12331 difference-of-sqr-1_binary64_12324 distribute-lft-out--_binary64_12306
Counts
132 → 511
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02122550
14802490
214752478
337732439

prune657.0ms (6.9%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New5083511
Fresh224
Picked101
Done000
Total5115516
Error
0b
Counts
516 → 5
Compiler

Compiled 10315 to 5099 computations (50.6% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

rewrite72.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0b
Rules
16×add-sqr-sqrt_binary64_12376
13×*-un-lft-identity_binary64_12354 associate-*r*_binary64_12294
11×add-cube-cbrt_binary64_12389
10×times-frac_binary64_12360
add-exp-log_binary64_12392 add-cbrt-cube_binary64_12390
pow1_binary64_12415 add-log-exp_binary64_12393 associate-*l*_binary64_12295
cancel-sign-sub-inv_binary64_12320
prod-exp_binary64_12403 cbrt-unprod_binary64_12387 flip3-+_binary64_12357 frac-times_binary64_12364 flip-+_binary64_12328 unswap-sqr_binary64_12322 associate-*l/_binary64_12297
pow-prod-down_binary64_12425 div-exp_binary64_12405 cbrt-undiv_binary64_12388 associate-*r/_binary64_12296 distribute-lft-out_binary64_12305 div-inv_binary64_12351 *-commutative_binary64_12285 diff-log_binary64_12446 flip3--_binary64_12358 sub-neg_binary64_12347 flip--_binary64_12329
Counts
2 → 51
Calls

2 calls:

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

Compiled 888 to 465 computations (47.6% saved)

series454.0ms (4.8%)

Error
0b
Counts
2 → 27
Calls

2 calls:

255.0ms
(-.f64 (*.f64 (+.f64 y 1) (/.f64 x z)) x)
185.0ms
(*.f64 (+.f64 y 1) (/.f64 x z))
Compiler

Compiled 658 to 408 computations (38% saved)

simplify230.0ms (2.4%)

Algorithm
egg-herbie
Rules
385×associate-*l/_binary64_12297
374×associate-/l*_binary64_12299
323×distribute-rgt-in_binary64_12304
313×distribute-lft-in_binary64_12303
303×associate-*r/_binary64_12296
236×times-frac_binary64_12360
164×cancel-sign-sub-inv_binary64_12320
161×associate-/l/_binary64_12301
155×unswap-sqr_binary64_12322
146×*-commutative_binary64_12285
133×distribute-rgt-out_binary64_12307
119×unsub-neg_binary64_12348
93×sqr-pow_binary64_12326
85×sub-neg_binary64_12347
80×distribute-rgt-out--_binary64_12308
78×associate-/r*_binary64_12298
77×*-lft-identity_binary64_12343 associate-*l*_binary64_12295
74×associate-/r/_binary64_12300
73×div-sub_binary64_12359
72×associate--l+_binary64_12291
67×exp-prod_binary64_12406
60×associate-*r*_binary64_12294
58×log-div_binary64_12441
57×cube-div_binary64_12383
53×*-rgt-identity_binary64_12344
51×distribute-lft-neg-out_binary64_12313
50×distribute-rgt-neg-out_binary64_12314
48×+-commutative_binary64_12284
47×exp-sum_binary64_12400 pow-sqr_binary64_12327
46×log-prod_binary64_12440
43×associate-+l+_binary64_12287
42×neg-mul-1_binary64_12350
40×neg-sub0_binary64_12349 associate-+r+_binary64_12286
39×cube-prod_binary64_12382
38×distribute-rgt-neg-in_binary64_12312
37×difference-of-squares_binary64_12323 distribute-lft-neg-in_binary64_12311
34×distribute-neg-in_binary64_12315
33×remove-double-div_binary64_12330
30×distribute-neg-frac_binary64_12318
28×swap-sqr_binary64_12321
26×associate--l-_binary64_12292
21×associate-+l-_binary64_12289 associate-+r-_binary64_12288
19×/-rgt-identity_binary64_12345
18×distribute-lft-out_binary64_12305
17×div-exp_binary64_12405 distribute-neg-out_binary64_12316 distribute-rgt1-in_binary64_12310
16×prod-exp_binary64_12403
15×log-pow_binary64_12443 unpow3_binary64_12420 +-rgt-identity_binary64_12339 mul0-rgt_binary64_12337 mul0-lft_binary64_12336
14×pow-plus_binary64_12417
13×exp-diff_binary64_12402
12×log-rec_binary64_12442
11×cube-mult_binary64_12384
10×sub0-neg_binary64_12341 distribute-frac-neg_binary64_12317
distribute-lft1-in_binary64_12309 associate--r-_binary64_12293
pow-base-1_binary64_12414 mul-1-neg_binary64_12346 associate--r+_binary64_12290
rec-exp_binary64_12404 cube-unmult_binary64_12391
remove-double-neg_binary64_12342 count-2_binary64_12302
1-exp_binary64_12398 exp-1-e_binary64_12397 rem-log-exp_binary64_12395 rem-3cbrt-lft_binary64_12379 sqr-neg_binary64_12368 rem-sqrt-square_binary64_12367 rem-square-sqrt_binary64_12366 div0_binary64_12335 cancel-sign-sub_binary64_12319 distribute-lft-out--_binary64_12306
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_12617 erf-erfc_binary64_12616 erf-odd_binary64_12615 if-if-and-not_binary64_12614 if-if-and_binary64_12613 if-if-or-not_binary64_12612 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 not-gte_binary64_12606 not-lte_binary64_12605 not-gt_binary64_12604 not-lt_binary64_12603 gte-same_binary64_12602 lte-same_binary64_12601 gt-same_binary64_12600 lt-same_binary64_12599 sinh---cosh_binary64_12546 sinh-+-cosh_binary64_12545 sinh-cosh_binary64_12544 tanh-def-c_binary64_12543 tanh-def-b_binary64_12542 tanh-def-a_binary64_12541 cosh-def_binary64_12540 sinh-def_binary64_12539 tan-neg_binary64_12486 cos-neg_binary64_12485 sin-neg_binary64_12484 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 hang-m-tan_binary64_12480 hang-p-tan_binary64_12479 hang-m0-tan_binary64_12478 hang-p0-tan_binary64_12477 hang-0m-tan_binary64_12476 hang-0p-tan_binary64_12475 tan-+PI/2_binary64_12474 tan-+PI_binary64_12473 tan-PI_binary64_12472 tan-PI/3_binary64_12471 tan-PI/4_binary64_12470 tan-PI/6_binary64_12469 cos-+PI/2_binary64_12468 cos-+PI_binary64_12467 cos-PI_binary64_12466 cos-PI/2_binary64_12465 cos-PI/3_binary64_12464 cos-PI/4_binary64_12463 cos-PI/6_binary64_12462 sin-+PI/2_binary64_12461 sin-+PI_binary64_12460 sin-PI_binary64_12459 sin-PI/2_binary64_12458 sin-PI/3_binary64_12457 sin-PI/4_binary64_12456 sin-PI/6_binary64_12455 sub-1-sin_binary64_12454 sub-1-cos_binary64_12453 -1-add-sin_binary64_12452 -1-add-cos_binary64_12451 1-sub-sin_binary64_12450 1-sub-cos_binary64_12449 cos-sin-sum_binary64_12448 log-E_binary64_12444 pow-base-0_binary64_12438 unpow1/3_binary64_12421 unpow2_binary64_12419 unpow1/2_binary64_12418 exp-to-pow_binary64_12416 unpow0_binary64_12413 unpow1_binary64_12412 unpow-1_binary64_12411 exp-lft-cube_binary64_12410 exp-lft-sqr_binary64_12409 exp-cbrt_binary64_12408 exp-sqrt_binary64_12407 exp-neg_binary64_12401 e-exp-1_binary64_12399 exp-0_binary64_12396 rem-exp-log_binary64_12394 cube-neg_binary64_12381 rem-3cbrt-rft_binary64_12380 rem-cbrt-cube_binary64_12378 rem-cube-cbrt_binary64_12377 sqr-abs_binary64_12369 --rgt-identity_binary64_12340 +-lft-identity_binary64_12338 *-inverses_binary64_12334 +-inverses_binary64_12333 lft-mult-inverse_binary64_12332 rgt-mult-inverse_binary64_12331 difference-of-sqr--1_binary64_12325 difference-of-sqr-1_binary64_12324
Counts
78 → 164
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01321110
13291083
210751017
336131014

prune139.0ms (1.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1640164
Fresh044
Picked011
Done000
Total1645169
Error
0b
Counts
169 → 5
Compiler

Compiled 2660 to 1179 computations (55.7% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(/.f64 z (+.f64 (-.f64 y z) 1))
3.7b
(/.f64 x (/.f64 z (+.f64 (-.f64 y z) 1)))

rewrite176.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
0b
Rules
150×*-un-lft-identity_binary64_12354
138×times-frac_binary64_12360
70×add-cube-cbrt_binary64_12389 add-sqr-sqrt_binary64_12376
32×distribute-lft-out_binary64_12305
26×associate-/r*_binary64_12298
16×distribute-lft-out--_binary64_12306
11×associate-/r/_binary64_12300
add-exp-log_binary64_12392 add-cbrt-cube_binary64_12390
div-inv_binary64_12351 associate-/l*_binary64_12299
flip3-+_binary64_12357 flip-+_binary64_12328
div-exp_binary64_12405 cbrt-undiv_binary64_12388
pow1_binary64_12415 add-log-exp_binary64_12393 frac-2neg_binary64_12365 clear-num_binary64_12353
Counts
2 → 139
Calls

2 calls:

12.0ms
(/.f64 x (/.f64 z (+.f64 (-.f64 y z) 1)))
8.0ms
(/.f64 z (+.f64 (-.f64 y z) 1))
Compiler

Compiled 2840 to 1367 computations (51.9% saved)

series403.0ms (4.2%)

Error
0b
Counts
2 → 33
Calls

2 calls:

237.0ms
(/.f64 x (/.f64 z (+.f64 (-.f64 y z) 1)))
132.0ms
(/.f64 z (+.f64 (-.f64 y z) 1))
Compiler

Compiled 1234 to 901 computations (27% saved)

simplify836.0ms (8.8%)

Algorithm
egg-herbie
Rules
601×associate-/r/_binary64_12300
540×distribute-rgt-in_binary64_12304
496×distribute-lft-in_binary64_12303
438×associate-/r*_binary64_12298
163×associate-/l*_binary64_12299
156×associate-/l/_binary64_12301
114×distribute-neg-in_binary64_12315
105×associate-*l/_binary64_12297
104×times-frac_binary64_12360
97×*-commutative_binary64_12285
72×associate-+r+_binary64_12286
65×+-commutative_binary64_12284
56×sub-neg_binary64_12347
51×associate-+l+_binary64_12287
50×sqr-pow_binary64_12326
49×*-rgt-identity_binary64_12344
47×associate-*r/_binary64_12296
44×div-sub_binary64_12359
37×neg-mul-1_binary64_12350 associate-*r*_binary64_12294
36×neg-sub0_binary64_12349
34×/-rgt-identity_binary64_12345
28×cancel-sign-sub-inv_binary64_12320
27×associate-*l*_binary64_12295
26×pow-sqr_binary64_12327
24×*-lft-identity_binary64_12343
23×distribute-neg-frac_binary64_12318
21×distribute-rgt-neg-in_binary64_12312 distribute-lft-neg-in_binary64_12311
17×unsub-neg_binary64_12348 distribute-rgt-out_binary64_12307
16×div-exp_binary64_12405 prod-exp_binary64_12403
14×pow-plus_binary64_12417 distribute-rgt1-in_binary64_12310
13×unswap-sqr_binary64_12322
12×log-div_binary64_12441
11×distribute-rgt-neg-out_binary64_12314
10×log-prod_binary64_12440 associate--r+_binary64_12290
cube-prod_binary64_12382 swap-sqr_binary64_12321 distribute-lft-neg-out_binary64_12313
cube-div_binary64_12383 distribute-rgt-out--_binary64_12308
cube-unmult_binary64_12391 associate--l+_binary64_12291
log-pow_binary64_12443 unpow3_binary64_12420 cube-mult_binary64_12384 associate-+r-_binary64_12288
unpow2_binary64_12419 unpow1_binary64_12412 exp-prod_binary64_12406 rec-exp_binary64_12404 exp-sum_binary64_12400 +-rgt-identity_binary64_12339 distribute-lft-out_binary64_12305 associate--r-_binary64_12293
pow-base-1_binary64_12414 remove-double-div_binary64_12330 associate-+l-_binary64_12289
remove-double-neg_binary64_12342 distribute-lft1-in_binary64_12309
log-rec_binary64_12442 1-exp_binary64_12398 rem-log-exp_binary64_12395 div0_binary64_12335 *-inverses_binary64_12334 difference-of-squares_binary64_12323 cancel-sign-sub_binary64_12319 distribute-neg-out_binary64_12316 count-2_binary64_12302 associate--l-_binary64_12292
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_12617 erf-erfc_binary64_12616 erf-odd_binary64_12615 if-if-and-not_binary64_12614 if-if-and_binary64_12613 if-if-or-not_binary64_12612 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 not-gte_binary64_12606 not-lte_binary64_12605 not-gt_binary64_12604 not-lt_binary64_12603 gte-same_binary64_12602 lte-same_binary64_12601 gt-same_binary64_12600 lt-same_binary64_12599 sinh---cosh_binary64_12546 sinh-+-cosh_binary64_12545 sinh-cosh_binary64_12544 tanh-def-c_binary64_12543 tanh-def-b_binary64_12542 tanh-def-a_binary64_12541 cosh-def_binary64_12540 sinh-def_binary64_12539 tan-neg_binary64_12486 cos-neg_binary64_12485 sin-neg_binary64_12484 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 hang-m-tan_binary64_12480 hang-p-tan_binary64_12479 hang-m0-tan_binary64_12478 hang-p0-tan_binary64_12477 hang-0m-tan_binary64_12476 hang-0p-tan_binary64_12475 tan-+PI/2_binary64_12474 tan-+PI_binary64_12473 tan-PI_binary64_12472 tan-PI/3_binary64_12471 tan-PI/4_binary64_12470 tan-PI/6_binary64_12469 cos-+PI/2_binary64_12468 cos-+PI_binary64_12467 cos-PI_binary64_12466 cos-PI/2_binary64_12465 cos-PI/3_binary64_12464 cos-PI/4_binary64_12463 cos-PI/6_binary64_12462 sin-+PI/2_binary64_12461 sin-+PI_binary64_12460 sin-PI_binary64_12459 sin-PI/2_binary64_12458 sin-PI/3_binary64_12457 sin-PI/4_binary64_12456 sin-PI/6_binary64_12455 sub-1-sin_binary64_12454 sub-1-cos_binary64_12453 -1-add-sin_binary64_12452 -1-add-cos_binary64_12451 1-sub-sin_binary64_12450 1-sub-cos_binary64_12449 cos-sin-sum_binary64_12448 log-E_binary64_12444 pow-base-0_binary64_12438 unpow1/3_binary64_12421 unpow1/2_binary64_12418 exp-to-pow_binary64_12416 unpow0_binary64_12413 unpow-1_binary64_12411 exp-lft-cube_binary64_12410 exp-lft-sqr_binary64_12409 exp-cbrt_binary64_12408 exp-sqrt_binary64_12407 exp-diff_binary64_12402 exp-neg_binary64_12401 e-exp-1_binary64_12399 exp-1-e_binary64_12397 exp-0_binary64_12396 rem-exp-log_binary64_12394 cube-neg_binary64_12381 rem-3cbrt-rft_binary64_12380 rem-3cbrt-lft_binary64_12379 rem-cbrt-cube_binary64_12378 rem-cube-cbrt_binary64_12377 sqr-abs_binary64_12369 sqr-neg_binary64_12368 rem-sqrt-square_binary64_12367 rem-square-sqrt_binary64_12366 mul-1-neg_binary64_12346 sub0-neg_binary64_12341 --rgt-identity_binary64_12340 +-lft-identity_binary64_12338 mul0-rgt_binary64_12337 mul0-lft_binary64_12336 +-inverses_binary64_12333 lft-mult-inverse_binary64_12332 rgt-mult-inverse_binary64_12331 difference-of-sqr--1_binary64_12325 difference-of-sqr-1_binary64_12324 distribute-frac-neg_binary64_12317 distribute-lft-out--_binary64_12306
Counts
172 → 1112
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02593998
16023851
222913767

prune1.7s (17.4%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New111201112
Fresh033
Picked011
Done011
Total111251117
Error
0b
Counts
1117 → 5
Compiler

Compiled 24896 to 11293 computations (54.6% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

rewrite112.0ms (1.2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
36×*-un-lft-identity_binary64_12354
27×add-sqr-sqrt_binary64_12376
25×times-frac_binary64_12360
22×add-cube-cbrt_binary64_12389
16×associate-*r*_binary64_12294
10×add-exp-log_binary64_12392 add-cbrt-cube_binary64_12390
distribute-lft-out_binary64_12305
pow1_binary64_12415 add-log-exp_binary64_12393
associate-/l*_binary64_12299
associate-*l*_binary64_12295 associate-/r*_binary64_12298 cancel-sign-sub-inv_binary64_12320
div-exp_binary64_12405 prod-exp_binary64_12403 cbrt-unprod_binary64_12387 cbrt-undiv_binary64_12388 unswap-sqr_binary64_12322 div-inv_binary64_12351 associate-/l/_binary64_12301
pow-prod-down_binary64_12425 associate-*r/_binary64_12296 *-commutative_binary64_12285 frac-2neg_binary64_12365 clear-num_binary64_12353 flip3-+_binary64_12357 flip-+_binary64_12328 diff-log_binary64_12446 flip3--_binary64_12358 sub-neg_binary64_12347 flip--_binary64_12329
Counts
3 → 82
Calls

3 calls:

10.0ms
(*.f64 x (/.f64 (+.f64 y 1) z))
9.0ms
(-.f64 (*.f64 x (/.f64 (+.f64 y 1) z)) x)
6.0ms
(/.f64 (+.f64 y 1) z)
Compiler

Compiled 1393 to 841 computations (39.6% saved)

series540.0ms (5.7%)

Error
0b
Counts
3 → 36
Calls

3 calls:

249.0ms
(-.f64 (*.f64 x (/.f64 (+.f64 y 1) z)) x)
175.0ms
(*.f64 x (/.f64 (+.f64 y 1) z))
95.0ms
(/.f64 (+.f64 y 1) z)
Compiler

Compiled 880 to 565 computations (35.8% saved)

simplify453.0ms (4.8%)

Algorithm
egg-herbie
Rules
380×associate-/l*_binary64_12299
342×associate-*l/_binary64_12297
300×times-frac_binary64_12360
253×associate-*r/_binary64_12296
226×associate-+l+_binary64_12287
186×distribute-rgt-in_binary64_12304
180×distribute-lft-in_binary64_12303
173×unswap-sqr_binary64_12322
161×cancel-sign-sub-inv_binary64_12320
139×associate-/l/_binary64_12301
130×*-commutative_binary64_12285
129×distribute-rgt-out_binary64_12307
122×unsub-neg_binary64_12348
102×+-commutative_binary64_12284
101×log-prod_binary64_12440
94×associate-/r*_binary64_12298
89×sub-neg_binary64_12347
85×*-lft-identity_binary64_12343
82×associate-*l*_binary64_12295
78×log-div_binary64_12441 associate-+l-_binary64_12289
75×div-sub_binary64_12359
66×associate-/r/_binary64_12300
64×sqr-pow_binary64_12326
61×distribute-rgt-out--_binary64_12308 associate--r+_binary64_12290
58×associate-*r*_binary64_12294
56×exp-prod_binary64_12406
53×*-rgt-identity_binary64_12344
43×distribute-rgt-neg-in_binary64_12312
42×cube-div_binary64_12383 distribute-lft-out_binary64_12305 associate-+r-_binary64_12288
40×neg-mul-1_binary64_12350
39×cube-prod_binary64_12382
38×neg-sub0_binary64_12349 distribute-rgt-neg-out_binary64_12314
37×distribute-neg-in_binary64_12315
35×difference-of-squares_binary64_12323 distribute-lft-neg-out_binary64_12313 distribute-lft-neg-in_binary64_12311
33×associate--l+_binary64_12291 associate-+r+_binary64_12286
32×remove-double-div_binary64_12330
31×swap-sqr_binary64_12321
30×exp-sum_binary64_12400
28×unpow3_binary64_12420 pow-sqr_binary64_12327
23×associate--l-_binary64_12292
21×distribute-neg-frac_binary64_12318
20×log-rec_binary64_12442
18×distribute-neg-out_binary64_12316 distribute-rgt1-in_binary64_12310
17×div-exp_binary64_12405
16×prod-exp_binary64_12403 +-rgt-identity_binary64_12339
15×/-rgt-identity_binary64_12345
14×mul0-rgt_binary64_12337 mul0-lft_binary64_12336
13×log-pow_binary64_12443 sub0-neg_binary64_12341
11×distribute-lft1-in_binary64_12309
10×distribute-lft-out--_binary64_12306
exp-diff_binary64_12402
cube-unmult_binary64_12391 distribute-frac-neg_binary64_12317
cube-mult_binary64_12384 associate--r-_binary64_12293
rec-exp_binary64_12404
pow-plus_binary64_12417 remove-double-neg_binary64_12342 cancel-sign-sub_binary64_12319
exp-neg_binary64_12401 difference-of-sqr--1_binary64_12325 count-2_binary64_12302
pow-base-1_binary64_12414 1-exp_binary64_12398 exp-1-e_binary64_12397 rem-log-exp_binary64_12395 rem-3cbrt-lft_binary64_12379 sqr-neg_binary64_12368 rem-sqrt-square_binary64_12367 rem-square-sqrt_binary64_12366 mul-1-neg_binary64_12346
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_12617 erf-erfc_binary64_12616 erf-odd_binary64_12615 if-if-and-not_binary64_12614 if-if-and_binary64_12613 if-if-or-not_binary64_12612 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 not-gte_binary64_12606 not-lte_binary64_12605 not-gt_binary64_12604 not-lt_binary64_12603 gte-same_binary64_12602 lte-same_binary64_12601 gt-same_binary64_12600 lt-same_binary64_12599 sinh---cosh_binary64_12546 sinh-+-cosh_binary64_12545 sinh-cosh_binary64_12544 tanh-def-c_binary64_12543 tanh-def-b_binary64_12542 tanh-def-a_binary64_12541 cosh-def_binary64_12540 sinh-def_binary64_12539 tan-neg_binary64_12486 cos-neg_binary64_12485 sin-neg_binary64_12484 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 hang-m-tan_binary64_12480 hang-p-tan_binary64_12479 hang-m0-tan_binary64_12478 hang-p0-tan_binary64_12477 hang-0m-tan_binary64_12476 hang-0p-tan_binary64_12475 tan-+PI/2_binary64_12474 tan-+PI_binary64_12473 tan-PI_binary64_12472 tan-PI/3_binary64_12471 tan-PI/4_binary64_12470 tan-PI/6_binary64_12469 cos-+PI/2_binary64_12468 cos-+PI_binary64_12467 cos-PI_binary64_12466 cos-PI/2_binary64_12465 cos-PI/3_binary64_12464 cos-PI/4_binary64_12463 cos-PI/6_binary64_12462 sin-+PI/2_binary64_12461 sin-+PI_binary64_12460 sin-PI_binary64_12459 sin-PI/2_binary64_12458 sin-PI/3_binary64_12457 sin-PI/4_binary64_12456 sin-PI/6_binary64_12455 sub-1-sin_binary64_12454 sub-1-cos_binary64_12453 -1-add-sin_binary64_12452 -1-add-cos_binary64_12451 1-sub-sin_binary64_12450 1-sub-cos_binary64_12449 cos-sin-sum_binary64_12448 log-E_binary64_12444 pow-base-0_binary64_12438 unpow1/3_binary64_12421 unpow2_binary64_12419 unpow1/2_binary64_12418 exp-to-pow_binary64_12416 unpow0_binary64_12413 unpow1_binary64_12412 unpow-1_binary64_12411 exp-lft-cube_binary64_12410 exp-lft-sqr_binary64_12409 exp-cbrt_binary64_12408 exp-sqrt_binary64_12407 e-exp-1_binary64_12399 exp-0_binary64_12396 rem-exp-log_binary64_12394 cube-neg_binary64_12381 rem-3cbrt-rft_binary64_12380 rem-cbrt-cube_binary64_12378 rem-cube-cbrt_binary64_12377 sqr-abs_binary64_12369 --rgt-identity_binary64_12340 +-lft-identity_binary64_12338 div0_binary64_12335 *-inverses_binary64_12334 +-inverses_binary64_12333 lft-mult-inverse_binary64_12332 rgt-mult-inverse_binary64_12331 difference-of-sqr-1_binary64_12324
Counts
118 → 149
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01421552
13281487
210211481
332191427
448881427

prune126.0ms (1.3%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1490149
Fresh022
Picked011
Done022
Total1495154
Error
0b
Counts
154 → 5
Compiler

Compiled 2275 to 1264 computations (44.4% saved)

regimes449.0ms (4.7%)

Accuracy

Total 0.1b remaining (99.1%)

Threshold costs 0.1b (99.1%)

Compiler

Compiled 2068 to 1786 computations (13.6% saved)

bsearch47.0ms (0.5%)

Steps
ItersRangePoint
10
4.712920626676346e-18
7.35096930510453e-05
3.425357687924926e-15
9
-8.047340495407153e+43
-2.3863307438595117e+35
-1.4932932283986656e+36
Compiler

Compiled 1 to 3 computations (-200% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64_12284
sub-neg_binary64_12347 *-commutative_binary64_12285
if-if-or-not_binary64_12612 1-exp_binary64_12398 neg-mul-1_binary64_12350 neg-sub0_binary64_12349
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_12614 if-if-and_binary64_12613 if-if-or_binary64_12611 if-not_binary64_12610 if-same_binary64_12609 if-false_binary64_12608 if-true_binary64_12607 tan-0_binary64_12483 cos-0_binary64_12482 sin-0_binary64_12481 unpow1_binary64_12412 e-exp-1_binary64_12399 exp-1-e_binary64_12397 exp-0_binary64_12396 sqr-abs_binary64_12369 sqr-neg_binary64_12368 unsub-neg_binary64_12348 mul-1-neg_binary64_12346 /-rgt-identity_binary64_12345 *-rgt-identity_binary64_12344 *-lft-identity_binary64_12343 remove-double-neg_binary64_12342 sub0-neg_binary64_12341 --rgt-identity_binary64_12340 +-rgt-identity_binary64_12339 +-lft-identity_binary64_12338 cancel-sign-sub-inv_binary64_12320 cancel-sign-sub_binary64_12319 distribute-neg-frac_binary64_12318 distribute-frac-neg_binary64_12317 distribute-neg-out_binary64_12316 distribute-neg-in_binary64_12315 distribute-rgt-neg-out_binary64_12314 distribute-lft-neg-out_binary64_12313 distribute-rgt-neg-in_binary64_12312 distribute-lft-neg-in_binary64_12311
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01940
13040
23540
33740
43840
Proof
(=> (if real (<= f64 h0 -1493293228398665554729347965578641408) (- f64 (* f64 h1 (/ f64 (+ f64 h2 1) h0)) h1) (if real (<= f64 h0 8684313458188825/2535301200456458802993406410752) (- f64 (* f64 (+ f64 h2 1) (/ f64 h1 h0)) h1) (- f64 (* f64 h1 (/ f64 (+ f64 h2 1) h0)) h1)))) if-if-or-not_binary64_12612 => (if real (or real (<= f64 h0 -1493293228398665554729347965578641408) (not real (<= f64 h0 8684313458188825/2535301200456458802993406410752))) (- f64 (* f64 h1 (/ f64 (+ f64 h2 1) h0)) h1) (- f64 (* f64 (+ f64 h2 1) (/ f64 h1 h0)) h1))

end0.0ms (0%)

sample1.3s (13.4%)

Algorithm
intervals
Results
243.0ms8000×body128valid
34.0ms1034×body128invalid
Compiler

Compiled 585 to 495 computations (15.4% saved)

Profiling

Loading profile data...