Details

Time bar (total: 4.1s)

analyze531.0ms (13.1%)

Algorithm
search
egg-herbie
Rules
1392×div-sub_binary64
618×*-commutative_binary64
542×sub-neg_binary64
532×unsub-neg_binary64
468×associate-/r/_binary64
455×distribute-rgt-out_binary64
453×distribute-rgt-out--_binary64
446×associate-/r*_binary64
352×distribute-neg-in_binary64
266×cancel-sign-sub-inv_binary64
264×times-frac_binary64
252×neg-mul-1_binary64
247×neg-sub0_binary64
246×+-commutative_binary64
228×log-prod_binary64
224×distribute-rgt-in_binary64
208×associate-*l/_binary64
200×distribute-neg-frac_binary64
171×distribute-rgt-neg-in_binary64
168×distribute-lft-neg-in_binary64 distribute-lft-in_binary64
167×distribute-neg-out_binary64 associate-+l-_binary64
160×associate--r+_binary64
148×log-div_binary64
145×associate-/l*_binary64
128×associate--r-_binary64
120×associate--l-_binary64
116×associate-*r/_binary64
112×distribute-lft-neg-out_binary64
102×associate-+r-_binary64
101×associate--l+_binary64
90×distribute-rgt-neg-out_binary64
70×distribute-frac-neg_binary64
58×associate-+l+_binary64
54×associate-/l/_binary64
50×/-rgt-identity_binary64 associate-+r+_binary64
46×associate-*r*_binary64
23×remove-double-neg_binary64 sub0-neg_binary64 +-rgt-identity_binary64
22×log-rec_binary64
21×*-rgt-identity_binary64 associate-*l*_binary64
18×mul0-rgt_binary64
16×mul0-lft_binary64
15×*-lft-identity_binary64 distribute-lft-out--_binary64
13×--rgt-identity_binary64
+-lft-identity_binary64 cancel-sign-sub_binary64
mul-1-neg_binary64 distribute-lft-out_binary64
div0_binary64
1-exp_binary64 +-inverses_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 count-2_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 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 fabs-div_binary64 fabs-mul_binary64 fabs-sqr_binary64 fabs-neg_binary64 fabs-sub_binary64 fabs-fabs_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_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-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 swap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02048
13848
25748
311148
425448
554048
692048
7113048
8172848
9244048
10300948
11311548
12323548
13331348
14333548
15333548
16484348
17434948
18480548
19426548
20431948
21431948
22431948
23536548
033
133
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%87.4%12.6%5
9.4%65.5%25.1%6
14%60.8%25.1%7
19.5%49.1%31.4%8
24.6%37.8%37.6%9
28.7%33.7%37.6%10
33.3%26%40.7%11
36.2%19.9%43.8%12
38.6%17.6%43.8%13
41.3%13.3%45.4%14
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample23.0ms (0.6%)

Algorithm
intervals
Results
11.0ms256×body128valid
1.0ms23×body128nan
0.0msbody128invalid
Compiler

Compiled 17 to 18 computations (-5.9% saved)

simplify282.0ms (7%)

Algorithm
egg-herbie
Rules
2687×associate--r-_binary64
827×unsub-neg_binary64
630×distribute-rgt-in_binary64
539×distribute-lft-in_binary64
287×sub-neg_binary64
237×distribute-neg-in_binary64
200×associate--l-_binary64
186×associate-*r*_binary64
175×+-commutative_binary64
160×associate--r+_binary64
153×associate-*l*_binary64 associate-+l+_binary64
144×*-commutative_binary64
137×associate-+r+_binary64
122×distribute-rgt-neg-out_binary64
121×associate--l+_binary64
117×distribute-lft-neg-out_binary64
106×distribute-neg-out_binary64
90×neg-sub0_binary64
89×cancel-sign-sub-inv_binary64
88×distribute-rgt-out--_binary64
77×distribute-rgt-out_binary64
74×distribute-rgt-neg-in_binary64
65×neg-mul-1_binary64
63×distribute-lft-neg-in_binary64
47×associate-+l-_binary64
46×mul0-rgt_binary64
45×mul0-lft_binary64
24×log-div_binary64
21×log-prod_binary64
19×associate-+r-_binary64
18×remove-double-neg_binary64
15×*-lft-identity_binary64
14×*-rgt-identity_binary64 associate-/r/_binary64
12×--rgt-identity_binary64
11×associate-/l*_binary64
10×div-sub_binary64 distribute-rgt1-in_binary64
sub0-neg_binary64 +-lft-identity_binary64
distribute-lft-out--_binary64
+-rgt-identity_binary64 associate-/r*_binary64
distribute-lft-out_binary64
log-rec_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-lft1-in_binary64
/-rgt-identity_binary64 div0_binary64
1-exp_binary64 mul-1-neg_binary64 count-2_binary64 associate-/l/_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 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 fabs-div_binary64 fabs-mul_binary64 fabs-sqr_binary64 fabs-neg_binary64 fabs-sub_binary64 fabs-fabs_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 times-frac_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-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 swap-sqr_binary64 associate-*l/_binary64 associate-*r/_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11412
22112
33612
47612
515612
625312
734912
851712
9116912
10134912
11155312
12173512
13182112
14184312
15254912
16240212
17248212
18248612
19249812
20250212
21252212
22252212
23275012
24267612
25263812
26263812
27506312

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 8 to 7 computations (12.5% saved)

localize7.0ms (0.2%)

Local error

Found 3 expressions with local error:

0.0b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
0.3b
(*.f64 x (log.f64 (/.f64 x y)))
14.9b
(log.f64 (/.f64 x y))

rewrite164.0ms (4%)

Algorithm
rewrite-expression-head
Error
1.5b
Rules
65×log-prod_binary64
45×times-frac_binary64
43×add-sqr-sqrt_binary64
41×add-cube-cbrt_binary64 *-un-lft-identity_binary64
26×distribute-rgt-in_binary64 distribute-lft-in_binary64 associate--l+_binary64
add-exp-log_binary64
pow1_binary64
div-inv_binary64 add-log-exp_binary64 add-cbrt-cube_binary64
associate-*r*_binary64
associate-*l*_binary64 cancel-sign-sub-inv_binary64
log-pow_binary64 rem-log-exp_binary64
log-div_binary64 div-exp_binary64 pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 *-commutative_binary64 diff-log_binary64 flip3--_binary64 sub-neg_binary64 flip--_binary64
Counts
3 → 109
Calls

3 calls:

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

Compiled 1775 to 477 computations (73.1% saved)

series141.0ms (3.5%)

Error
0.1b
Counts
3 → 27
Calls

3 calls:

62.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
34.0ms
(*.f64 x (log.f64 (/.f64 x y)))
29.0ms
(log.f64 (/.f64 x y))
Compiler

Compiled 704 to 584 computations (17% saved)

simplify138.0ms (3.4%)

Algorithm
egg-herbie
Rules
477×unsub-neg_binary64
401×distribute-rgt-in_binary64
380×distribute-lft-in_binary64
378×associate-*l*_binary64
328×associate-*r*_binary64
323×sub-neg_binary64
265×cancel-sign-sub-inv_binary64
207×times-frac_binary64
137×exp-sum_binary64 neg-sub0_binary64
126×*-commutative_binary64
120×neg-mul-1_binary64
104×exp-prod_binary64
92×+-commutative_binary64
87×log-div_binary64
86×log-prod_binary64
79×exp-diff_binary64
76×associate-+l+_binary64
73×associate-+r+_binary64
68×associate-+r-_binary64
59×*-rgt-identity_binary64
58×*-lft-identity_binary64 associate-+l-_binary64
57×distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
54×sqr-pow_binary64
51×associate--l-_binary64
43×associate--l+_binary64
40×div-sub_binary64
34×unswap-sqr_binary64
33×swap-sqr_binary64
29×cube-prod_binary64
27×+-rgt-identity_binary64
24×exp-to-pow_binary64 sub0-neg_binary64
23×distribute-rgt-neg-in_binary64
20×sqr-neg_binary64 associate--r+_binary64
19×associate-/l*_binary64 associate-/r*_binary64
17×distribute-neg-in_binary64
16×difference-of-squares_binary64
15×unpow3_binary64
13×associate-/l/_binary64
11×log-rec_binary64 distribute-lft-neg-in_binary64 distribute-rgt-out_binary64 associate-/r/_binary64 associate--r-_binary64
10×cube-neg_binary64
log-pow_binary64 exp-neg_binary64 cube-unmult_binary64 distribute-lft-out_binary64
cube-mult_binary64 mul0-rgt_binary64 mul0-lft_binary64
mul-1-neg_binary64 --rgt-identity_binary64 pow-sqr_binary64 distribute-neg-out_binary64 associate-*r/_binary64
/-rgt-identity_binary64 remove-double-neg_binary64
pow-plus_binary64 rem-sqrt-square_binary64 count-2_binary64 associate-*l/_binary64
unpow1/2_binary64 div-exp_binary64 prod-exp_binary64 rem-exp-log_binary64
cube-div_binary64
rec-exp_binary64 1-exp_binary64 exp-1-e_binary64 rem-log-exp_binary64 rem-3cbrt-lft_binary64 rem-square-sqrt_binary64 +-inverses_binary64 distribute-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_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 unpow2_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 e-exp-1_binary64 exp-0_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 fabs-div_binary64 fabs-mul_binary64 fabs-sqr_binary64 fabs-neg_binary64 fabs-sub_binary64 fabs-fabs_binary64 sqr-abs_binary64 +-lft-identity_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-lft1-in_binary64
Counts
136 → 80
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02132069
13672008
210681964
333531964
445141964
549651964

prune62.0ms (1.5%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New73780
Fresh000
Picked011
Done000
Total73881
Error
0.0b
Counts
81 → 8
Compiler

Compiled 888 to 351 computations (60.5% saved)

localize14.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 y)
0.6b
(cbrt.f64 y)

rewrite72.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×cbrt-prod_binary64
add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
pow1/3_binary64 pow1_binary64 add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
Counts
4 → 44
Calls

4 calls:

1.0ms
(cbrt.f64 y)
1.0ms
(cbrt.f64 y)
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 1020 to 357 computations (65% saved)

series79.0ms (1.9%)

Error
0.0b
Counts
4 → 12
Calls

4 calls:

19.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 y)
16.0ms
(cbrt.f64 y)
Compiler

Compiled 700 to 523 computations (25.3% saved)

simplify70.0ms (1.7%)

Algorithm
egg-herbie
Rules
608×log-prod_binary64
434×distribute-rgt-in_binary64
426×distribute-lft-in_binary64
414×associate-*l*_binary64
378×unswap-sqr_binary64
272×associate-*r*_binary64
236×associate-+l+_binary64 associate-+r+_binary64
202×distribute-rgt-neg-in_binary64
198×distribute-lft-neg-in_binary64
86×fabs-mul_binary64
80×cancel-sign-sub-inv_binary64
76×*-commutative_binary64
62×sqr-pow_binary64
46×distribute-rgt-out_binary64
38×log-pow_binary64
36×exp-prod_binary64
34×distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
28×distribute-lft-out_binary64
26×neg-mul-1_binary64 neg-sub0_binary64
24×cube-prod_binary64 swap-sqr_binary64
20×count-2_binary64
16×fabs-sqr_binary64 pow-sqr_binary64
12×cube-unmult_binary64 rem-sqrt-square_binary64 sub-neg_binary64
10×pow-plus_binary64 associate-/l*_binary64
mul-1-neg_binary64
distribute-rgt1-in_binary64
unpow1/3_binary64 associate-/l/_binary64 associate-*r/_binary64
unpow3_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 fabs-fabs_binary64 sqr-abs_binary64 associate-/r/_binary64 associate-/r*_binary64 associate-+l-_binary64 +-commutative_binary64
1-exp_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-rec_binary64 log-div_binary64 pow-base-0_binary64 unpow2_binary64 unpow1/2_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 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-mult_binary64 cube-div_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cube-cbrt_binary64 fabs-div_binary64 fabs-neg_binary64 fabs-sub_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 unsub-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 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 associate-*l/_binary64 associate--r-_binary64 associate--l-_binary64 associate--l+_binary64 associate--r+_binary64 associate-+r-_binary64
Counts
56 → 28
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038340
161324
2151324
3389324
41198308
54828308
65417308

prune24.0ms (0.6%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New28028
Fresh066
Picked011
Done011
Total28836
Error
0.0b
Counts
36 → 8
Compiler

Compiled 417 to 228 computations (45.3% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 y)
0.6b
(cbrt.f64 y)

rewrite67.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×cbrt-prod_binary64
add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
pow1/3_binary64 pow1_binary64 add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
Counts
4 → 44
Calls

4 calls:

2.0ms
(cbrt.f64 y)
1.0ms
(cbrt.f64 y)
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 1108 to 380 computations (65.7% saved)

series77.0ms (1.9%)

Error
0.0b
Counts
4 → 12
Calls

4 calls:

18.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 x)
16.0ms
(cbrt.f64 y)
16.0ms
(cbrt.f64 y)
Compiler

Compiled 764 to 552 computations (27.7% saved)

simplify71.0ms (1.8%)

Algorithm
egg-herbie
Rules
608×log-prod_binary64
434×distribute-rgt-in_binary64
426×distribute-lft-in_binary64
414×associate-*l*_binary64
378×unswap-sqr_binary64
272×associate-*r*_binary64
236×associate-+l+_binary64 associate-+r+_binary64
202×distribute-rgt-neg-in_binary64
198×distribute-lft-neg-in_binary64
86×fabs-mul_binary64
80×cancel-sign-sub-inv_binary64
76×*-commutative_binary64
62×sqr-pow_binary64
46×distribute-rgt-out_binary64
38×log-pow_binary64
36×exp-prod_binary64
34×distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
28×distribute-lft-out_binary64
26×neg-mul-1_binary64 neg-sub0_binary64
24×cube-prod_binary64 swap-sqr_binary64
20×count-2_binary64
16×fabs-sqr_binary64 pow-sqr_binary64
12×cube-unmult_binary64 rem-sqrt-square_binary64 sub-neg_binary64
10×pow-plus_binary64 associate-/l*_binary64
mul-1-neg_binary64
distribute-rgt1-in_binary64
unpow1/3_binary64 associate-/l/_binary64 associate-*r/_binary64
unpow3_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 fabs-fabs_binary64 sqr-abs_binary64 associate-/r/_binary64 associate-/r*_binary64 associate-+l-_binary64 +-commutative_binary64
1-exp_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-rec_binary64 log-div_binary64 pow-base-0_binary64 unpow2_binary64 unpow1/2_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 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-mult_binary64 cube-div_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cube-cbrt_binary64 fabs-div_binary64 fabs-neg_binary64 fabs-sub_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 unsub-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 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 associate-*l/_binary64 associate--r-_binary64 associate--l-_binary64 associate--l+_binary64 associate--r+_binary64 associate-+r-_binary64
Counts
56 → 28
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038340
161324
2151324
3389324
41198308
54828308
65417308

prune23.0ms (0.6%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New28028
Fresh055
Picked011
Done022
Total28836
Error
0.0b
Counts
36 → 8
Compiler

Compiled 422 to 222 computations (47.4% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
4.4b
(log.f64 (/.f64 (cbrt.f64 x) y))

rewrite106.0ms (2.6%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
22×log-prod_binary64
20×add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
18×times-frac_binary64 cbrt-prod_binary64
add-exp-log_binary64
pow1_binary64
add-log-exp_binary64 add-cbrt-cube_binary64
pow1/3_binary64
rem-log-exp_binary64
log-pow_binary64 log-div_binary64 div-inv_binary64 div-exp_binary64
Counts
4 → 66
Calls

4 calls:

5.0ms
(log.f64 (/.f64 (cbrt.f64 x) y))
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 1683 to 621 computations (63.1% saved)

series130.0ms (3.2%)

Error
0.0b
Counts
4 → 15
Calls

4 calls:

63.0ms
(log.f64 (/.f64 (cbrt.f64 x) y))
19.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 x)
Compiler

Compiled 955 to 692 computations (27.5% saved)

simplify114.0ms (2.8%)

Algorithm
egg-herbie
Rules
657×log-prod_binary64
379×associate-+r+_binary64
365×associate-*l*_binary64
343×log-div_binary64
300×associate-+r-_binary64
275×distribute-rgt-in_binary64
272×associate-*r*_binary64
270×distribute-lft-in_binary64
232×sub-neg_binary64
170×times-frac_binary64
103×associate-/l*_binary64
89×associate-/r*_binary64
88×associate--r+_binary64
84×associate--l-_binary64
70×cancel-sign-sub-inv_binary64
49×associate--r-_binary64
47×associate--l+_binary64 *-commutative_binary64
46×distribute-rgt-neg-in_binary64
45×associate-+l-_binary64
43×log-rec_binary64
42×distribute-lft-neg-in_binary64
41×associate-/l/_binary64
35×unswap-sqr_binary64 +-commutative_binary64
34×associate-/r/_binary64
33×exp-sum_binary64
32×associate-+l+_binary64
29×log-pow_binary64
27×neg-mul-1_binary64
26×neg-sub0_binary64
25×unsub-neg_binary64
24×distribute-neg-in_binary64
21×sqr-pow_binary64
20×associate-*l/_binary64
19×exp-prod_binary64
18×exp-diff_binary64 distribute-lft-neg-out_binary64
17×distribute-rgt-neg-out_binary64
16×associate-*r/_binary64
15×count-2_binary64
12×fabs-mul_binary64
10×distribute-rgt-out_binary64
/-rgt-identity_binary64 *-rgt-identity_binary64 +-rgt-identity_binary64 swap-sqr_binary64
cube-prod_binary64
rem-exp-log_binary64 rem-sqrt-square_binary64
cube-unmult_binary64 distribute-neg-out_binary64 distribute-lft-out_binary64
pow-sqr_binary64
unpow1/3_binary64 fabs-sqr_binary64 mul-1-neg_binary64
exp-to-pow_binary64 *-lft-identity_binary64 distribute-rgt-out--_binary64
pow-plus_binary64 div-exp_binary64 prod-exp_binary64 1-exp_binary64 exp-1-e_binary64 cube-div_binary64 rem-3cbrt-lft_binary64 sqr-neg_binary64 remove-double-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 distribute-neg-frac_binary64 distribute-rgt1-in_binary64 distribute-lft1-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 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 unpow3_binary64 unpow2_binary64 unpow1/2_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 rec-exp_binary64 exp-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 cube-mult_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 fabs-div_binary64 fabs-neg_binary64 fabs-sub_binary64 fabs-fabs_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 div-sub_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-lft-out--_binary64
Counts
81 → 42
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0111924
1193876
2429847
31249845
44233845
54984845
64980845

prune41.0ms (1%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New41142
Fresh044
Picked011
Done033
Total41950
Error
0.0b
Counts
50 → 9
Compiler

Compiled 768 to 359 computations (53.3% saved)

regimes846.0ms (20.9%)

Accuracy

Total 0.2b remaining (91.4%)

Threshold costs 0.2b (91.4%)

Compiler

Compiled 9096 to 6680 computations (26.6% saved)

bsearch0.0ms (0%)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64 +-commutative_binary64
sub-neg_binary64
neg-mul-1_binary64 neg-sub0_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 1-exp_binary64 exp-1-e_binary64 exp-0_binary64 fabs-div_binary64 fabs-mul_binary64 fabs-sqr_binary64 fabs-neg_binary64 fabs-sub_binary64 fabs-fabs_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-inv_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-out_binary64 distribute-rgt-neg-in_binary64 distribute-lft-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01331
11831
22331
32531
42631
52631

end1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

sample938.0ms (23.1%)

Algorithm
intervals
Results
364.0ms8000×body128valid
24.0ms724×body128nan
1.0ms35×body128invalid
Compiler

Compiled 212 to 164 computations (22.6% saved)

Profiling

Loading profile data...