Details

Time bar (total: 2.5s)

analyze223.0ms (9%)

Algorithm
search
egg-herbie
Rules
116×cancel-sign-sub-inv_binary64_6523
78×distribute-rgt-in_binary64_6507
68×sub-neg_binary64_6550
62×unsub-neg_binary64_6551
58×associate--r+_binary64_6493
56×distribute-neg-in_binary64_6518
54×distribute-lft-in_binary64_6506
44×distribute-rgt-neg-in_binary64_6515
38×associate-+r+_binary64_6489
32×neg-mul-1_binary64_6553
30×associate-+l-_binary64_6492
29×+-commutative_binary64_6487
26×associate--l+_binary64_6494 associate-+l+_binary64_6490
25×*-commutative_binary64_6488
20×neg-sub0_binary64_6552
17×distribute-lft-neg-out_binary64_6516 associate-*l*_binary64_6498
16×associate-+r-_binary64_6491
14×distribute-rgt-out--_binary64_6511
12×sub0-neg_binary64_6544 mul0-rgt_binary64_6540 mul0-lft_binary64_6539 distribute-lft-neg-in_binary64_6514
10×distribute-rgt-neg-out_binary64_6517 associate--r-_binary64_6496
remove-double-neg_binary64_6545 associate-*r*_binary64_6497
*-lft-identity_binary64_6546
distribute-rgt1-in_binary64_6513
+-rgt-identity_binary64_6542
+-lft-identity_binary64_6541 distribute-rgt-out_binary64_6510 associate--l-_binary64_6495
*-rgt-identity_binary64_6547
distribute-lft1-in_binary64_6512
1-exp_binary64_6601
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_6820 erf-erfc_binary64_6819 erf-odd_binary64_6818 if-if-and-not_binary64_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 not-gte_binary64_6809 not-lte_binary64_6808 not-gt_binary64_6807 not-lt_binary64_6806 gte-same_binary64_6805 lte-same_binary64_6804 gt-same_binary64_6803 lt-same_binary64_6802 sinh---cosh_binary64_6749 sinh-+-cosh_binary64_6748 sinh-cosh_binary64_6747 tanh-def-c_binary64_6746 tanh-def-b_binary64_6745 tanh-def-a_binary64_6744 cosh-def_binary64_6743 sinh-def_binary64_6742 tan-neg_binary64_6689 cos-neg_binary64_6688 sin-neg_binary64_6687 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 hang-m-tan_binary64_6683 hang-p-tan_binary64_6682 hang-m0-tan_binary64_6681 hang-p0-tan_binary64_6680 hang-0m-tan_binary64_6679 hang-0p-tan_binary64_6678 tan-+PI/2_binary64_6677 tan-+PI_binary64_6676 tan-PI_binary64_6675 tan-PI/3_binary64_6674 tan-PI/4_binary64_6673 tan-PI/6_binary64_6672 cos-+PI/2_binary64_6671 cos-+PI_binary64_6670 cos-PI_binary64_6669 cos-PI/2_binary64_6668 cos-PI/3_binary64_6667 cos-PI/4_binary64_6666 cos-PI/6_binary64_6665 sin-+PI/2_binary64_6664 sin-+PI_binary64_6663 sin-PI_binary64_6662 sin-PI/2_binary64_6661 sin-PI/3_binary64_6660 sin-PI/4_binary64_6659 sin-PI/6_binary64_6658 sub-1-sin_binary64_6657 sub-1-cos_binary64_6656 -1-add-sin_binary64_6655 -1-add-cos_binary64_6654 1-sub-sin_binary64_6653 1-sub-cos_binary64_6652 cos-sin-sum_binary64_6651 log-E_binary64_6647 log-pow_binary64_6646 log-rec_binary64_6645 log-div_binary64_6644 log-prod_binary64_6643 pow-base-0_binary64_6641 unpow1/3_binary64_6624 unpow3_binary64_6623 unpow2_binary64_6622 unpow1/2_binary64_6621 pow-plus_binary64_6620 exp-to-pow_binary64_6619 pow-base-1_binary64_6617 unpow0_binary64_6616 unpow1_binary64_6615 unpow-1_binary64_6614 exp-lft-cube_binary64_6613 exp-lft-sqr_binary64_6612 exp-cbrt_binary64_6611 exp-sqrt_binary64_6610 exp-prod_binary64_6609 div-exp_binary64_6608 rec-exp_binary64_6607 prod-exp_binary64_6606 exp-diff_binary64_6605 exp-neg_binary64_6604 exp-sum_binary64_6603 e-exp-1_binary64_6602 exp-1-e_binary64_6600 exp-0_binary64_6599 rem-log-exp_binary64_6598 rem-exp-log_binary64_6597 cube-unmult_binary64_6594 cube-mult_binary64_6587 cube-div_binary64_6586 cube-prod_binary64_6585 cube-neg_binary64_6584 rem-3cbrt-rft_binary64_6583 rem-3cbrt-lft_binary64_6582 rem-cbrt-cube_binary64_6581 rem-cube-cbrt_binary64_6580 sqr-abs_binary64_6572 sqr-neg_binary64_6571 rem-sqrt-square_binary64_6570 rem-square-sqrt_binary64_6569 times-frac_binary64_6563 div-sub_binary64_6562 mul-1-neg_binary64_6549 /-rgt-identity_binary64_6548 --rgt-identity_binary64_6543 div0_binary64_6538 *-inverses_binary64_6537 +-inverses_binary64_6536 lft-mult-inverse_binary64_6535 rgt-mult-inverse_binary64_6534 remove-double-div_binary64_6533 pow-sqr_binary64_6530 sqr-pow_binary64_6529 difference-of-sqr--1_binary64_6528 difference-of-sqr-1_binary64_6527 difference-of-squares_binary64_6526 unswap-sqr_binary64_6525 swap-sqr_binary64_6524 cancel-sign-sub_binary64_6522 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 distribute-neg-out_binary64_6519 distribute-lft-out--_binary64_6509 distribute-lft-out_binary64_6508 count-2_binary64_6505 associate-/l/_binary64_6504 associate-/r/_binary64_6503 associate-/l*_binary64_6502 associate-/r*_binary64_6501 associate-*l/_binary64_6500 associate-*r/_binary64_6499
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
12020
24120
37320
415320
528120
653020
749320
846520
946520
1041820
022
122
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
12.5%87.4%0.1%4
31.2%68.7%0.1%5
43.7%56.2%0.1%6
56.2%40.6%3.2%7
64%29.7%6.3%8
71%20.3%8.7%9
75.3%15.2%9.5%10
79%10.1%10.8%11
81.3%7.7%11%12
83.2%5%11.8%13
84.4%3.8%11.8%14
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample14.0ms (0.6%)

Algorithm
intervals
Results
5.0ms256×body128valid
0.0msbody128invalid
Compiler

Compiled 15 to 15 computations (0% saved)

simplify20.0ms (0.8%)

Algorithm
egg-herbie
Rules
73×cancel-sign-sub-inv_binary64_6523
51×sub-neg_binary64_6550
46×distribute-rgt-in_binary64_6507
38×associate--r+_binary64_6493
31×distribute-neg-in_binary64_6518
29×distribute-lft-in_binary64_6506
27×unsub-neg_binary64_6551
25×distribute-rgt-neg-in_binary64_6515 associate-+l-_binary64_6492
21×associate-+l+_binary64_6490
19×associate-+r+_binary64_6489
18×+-commutative_binary64_6487
17×neg-mul-1_binary64_6553
15×associate--l+_binary64_6494
13×distribute-rgt-out--_binary64_6511
12×associate-*l*_binary64_6498
11×neg-sub0_binary64_6552 associate-*r*_binary64_6497 *-commutative_binary64_6488
10×distribute-lft-neg-out_binary64_6516
sub0-neg_binary64_6544 associate--r-_binary64_6496 associate-+r-_binary64_6491
mul0-rgt_binary64_6540 mul0-lft_binary64_6539 distribute-lft-neg-in_binary64_6514
*-rgt-identity_binary64_6547 +-lft-identity_binary64_6541
*-lft-identity_binary64_6546 remove-double-neg_binary64_6545
+-rgt-identity_binary64_6542 distribute-rgt-out_binary64_6510
distribute-rgt1-in_binary64_6513
1-exp_binary64_6601 --rgt-identity_binary64_6543 distribute-rgt-neg-out_binary64_6517 distribute-lft1-in_binary64_6512
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_6820 erf-erfc_binary64_6819 erf-odd_binary64_6818 if-if-and-not_binary64_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 not-gte_binary64_6809 not-lte_binary64_6808 not-gt_binary64_6807 not-lt_binary64_6806 gte-same_binary64_6805 lte-same_binary64_6804 gt-same_binary64_6803 lt-same_binary64_6802 sinh---cosh_binary64_6749 sinh-+-cosh_binary64_6748 sinh-cosh_binary64_6747 tanh-def-c_binary64_6746 tanh-def-b_binary64_6745 tanh-def-a_binary64_6744 cosh-def_binary64_6743 sinh-def_binary64_6742 tan-neg_binary64_6689 cos-neg_binary64_6688 sin-neg_binary64_6687 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 hang-m-tan_binary64_6683 hang-p-tan_binary64_6682 hang-m0-tan_binary64_6681 hang-p0-tan_binary64_6680 hang-0m-tan_binary64_6679 hang-0p-tan_binary64_6678 tan-+PI/2_binary64_6677 tan-+PI_binary64_6676 tan-PI_binary64_6675 tan-PI/3_binary64_6674 tan-PI/4_binary64_6673 tan-PI/6_binary64_6672 cos-+PI/2_binary64_6671 cos-+PI_binary64_6670 cos-PI_binary64_6669 cos-PI/2_binary64_6668 cos-PI/3_binary64_6667 cos-PI/4_binary64_6666 cos-PI/6_binary64_6665 sin-+PI/2_binary64_6664 sin-+PI_binary64_6663 sin-PI_binary64_6662 sin-PI/2_binary64_6661 sin-PI/3_binary64_6660 sin-PI/4_binary64_6659 sin-PI/6_binary64_6658 sub-1-sin_binary64_6657 sub-1-cos_binary64_6656 -1-add-sin_binary64_6655 -1-add-cos_binary64_6654 1-sub-sin_binary64_6653 1-sub-cos_binary64_6652 cos-sin-sum_binary64_6651 log-E_binary64_6647 log-pow_binary64_6646 log-rec_binary64_6645 log-div_binary64_6644 log-prod_binary64_6643 pow-base-0_binary64_6641 unpow1/3_binary64_6624 unpow3_binary64_6623 unpow2_binary64_6622 unpow1/2_binary64_6621 pow-plus_binary64_6620 exp-to-pow_binary64_6619 pow-base-1_binary64_6617 unpow0_binary64_6616 unpow1_binary64_6615 unpow-1_binary64_6614 exp-lft-cube_binary64_6613 exp-lft-sqr_binary64_6612 exp-cbrt_binary64_6611 exp-sqrt_binary64_6610 exp-prod_binary64_6609 div-exp_binary64_6608 rec-exp_binary64_6607 prod-exp_binary64_6606 exp-diff_binary64_6605 exp-neg_binary64_6604 exp-sum_binary64_6603 e-exp-1_binary64_6602 exp-1-e_binary64_6600 exp-0_binary64_6599 rem-log-exp_binary64_6598 rem-exp-log_binary64_6597 cube-unmult_binary64_6594 cube-mult_binary64_6587 cube-div_binary64_6586 cube-prod_binary64_6585 cube-neg_binary64_6584 rem-3cbrt-rft_binary64_6583 rem-3cbrt-lft_binary64_6582 rem-cbrt-cube_binary64_6581 rem-cube-cbrt_binary64_6580 sqr-abs_binary64_6572 sqr-neg_binary64_6571 rem-sqrt-square_binary64_6570 rem-square-sqrt_binary64_6569 times-frac_binary64_6563 div-sub_binary64_6562 mul-1-neg_binary64_6549 /-rgt-identity_binary64_6548 div0_binary64_6538 *-inverses_binary64_6537 +-inverses_binary64_6536 lft-mult-inverse_binary64_6535 rgt-mult-inverse_binary64_6534 remove-double-div_binary64_6533 pow-sqr_binary64_6530 sqr-pow_binary64_6529 difference-of-sqr--1_binary64_6528 difference-of-sqr-1_binary64_6527 difference-of-squares_binary64_6526 unswap-sqr_binary64_6525 swap-sqr_binary64_6524 cancel-sign-sub_binary64_6522 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 distribute-neg-out_binary64_6519 distribute-lft-out--_binary64_6509 distribute-lft-out_binary64_6508 count-2_binary64_6505 associate-/l/_binary64_6504 associate-/r/_binary64_6503 associate-/l*_binary64_6502 associate-/r*_binary64_6501 associate-*l/_binary64_6500 associate-*r/_binary64_6499 associate--l-_binary64_6495
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11310
22510
34110
48410
513810
626010
733310
830810
929510
1025610

prune2.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done000
Total011
Error
0.0b
Counts
1 → 1
Compiler

Compiled 7 to 6 computations (14.3% saved)

localize5.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

rewrite53.0ms (2.1%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-sqr-sqrt_binary64_6579 *-un-lft-identity_binary64_6557
add-cube-cbrt_binary64_6592
pow1_binary64_6618 add-exp-log_binary64_6595 add-log-exp_binary64_6596 add-cbrt-cube_binary64_6593 associate-*l*_binary64_6498
associate-*r*_binary64_6497 cancel-sign-sub-inv_binary64_6523
associate-*l/_binary64_6500
pow-prod-down_binary64_6628 prod-exp_binary64_6606 cbrt-unprod_binary64_6590 unswap-sqr_binary64_6525 flip3-+_binary64_6560 flip-+_binary64_6531 distribute-lft-out_binary64_6508 *-commutative_binary64_6488 diff-log_binary64_6649 flip3--_binary64_6561 sub-neg_binary64_6550 flip--_binary64_6532
Counts
2 → 35
Calls

2 calls:

11.0ms
(*.f64 (+.f64 x 1) y)
7.0ms
(-.f64 (*.f64 (+.f64 x 1) y) x)
Compiler

Compiled 493 to 319 computations (35.3% saved)

series201.0ms (8.1%)

Error
0b
Counts
2 → 21
Calls

2 calls:

107.0ms
(-.f64 (*.f64 (+.f64 x 1) y) x)
80.0ms
(*.f64 (+.f64 x 1) y)
Compiler

Compiled 330 to 200 computations (39.4% saved)

simplify108.0ms (4.4%)

Algorithm
egg-herbie
Rules
323×associate-*l*_binary64_6498
293×distribute-rgt-in_binary64_6507
285×distribute-lft-in_binary64_6506
269×associate-*r*_binary64_6497
266×exp-prod_binary64_6609
257×unswap-sqr_binary64_6525
254×distribute-rgt-out_binary64_6510
228×unsub-neg_binary64_6551
191×+-commutative_binary64_6487
154×neg-sub0_binary64_6552
149×neg-mul-1_binary64_6553
144×sub-neg_binary64_6550
128×distribute-lft-out_binary64_6508
111×cancel-sign-sub-inv_binary64_6523
109×sqr-pow_binary64_6529
106×difference-of-squares_binary64_6526
77×distribute-lft-neg-out_binary64_6516
74×distribute-rgt-neg-out_binary64_6517
71×exp-sum_binary64_6603
64×*-commutative_binary64_6488
60×times-frac_binary64_6563
52×exp-diff_binary64_6605 associate-+r+_binary64_6489
51×associate--l+_binary64_6494 associate-+l+_binary64_6490
45×cube-prod_binary64_6585
31×*-lft-identity_binary64_6546
29×*-rgt-identity_binary64_6547
26×associate--r+_binary64_6493
25×pow-sqr_binary64_6530
22×distribute-rgt-neg-in_binary64_6515
21×distribute-lft-neg-in_binary64_6514
20×log-prod_binary64_6643 sqr-neg_binary64_6571 swap-sqr_binary64_6524 distribute-neg-in_binary64_6518
19×associate-+l-_binary64_6492
17×distribute-lft1-in_binary64_6512
16×unpow3_binary64_6623
15×sub0-neg_binary64_6544 distribute-rgt-out--_binary64_6511
14×cube-unmult_binary64_6594 associate-+r-_binary64_6491
13×pow-plus_binary64_6620 distribute-rgt1-in_binary64_6513
12×+-rgt-identity_binary64_6542
10×remove-double-neg_binary64_6545 mul0-rgt_binary64_6540 mul0-lft_binary64_6539
distribute-lft-out--_binary64_6509
div-sub_binary64_6562 associate-/l*_binary64_6502
unpow1/2_binary64_6621 mul-1-neg_binary64_6549
cube-mult_binary64_6587
cube-neg_binary64_6584 rem-sqrt-square_binary64_6570 difference-of-sqr--1_binary64_6528 associate-*r/_binary64_6499
div-exp_binary64_6608 exp-neg_binary64_6604 --rgt-identity_binary64_6543
distribute-neg-out_binary64_6519
unpow2_binary64_6622 prod-exp_binary64_6606 1-exp_binary64_6601 exp-1-e_binary64_6600 rem-3cbrt-lft_binary64_6582 rem-square-sqrt_binary64_6569 difference-of-sqr-1_binary64_6527 count-2_binary64_6505 associate-/l/_binary64_6504 associate-/r/_binary64_6503 associate-/r*_binary64_6501 associate--r-_binary64_6496
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_6820 erf-erfc_binary64_6819 erf-odd_binary64_6818 if-if-and-not_binary64_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 not-gte_binary64_6809 not-lte_binary64_6808 not-gt_binary64_6807 not-lt_binary64_6806 gte-same_binary64_6805 lte-same_binary64_6804 gt-same_binary64_6803 lt-same_binary64_6802 sinh---cosh_binary64_6749 sinh-+-cosh_binary64_6748 sinh-cosh_binary64_6747 tanh-def-c_binary64_6746 tanh-def-b_binary64_6745 tanh-def-a_binary64_6744 cosh-def_binary64_6743 sinh-def_binary64_6742 tan-neg_binary64_6689 cos-neg_binary64_6688 sin-neg_binary64_6687 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 hang-m-tan_binary64_6683 hang-p-tan_binary64_6682 hang-m0-tan_binary64_6681 hang-p0-tan_binary64_6680 hang-0m-tan_binary64_6679 hang-0p-tan_binary64_6678 tan-+PI/2_binary64_6677 tan-+PI_binary64_6676 tan-PI_binary64_6675 tan-PI/3_binary64_6674 tan-PI/4_binary64_6673 tan-PI/6_binary64_6672 cos-+PI/2_binary64_6671 cos-+PI_binary64_6670 cos-PI_binary64_6669 cos-PI/2_binary64_6668 cos-PI/3_binary64_6667 cos-PI/4_binary64_6666 cos-PI/6_binary64_6665 sin-+PI/2_binary64_6664 sin-+PI_binary64_6663 sin-PI_binary64_6662 sin-PI/2_binary64_6661 sin-PI/3_binary64_6660 sin-PI/4_binary64_6659 sin-PI/6_binary64_6658 sub-1-sin_binary64_6657 sub-1-cos_binary64_6656 -1-add-sin_binary64_6655 -1-add-cos_binary64_6654 1-sub-sin_binary64_6653 1-sub-cos_binary64_6652 cos-sin-sum_binary64_6651 log-E_binary64_6647 log-pow_binary64_6646 log-rec_binary64_6645 log-div_binary64_6644 pow-base-0_binary64_6641 unpow1/3_binary64_6624 exp-to-pow_binary64_6619 pow-base-1_binary64_6617 unpow0_binary64_6616 unpow1_binary64_6615 unpow-1_binary64_6614 exp-lft-cube_binary64_6613 exp-lft-sqr_binary64_6612 exp-cbrt_binary64_6611 exp-sqrt_binary64_6610 rec-exp_binary64_6607 e-exp-1_binary64_6602 exp-0_binary64_6599 rem-log-exp_binary64_6598 rem-exp-log_binary64_6597 cube-div_binary64_6586 rem-3cbrt-rft_binary64_6583 rem-cbrt-cube_binary64_6581 rem-cube-cbrt_binary64_6580 sqr-abs_binary64_6572 /-rgt-identity_binary64_6548 +-lft-identity_binary64_6541 div0_binary64_6538 *-inverses_binary64_6537 +-inverses_binary64_6536 lft-mult-inverse_binary64_6535 rgt-mult-inverse_binary64_6534 remove-double-div_binary64_6533 cancel-sign-sub_binary64_6522 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 associate-*l/_binary64_6500 associate--l-_binary64_6495
Counts
56 → 45
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
077568
1178547
2500541
31886541
43272541
54859541
64971541
74937541

prune30.0ms (1.2%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New43245
Fresh000
Picked101
Done000
Total44246
Error
0b
Counts
46 → 2
Compiler

Compiled 475 to 137 computations (71.2% saved)

localize7.0ms (0.3%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 y (*.f64 y x))
0.0b
(-.f64 (+.f64 y (*.f64 y x)) x)

rewrite31.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-log-exp_binary64_6596
add-sqr-sqrt_binary64_6579 *-un-lft-identity_binary64_6557
add-cube-cbrt_binary64_6592 cancel-sign-sub-inv_binary64_6523
sum-log_binary64_6648 diff-log_binary64_6649 pow1_binary64_6618 add-exp-log_binary64_6595 add-cbrt-cube_binary64_6593
flip3--_binary64_6561 sub-neg_binary64_6550 flip--_binary64_6532 difference-of-squares_binary64_6526 distribute-lft-out--_binary64_6509 associate--l+_binary64_6494 flip3-+_binary64_6560 flip-+_binary64_6531 +-commutative_binary64_6487
Counts
2 → 29
Calls

2 calls:

6.0ms
(-.f64 (+.f64 y (*.f64 y x)) x)
3.0ms
(+.f64 y (*.f64 y x))
Compiler

Compiled 420 to 107 computations (74.5% saved)

series184.0ms (7.4%)

Error
0b
Counts
2 → 21
Calls

2 calls:

101.0ms
(-.f64 (+.f64 y (*.f64 y x)) x)
72.0ms
(+.f64 y (*.f64 y x))
Compiler

Compiled 330 to 200 computations (39.4% saved)

simplify76.0ms (3.1%)

Algorithm
egg-herbie
Rules
391×distribute-rgt-out_binary64_6510
349×associate-*l*_binary64_6498
325×associate-*r*_binary64_6497
251×distribute-rgt-in_binary64_6507
244×exp-prod_binary64_6609
241×cancel-sign-sub-inv_binary64_6523
227×distribute-lft-out_binary64_6508
226×distribute-lft-in_binary64_6506
225×neg-mul-1_binary64_6553
115×distribute-lft-neg-out_binary64_6516
106×distribute-rgt-neg-out_binary64_6517
102×unswap-sqr_binary64_6525
86×times-frac_binary64_6563
75×unsub-neg_binary64_6551
67×sub-neg_binary64_6550
66×distribute-rgt-neg-in_binary64_6515
64×cube-prod_binary64_6585 distribute-rgt-out--_binary64_6511 *-commutative_binary64_6488
59×associate-+l+_binary64_6490
58×exp-sum_binary64_6603
57×distribute-lft-neg-in_binary64_6514
50×swap-sqr_binary64_6524 associate-+l-_binary64_6492
48×+-commutative_binary64_6487
46×sqr-pow_binary64_6529
44×distribute-lft-out--_binary64_6509
42×associate-+r-_binary64_6491
41×associate-+r+_binary64_6489
40×associate--l+_binary64_6494
39×exp-diff_binary64_6605 associate--r+_binary64_6493
25×neg-sub0_binary64_6552
22×difference-of-squares_binary64_6526
17×unpow3_binary64_6623 *-rgt-identity_binary64_6547 *-lft-identity_binary64_6546 distribute-neg-in_binary64_6518 distribute-rgt1-in_binary64_6513
16×associate-/l*_binary64_6502
15×sqr-neg_binary64_6571
13×distribute-lft1-in_binary64_6512
12×cube-unmult_binary64_6594 +-rgt-identity_binary64_6542 mul0-rgt_binary64_6540 mul0-lft_binary64_6539
11×cube-mult_binary64_6587
10×log-prod_binary64_6643
pow-plus_binary64_6620 div-sub_binary64_6562
sub0-neg_binary64_6544
pow-sqr_binary64_6530
associate-/r/_binary64_6503 associate-/r*_binary64_6501 associate-*r/_binary64_6499
div-exp_binary64_6608 associate-/l/_binary64_6504
mul-1-neg_binary64_6549
exp-neg_binary64_6604 cube-neg_binary64_6584
rem-sqrt-square_binary64_6570 remove-double-neg_binary64_6545 associate--r-_binary64_6496
prod-exp_binary64_6606 1-exp_binary64_6601 exp-1-e_binary64_6600 rem-3cbrt-lft_binary64_6582 rem-square-sqrt_binary64_6569 difference-of-sqr--1_binary64_6528 associate-*l/_binary64_6500
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_6820 erf-erfc_binary64_6819 erf-odd_binary64_6818 if-if-and-not_binary64_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 not-gte_binary64_6809 not-lte_binary64_6808 not-gt_binary64_6807 not-lt_binary64_6806 gte-same_binary64_6805 lte-same_binary64_6804 gt-same_binary64_6803 lt-same_binary64_6802 sinh---cosh_binary64_6749 sinh-+-cosh_binary64_6748 sinh-cosh_binary64_6747 tanh-def-c_binary64_6746 tanh-def-b_binary64_6745 tanh-def-a_binary64_6744 cosh-def_binary64_6743 sinh-def_binary64_6742 tan-neg_binary64_6689 cos-neg_binary64_6688 sin-neg_binary64_6687 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 hang-m-tan_binary64_6683 hang-p-tan_binary64_6682 hang-m0-tan_binary64_6681 hang-p0-tan_binary64_6680 hang-0m-tan_binary64_6679 hang-0p-tan_binary64_6678 tan-+PI/2_binary64_6677 tan-+PI_binary64_6676 tan-PI_binary64_6675 tan-PI/3_binary64_6674 tan-PI/4_binary64_6673 tan-PI/6_binary64_6672 cos-+PI/2_binary64_6671 cos-+PI_binary64_6670 cos-PI_binary64_6669 cos-PI/2_binary64_6668 cos-PI/3_binary64_6667 cos-PI/4_binary64_6666 cos-PI/6_binary64_6665 sin-+PI/2_binary64_6664 sin-+PI_binary64_6663 sin-PI_binary64_6662 sin-PI/2_binary64_6661 sin-PI/3_binary64_6660 sin-PI/4_binary64_6659 sin-PI/6_binary64_6658 sub-1-sin_binary64_6657 sub-1-cos_binary64_6656 -1-add-sin_binary64_6655 -1-add-cos_binary64_6654 1-sub-sin_binary64_6653 1-sub-cos_binary64_6652 cos-sin-sum_binary64_6651 log-E_binary64_6647 log-pow_binary64_6646 log-rec_binary64_6645 log-div_binary64_6644 pow-base-0_binary64_6641 unpow1/3_binary64_6624 unpow2_binary64_6622 unpow1/2_binary64_6621 exp-to-pow_binary64_6619 pow-base-1_binary64_6617 unpow0_binary64_6616 unpow1_binary64_6615 unpow-1_binary64_6614 exp-lft-cube_binary64_6613 exp-lft-sqr_binary64_6612 exp-cbrt_binary64_6611 exp-sqrt_binary64_6610 rec-exp_binary64_6607 e-exp-1_binary64_6602 exp-0_binary64_6599 rem-log-exp_binary64_6598 rem-exp-log_binary64_6597 cube-div_binary64_6586 rem-3cbrt-rft_binary64_6583 rem-cbrt-cube_binary64_6581 rem-cube-cbrt_binary64_6580 sqr-abs_binary64_6572 /-rgt-identity_binary64_6548 --rgt-identity_binary64_6543 +-lft-identity_binary64_6541 div0_binary64_6538 *-inverses_binary64_6537 +-inverses_binary64_6536 lft-mult-inverse_binary64_6535 rgt-mult-inverse_binary64_6534 remove-double-div_binary64_6533 difference-of-sqr-1_binary64_6527 cancel-sign-sub_binary64_6522 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 distribute-neg-out_binary64_6519 count-2_binary64_6505 associate--l-_binary64_6495
Counts
50 → 40
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
071562
1180538
2528529
32188529
44433529
55047529

prune24.0ms (1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New40040
Fresh011
Picked011
Done000
Total40242
Error
0b
Counts
42 → 2
Compiler

Compiled 433 to 95 computations (78.1% saved)

localize7.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.0b
(sqrt.f64 (+.f64 x 1))
0.0b
(-.f64 (*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1)))) x)
0.1b
(*.f64 y (sqrt.f64 (+.f64 x 1)))
0.1b
(*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1))))

rewrite160.0ms (6.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
17×*-un-lft-identity_binary64_6557
16×add-sqr-sqrt_binary64_6579 sqrt-div_binary64_6574
13×sqrt-prod_binary64_6573
12×pow1_binary64_6618
11×add-exp-log_binary64_6595 add-cbrt-cube_binary64_6593 add-cube-cbrt_binary64_6592
10×associate-*r/_binary64_6499 associate-*l*_binary64_6498
flip3-+_binary64_6560 flip-+_binary64_6531 associate-*r*_binary64_6497
add-log-exp_binary64_6596
pow-prod-down_binary64_6628 prod-exp_binary64_6606 cbrt-unprod_binary64_6590 frac-times_binary64_6567
distribute-lft-out_binary64_6508 cancel-sign-sub-inv_binary64_6523
associate-*l/_binary64_6500 *-commutative_binary64_6488 unswap-sqr_binary64_6525
diff-log_binary64_6649 flip3--_binary64_6561 sub-neg_binary64_6550 flip--_binary64_6532 pow1/2_binary64_6637 sqrt-pow1_binary64_6575 rem-sqrt-square_binary64_6570
Counts
4 → 85
Calls

4 calls:

14.0ms
(-.f64 (*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1)))) x)
14.0ms
(*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1))))
8.0ms
(*.f64 y (sqrt.f64 (+.f64 x 1)))
4.0ms
(sqrt.f64 (+.f64 x 1))
Compiler

Compiled 1893 to 1374 computations (27.4% saved)

series326.0ms (13.2%)

Error
0b
Counts
4 → 36
Calls

4 calls:

112.0ms
(-.f64 (*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1)))) x)
88.0ms
(*.f64 y (sqrt.f64 (+.f64 x 1)))
79.0ms
(*.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 y (sqrt.f64 (+.f64 x 1))))
23.0ms
(sqrt.f64 (+.f64 x 1))
Compiler

Compiled 903 to 631 computations (30.1% saved)

simplify157.0ms (6.3%)

Algorithm
egg-herbie
Rules
621×associate-+l+_binary64_6490
574×associate-+r+_binary64_6489
319×*-commutative_binary64_6488
310×unswap-sqr_binary64_6525
206×unsub-neg_binary64_6551
203×distribute-rgt-in_binary64_6507
196×sub-neg_binary64_6550
190×cancel-sign-sub-inv_binary64_6523
185×distribute-lft-in_binary64_6506
139×sqr-pow_binary64_6529
138×associate-*r*_binary64_6497
136×times-frac_binary64_6563 associate-*l*_binary64_6498
121×+-commutative_binary64_6487
112×exp-prod_binary64_6609
104×neg-mul-1_binary64_6553
96×neg-sub0_binary64_6552
87×difference-of-squares_binary64_6526
70×exp-sum_binary64_6603
59×distribute-rgt-out_binary64_6510 associate-+l-_binary64_6492
57×associate--l+_binary64_6494
56×distribute-rgt-neg-in_binary64_6515
54×associate--r+_binary64_6493
46×exp-diff_binary64_6605
42×distribute-lft-neg-in_binary64_6514
39×cube-prod_binary64_6585
38×+-rgt-identity_binary64_6542
37×pow-sqr_binary64_6530
31×*-rgt-identity_binary64_6547 distribute-rgt-out--_binary64_6511
30×associate-+r-_binary64_6491
29×log-prod_binary64_6643
28×sub0-neg_binary64_6544 swap-sqr_binary64_6524
24×distribute-lft-neg-out_binary64_6516
22×distribute-lft-out_binary64_6508
21×*-lft-identity_binary64_6546 distribute-rgt-neg-out_binary64_6517
20×associate-/l*_binary64_6502
16×rem-sqrt-square_binary64_6570
15×unpow3_binary64_6623
13×distribute-rgt1-in_binary64_6513
12×distribute-lft-out--_binary64_6509
11×unpow1/2_binary64_6621
10×cube-unmult_binary64_6594 div-sub_binary64_6562 mul0-rgt_binary64_6540 mul0-lft_binary64_6539 associate-/r*_binary64_6501
distribute-neg-in_binary64_6518
sqr-neg_binary64_6571 rem-square-sqrt_binary64_6569
remove-double-neg_binary64_6545 difference-of-sqr--1_binary64_6528 associate-/l/_binary64_6504 associate-*r/_binary64_6499
cube-mult_binary64_6587 +-lft-identity_binary64_6541 associate-/r/_binary64_6503
pow-plus_binary64_6620 div-exp_binary64_6608 mul-1-neg_binary64_6549 --rgt-identity_binary64_6543 difference-of-sqr-1_binary64_6527
unpow2_binary64_6622 cube-neg_binary64_6584 distribute-neg-out_binary64_6519 distribute-lft1-in_binary64_6512 count-2_binary64_6505
unpow1_binary64_6615 1-exp_binary64_6601 exp-1-e_binary64_6600 rem-3cbrt-lft_binary64_6582 cancel-sign-sub_binary64_6522 associate--r-_binary64_6496
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_6820 erf-erfc_binary64_6819 erf-odd_binary64_6818 if-if-and-not_binary64_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 not-gte_binary64_6809 not-lte_binary64_6808 not-gt_binary64_6807 not-lt_binary64_6806 gte-same_binary64_6805 lte-same_binary64_6804 gt-same_binary64_6803 lt-same_binary64_6802 sinh---cosh_binary64_6749 sinh-+-cosh_binary64_6748 sinh-cosh_binary64_6747 tanh-def-c_binary64_6746 tanh-def-b_binary64_6745 tanh-def-a_binary64_6744 cosh-def_binary64_6743 sinh-def_binary64_6742 tan-neg_binary64_6689 cos-neg_binary64_6688 sin-neg_binary64_6687 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 hang-m-tan_binary64_6683 hang-p-tan_binary64_6682 hang-m0-tan_binary64_6681 hang-p0-tan_binary64_6680 hang-0m-tan_binary64_6679 hang-0p-tan_binary64_6678 tan-+PI/2_binary64_6677 tan-+PI_binary64_6676 tan-PI_binary64_6675 tan-PI/3_binary64_6674 tan-PI/4_binary64_6673 tan-PI/6_binary64_6672 cos-+PI/2_binary64_6671 cos-+PI_binary64_6670 cos-PI_binary64_6669 cos-PI/2_binary64_6668 cos-PI/3_binary64_6667 cos-PI/4_binary64_6666 cos-PI/6_binary64_6665 sin-+PI/2_binary64_6664 sin-+PI_binary64_6663 sin-PI_binary64_6662 sin-PI/2_binary64_6661 sin-PI/3_binary64_6660 sin-PI/4_binary64_6659 sin-PI/6_binary64_6658 sub-1-sin_binary64_6657 sub-1-cos_binary64_6656 -1-add-sin_binary64_6655 -1-add-cos_binary64_6654 1-sub-sin_binary64_6653 1-sub-cos_binary64_6652 cos-sin-sum_binary64_6651 log-E_binary64_6647 log-pow_binary64_6646 log-rec_binary64_6645 log-div_binary64_6644 pow-base-0_binary64_6641 unpow1/3_binary64_6624 exp-to-pow_binary64_6619 pow-base-1_binary64_6617 unpow0_binary64_6616 unpow-1_binary64_6614 exp-lft-cube_binary64_6613 exp-lft-sqr_binary64_6612 exp-cbrt_binary64_6611 exp-sqrt_binary64_6610 rec-exp_binary64_6607 prod-exp_binary64_6606 exp-neg_binary64_6604 e-exp-1_binary64_6602 exp-0_binary64_6599 rem-log-exp_binary64_6598 rem-exp-log_binary64_6597 cube-div_binary64_6586 rem-3cbrt-rft_binary64_6583 rem-cbrt-cube_binary64_6581 rem-cube-cbrt_binary64_6580 sqr-abs_binary64_6572 /-rgt-identity_binary64_6548 div0_binary64_6538 *-inverses_binary64_6537 +-inverses_binary64_6536 lft-mult-inverse_binary64_6535 rgt-mult-inverse_binary64_6534 remove-double-div_binary64_6533 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 associate-*l/_binary64_6500 associate--l-_binary64_6495
Counts
121 → 88
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01481700
13291398
28531348
317031345
433451345
549081344
649981344
748651344

prune70.0ms (2.8%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New88088
Fresh000
Picked011
Done011
Total88290
Error
0b
Counts
90 → 2
Compiler

Compiled 1265 to 674 computations (46.7% saved)

regimes106.0ms (4.3%)

Accuracy

Total 0.0b remaining (94.9%)

Threshold costs 0.0b (94.9%)

Compiler

Compiled 600 to 518 computations (13.7% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64_6487
sub-neg_binary64_6550 *-commutative_binary64_6488
neg-mul-1_binary64_6553 neg-sub0_binary64_6552
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_6817 if-if-and_binary64_6816 if-if-or-not_binary64_6815 if-if-or_binary64_6814 if-not_binary64_6813 if-same_binary64_6812 if-false_binary64_6811 if-true_binary64_6810 tan-0_binary64_6686 cos-0_binary64_6685 sin-0_binary64_6684 unpow1_binary64_6615 e-exp-1_binary64_6602 1-exp_binary64_6601 exp-1-e_binary64_6600 exp-0_binary64_6599 sqr-abs_binary64_6572 sqr-neg_binary64_6571 unsub-neg_binary64_6551 mul-1-neg_binary64_6549 /-rgt-identity_binary64_6548 *-rgt-identity_binary64_6547 *-lft-identity_binary64_6546 remove-double-neg_binary64_6545 sub0-neg_binary64_6544 --rgt-identity_binary64_6543 +-rgt-identity_binary64_6542 +-lft-identity_binary64_6541 cancel-sign-sub-inv_binary64_6523 cancel-sign-sub_binary64_6522 distribute-neg-frac_binary64_6521 distribute-frac-neg_binary64_6520 distribute-neg-out_binary64_6519 distribute-neg-in_binary64_6518 distribute-rgt-neg-out_binary64_6517 distribute-lft-neg-out_binary64_6516 distribute-rgt-neg-in_binary64_6515 distribute-lft-neg-in_binary64_6514
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
11010
21510
31710
41810
51810

end0.0ms (0%)

sample667.0ms (27%)

Algorithm
intervals
Results
179.0ms7999×body128valid
2.0ms83×body128invalid
0.0msbody512valid
Compiler

Compiled 209 to 180 computations (13.9% saved)

Profiling

Loading profile data...