Details

Time bar (total: 4.7s)

analyze1.1s (23.7%)

Algorithm
search
egg-herbie
Rules
869×swap-sqr_binary64
585×associate-/l*_binary64
514×associate-/r/_binary64
504×associate-/l/_binary64
470×cube-div_binary64
350×associate-/r*_binary64
329×cube-prod_binary64
314×associate-*l/_binary64
288×associate-*r*_binary64
286×associate-*r/_binary64
255×associate-*l*_binary64
71×*-commutative_binary64
36×/-rgt-identity_binary64
30×sqr-pow_binary64
28×unpow3_binary64
26×cube-mult_binary64
25×times-frac_binary64
19×*-lft-identity_binary64
17×lft-mult-inverse_binary64
16×*-rgt-identity_binary64
10×remove-double-div_binary64
*-inverses_binary64
cube-unmult_binary64
1-exp_binary64 swap-x-y
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 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-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 div-sub_binary64 neg-mul-1_binary64 neg-sub0_binary64 unsub-neg_binary64 sub-neg_binary64 mul-1-neg_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 rgt-mult-inverse_binary64 pow-sqr_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_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 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-rgt-out_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 distribute-rgt-in_binary64 distribute-lft-in_binary64 count-2_binary64 associate--r-_binary64 associate--l-_binary64 associate--l+_binary64 associate--r+_binary64 associate-+l-_binary64 associate-+r-_binary64 associate-+l+_binary64 associate-+r+_binary64 +-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03291
18470
220349
346349
4292549
5280549
6344149
7514149
044
144
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
5.8%94%0.2%9
7.6%92.2%0.2%10
11.6%88.2%0.2%11
18.5%81.3%0.2%12
32.3%66.9%0.8%13
37%62.2%0.8%14
Symmetry

(sort x y)

Compiler

Compiled 10 to 9 computations (10% saved)

sample30.0ms (0.6%)

Algorithm
intervals
Results
9.0ms256×body128valid
2.0ms47×body128invalid
Compiler

Compiled 19 to 21 computations (-10.5% saved)

simplify209.0ms (4.4%)

Algorithm
egg-herbie
Rules
1483×associate-/l/_binary64
1068×associate-/l*_binary64
1015×associate-/r/_binary64
675×*-commutative_binary64
404×sqr-pow_binary64
381×cube-prod_binary64
307×pow-sqr_binary64
268×times-frac_binary64
190×associate-*l/_binary64
164×associate-*r/_binary64
137×associate-*r*_binary64
136×associate-/r*_binary64
122×unpow3_binary64 cube-mult_binary64
100×associate-*l*_binary64
94×remove-double-div_binary64
78×swap-sqr_binary64
52×cube-div_binary64 /-rgt-identity_binary64
49×unswap-sqr_binary64
44×*-lft-identity_binary64
25×*-rgt-identity_binary64
17×pow-plus_binary64
10×unpow2_binary64
unpow1_binary64 rem-sqrt-square_binary64
unpow1/2_binary64
*-inverses_binary64
lft-mult-inverse_binary64
1-exp_binary64 cube-unmult_binary64 rgt-mult-inverse_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 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 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-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 div-sub_binary64 neg-mul-1_binary64 neg-sub0_binary64 unsub-neg_binary64 sub-neg_binary64 mul-1-neg_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 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_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 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-rgt-out_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 distribute-rgt-in_binary64 distribute-lft-in_binary64 count-2_binary64 associate--r-_binary64 associate--l-_binary64 associate--l+_binary64 associate--r+_binary64 associate-+l-_binary64 associate-+r-_binary64 associate-+l+_binary64 associate-+r+_binary64 +-commutative_binary64
Counts
1 → 1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0913
11710
2417
3917
43667
512287
612127
712257
812387
912457
1012527
1112597
1212667
1312737
1412807
1512877
1612947
1713017
1813087
1913157
2013227
2130327
2227537
2327817
2428337
2529777
2630747
2734947
2837417
2940307
3044697
3150237

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New011
Fresh101
Picked000
Done000
Total112
Error
5.3b
Counts
2 → 1
Compiler

Compiled 10 to 12 computations (-20% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

5.1b
(*.f64 x (/.f64 y z))

rewrite43.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
14×add-sqr-sqrt_binary64
13×associate-*r*_binary64
10×times-frac_binary64
add-cube-cbrt_binary64 *-un-lft-identity_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64 associate-*l*_binary64
prod-exp_binary64 cbrt-unprod_binary64 unswap-sqr_binary64
pow-prod-down_binary64 div-exp_binary64 add-log-exp_binary64 cbrt-undiv_binary64 associate-*r/_binary64 div-inv_binary64 *-commutative_binary64
Counts
1 → 32
Calls

1 calls:

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

Compiled 359 to 117 computations (67.4% saved)

series26.0ms (0.6%)

Error
5.3b
Counts
1 → 9
Calls

1 calls:

25.0ms
(*.f64 x (/.f64 y z))
Compiler

Compiled 95 to 114 computations (-20% saved)

simplify117.0ms (2.5%)

Algorithm
egg-herbie
Rules
830×unsub-neg_binary64
432×associate-/l/_binary64
373×distribute-rgt-in_binary64
332×sub-neg_binary64
317×associate-/r*_binary64
301×associate--l+_binary64
296×cancel-sign-sub-inv_binary64
288×associate-/r/_binary64
246×sqr-pow_binary64
238×*-commutative_binary64
225×associate-*l*_binary64
204×distribute-neg-in_binary64
189×associate-*r/_binary64
180×associate-*l/_binary64
176×associate-/l*_binary64
173×associate-+l-_binary64
171×associate-*r*_binary64
133×unswap-sqr_binary64
122×neg-sub0_binary64
117×pow-sqr_binary64
116×neg-mul-1_binary64
93×rem-sqrt-square_binary64 times-frac_binary64
90×associate--r-_binary64
87×associate--l-_binary64
86×associate-+l+_binary64
81×*-rgt-identity_binary64
73×associate-+r-_binary64
71×distribute-neg-out_binary64
67×*-lft-identity_binary64
59×associate-+r+_binary64
55×distribute-lft-in_binary64
35×associate--r+_binary64
27×distribute-rgt-neg-in_binary64
26×+-rgt-identity_binary64
25×distribute-lft-neg-out_binary64
24×cancel-sign-sub_binary64 +-commutative_binary64
23×log-prod_binary64 exp-prod_binary64
22×distribute-lft-neg-in_binary64
21×cube-div_binary64 /-rgt-identity_binary64 distribute-rgt-out--_binary64
20×log-div_binary64
18×cube-prod_binary64
17×swap-sqr_binary64 distribute-lft-out--_binary64
16×distribute-rgt-out_binary64
13×remove-double-neg_binary64
10×distribute-rgt-neg-out_binary64
distribute-lft-out_binary64
unpow3_binary64
unpow1/2_binary64 cube-mult_binary64 distribute-rgt1-in_binary64
cube-unmult_binary64 mul-1-neg_binary64 sub0-neg_binary64
log-rec_binary64 --rgt-identity_binary64 remove-double-div_binary64
distribute-lft1-in_binary64
+-lft-identity_binary64 +-inverses_binary64
1-exp_binary64 exp-1-e_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 unpow2_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 div-exp_binary64 rec-exp_binary64 prod-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 rem-square-sqrt_binary64 div-sub_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64
Counts
41 → 19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
069435
1160390
2522390
31386390
42367390
52683390
63714390
74083390
84550390
94985390

prune17.0ms (0.4%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New12719
Fresh000
Picked011
Done000
Total12820
Error
0.0b
Counts
20 → 8
Compiler

Compiled 214 to 109 computations (49.1% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
2.1b
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 y z) (cbrt.f64 x)))
3.2b
(*.f64 (/.f64 y z) (cbrt.f64 x))

rewrite91.0ms (1.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
30×add-exp-log_binary64
25×add-sqr-sqrt_binary64
18×pow1_binary64 add-cbrt-cube_binary64
15×prod-exp_binary64 add-cube-cbrt_binary64 cbrt-unprod_binary64 *-un-lft-identity_binary64
14×associate-*l*_binary64
11×cbrt-prod_binary64 times-frac_binary64
pow-prod-down_binary64
associate-*r*_binary64
add-log-exp_binary64 unswap-sqr_binary64
div-exp_binary64 cbrt-undiv_binary64
associate-*l/_binary64 *-commutative_binary64 pow1/3_binary64
div-inv_binary64 associate-*r/_binary64
Counts
4 → 86
Calls

4 calls:

12.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 y z) (cbrt.f64 x)))
8.0ms
(*.f64 (/.f64 y z) (cbrt.f64 x))
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 1499 to 291 computations (80.6% saved)

series139.0ms (3%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

67.0ms
(*.f64 (/.f64 y z) (cbrt.f64 x))
31.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 y z) (cbrt.f64 x)))
18.0ms
(cbrt.f64 x)
17.0ms
(cbrt.f64 x)
Compiler

Compiled 634 to 541 computations (14.7% saved)

simplify150.0ms (3.2%)

Algorithm
egg-herbie
Rules
399×associate-*r/_binary64
397×associate-*l/_binary64
347×log-prod_binary64
316×unswap-sqr_binary64
312×*-commutative_binary64
258×associate-/l*_binary64
212×log-div_binary64
175×associate-*l*_binary64
147×associate-*r*_binary64
103×distribute-rgt-neg-in_binary64
90×sqr-pow_binary64
84×distribute-lft-neg-in_binary64
82×associate-/r*_binary64
81×cube-div_binary64
78×cube-prod_binary64
72×cancel-sign-sub-inv_binary64
71×exp-prod_binary64
68×times-frac_binary64
63×distribute-rgt-in_binary64
58×distribute-lft-in_binary64
49×associate--l+_binary64
48×distribute-rgt-neg-out_binary64
45×swap-sqr_binary64
44×distribute-lft-neg-out_binary64
42×sub-neg_binary64 associate-+l-_binary64
38×distribute-neg-frac_binary64 associate-/r/_binary64 associate-+r-_binary64
32×associate--r+_binary64
28×div-sub_binary64
27×neg-sub0_binary64 associate-+r+_binary64
26×associate-+l+_binary64
22×*-rgt-identity_binary64 associate-/l/_binary64
21×*-lft-identity_binary64
20×neg-mul-1_binary64 distribute-neg-in_binary64
15×/-rgt-identity_binary64 pow-sqr_binary64
14×log-pow_binary64
13×unpow3_binary64 distribute-frac-neg_binary64
12×cube-mult_binary64
11×cube-unmult_binary64 +-commutative_binary64
10×log-rec_binary64 associate--l-_binary64
pow-plus_binary64
associate--r-_binary64
unsub-neg_binary64 mul-1-neg_binary64 remove-double-neg_binary64 distribute-rgt-out_binary64 distribute-lft-out_binary64 count-2_binary64
rem-sqrt-square_binary64
+-rgt-identity_binary64
unpow1/3_binary64 exp-diff_binary64 cube-neg_binary64 sqr-neg_binary64 div0_binary64 distribute-rgt-out--_binary64
unpow1/2_binary64 exp-sum_binary64 1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-cube-cbrt_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 unpow2_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-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_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-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64
Counts
110 → 80
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01251546
12961019
29181019
327671019
446541019
549891019
649991019
749731019

prune34.0ms (0.7%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New77380
Fresh156
Picked101
Done011
Total79988
Error
0.0b
Counts
88 → 9
Compiler

Compiled 735 to 252 computations (65.7% saved)

localize14.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
1.8b
(*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))
2.1b
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) 1) (*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))))

rewrite156.0ms (3.3%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
173×add-exp-log_binary64
112×prod-exp_binary64
68×cbrt-unprod_binary64
60×add-cbrt-cube_binary64
37×add-sqr-sqrt_binary64
35×div-exp_binary64
27×pow1_binary64
23×associate-*r*_binary64 cbrt-prod_binary64
22×times-frac_binary64
21×add-cube-cbrt_binary64 *-un-lft-identity_binary64
19×cbrt-undiv_binary64
16×pow-prod-down_binary64
12×1-exp_binary64
associate-*r/_binary64 associate-*l*_binary64
unswap-sqr_binary64
add-log-exp_binary64
*-commutative_binary64 pow1/3_binary64
frac-times_binary64 associate-*l/_binary64 div-inv_binary64
Counts
4 → 141
Calls

4 calls:

22.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) 1) (*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))))
11.0ms
(*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 4137 to 980 computations (76.3% saved)

series162.0ms (3.4%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

78.0ms
(*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))
38.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (*.f64 (/.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) 1) (*.f64 (cbrt.f64 x) (/.f64 (cbrt.f64 y) z))))
19.0ms
(cbrt.f64 x)
18.0ms
(cbrt.f64 x)
Compiler

Compiled 1128 to 845 computations (25.1% saved)

simplify159.0ms (3.4%)

Algorithm
egg-herbie
Rules
440×log-prod_binary64
371×times-frac_binary64
355×associate-*l*_binary64
354×associate-*r*_binary64
305×log-div_binary64
266×associate-/l/_binary64
243×associate-/r*_binary64
196×exp-prod_binary64
159×associate-/r/_binary64
149×*-commutative_binary64
133×associate--l+_binary64
131×unswap-sqr_binary64
109×associate-/l*_binary64
107×associate-*r/_binary64
86×associate-*l/_binary64
81×sub-neg_binary64
77×associate--l-_binary64
67×swap-sqr_binary64
58×associate--r-_binary64
46×associate-+r+_binary64
44×sqr-pow_binary64
42×distribute-rgt-neg-in_binary64
40×distribute-lft-neg-in_binary64
36×unpow3_binary64 associate-+l+_binary64
34×cancel-sign-sub-inv_binary64
33×cube-prod_binary64
31×*-lft-identity_binary64
30×*-rgt-identity_binary64
27×+-commutative_binary64
26×log-pow_binary64
22×distribute-rgt-in_binary64
21×log-rec_binary64 associate-+l-_binary64
20×exp-sum_binary64
19×distribute-lft-in_binary64
17×cube-div_binary64 neg-sub0_binary64
13×neg-mul-1_binary64 /-rgt-identity_binary64 distribute-neg-in_binary64
11×cube-unmult_binary64 associate-+r-_binary64
unpow1/3_binary64 distribute-neg-frac_binary64
pow-plus_binary64 unsub-neg_binary64 pow-sqr_binary64 distribute-lft-out_binary64
distribute-neg-out_binary64 distribute-lft-neg-out_binary64
div-sub_binary64 mul-1-neg_binary64 distribute-rgt-neg-out_binary64
sub0-neg_binary64 --rgt-identity_binary64 count-2_binary64
exp-diff_binary64 remove-double-neg_binary64 +-lft-identity_binary64 associate--r+_binary64
rem-sqrt-square_binary64 distribute-rgt-out_binary64
exp-to-pow_binary64 rem-3cbrt-lft_binary64 distribute-lft-out--_binary64
unpow1/2_binary64 1-exp_binary64 exp-1-e_binary64 cube-mult_binary64 rem-3cbrt-rft_binary64 rem-cube-cbrt_binary64 distribute-frac-neg_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 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 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-cbrt-cube_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 +-rgt-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-rgt1-in_binary64 distribute-rgt-out--_binary64
Counts
165 → 114
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02704464
15461797
220461761
344441754
448141754
550541754

prune34.0ms (0.7%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1140114
Fresh077
Picked011
Done011
Total1149123
Error
0.0b
Counts
123 → 9
Compiler

Compiled 929 to 340 computations (63.4% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 x)
2.1b
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (/.f64 (*.f64 (cbrt.f64 x) y) z))
2.8b
(/.f64 (*.f64 (cbrt.f64 x) y) z)

rewrite77.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
30×add-exp-log_binary64
21×add-cbrt-cube_binary64
12×prod-exp_binary64 cbrt-unprod_binary64
11×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64 *-un-lft-identity_binary64
pow1_binary64
associate-*r*_binary64
div-exp_binary64 cbrt-undiv_binary64 times-frac_binary64 cbrt-prod_binary64
add-log-exp_binary64
associate-/r*_binary64 pow-prod-down_binary64
div-inv_binary64 pow1/3_binary64
frac-2neg_binary64 clear-num_binary64 associate-/l*_binary64 unswap-sqr_binary64 associate-*r/_binary64 associate-*l*_binary64 *-commutative_binary64
Counts
4 → 75
Calls

4 calls:

11.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (/.f64 (*.f64 (cbrt.f64 x) y) z))
5.0ms
(/.f64 (*.f64 (cbrt.f64 x) y) z)
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 x)
Compiler

Compiled 1343 to 255 computations (81% saved)

series135.0ms (2.9%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

63.0ms
(/.f64 (*.f64 (cbrt.f64 x) y) z)
30.0ms
(*.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (/.f64 (*.f64 (cbrt.f64 x) y) z))
19.0ms
(cbrt.f64 x)
16.0ms
(cbrt.f64 x)
Compiler

Compiled 634 to 544 computations (14.2% saved)

simplify106.0ms (2.3%)

Algorithm
egg-herbie
Rules
751×times-frac_binary64
328×*-commutative_binary64
318×log-prod_binary64
293×associate-/r*_binary64
291×associate-/l/_binary64
282×unswap-sqr_binary64
226×log-div_binary64
184×associate-*l*_binary64
181×associate-/r/_binary64
137×cube-prod_binary64
126×associate-*r*_binary64
114×cube-div_binary64
101×sub-neg_binary64
98×exp-prod_binary64
91×unpow3_binary64
87×sqr-pow_binary64
77×associate-/l*_binary64
69×associate-*l/_binary64 associate-*r/_binary64
34×associate-+l+_binary64
32×distribute-rgt-neg-in_binary64
31×associate-+r+_binary64
30×neg-sub0_binary64
29×/-rgt-identity_binary64
28×*-lft-identity_binary64 distribute-lft-neg-in_binary64
27×*-rgt-identity_binary64
24×div-sub_binary64 neg-mul-1_binary64
22×associate-+l-_binary64
19×swap-sqr_binary64
18×cube-mult_binary64
17×distribute-neg-frac_binary64 +-commutative_binary64
16×associate-+r-_binary64
12×log-pow_binary64 pow-sqr_binary64 cancel-sign-sub-inv_binary64
11×log-rec_binary64 cube-unmult_binary64 associate--l+_binary64
10×associate--l-_binary64
pow-plus_binary64
remove-double-neg_binary64
unsub-neg_binary64 mul-1-neg_binary64 +-rgt-identity_binary64
rem-sqrt-square_binary64 div0_binary64
associate--r+_binary64
unpow1/3_binary64 exp-diff_binary64 cube-neg_binary64 distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64 distribute-rgt-in_binary64 distribute-lft-in_binary64 count-2_binary64
unpow1/2_binary64 exp-sum_binary64 1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-cube-cbrt_binary64 sqr-neg_binary64 sub0-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 remove-double-div_binary64 distribute-frac-neg_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 unpow2_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-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 --rgt-identity_binary64 +-lft-identity_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 associate--r-_binary64
Counts
99 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01111059
1273873
21095867
33528867
44691867
54959867

prune20.0ms (0.4%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New70171
Fresh066
Picked011
Done022
Total701080
Error
0.0b
Counts
80 → 10
Compiler

Compiled 436 to 123 computations (71.8% saved)

regimes666.0ms (14.2%)

Accuracy

Total 2.1b remaining (98.3%)

Threshold costs 0b (0%)

Compiler

Compiled 4574 to 3447 computations (24.6% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_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 sqr-abs_binary64 sqr-neg_binary64 neg-mul-1_binary64 neg-sub0_binary64 unsub-neg_binary64 sub-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 +-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01231
11431
21431

end7.0ms (0.1%)

Compiler

Compiled 57 to 36 computations (36.8% saved)

sample1.2s (24.9%)

Algorithm
intervals
Results
290.0ms8000×body128valid
59.0ms1521×body128invalid
Compiler

Compiled 217 to 160 computations (26.3% saved)

Profiling

Loading profile data...