Details

Time bar (total: 2.0s)

analyze66.0ms (3.3%)

Algorithm
search
egg-herbie
Rules
154×cancel-sign-sub-inv_binary64
107×distribute-rgt-in_binary64
92×sub-neg_binary64
83×associate-*r*_binary64
81×associate-*l*_binary64
63×distribute-rgt-neg-in_binary64
57×associate--r+_binary64
48×distribute-lft-neg-out_binary64
47×distribute-neg-in_binary64
46×unsub-neg_binary64
43×distribute-lft-in_binary64
37×distribute-rgt-neg-out_binary64
34×associate-+l-_binary64
32×distribute-lft-neg-in_binary64
31×neg-sub0_binary64
30×*-commutative_binary64
29×neg-mul-1_binary64
18×associate--l+_binary64
15×sub0-neg_binary64 +-commutative_binary64
13×distribute-rgt-out--_binary64
12×*-lft-identity_binary64
11×associate-+l+_binary64
10×mul0-rgt_binary64 mul0-lft_binary64 associate-+r+_binary64
remove-double-neg_binary64 +-lft-identity_binary64 associate--r-_binary64
distribute-rgt1-in_binary64 distribute-rgt-out_binary64
*-rgt-identity_binary64 --rgt-identity_binary64 associate--l-_binary64
associate-+r-_binary64
+-rgt-identity_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64
1-exp_binary64 mul-1-neg_binary64 swap-sqr_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 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 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 /-rgt-identity_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-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 count-2_binary64 associate-/l/_binary64 associate-/r/_binary64 associate-/l*_binary64 associate-/r*_binary64 associate-*l/_binary64 associate-*r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01119
13116
26116
313313
421113
528413
643513
762713
873313
974513
1076613
1175213
1275213
1361713
011
111
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%25%25%4
62.5%12.5%25%5
68.7%6.2%25%6
71.8%3.1%25%7
73.4%1.6%25%8
74.2%0.8%25%9
74.6%0.4%25%10
74.8%0.2%25%11
74.9%0.1%25%12
74.9%0%25.1%13
74.9%0%25.1%14
Compiler

Compiled 14 to 12 computations (14.3% saved)

sample15.0ms (0.8%)

Algorithm
intervals
Results
8.0ms256×body128valid
Compiler

Compiled 27 to 24 computations (11.1% saved)

simplify47.0ms (2.4%)

Algorithm
egg-herbie
Rules
154×cancel-sign-sub-inv_binary64
107×distribute-rgt-in_binary64
92×sub-neg_binary64
83×associate-*r*_binary64
81×associate-*l*_binary64
63×distribute-rgt-neg-in_binary64
57×associate--r+_binary64
48×distribute-lft-neg-out_binary64
47×distribute-neg-in_binary64
46×unsub-neg_binary64
43×distribute-lft-in_binary64
37×distribute-rgt-neg-out_binary64
34×associate-+l-_binary64
32×distribute-lft-neg-in_binary64
31×neg-sub0_binary64
30×*-commutative_binary64
29×neg-mul-1_binary64
18×associate--l+_binary64
15×sub0-neg_binary64 +-commutative_binary64
13×distribute-rgt-out--_binary64
12×*-lft-identity_binary64
11×associate-+l+_binary64
10×mul0-rgt_binary64 mul0-lft_binary64 associate-+r+_binary64
remove-double-neg_binary64 +-lft-identity_binary64 associate--r-_binary64
distribute-rgt1-in_binary64 distribute-rgt-out_binary64
*-rgt-identity_binary64 --rgt-identity_binary64 associate--l-_binary64
associate-+r-_binary64
+-rgt-identity_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64
1-exp_binary64 mul-1-neg_binary64 swap-sqr_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 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 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 times-frac_binary64 div-sub_binary64 /-rgt-identity_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-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 count-2_binary64 associate-/l/_binary64 associate-/r/_binary64 associate-/l*_binary64 associate-/r*_binary64 associate-*l/_binary64 associate-*r/_binary64
Counts
1 → 1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01119
13116
26116
313313
421113
528413
643513
762713
873313
974513
1076613
1175213
1275213
1361713

prune3.0ms (0.2%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 2
Compiler

Compiled 31 to 27 computations (12.9% saved)

localize6.0ms (0.3%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 -12 (*.f64 x -9))
0.1b
(*.f64 x (-.f64 -12 (*.f64 x -9)))

rewrite66.0ms (3.3%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-sqr-sqrt_binary64
pow1_binary64 add-exp-log_binary64 add-log-exp_binary64 add-cbrt-cube_binary64 add-cube-cbrt_binary64 *-un-lft-identity_binary64
sub-neg_binary64 cancel-sign-sub-inv_binary64 associate-*l*_binary64 associate-*r*_binary64
distribute-rgt-in_binary64 distribute-lft-in_binary64 flip3--_binary64 associate-*r/_binary64 flip--_binary64
pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 *-commutative_binary64 diff-log_binary64
Counts
2 → 36
Calls

2 calls:

6.0ms
(*.f64 x (-.f64 -12 (*.f64 x -9)))
3.0ms
(-.f64 -12 (*.f64 x -9))
Compiler

Compiled 557 to 442 computations (20.6% saved)

series28.0ms (1.4%)

Error
0.0b
Counts
2 → 12
Calls

2 calls:

12.0ms
(*.f64 x (-.f64 -12 (*.f64 x -9)))
9.0ms
(-.f64 -12 (*.f64 x -9))
Compiler

Compiled 202 to 180 computations (10.9% saved)

simplify88.0ms (4.4%)

Algorithm
egg-herbie
Rules
534×distribute-neg-out_binary64
458×unsub-neg_binary64
333×associate-*l*_binary64
327×neg-sub0_binary64
317×neg-mul-1_binary64
261×associate-*r*_binary64
216×exp-prod_binary64
179×distribute-rgt-neg-out_binary64
176×cancel-sign-sub-inv_binary64
174×distribute-lft-neg-out_binary64
166×unswap-sqr_binary64
131×sqr-pow_binary64
105×distribute-rgt-in_binary64
100×distribute-lft-in_binary64
94×distribute-rgt-neg-in_binary64
83×distribute-lft-neg-in_binary64
72×sub-neg_binary64
61×log-prod_binary64
60×*-commutative_binary64
58×exp-sum_binary64
54×+-commutative_binary64
45×cube-prod_binary64 swap-sqr_binary64
40×remove-double-neg_binary64
37×associate-+r+_binary64
36×*-lft-identity_binary64
34×*-rgt-identity_binary64
31×associate-+l+_binary64
29×exp-diff_binary64
27×distribute-rgt-out_binary64
24×div-sub_binary64
22×unpow3_binary64
21×pow-sqr_binary64
20×distribute-lft-out_binary64
19×sqr-neg_binary64
18×associate-/l*_binary64
15×exp-neg_binary64
12×distribute-rgt-out--_binary64
11×sub0-neg_binary64
10×unpow1/2_binary64 mul0-rgt_binary64 mul0-lft_binary64 associate-+l-_binary64
cube-unmult_binary64 cube-neg_binary64 +-rgt-identity_binary64
times-frac_binary64
pow-plus_binary64 associate-/r*_binary64
cube-mult_binary64 mul-1-neg_binary64 distribute-frac-neg_binary64 distribute-lft-out--_binary64
log-pow_binary64 rem-sqrt-square_binary64
--rgt-identity_binary64 cancel-sign-sub_binary64 associate-+r-_binary64
div-exp_binary64 distribute-neg-frac_binary64 count-2_binary64 associate-*r/_binary64 associate--r-_binary64 associate--l-_binary64 associate--r+_binary64
unpow2_binary64 unpow1_binary64 1-exp_binary64 exp-1-e_binary64 associate-/l/_binary64 associate-*l/_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-rec_binary64 log-div_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 rec-exp_binary64 prod-exp_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-square-sqrt_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 distribute-neg-in_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate-/r/_binary64
Counts
48 → 41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
071587
1158515
2461512
31442512
42692512
54932512
64905512

prune34.0ms (1.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New38341
Fresh011
Picked011
Done000
Total38543
Error
0b
Counts
43 → 5
Compiler

Compiled 465 to 369 computations (20.6% saved)

localize8.0ms (0.4%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 (*.f64 -12 x) (*.f64 9 (*.f64 x x)))
0.2b
(*.f64 9 (*.f64 x x))

rewrite53.0ms (2.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
pow1_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
add-log-exp_binary64 add-sqr-sqrt_binary64
pow-prod-down_binary64 prod-exp_binary64 add-cube-cbrt_binary64 cbrt-unprod_binary64 *-un-lft-identity_binary64 associate-*l*_binary64
unswap-sqr_binary64 associate-*r*_binary64 *-commutative_binary64 sum-log_binary64 flip3-+_binary64 flip-+_binary64 +-commutative_binary64
Counts
2 → 30
Calls

2 calls:

8.0ms
(*.f64 9 (*.f64 x x))
4.0ms
(+.f64 (*.f64 -12 x) (*.f64 9 (*.f64 x x)))
Compiler

Compiled 510 to 339 computations (33.5% saved)

series24.0ms (1.2%)

Error
0b
Counts
2 → 9
Calls

2 calls:

14.0ms
(+.f64 (*.f64 -12 x) (*.f64 9 (*.f64 x x)))
7.0ms
(*.f64 9 (*.f64 x x))
Compiler

Compiled 185 to 168 computations (9.2% saved)

simplify75.0ms (3.8%)

Algorithm
egg-herbie
Rules
452×associate-*l*_binary64
395×distribute-rgt-out_binary64 distribute-rgt-in_binary64
357×distribute-lft-in_binary64
353×associate-*r*_binary64
288×cancel-sign-sub-inv_binary64
230×neg-mul-1_binary64
227×distribute-lft-out_binary64
215×distribute-rgt-neg-in_binary64
168×distribute-lft-neg-in_binary64
151×distribute-rgt-neg-out_binary64
146×distribute-lft-neg-out_binary64
125×unswap-sqr_binary64
111×*-commutative_binary64
87×distribute-rgt-out--_binary64
85×exp-prod_binary64
82×unsub-neg_binary64
81×cube-prod_binary64
54×sqr-pow_binary64
48×neg-sub0_binary64 sub-neg_binary64
43×log-prod_binary64
36×times-frac_binary64
35×distribute-neg-out_binary64
26×swap-sqr_binary64
23×unpow3_binary64
22×distribute-lft-out--_binary64
16×+-commutative_binary64
15×cube-mult_binary64
12×associate-+l+_binary64
11×exp-diff_binary64 exp-sum_binary64
10×cube-unmult_binary64
pow-plus_binary64 remove-double-neg_binary64 pow-sqr_binary64 distribute-neg-in_binary64 associate-+r-_binary64 associate-+r+_binary64
cube-neg_binary64 associate-+l-_binary64
div-sub_binary64
log-pow_binary64 +-rgt-identity_binary64
sqr-neg_binary64 sub0-neg_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64
associate-/l*_binary64
rem-sqrt-square_binary64 associate--r-_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 prod-exp_binary64 exp-neg_binary64 1-exp_binary64 exp-1-e_binary64 --rgt-identity_binary64 count-2_binary64 associate--l-_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-rec_binary64 log-div_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 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-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 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate-/l/_binary64 associate-/r/_binary64 associate-/r*_binary64 associate-*l/_binary64 associate-*r/_binary64 associate--r+_binary64
Counts
39 → 25
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
062490
1170415
2484397
31761394
44697394
55059394

prune24.0ms (1.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New24125
Fresh123
Picked011
Done011
Total25530
Error
0b
Counts
30 → 5
Compiler

Compiled 279 to 218 computations (21.9% saved)

localize10.0ms (0.5%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 (*.f64 -12 x) (*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9))))
0.2b
(*.f64 (*.f64 x x) (cbrt.f64 9))
0.2b
(*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9)))

rewrite116.0ms (5.8%)

Algorithm
rewrite-expression-head
Error
0b
Rules
29×pow1_binary64 add-exp-log_binary64
18×pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64
17×add-cbrt-cube_binary64
add-sqr-sqrt_binary64 associate-*r*_binary64
add-log-exp_binary64 add-cube-cbrt_binary64 *-un-lft-identity_binary64
cbrt-prod_binary64
associate-*l*_binary64 *-commutative_binary64 unswap-sqr_binary64
sum-log_binary64 flip3-+_binary64 flip-+_binary64 +-commutative_binary64
Counts
3 → 62
Calls

3 calls:

13.0ms
(*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9)))
7.0ms
(*.f64 (*.f64 x x) (cbrt.f64 9))
5.0ms
(+.f64 (*.f64 -12 x) (*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9))))
Compiler

Compiled 1475 to 1132 computations (23.3% saved)

series55.0ms (2.8%)

Error
0b
Counts
3 → 12
Calls

3 calls:

21.0ms
(+.f64 (*.f64 -12 x) (*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9))))
15.0ms
(*.f64 (*.f64 (cbrt.f64 9) (cbrt.f64 9)) (*.f64 (*.f64 x x) (cbrt.f64 9)))
12.0ms
(*.f64 (*.f64 x x) (cbrt.f64 9))
Compiler

Compiled 362 to 337 computations (6.9% saved)

simplify98.0ms (4.9%)

Algorithm
egg-herbie
Rules
374×distribute-rgt-neg-in_binary64
345×*-commutative_binary64
323×distribute-lft-neg-in_binary64
306×cancel-sign-sub-inv_binary64
282×distribute-rgt-in_binary64
264×distribute-lft-in_binary64
227×neg-sub0_binary64
226×neg-mul-1_binary64
176×associate-*l*_binary64
172×distribute-rgt-out_binary64
165×associate-*r*_binary64
162×unswap-sqr_binary64
120×exp-prod_binary64 distribute-lft-out_binary64
100×sqr-pow_binary64
97×cube-prod_binary64
94×distribute-lft-neg-out_binary64
86×unsub-neg_binary64 distribute-rgt-neg-out_binary64
79×distribute-rgt-out--_binary64
78×log-prod_binary64
63×sub-neg_binary64
57×swap-sqr_binary64
34×associate-+l+_binary64
32×associate-+r+_binary64
28×distribute-lft-out--_binary64
26×distribute-neg-out_binary64 +-commutative_binary64
25×unpow3_binary64
18×cube-mult_binary64 pow-sqr_binary64
15×times-frac_binary64
11×*-rgt-identity_binary64
10×exp-diff_binary64
remove-double-neg_binary64
exp-sum_binary64 *-lft-identity_binary64 distribute-neg-in_binary64 associate-+r-_binary64
cube-neg_binary64 associate-/l*_binary64 associate-+l-_binary64
unpow1/2_binary64 cube-unmult_binary64
pow-plus_binary64 rem-sqrt-square_binary64 div-sub_binary64 +-rgt-identity_binary64
sqr-neg_binary64 sub0-neg_binary64 difference-of-squares_binary64
log-pow_binary64
count-2_binary64 associate--r-_binary64
unpow2_binary64 unpow1_binary64 prod-exp_binary64 exp-neg_binary64 1-exp_binary64 exp-1-e_binary64 rem-cube-cbrt_binary64 --rgt-identity_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate--l-_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-rec_binary64 log-div_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 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 mul-1-neg_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 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 associate-/l/_binary64 associate-/r/_binary64 associate-/r*_binary64 associate-*l/_binary64 associate-*r/_binary64 associate--r+_binary64
Counts
74 → 61
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01011362
1259840
2867753
31960753
44574753
54956753

prune43.0ms (2.2%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New61061
Fresh022
Picked011
Done022
Total61566
Error
0b
Counts
66 → 5
Compiler

Compiled 587 to 454 computations (22.7% saved)

localize8.0ms (0.4%)

Local error

Found 3 expressions with local error:

0.0b
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
0.1b
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.2b
(*.f64 (*.f64 x 3) x)

rewrite87.0ms (4.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
10×pow1_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
add-sqr-sqrt_binary64 *-un-lft-identity_binary64
associate-*r*_binary64
add-cube-cbrt_binary64
add-log-exp_binary64
pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 associate-*l*_binary64
*-commutative_binary64 associate-*r/_binary64
unswap-sqr_binary64 distribute-rgt-in_binary64 distribute-lft-in_binary64 flip3-+_binary64 flip-+_binary64 distribute-lft-out_binary64 diff-log_binary64 flip3--_binary64 sub-neg_binary64 flip--_binary64 cancel-sign-sub-inv_binary64
Counts
3 → 53
Calls

3 calls:

10.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
5.0ms
(*.f64 (*.f64 x 3) x)
5.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
Compiler

Compiled 1093 to 842 computations (23% saved)

series52.0ms (2.6%)

Error
0b
Counts
3 → 18
Calls

3 calls:

18.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
13.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
8.0ms
(*.f64 (*.f64 x 3) x)
Compiler

Compiled 354 to 324 computations (8.5% saved)

simplify81.0ms (4%)

Algorithm
egg-herbie
Rules
328×unsub-neg_binary64
281×+-commutative_binary64
279×distribute-rgt-in_binary64
273×distribute-lft-in_binary64
272×sub-neg_binary64
252×*-commutative_binary64
235×neg-mul-1_binary64
231×neg-sub0_binary64
160×times-frac_binary64
155×cancel-sign-sub-inv_binary64
135×associate-*l*_binary64
91×distribute-lft-out_binary64
89×associate-*r*_binary64
85×distribute-rgt-neg-in_binary64
83×distribute-lft-neg-out_binary64
81×exp-prod_binary64 distribute-rgt-out_binary64
79×distribute-rgt-neg-out_binary64
77×cube-prod_binary64
76×distribute-lft-neg-in_binary64
73×exp-sum_binary64
71×sqr-pow_binary64
65×associate-+l-_binary64
63×associate-+r-_binary64
54×associate-+r+_binary64
51×unswap-sqr_binary64
40×associate-+l+_binary64
36×cube-div_binary64
31×log-prod_binary64 div-sub_binary64
30×swap-sqr_binary64
29×exp-diff_binary64
28×*-lft-identity_binary64
26×associate-/l*_binary64
25×unpow3_binary64 *-rgt-identity_binary64
23×associate--r+_binary64
22×prod-exp_binary64 associate--l+_binary64
20×cube-mult_binary64 distribute-rgt-out--_binary64
14×distribute-lft1-in_binary64 distribute-lft-out--_binary64
13×pow-sqr_binary64 associate-/r*_binary64
12×distribute-rgt1-in_binary64 associate-*r/_binary64
11×exp-lft-cube_binary64
10×difference-of-squares_binary64
pow-plus_binary64 mul0-rgt_binary64 mul0-lft_binary64
exp-neg_binary64
associate-*l/_binary64
sub0-neg_binary64 +-rgt-identity_binary64
unpow1/2_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 associate--l-_binary64
log-pow_binary64 div-exp_binary64 cube-unmult_binary64 distribute-neg-in_binary64 associate-/l/_binary64
unpow2_binary64 count-2_binary64 associate-/r/_binary64
unpow1_binary64 mul-1-neg_binary64 associate--r-_binary64
rec-exp_binary64 1-exp_binary64 exp-1-e_binary64 cube-neg_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-rec_binary64 log-div_binary64 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 /-rgt-identity_binary64 remove-double-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 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64
Counts
71 → 61
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01101132
1286925
2804907
32014905
43642905
55022905

prune56.0ms (2.8%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New61061
Fresh011
Picked011
Done033
Total61566
Error
0b
Counts
66 → 5
Compiler

Compiled 737 to 583 computations (20.9% saved)

regimes264.0ms (13.2%)

Accuracy

Total 0.1b remaining (90.7%)

Threshold costs 0.1b (90.7%)

Compiler

Compiled 2821 to 2447 computations (13.3% saved)

bsearch0.0ms (0%)

simplify4.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64 +-commutative_binary64
sub-neg_binary64
neg-mul-1_binary64 neg-sub0_binary64 cancel-sign-sub-inv_binary64 distribute-rgt-neg-in_binary64
distribute-lft-neg-out_binary64 distribute-lft-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 1-exp_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
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
11713
22813
33213
43413
53313

end1.0ms (0%)

Compiler

Compiled 9 to 8 computations (11.1% saved)

sample582.0ms (29.2%)

Algorithm
intervals
Results
262.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 105 to 94 computations (10.5% saved)

Profiling

Loading profile data...