Details

Time bar (total: 1.7s)

analyze318.0ms (19%)

Algorithm
search
egg-herbie
Rules
2074×distribute-lft-out--_binary64
788×distribute-rgt-out--_binary64
756×unsub-neg_binary64
614×sub-neg_binary64
581×distribute-rgt-out_binary64
576×+-commutative_binary64
502×distribute-neg-in_binary64
416×distribute-rgt-in_binary64
367×distribute-lft-out_binary64
340×distribute-rgt1-in_binary64
241×neg-sub0_binary64
202×neg-mul-1_binary64
193×distribute-rgt-neg-in_binary64 distribute-lft-in_binary64
163×*-commutative_binary64
155×distribute-lft-neg-out_binary64
141×associate--r+_binary64
140×distribute-lft-neg-in_binary64
119×associate-+r+_binary64
112×distribute-neg-out_binary64
101×associate--l+_binary64
98×associate-+l+_binary64
97×associate-+l-_binary64
93×associate-+r-_binary64
91×associate--r-_binary64
88×associate-*l*_binary64
84×*-rgt-identity_binary64
81×cancel-sign-sub-inv_binary64 associate-*r*_binary64
78×distribute-rgt-neg-out_binary64
70×associate--l-_binary64
50×remove-double-neg_binary64
40×distribute-lft1-in_binary64
35×*-lft-identity_binary64
20×cancel-sign-sub_binary64
17×associate-/r*_binary64
10×sub0-neg_binary64
mul-1-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 swap-sqr_binary64
sqr-neg_binary64 --rgt-identity_binary64
+-rgt-identity_binary64
/-rgt-identity_binary64 associate-/l/_binary64
1-exp_binary64 +-lft-identity_binary64 difference-of-sqr-1_binary64
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 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 count-2_binary64 associate-/r/_binary64 associate-/l*_binary64 associate-*l/_binary64 associate-*r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11820
22420
33120
44520
56020
69620
721320
836420
948620
10109920
11187720
12193120
13216720
14231520
15231320
16239020
17264920
18321220
19420420
20473820
21478020
22479120
23478820
24457320
25436620
26450320
27456320
28460620
29754420
011
111
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%50%50%3
12.5%25%62.5%4
18.7%12.5%68.8%5
21.9%6.2%71.9%6
23.4%3.1%73.5%7
24.2%1.6%74.2%8
24.6%0.8%74.6%9
24.8%0.4%74.8%10
24.9%0.2%74.9%11
24.9%0.1%75%12
25%0%75%13
25%0%75%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample19.0ms (1.2%)

Algorithm
intervals
Results
13.0ms256×body128valid
Compiler

Compiled 27 to 22 computations (18.5% saved)

simplify291.0ms (17.4%)

Algorithm
egg-herbie
Rules
2074×distribute-lft-out--_binary64
788×distribute-rgt-out--_binary64
756×unsub-neg_binary64
614×sub-neg_binary64
581×distribute-rgt-out_binary64
576×+-commutative_binary64
502×distribute-neg-in_binary64
416×distribute-rgt-in_binary64
367×distribute-lft-out_binary64
340×distribute-rgt1-in_binary64
241×neg-sub0_binary64
202×neg-mul-1_binary64
193×distribute-rgt-neg-in_binary64 distribute-lft-in_binary64
163×*-commutative_binary64
155×distribute-lft-neg-out_binary64
141×associate--r+_binary64
140×distribute-lft-neg-in_binary64
119×associate-+r+_binary64
112×distribute-neg-out_binary64
101×associate--l+_binary64
98×associate-+l+_binary64
97×associate-+l-_binary64
93×associate-+r-_binary64
91×associate--r-_binary64
88×associate-*l*_binary64
84×*-rgt-identity_binary64
81×cancel-sign-sub-inv_binary64 associate-*r*_binary64
78×distribute-rgt-neg-out_binary64
70×associate--l-_binary64
50×remove-double-neg_binary64
40×distribute-lft1-in_binary64
35×*-lft-identity_binary64
20×cancel-sign-sub_binary64
17×associate-/r*_binary64
10×sub0-neg_binary64
mul-1-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 swap-sqr_binary64
sqr-neg_binary64 --rgt-identity_binary64
+-rgt-identity_binary64
/-rgt-identity_binary64 associate-/l/_binary64
1-exp_binary64 +-lft-identity_binary64 difference-of-sqr-1_binary64
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 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 count-2_binary64 associate-/r/_binary64 associate-/l*_binary64 associate-*l/_binary64 associate-*r/_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11820
22420
33120
44520
56020
69620
721320
836420
948620
10109920
11187720
12193120
13216720
14231520
15231320
16239020
17264920
18321220
19420420
20473820
21478020
22479120
23478820
24457320
25436620
26450320
27456320
28460620
29754420

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 13 to 10 computations (23.1% saved)

localize9.0ms (0.5%)

Local error

Found 3 expressions with local error:

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

rewrite116.0ms (6.9%)

Algorithm
rewrite-expression-head
Error
0b
Rules
45×*-un-lft-identity_binary64
37×times-frac_binary64
34×add-sqr-sqrt_binary64
28×sqrt-prod_binary64
25×add-cube-cbrt_binary64
10×difference-of-squares_binary64
distribute-lft-out_binary64 associate-/l*_binary64
div-inv_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64 sqrt-div_binary64
distribute-rgt-out_binary64 associate-/r*_binary64
flip3--_binary64 flip--_binary64 associate-/l/_binary64
sum-log_binary64 frac-add_binary64 flip3-+_binary64 flip-+_binary64 distribute-rgt1-in_binary64 +-commutative_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 div-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 clear-num_binary64
Counts
3 → 90
Calls

3 calls:

22.0ms
(+.f64 (/.f64 1 x) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x))
7.0ms
(sqrt.f64 (-.f64 1 (*.f64 x x)))
6.0ms
(/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x)
Compiler

Compiled 1820 to 1143 computations (37.2% saved)

series49.0ms (2.9%)

Error
0b
Counts
3 → 18
Calls

3 calls:

12.0ms
(+.f64 (/.f64 1 x) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x))
11.0ms
(/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x)
10.0ms
(sqrt.f64 (-.f64 1 (*.f64 x x)))
Compiler

Compiled 544 to 465 computations (14.5% saved)

simplify97.0ms (5.8%)

Algorithm
egg-herbie
Rules
478×associate-/l/_binary64
305×distribute-rgt-neg-in_binary64
256×distribute-lft-neg-in_binary64 distribute-rgt-in_binary64
222×distribute-rgt-out_binary64
214×associate-*r*_binary64
213×associate-*l*_binary64
208×times-frac_binary64
200×sub-neg_binary64
199×distribute-lft-in_binary64
184×cancel-sign-sub-inv_binary64
134×associate-/l*_binary64
120×associate-/r*_binary64
106×unswap-sqr_binary64
87×distribute-lft-out_binary64
81×distribute-rgt-out--_binary64
79×*-commutative_binary64
75×div-sub_binary64
51×distribute-neg-frac_binary64
50×neg-sub0_binary64 associate-*l/_binary64
46×neg-mul-1_binary64 +-commutative_binary64
42×associate-*r/_binary64
41×unsub-neg_binary64 associate--r+_binary64
40×sqr-pow_binary64
38×associate-+l+_binary64
36×associate-+l-_binary64
34×distribute-neg-in_binary64 distribute-lft-neg-out_binary64 associate-/r/_binary64
29×cube-prod_binary64 distribute-rgt1-in_binary64
24×log-prod_binary64
23×distribute-lft-out--_binary64
22×sub0-neg_binary64
21×distribute-rgt-neg-out_binary64 associate--l+_binary64 associate-+r-_binary64
20×cube-div_binary64
17×exp-prod_binary64 swap-sqr_binary64
16×*-lft-identity_binary64 associate-+r+_binary64
15×log-div_binary64 *-rgt-identity_binary64
13×/-rgt-identity_binary64
11×+-rgt-identity_binary64
associate--l-_binary64
cube-unmult_binary64
pow-plus_binary64 difference-of-sqr-1_binary64
unpow3_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64
remove-double-div_binary64
log-rec_binary64 cube-mult_binary64
rem-sqrt-square_binary64 mul0-rgt_binary64 mul0-lft_binary64 difference-of-squares_binary64
log-pow_binary64 mul-1-neg_binary64 *-inverses_binary64 distribute-neg-out_binary64 distribute-lft1-in_binary64 count-2_binary64 associate--r-_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 prod-exp_binary64 1-exp_binary64 exp-1-e_binary64 rem-square-sqrt_binary64 div0_binary64 +-inverses_binary64 pow-sqr_binary64 difference-of-sqr--1_binary64
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 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 remove-double-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64
Counts
108 → 54
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01601965
13481917
28541911
323621908
448811908

prune41.0ms (2.5%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New54054
Fresh000
Picked011
Done000
Total54155
Error
0b
Counts
55 → 1
Compiler

Compiled 839 to 566 computations (32.5% saved)

regimes53.0ms (3.2%)

Accuracy

Total 0.0b remaining (13.1%)

Threshold costs 0.0b (13.1%)

Compiler

Compiled 262 to 229 computations (12.6% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
neg-mul-1_binary64 neg-sub0_binary64 *-commutative_binary64
1-exp_binary64 cancel-sign-sub-inv_binary64 distribute-lft-neg-out_binary64 distribute-rgt-neg-in_binary64
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 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 unpow1_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 sqr-abs_binary64 sqr-neg_binary64 unsub-neg_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 remove-double-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-rgt-neg-out_binary64 distribute-lft-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11820
22420
32820
43020
52920

end1.0ms (0%)

Compiler

Compiled 13 to 10 computations (23.1% saved)

sample674.0ms (40.3%)

Algorithm
intervals
Results
414.0ms8000×body128valid
0.0msbody128nan
Compiler

Compiled 43 to 38 computations (11.6% saved)

Profiling

Loading profile data...