Details

Time bar (total: 10.2s)

analyze350.0ms (3.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
9.4%90.5%0.1%6
14%85.8%0.1%7
22.6%77.2%0.1%8
37.8%60.5%1.7%9
40%56%4%10
47.3%48.7%4%11
56.8%36.2%7%12
58.6%32.4%9%13
63.4%27.5%9%14
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample17.0ms (0.2%)

Algorithm
intervals
Results
6.0ms256×body128valid
0.0ms19×body128invalid
Compiler

Compiled 15 to 16 computations (-6.7% saved)

simplify4.4s (43.1%)

Algorithm
egg-herbie
Rules
424×div-sub_binary64_16451
343×associate-/l*_binary64_16391
337×associate-*r*_binary64_16386
316×distribute-rgt-out_binary64_16399
302×associate-*l*_binary64_16387
300×times-frac_binary64_16452
265×sub-neg_binary64_16439
236×distribute-rgt-out--_binary64_16400
192×distribute-lft-out_binary64_16397
176×distribute-lft-out--_binary64_16398
163×cancel-sign-sub-inv_binary64_16412
145×associate-/l/_binary64_16393
115×unsub-neg_binary64_16440
106×associate-*l/_binary64_16389
96×associate-/r*_binary64_16390
90×distribute-rgt-in_binary64_16396
80×associate-*r/_binary64_16388
62×distribute-lft-in_binary64_16395
50×neg-mul-1_binary64_16442 neg-sub0_binary64_16441
40×associate-/r/_binary64_16392
32×distribute-rgt-neg-in_binary64_16404
31×exp-prod_binary64_16498
29×distribute-lft-neg-in_binary64_16403
22×distribute-neg-in_binary64_16407
21×*-commutative_binary64_16377
18×distribute-frac-neg_binary64_16409 distribute-rgt1-in_binary64_16402
17×exp-sum_binary64_16492
16×*-rgt-identity_binary64_16436
14×distribute-rgt-neg-out_binary64_16406
13×mul0-rgt_binary64_16429 mul0-lft_binary64_16428 div0_binary64_16427 distribute-lft-neg-out_binary64_16405 associate--r+_binary64_16382
12×pow-plus_binary64_16509 distribute-neg-frac_binary64_16410 +-commutative_binary64_16376
10×sqr-neg_binary64_16460 *-lft-identity_binary64_16435 associate-+l+_binary64_16379
/-rgt-identity_binary64_16437 associate-+l-_binary64_16381
sub0-neg_binary64_16433 associate-+r+_binary64_16378
cube-unmult_binary64_16483
+-rgt-identity_binary64_16431 swap-sqr_binary64_16413 distribute-lft1-in_binary64_16401 associate-+r-_binary64_16380
exp-lft-sqr_binary64_16501 +-lft-identity_binary64_16430 count-2_binary64_16394
remove-double-neg_binary64_16434 --rgt-identity_binary64_16432 *-inverses_binary64_16426 associate--r-_binary64_16385
associate--l+_binary64_16383
div-exp_binary64_16497 exp-diff_binary64_16494 1-exp_binary64_16490 mul-1-neg_binary64_16438
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_16709 erf-erfc_binary64_16708 erf-odd_binary64_16707 if-if-and-not_binary64_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 not-gte_binary64_16698 not-lte_binary64_16697 not-gt_binary64_16696 not-lt_binary64_16695 gte-same_binary64_16694 lte-same_binary64_16693 gt-same_binary64_16692 lt-same_binary64_16691 sinh---cosh_binary64_16638 sinh-+-cosh_binary64_16637 sinh-cosh_binary64_16636 tanh-def-c_binary64_16635 tanh-def-b_binary64_16634 tanh-def-a_binary64_16633 cosh-def_binary64_16632 sinh-def_binary64_16631 tan-neg_binary64_16578 cos-neg_binary64_16577 sin-neg_binary64_16576 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 hang-m-tan_binary64_16572 hang-p-tan_binary64_16571 hang-m0-tan_binary64_16570 hang-p0-tan_binary64_16569 hang-0m-tan_binary64_16568 hang-0p-tan_binary64_16567 tan-+PI/2_binary64_16566 tan-+PI_binary64_16565 tan-PI_binary64_16564 tan-PI/3_binary64_16563 tan-PI/4_binary64_16562 tan-PI/6_binary64_16561 cos-+PI/2_binary64_16560 cos-+PI_binary64_16559 cos-PI_binary64_16558 cos-PI/2_binary64_16557 cos-PI/3_binary64_16556 cos-PI/4_binary64_16555 cos-PI/6_binary64_16554 sin-+PI/2_binary64_16553 sin-+PI_binary64_16552 sin-PI_binary64_16551 sin-PI/2_binary64_16550 sin-PI/3_binary64_16549 sin-PI/4_binary64_16548 sin-PI/6_binary64_16547 sub-1-sin_binary64_16546 sub-1-cos_binary64_16545 -1-add-sin_binary64_16544 -1-add-cos_binary64_16543 1-sub-sin_binary64_16542 1-sub-cos_binary64_16541 cos-sin-sum_binary64_16540 log-E_binary64_16536 log-pow_binary64_16535 log-rec_binary64_16534 log-div_binary64_16533 log-prod_binary64_16532 pow-base-0_binary64_16530 unpow1/3_binary64_16513 unpow3_binary64_16512 unpow2_binary64_16511 unpow1/2_binary64_16510 exp-to-pow_binary64_16508 pow-base-1_binary64_16506 unpow0_binary64_16505 unpow1_binary64_16504 unpow-1_binary64_16503 exp-lft-cube_binary64_16502 exp-cbrt_binary64_16500 exp-sqrt_binary64_16499 rec-exp_binary64_16496 prod-exp_binary64_16495 exp-neg_binary64_16493 e-exp-1_binary64_16491 exp-1-e_binary64_16489 exp-0_binary64_16488 rem-log-exp_binary64_16487 rem-exp-log_binary64_16486 cube-mult_binary64_16476 cube-div_binary64_16475 cube-prod_binary64_16474 cube-neg_binary64_16473 rem-3cbrt-rft_binary64_16472 rem-3cbrt-lft_binary64_16471 rem-cbrt-cube_binary64_16470 rem-cube-cbrt_binary64_16469 sqr-abs_binary64_16461 rem-sqrt-square_binary64_16459 rem-square-sqrt_binary64_16458 +-inverses_binary64_16425 lft-mult-inverse_binary64_16424 rgt-mult-inverse_binary64_16423 remove-double-div_binary64_16422 pow-sqr_binary64_16419 sqr-pow_binary64_16418 difference-of-sqr--1_binary64_16417 difference-of-sqr-1_binary64_16416 difference-of-squares_binary64_16415 unswap-sqr_binary64_16414 cancel-sign-sub_binary64_16411 distribute-neg-out_binary64_16408 associate--l-_binary64_16384
Counts
1 → 7
Iterations

Useful iterations: 7 (1.0ms)

IterNodesCost
0710
11210
22710
35610
410510
515810
636210
735721
8171

prune15.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 78 to 48 computations (38.5% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(/.f64 y (-.f64 y z))
2.6b
(/.f64 x (/.f64 y (-.f64 y z)))

rewrite147.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
138×times-frac_binary64_16452
102×add-sqr-sqrt_binary64_16468 *-un-lft-identity_binary64_16446
70×add-cube-cbrt_binary64_16481
26×associate-/r*_binary64_16390
16×difference-of-squares_binary64_16415 distribute-lft-out--_binary64_16398
11×associate-/r/_binary64_16392
add-exp-log_binary64_16484 add-cbrt-cube_binary64_16482
div-inv_binary64_16443 associate-/l*_binary64_16391
flip3--_binary64_16450 flip--_binary64_16421
div-exp_binary64_16497 cbrt-undiv_binary64_16480
pow1_binary64_16507 add-log-exp_binary64_16485 frac-2neg_binary64_16457 clear-num_binary64_16445
Counts
2 → 139
Calls

2 calls:

9.0ms
(/.f64 x (/.f64 y (-.f64 y z)))
5.0ms
(/.f64 y (-.f64 y z))
Compiler

Compiled 2456 to 567 computations (76.9% saved)

series358.0ms (3.5%)

Error
0.0b
Counts
2 → 39
Calls

2 calls:

214.0ms
(/.f64 x (/.f64 y (-.f64 y z)))
114.0ms
(/.f64 y (-.f64 y z))
Compiler

Compiled 963 to 692 computations (28.1% saved)

simplify419.0ms (4.1%)

Algorithm
egg-herbie
Rules
461×associate-*r*_binary64_16386
425×*-commutative_binary64_16377
392×associate-/r*_binary64_16390
260×distribute-rgt-in_binary64_16396
234×distribute-lft-in_binary64_16395
187×associate-/l/_binary64_16393 associate-/r/_binary64_16392
171×associate-/l*_binary64_16391
163×cancel-sign-sub-inv_binary64_16412
123×associate-*l/_binary64_16389
119×unsub-neg_binary64_16440
116×neg-sub0_binary64_16441
114×neg-mul-1_binary64_16442
113×sub-neg_binary64_16439
103×div-sub_binary64_16451
77×times-frac_binary64_16452
70×unswap-sqr_binary64_16414
66×sqr-pow_binary64_16418
58×associate-*r/_binary64_16388
54×+-commutative_binary64_16376
51×*-rgt-identity_binary64_16436
49×associate-+l+_binary64_16379
44×/-rgt-identity_binary64_16437
37×pow-sqr_binary64_16419
36×cube-prod_binary64_16474 distribute-neg-in_binary64_16407
35×associate--r+_binary64_16382 associate-+r+_binary64_16378
34×distribute-lft-neg-out_binary64_16405
33×distribute-rgt-neg-out_binary64_16406
32×log-prod_binary64_16532
28×difference-of-squares_binary64_16415 swap-sqr_binary64_16413 distribute-rgt-neg-in_binary64_16404 distribute-lft-neg-in_binary64_16403
27×exp-prod_binary64_16498
26×distribute-neg-frac_binary64_16410 associate-*l*_binary64_16387
25×log-div_binary64_16533
23×*-lft-identity_binary64_16435
21×cube-div_binary64_16475 associate-+r-_binary64_16380
20×associate-+l-_binary64_16381
16×div-exp_binary64_16497 prod-exp_binary64_16495 sub0-neg_binary64_16433
14×+-rgt-identity_binary64_16431
13×pow-plus_binary64_16509
11×exp-sum_binary64_16492
exp-diff_binary64_16494
unpow3_binary64_16512 cube-unmult_binary64_16483 cube-mult_binary64_16476 distribute-rgt1-in_binary64_16402
distribute-rgt-out_binary64_16399
log-pow_binary64_16535
rec-exp_binary64_16496 remove-double-div_binary64_16422 distribute-rgt-out--_binary64_16400 associate--r-_binary64_16385
mul-1-neg_binary64_16438 div0_binary64_16427 rgt-mult-inverse_binary64_16423 associate--l-_binary64_16384
log-rec_binary64_16534 unpow2_binary64_16511 unpow1_binary64_16504 rem-sqrt-square_binary64_16459 remove-double-neg_binary64_16434 *-inverses_binary64_16426 lft-mult-inverse_binary64_16424 distribute-lft-out_binary64_16397 associate--l+_binary64_16383
pow-base-1_binary64_16506 1-exp_binary64_16490 rem-log-exp_binary64_16487 cube-neg_binary64_16473 sqr-neg_binary64_16460 count-2_binary64_16394
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_16709 erf-erfc_binary64_16708 erf-odd_binary64_16707 if-if-and-not_binary64_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 not-gte_binary64_16698 not-lte_binary64_16697 not-gt_binary64_16696 not-lt_binary64_16695 gte-same_binary64_16694 lte-same_binary64_16693 gt-same_binary64_16692 lt-same_binary64_16691 sinh---cosh_binary64_16638 sinh-+-cosh_binary64_16637 sinh-cosh_binary64_16636 tanh-def-c_binary64_16635 tanh-def-b_binary64_16634 tanh-def-a_binary64_16633 cosh-def_binary64_16632 sinh-def_binary64_16631 tan-neg_binary64_16578 cos-neg_binary64_16577 sin-neg_binary64_16576 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 hang-m-tan_binary64_16572 hang-p-tan_binary64_16571 hang-m0-tan_binary64_16570 hang-p0-tan_binary64_16569 hang-0m-tan_binary64_16568 hang-0p-tan_binary64_16567 tan-+PI/2_binary64_16566 tan-+PI_binary64_16565 tan-PI_binary64_16564 tan-PI/3_binary64_16563 tan-PI/4_binary64_16562 tan-PI/6_binary64_16561 cos-+PI/2_binary64_16560 cos-+PI_binary64_16559 cos-PI_binary64_16558 cos-PI/2_binary64_16557 cos-PI/3_binary64_16556 cos-PI/4_binary64_16555 cos-PI/6_binary64_16554 sin-+PI/2_binary64_16553 sin-+PI_binary64_16552 sin-PI_binary64_16551 sin-PI/2_binary64_16550 sin-PI/3_binary64_16549 sin-PI/4_binary64_16548 sin-PI/6_binary64_16547 sub-1-sin_binary64_16546 sub-1-cos_binary64_16545 -1-add-sin_binary64_16544 -1-add-cos_binary64_16543 1-sub-sin_binary64_16542 1-sub-cos_binary64_16541 cos-sin-sum_binary64_16540 log-E_binary64_16536 pow-base-0_binary64_16530 unpow1/3_binary64_16513 unpow1/2_binary64_16510 exp-to-pow_binary64_16508 unpow0_binary64_16505 unpow-1_binary64_16503 exp-lft-cube_binary64_16502 exp-lft-sqr_binary64_16501 exp-cbrt_binary64_16500 exp-sqrt_binary64_16499 exp-neg_binary64_16493 e-exp-1_binary64_16491 exp-1-e_binary64_16489 exp-0_binary64_16488 rem-exp-log_binary64_16486 rem-3cbrt-rft_binary64_16472 rem-3cbrt-lft_binary64_16471 rem-cbrt-cube_binary64_16470 rem-cube-cbrt_binary64_16469 sqr-abs_binary64_16461 rem-square-sqrt_binary64_16458 --rgt-identity_binary64_16432 +-lft-identity_binary64_16430 mul0-rgt_binary64_16429 mul0-lft_binary64_16428 +-inverses_binary64_16425 difference-of-sqr--1_binary64_16417 difference-of-sqr-1_binary64_16416 cancel-sign-sub_binary64_16411 distribute-frac-neg_binary64_16409 distribute-neg-out_binary64_16408 distribute-lft1-in_binary64_16401 distribute-lft-out--_binary64_16398
Counts
178 → 577
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02493515
15423401
221203294
341083294

prune480.0ms (4.7%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New5761577
Fresh044
Picked011
Done000
Total5766582
Error
0b
Counts
582 → 6
Compiler

Compiled 10950 to 1735 computations (84.2% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 x (*.f64 x (/.f64 z y)))
6.0b
(*.f64 x (/.f64 z y))

rewrite50.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
15×add-sqr-sqrt_binary64_16468
13×associate-*r*_binary64_16386
10×add-cube-cbrt_binary64_16481 *-un-lft-identity_binary64_16446 times-frac_binary64_16452
add-exp-log_binary64_16484 add-cbrt-cube_binary64_16482
pow1_binary64_16507 add-log-exp_binary64_16485
associate-*l*_binary64_16387
prod-exp_binary64_16495 cbrt-unprod_binary64_16479 unswap-sqr_binary64_16414
pow-prod-down_binary64_16517 div-exp_binary64_16497 cbrt-undiv_binary64_16480 associate-*r/_binary64_16388 div-inv_binary64_16443 *-commutative_binary64_16377 diff-log_binary64_16538 flip3--_binary64_16450 sub-neg_binary64_16439 flip--_binary64_16421 cancel-sign-sub-inv_binary64_16412
Counts
2 → 44
Calls

2 calls:

8.0ms
(*.f64 x (/.f64 z y))
3.0ms
(-.f64 x (*.f64 x (/.f64 z y)))
Compiler

Compiled 624 to 189 computations (69.7% saved)

series570.0ms (5.6%)

Error
0b
Counts
2 → 24
Calls

2 calls:

383.0ms
(*.f64 x (/.f64 z y))
176.0ms
(-.f64 x (*.f64 x (/.f64 z y)))
Compiler

Compiled 432 to 280 computations (35.2% saved)

simplify151.0ms (1.5%)

Algorithm
egg-herbie
Rules
415×distribute-rgt-in_binary64_16396
350×associate-*l*_binary64_16387
336×associate-*l/_binary64_16389
331×distribute-rgt-neg-in_binary64_16404
328×distribute-lft-in_binary64_16395
298×associate-/l*_binary64_16391
297×distribute-lft-neg-in_binary64_16403
294×distribute-neg-frac_binary64_16410 associate-*r*_binary64_16386
291×associate-*r/_binary64_16388
246×cancel-sign-sub-inv_binary64_16412
210×times-frac_binary64_16452
151×associate-/l/_binary64_16393
109×distribute-lft-neg-out_binary64_16405
102×unswap-sqr_binary64_16414
89×distribute-rgt-neg-out_binary64_16406 distribute-rgt-out_binary64_16399
85×*-commutative_binary64_16377
81×div-sub_binary64_16451
61×*-lft-identity_binary64_16435
60×sqr-pow_binary64_16418 associate-/r/_binary64_16392
58×sub-neg_binary64_16439
57×exp-prod_binary64_16498
56×associate-/r*_binary64_16390
54×neg-sub0_binary64_16441
52×neg-mul-1_binary64_16442
48×log-div_binary64_16533 unsub-neg_binary64_16440
47×cube-div_binary64_16475
43×log-prod_binary64_16532 distribute-lft-out_binary64_16397
41×cube-prod_binary64_16474
29×remove-double-div_binary64_16422 distribute-rgt-out--_binary64_16400
28×swap-sqr_binary64_16413
27×exp-sum_binary64_16492 *-rgt-identity_binary64_16436
26×difference-of-squares_binary64_16415
24×pow-sqr_binary64_16419
19×+-commutative_binary64_16376
17×/-rgt-identity_binary64_16437
16×distribute-rgt1-in_binary64_16402
15×exp-diff_binary64_16494
13×distribute-lft-out--_binary64_16398
11×unpow3_binary64_16512
10×log-rec_binary64_16534 div-exp_binary64_16497 distribute-neg-out_binary64_16408 associate-+l-_binary64_16381
prod-exp_binary64_16495 cube-mult_binary64_16476 mul0-lft_binary64_16428 associate-+r-_binary64_16380
mul0-rgt_binary64_16429 associate-+r+_binary64_16378
+-rgt-identity_binary64_16431 distribute-frac-neg_binary64_16409 associate-+l+_binary64_16379
mul-1-neg_binary64_16438
cube-unmult_binary64_16483 sub0-neg_binary64_16433 distribute-lft1-in_binary64_16401
sqr-neg_binary64_16460 distribute-neg-in_binary64_16407
rec-exp_binary64_16496 associate--r+_binary64_16382
cube-neg_binary64_16473 associate--l+_binary64_16383
log-pow_binary64_16535 pow-plus_binary64_16509 pow-base-1_binary64_16506 1-exp_binary64_16490 exp-1-e_binary64_16489 rem-log-exp_binary64_16487 --rgt-identity_binary64_16432 div0_binary64_16427 associate--r-_binary64_16385 associate--l-_binary64_16384
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_16709 erf-erfc_binary64_16708 erf-odd_binary64_16707 if-if-and-not_binary64_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 not-gte_binary64_16698 not-lte_binary64_16697 not-gt_binary64_16696 not-lt_binary64_16695 gte-same_binary64_16694 lte-same_binary64_16693 gt-same_binary64_16692 lt-same_binary64_16691 sinh---cosh_binary64_16638 sinh-+-cosh_binary64_16637 sinh-cosh_binary64_16636 tanh-def-c_binary64_16635 tanh-def-b_binary64_16634 tanh-def-a_binary64_16633 cosh-def_binary64_16632 sinh-def_binary64_16631 tan-neg_binary64_16578 cos-neg_binary64_16577 sin-neg_binary64_16576 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 hang-m-tan_binary64_16572 hang-p-tan_binary64_16571 hang-m0-tan_binary64_16570 hang-p0-tan_binary64_16569 hang-0m-tan_binary64_16568 hang-0p-tan_binary64_16567 tan-+PI/2_binary64_16566 tan-+PI_binary64_16565 tan-PI_binary64_16564 tan-PI/3_binary64_16563 tan-PI/4_binary64_16562 tan-PI/6_binary64_16561 cos-+PI/2_binary64_16560 cos-+PI_binary64_16559 cos-PI_binary64_16558 cos-PI/2_binary64_16557 cos-PI/3_binary64_16556 cos-PI/4_binary64_16555 cos-PI/6_binary64_16554 sin-+PI/2_binary64_16553 sin-+PI_binary64_16552 sin-PI_binary64_16551 sin-PI/2_binary64_16550 sin-PI/3_binary64_16549 sin-PI/4_binary64_16548 sin-PI/6_binary64_16547 sub-1-sin_binary64_16546 sub-1-cos_binary64_16545 -1-add-sin_binary64_16544 -1-add-cos_binary64_16543 1-sub-sin_binary64_16542 1-sub-cos_binary64_16541 cos-sin-sum_binary64_16540 log-E_binary64_16536 pow-base-0_binary64_16530 unpow1/3_binary64_16513 unpow2_binary64_16511 unpow1/2_binary64_16510 exp-to-pow_binary64_16508 unpow0_binary64_16505 unpow1_binary64_16504 unpow-1_binary64_16503 exp-lft-cube_binary64_16502 exp-lft-sqr_binary64_16501 exp-cbrt_binary64_16500 exp-sqrt_binary64_16499 exp-neg_binary64_16493 e-exp-1_binary64_16491 exp-0_binary64_16488 rem-exp-log_binary64_16486 rem-3cbrt-rft_binary64_16472 rem-3cbrt-lft_binary64_16471 rem-cbrt-cube_binary64_16470 rem-cube-cbrt_binary64_16469 sqr-abs_binary64_16461 rem-sqrt-square_binary64_16459 rem-square-sqrt_binary64_16458 remove-double-neg_binary64_16434 +-lft-identity_binary64_16430 *-inverses_binary64_16426 +-inverses_binary64_16425 lft-mult-inverse_binary64_16424 rgt-mult-inverse_binary64_16423 difference-of-sqr--1_binary64_16417 difference-of-sqr-1_binary64_16416 cancel-sign-sub_binary64_16411 count-2_binary64_16394
Counts
68 → 116
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0100733
1233709
2810706
32868706

prune79.0ms (0.8%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1160116
Fresh044
Picked011
Done011
Total1166122
Error
0b
Counts
122 → 6
Compiler

Compiled 1530 to 355 computations (76.8% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 x (/.f64 z (/.f64 y x)))
6.3b
(/.f64 z (/.f64 y x))

rewrite149.0ms (1.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
144×times-frac_binary64_16452
88×add-sqr-sqrt_binary64_16468
82×*-un-lft-identity_binary64_16446
79×add-cube-cbrt_binary64_16481
44×cancel-sign-sub-inv_binary64_16412
13×associate-/r*_binary64_16390
div-inv_binary64_16443
add-exp-log_binary64_16484 add-cbrt-cube_binary64_16482
add-log-exp_binary64_16485
div-exp_binary64_16497 cbrt-undiv_binary64_16480 associate-/r/_binary64_16392 associate-/l*_binary64_16391 difference-of-squares_binary64_16415
pow1_binary64_16507
frac-2neg_binary64_16457 clear-num_binary64_16445 diff-log_binary64_16538 flip3--_binary64_16450 sub-neg_binary64_16439 flip--_binary64_16421 distribute-rgt-out--_binary64_16400 distribute-lft-out--_binary64_16398
Counts
2 → 130
Calls

2 calls:

21.0ms
(-.f64 x (/.f64 z (/.f64 y x)))
6.0ms
(/.f64 z (/.f64 y x))
Compiler

Compiled 2254 to 621 computations (72.4% saved)

series325.0ms (3.2%)

Error
0b
Counts
2 → 24
Calls

2 calls:

167.0ms
(-.f64 x (/.f64 z (/.f64 y x)))
147.0ms
(/.f64 z (/.f64 y x))
Compiler

Compiled 432 to 280 computations (35.2% saved)

simplify656.0ms (6.4%)

Algorithm
egg-herbie
Rules
326×div-sub_binary64_16451
314×distribute-rgt-neg-in_binary64_16404
263×distribute-rgt-in_binary64_16396
261×distribute-lft-neg-out_binary64_16405
252×distribute-neg-frac_binary64_16410
242×associate-*l/_binary64_16389
217×distribute-lft-neg-in_binary64_16403
216×*-commutative_binary64_16377
212×cancel-sign-sub-inv_binary64_16412
191×associate-/l*_binary64_16391
190×associate-*r/_binary64_16388
188×distribute-rgt-neg-out_binary64_16406
177×associate-/r/_binary64_16392
170×neg-sub0_binary64_16441
158×associate-*r*_binary64_16386
157×associate-/l/_binary64_16393
134×neg-mul-1_binary64_16442
128×distribute-frac-neg_binary64_16409
125×associate-*l*_binary64_16387
117×sub-neg_binary64_16439
57×times-frac_binary64_16452
45×exp-prod_binary64_16498
44×associate-/r*_binary64_16390
31×/-rgt-identity_binary64_16437
30×*-rgt-identity_binary64_16436
26×distribute-rgt-out_binary64_16399
25×*-lft-identity_binary64_16435
20×log-prod_binary64_16532
19×cube-prod_binary64_16474 unswap-sqr_binary64_16414 swap-sqr_binary64_16413
18×+-commutative_binary64_16376
17×div-exp_binary64_16497 sqr-pow_binary64_16418
16×prod-exp_binary64_16495
15×log-div_binary64_16533
14×cube-div_binary64_16475
12×div0_binary64_16427
11×distribute-rgt1-in_binary64_16402 distribute-rgt-out--_binary64_16400
pow-sqr_binary64_16419
cube-unmult_binary64_16483 distribute-lft-in_binary64_16395 associate-+r-_binary64_16380
unpow3_binary64_16512 exp-sum_binary64_16492 unsub-neg_binary64_16440 mul-1-neg_binary64_16438
rec-exp_binary64_16496 +-rgt-identity_binary64_16431 distribute-neg-in_binary64_16407
exp-diff_binary64_16494 cube-mult_binary64_16476 rem-square-sqrt_binary64_16458 remove-double-div_binary64_16422 difference-of-squares_binary64_16415
rem-3cbrt-lft_binary64_16471 distribute-lft1-in_binary64_16401 distribute-lft-out_binary64_16397 associate-+l+_binary64_16379 associate-+r+_binary64_16378
log-pow_binary64_16535 log-rec_binary64_16534 pow-plus_binary64_16509 1-exp_binary64_16490 rem-log-exp_binary64_16487 rem-sqrt-square_binary64_16459 remove-double-neg_binary64_16434 cancel-sign-sub_binary64_16411 associate--r-_binary64_16385 associate--r+_binary64_16382
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_16709 erf-erfc_binary64_16708 erf-odd_binary64_16707 if-if-and-not_binary64_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 not-gte_binary64_16698 not-lte_binary64_16697 not-gt_binary64_16696 not-lt_binary64_16695 gte-same_binary64_16694 lte-same_binary64_16693 gt-same_binary64_16692 lt-same_binary64_16691 sinh---cosh_binary64_16638 sinh-+-cosh_binary64_16637 sinh-cosh_binary64_16636 tanh-def-c_binary64_16635 tanh-def-b_binary64_16634 tanh-def-a_binary64_16633 cosh-def_binary64_16632 sinh-def_binary64_16631 tan-neg_binary64_16578 cos-neg_binary64_16577 sin-neg_binary64_16576 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 hang-m-tan_binary64_16572 hang-p-tan_binary64_16571 hang-m0-tan_binary64_16570 hang-p0-tan_binary64_16569 hang-0m-tan_binary64_16568 hang-0p-tan_binary64_16567 tan-+PI/2_binary64_16566 tan-+PI_binary64_16565 tan-PI_binary64_16564 tan-PI/3_binary64_16563 tan-PI/4_binary64_16562 tan-PI/6_binary64_16561 cos-+PI/2_binary64_16560 cos-+PI_binary64_16559 cos-PI_binary64_16558 cos-PI/2_binary64_16557 cos-PI/3_binary64_16556 cos-PI/4_binary64_16555 cos-PI/6_binary64_16554 sin-+PI/2_binary64_16553 sin-+PI_binary64_16552 sin-PI_binary64_16551 sin-PI/2_binary64_16550 sin-PI/3_binary64_16549 sin-PI/4_binary64_16548 sin-PI/6_binary64_16547 sub-1-sin_binary64_16546 sub-1-cos_binary64_16545 -1-add-sin_binary64_16544 -1-add-cos_binary64_16543 1-sub-sin_binary64_16542 1-sub-cos_binary64_16541 cos-sin-sum_binary64_16540 log-E_binary64_16536 pow-base-0_binary64_16530 unpow1/3_binary64_16513 unpow2_binary64_16511 unpow1/2_binary64_16510 exp-to-pow_binary64_16508 pow-base-1_binary64_16506 unpow0_binary64_16505 unpow1_binary64_16504 unpow-1_binary64_16503 exp-lft-cube_binary64_16502 exp-lft-sqr_binary64_16501 exp-cbrt_binary64_16500 exp-sqrt_binary64_16499 exp-neg_binary64_16493 e-exp-1_binary64_16491 exp-1-e_binary64_16489 exp-0_binary64_16488 rem-exp-log_binary64_16486 cube-neg_binary64_16473 rem-3cbrt-rft_binary64_16472 rem-cbrt-cube_binary64_16470 rem-cube-cbrt_binary64_16469 sqr-abs_binary64_16461 sqr-neg_binary64_16460 sub0-neg_binary64_16433 --rgt-identity_binary64_16432 +-lft-identity_binary64_16430 mul0-rgt_binary64_16429 mul0-lft_binary64_16428 *-inverses_binary64_16426 +-inverses_binary64_16425 lft-mult-inverse_binary64_16424 rgt-mult-inverse_binary64_16423 difference-of-sqr--1_binary64_16417 difference-of-sqr-1_binary64_16416 distribute-neg-out_binary64_16408 distribute-lft-out--_binary64_16398 count-2_binary64_16394 associate--l-_binary64_16384 associate--l+_binary64_16383 associate-+l-_binary64_16381
Counts
154 → 439
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02722857
17842817
230422367

prune327.0ms (3.2%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New4390439
Fresh033
Picked011
Done022
Total4396445
Error
0b
Counts
445 → 6
Compiler

Compiled 7426 to 1144 computations (84.6% saved)

localize5.0ms (0%)

Local error

Found 2 expressions with local error:

0.0b
(*.f64 x (-.f64 y z))
11.7b
(/.f64 (*.f64 x (-.f64 y z)) y)

rewrite53.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
12×add-sqr-sqrt_binary64_16468
10×*-un-lft-identity_binary64_16446
add-exp-log_binary64_16484 add-cbrt-cube_binary64_16482
add-cube-cbrt_binary64_16481
cancel-sign-sub-inv_binary64_16412
associate-*r*_binary64_16386
pow1_binary64_16507 associate-*r/_binary64_16388 distribute-rgt-in_binary64_16396 distribute-lft-in_binary64_16395
times-frac_binary64_16452 associate-/r*_binary64_16390 associate-*l*_binary64_16387
prod-exp_binary64_16495 div-exp_binary64_16497 add-log-exp_binary64_16485 cbrt-undiv_binary64_16480 cbrt-unprod_binary64_16479 flip3--_binary64_16450 associate-/l/_binary64_16393 flip--_binary64_16421 sub-neg_binary64_16439
frac-2neg_binary64_16457 clear-num_binary64_16445 div-inv_binary64_16443 associate-/l*_binary64_16391 pow-prod-down_binary64_16517 unswap-sqr_binary64_16414 difference-of-squares_binary64_16415 distribute-lft-out--_binary64_16398 *-commutative_binary64_16377
Counts
2 → 53
Calls

2 calls:

9.0ms
(*.f64 x (-.f64 y z))
7.0ms
(/.f64 (*.f64 x (-.f64 y z)) y)
Compiler

Compiled 710 to 208 computations (70.7% saved)

series374.0ms (3.7%)

Error
0b
Counts
2 → 30
Calls

2 calls:

221.0ms
(/.f64 (*.f64 x (-.f64 y z)) y)
140.0ms
(*.f64 x (-.f64 y z))
Compiler

Compiled 534 to 322 computations (39.7% saved)

simplify214.0ms (2.1%)

Algorithm
egg-herbie
Rules
752×times-frac_binary64_16452
340×div-sub_binary64_16451
323×associate-*l/_binary64_16389
228×distribute-rgt-in_binary64_16396
224×distribute-lft-in_binary64_16395
217×associate-*r/_binary64_16388
215×associate-/l/_binary64_16393
182×exp-prod_binary64_16498
167×associate-/r*_binary64_16390
147×associate-/r/_binary64_16392
142×*-commutative_binary64_16377
79×associate-*l*_binary64_16387
78×neg-mul-1_binary64_16442
77×neg-sub0_binary64_16441
72×associate-/l*_binary64_16391
66×associate-*r*_binary64_16386
64×cube-prod_binary64_16474
62×exp-sum_binary64_16492
56×log-div_binary64_16533
54×cube-div_binary64_16475
48×log-prod_binary64_16532
38×distribute-rgt-neg-in_binary64_16404
35×sub-neg_binary64_16439
34×distribute-rgt-neg-out_binary64_16406
31×distribute-lft-neg-out_binary64_16405
29×cancel-sign-sub-inv_binary64_16412
27×+-commutative_binary64_16376
26×distribute-lft-neg-in_binary64_16403
24×exp-diff_binary64_16494
21×*-rgt-identity_binary64_16436
17×*-lft-identity_binary64_16435 sqr-pow_binary64_16418 associate-+r+_binary64_16378
14×associate-+r-_binary64_16380
13×distribute-neg-frac_binary64_16410 associate-+l+_binary64_16379
12×unpow3_binary64_16512 /-rgt-identity_binary64_16437 associate-+l-_binary64_16381
log-rec_binary64_16534 exp-neg_binary64_16493 swap-sqr_binary64_16413
associate--l-_binary64_16384 associate--l+_binary64_16383
cube-unmult_binary64_16483 cube-mult_binary64_16476
sqr-neg_binary64_16460 pow-sqr_binary64_16419 distribute-neg-in_binary64_16407
unsub-neg_binary64_16440 remove-double-neg_binary64_16434
difference-of-squares_binary64_16415 cancel-sign-sub_binary64_16411 associate--r+_binary64_16382
rem-sqrt-square_binary64_16459 mul-1-neg_binary64_16438 unswap-sqr_binary64_16414 distribute-frac-neg_binary64_16409 associate--r-_binary64_16385
div-exp_binary64_16497 rec-exp_binary64_16496 prod-exp_binary64_16495 1-exp_binary64_16490 exp-1-e_binary64_16489 rem-log-exp_binary64_16487 cube-neg_binary64_16473 rem-3cbrt-lft_binary64_16471 rem-square-sqrt_binary64_16458 +-rgt-identity_binary64_16431 *-inverses_binary64_16426 distribute-rgt-out_binary64_16399 distribute-lft-out--_binary64_16398
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_16709 erf-erfc_binary64_16708 erf-odd_binary64_16707 if-if-and-not_binary64_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 not-gte_binary64_16698 not-lte_binary64_16697 not-gt_binary64_16696 not-lt_binary64_16695 gte-same_binary64_16694 lte-same_binary64_16693 gt-same_binary64_16692 lt-same_binary64_16691 sinh---cosh_binary64_16638 sinh-+-cosh_binary64_16637 sinh-cosh_binary64_16636 tanh-def-c_binary64_16635 tanh-def-b_binary64_16634 tanh-def-a_binary64_16633 cosh-def_binary64_16632 sinh-def_binary64_16631 tan-neg_binary64_16578 cos-neg_binary64_16577 sin-neg_binary64_16576 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 hang-m-tan_binary64_16572 hang-p-tan_binary64_16571 hang-m0-tan_binary64_16570 hang-p0-tan_binary64_16569 hang-0m-tan_binary64_16568 hang-0p-tan_binary64_16567 tan-+PI/2_binary64_16566 tan-+PI_binary64_16565 tan-PI_binary64_16564 tan-PI/3_binary64_16563 tan-PI/4_binary64_16562 tan-PI/6_binary64_16561 cos-+PI/2_binary64_16560 cos-+PI_binary64_16559 cos-PI_binary64_16558 cos-PI/2_binary64_16557 cos-PI/3_binary64_16556 cos-PI/4_binary64_16555 cos-PI/6_binary64_16554 sin-+PI/2_binary64_16553 sin-+PI_binary64_16552 sin-PI_binary64_16551 sin-PI/2_binary64_16550 sin-PI/3_binary64_16549 sin-PI/4_binary64_16548 sin-PI/6_binary64_16547 sub-1-sin_binary64_16546 sub-1-cos_binary64_16545 -1-add-sin_binary64_16544 -1-add-cos_binary64_16543 1-sub-sin_binary64_16542 1-sub-cos_binary64_16541 cos-sin-sum_binary64_16540 log-E_binary64_16536 log-pow_binary64_16535 pow-base-0_binary64_16530 unpow1/3_binary64_16513 unpow2_binary64_16511 unpow1/2_binary64_16510 pow-plus_binary64_16509 exp-to-pow_binary64_16508 pow-base-1_binary64_16506 unpow0_binary64_16505 unpow1_binary64_16504 unpow-1_binary64_16503 exp-lft-cube_binary64_16502 exp-lft-sqr_binary64_16501 exp-cbrt_binary64_16500 exp-sqrt_binary64_16499 e-exp-1_binary64_16491 exp-0_binary64_16488 rem-exp-log_binary64_16486 rem-3cbrt-rft_binary64_16472 rem-cbrt-cube_binary64_16470 rem-cube-cbrt_binary64_16469 sqr-abs_binary64_16461 sub0-neg_binary64_16433 --rgt-identity_binary64_16432 +-lft-identity_binary64_16430 mul0-rgt_binary64_16429 mul0-lft_binary64_16428 div0_binary64_16427 +-inverses_binary64_16425 lft-mult-inverse_binary64_16424 rgt-mult-inverse_binary64_16423 remove-double-div_binary64_16422 difference-of-sqr--1_binary64_16417 difference-of-sqr-1_binary64_16416 distribute-neg-out_binary64_16408 distribute-rgt1-in_binary64_16402 distribute-lft1-in_binary64_16401 distribute-rgt-out--_binary64_16400 distribute-lft-out_binary64_16397 count-2_binary64_16394
Counts
83 → 138
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0108883
1276790
2958788
33885788

prune84.0ms (0.8%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New1380138
Fresh022
Picked011
Done033
Total1386144
Error
0b
Counts
144 → 6
Compiler

Compiled 1675 to 232 computations (86.1% saved)

regimes174.0ms (1.7%)

Accuracy

Total 2.0b remaining (99.9%)

Threshold costs 0b (0%)

Compiler

Compiled 788 to 638 computations (19% saved)

bsearch1.0ms (0%)

Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
sub-neg_binary64_16439 +-commutative_binary64_16376
*-commutative_binary64_16377
neg-mul-1_binary64_16442 neg-sub0_binary64_16441
cancel-sign-sub-inv_binary64_16412 distribute-neg-frac_binary64_16410 distribute-rgt-neg-in_binary64_16404
distribute-lft-neg-out_binary64_16405 distribute-lft-neg-in_binary64_16403
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_16706 if-if-and_binary64_16705 if-if-or-not_binary64_16704 if-if-or_binary64_16703 if-not_binary64_16702 if-same_binary64_16701 if-false_binary64_16700 if-true_binary64_16699 tan-0_binary64_16575 cos-0_binary64_16574 sin-0_binary64_16573 unpow1_binary64_16504 e-exp-1_binary64_16491 1-exp_binary64_16490 exp-1-e_binary64_16489 exp-0_binary64_16488 sqr-abs_binary64_16461 sqr-neg_binary64_16460 unsub-neg_binary64_16440 mul-1-neg_binary64_16438 /-rgt-identity_binary64_16437 *-rgt-identity_binary64_16436 *-lft-identity_binary64_16435 remove-double-neg_binary64_16434 sub0-neg_binary64_16433 --rgt-identity_binary64_16432 +-rgt-identity_binary64_16431 +-lft-identity_binary64_16430 cancel-sign-sub_binary64_16411 distribute-frac-neg_binary64_16409 distribute-neg-out_binary64_16408 distribute-neg-in_binary64_16407 distribute-rgt-neg-out_binary64_16406
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02060
13160
24860
35960
46560
56660
Proof
(if real (<= f64 (/ f64 (* f64 h0 (- f64 h1 h2)) h1) 1784179993447873024) (- f64 h0 (* f64 h0 (/ f64 h2 h1))) (if real (<= f64 (/ f64 (* f64 h0 (- f64 h1 h2)) h1) 622859224552327932433082680201781759320400492172578248571547653645496822635663608472119471326842358795782287776850603604545294503744663418529056752205907955127519840163679942006465531629992101024510523583580850405035565542243406598587747470278636596745051187745860343874774222268222339311986540544) (/ f64 (* f64 h0 (- f64 h1 h2)) h1) (- f64 h0 (/ f64 h2 (/ f64 h1 h0)))))

end0.0ms (0%)

sample792.0ms (7.7%)

Algorithm
intervals
Results
219.0ms8000×body128valid
17.0ms708×body128invalid
Compiler

Compiled 270 to 197 computations (27% saved)

Profiling

Loading profile data...