Details

Time bar (total: 16.9s)

analyze1.6s (9.7%)

Algorithm
search
egg-herbie
Rules
770×times-frac_binary64
445×div-sub_binary64
393×distribute-neg-frac_binary64
388×associate-/r/_binary64
367×associate-*l/_binary64
348×associate-/r*_binary64
338×associate-/l*_binary64
303×cancel-sign-sub-inv_binary64
200×associate-/l/_binary64
190×neg-mul-1_binary64
185×distribute-rgt-neg-in_binary64
181×neg-sub0_binary64
177×distribute-lft-neg-in_binary64
96×associate-*r/_binary64
91×sub-neg_binary64
68×associate-*r*_binary64
40×*-commutative_binary64
34×associate-*l*_binary64
28×unsub-neg_binary64
22×distribute-lft-neg-out_binary64
18×+-commutative_binary64
14×distribute-rgt-neg-out_binary64 distribute-rgt-in_binary64 distribute-lft-in_binary64
sub0-neg_binary64 associate-+l-_binary64 associate-+r-_binary64
+-rgt-identity_binary64
swap-x-y swap-z-t
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 1-exp_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 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 remove-double-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 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 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-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 count-2_binary64 associate--r-_binary64 associate--l-_binary64 associate--l+_binary64 associate--r+_binary64 associate-+l+_binary64 associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056209
1166209
2613209
32006209
44408209
54999209
055
155
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
0%99.8%0.2%9
0%99.8%0.2%10
9.4%90.4%0.2%11
9.4%90.4%0.2%12
10.1%89.6%0.2%13
20.8%78.9%0.2%14
Symmetry

(sort x y)

(sort z t)

Compiler

Compiled 14 to 14 computations (0% saved)

sample58.0ms (0.3%)

Algorithm
intervals
Results
11.0ms256×body128valid
5.0ms113×body128invalid
Compiler

Compiled 27 to 32 computations (-18.5% saved)

simplify717.0ms (4.2%)

Algorithm
egg-herbie
Rules
1728×associate-/l*_binary64
1269×div-sub_binary64
1211×distribute-rgt-in_binary64
791×sub-neg_binary64
779×cancel-sign-sub-inv_binary64
711×associate-/r*_binary64
676×times-frac_binary64
665×associate-/r/_binary64
562×distribute-rgt-neg-in_binary64
491×unsub-neg_binary64
483×distribute-lft-in_binary64
473×associate-/l/_binary64
466×distribute-neg-frac_binary64
383×distribute-lft-neg-in_binary64
349×neg-mul-1_binary64
310×neg-sub0_binary64
288×+-lft-identity_binary64
282×associate-*l/_binary64
273×distribute-neg-in_binary64
269×distribute-rgt-neg-out_binary64
260×distribute-lft-neg-out_binary64
252×*-commutative_binary64
179×associate-*r/_binary64
128×*-rgt-identity_binary64
110×mul0-rgt_binary64
104×div0_binary64
101×associate-*r*_binary64
100×associate-*l*_binary64
97×mul0-lft_binary64 associate--r+_binary64
92×+-commutative_binary64
81×remove-double-neg_binary64
49×associate-+l-_binary64
48×+-rgt-identity_binary64 associate--r-_binary64
37×/-rgt-identity_binary64 distribute-rgt-out--_binary64
36×distribute-frac-neg_binary64 distribute-rgt-out_binary64
30×distribute-neg-out_binary64 associate--l-_binary64
27×associate--l+_binary64
26×*-lft-identity_binary64
25×associate-+r-_binary64
24×mul-1-neg_binary64
21×associate-+l+_binary64
19×cancel-sign-sub_binary64
18×sub0-neg_binary64
13×--rgt-identity_binary64
distribute-lft-out_binary64
associate-+r+_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-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 *-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 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-lft-out--_binary64 count-2_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01419
13019
210119
330519
475119
5139519
6173719
7191519
8233819
9290319
10331719
11352119
12346019
13347119
14348119
15382519
16389419
17389919
18389919
19402619
20391419
21433719
22448419
23451419
24445019
25443019
26417519
27426719
28428519
29435119
30447119
31439519
32439519
33439819
34439819
35398119
36407319
37451219
38467919
39453519
40472119

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 13 to 13 computations (0% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.0b
(-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t))
0.2b
(*.f64 (*.f64 z 9) t)
7.1b
(/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t)) (*.f64 a 2))

rewrite103.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
7.3b
Rules
13×add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64
add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
add-log-exp_binary64
prod-exp_binary64 cbrt-unprod_binary64
times-frac_binary64 associate-/l*_binary64 pow-prod-down_binary64 associate-*r*_binary64
div-exp_binary64 cbrt-undiv_binary64 flip3--_binary64 associate-/l/_binary64 flip--_binary64
frac-2neg_binary64 div-sub_binary64 clear-num_binary64 div-inv_binary64 associate-/r*_binary64 associate-*l*_binary64 *-commutative_binary64 diff-log_binary64 sub-neg_binary64 cancel-sign-sub-inv_binary64
Counts
3 → 54
Calls

3 calls:

7.0ms
(/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t)) (*.f64 a 2))
5.0ms
(*.f64 (*.f64 z 9) t)
4.0ms
(-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t))
Compiler

Compiled 1161 to 671 computations (42.2% saved)

series183.0ms (1.1%)

Error
7.2b
Counts
3 → 57
Calls

3 calls:

104.0ms
(/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t)) (*.f64 a 2))
52.0ms
(-.f64 (*.f64 x y) (*.f64 (*.f64 z 9) t))
16.0ms
(*.f64 (*.f64 z 9) t)
Compiler

Compiled 1189 to 1166 computations (1.9% saved)

simplify94.0ms (0.6%)

Algorithm
egg-herbie
Rules
390×*-commutative_binary64
364×cancel-sign-sub-inv_binary64
305×div-sub_binary64
289×associate-/l*_binary64
241×times-frac_binary64
173×associate-*l*_binary64
171×exp-prod_binary64
169×distribute-rgt-neg-in_binary64
165×associate-/r*_binary64
152×distribute-lft-neg-in_binary64
127×associate-*r*_binary64
126×distribute-rgt-in_binary64
122×distribute-lft-in_binary64
118×neg-sub0_binary64
116×neg-mul-1_binary64
111×associate-*l/_binary64
103×associate-/l/_binary64
96×sub-neg_binary64
90×sqr-pow_binary64
84×associate-*r/_binary64
70×associate-/r/_binary64
43×unsub-neg_binary64
42×cube-prod_binary64
41×swap-sqr_binary64
39×log-prod_binary64 distribute-neg-frac_binary64
36×+-commutative_binary64
28×distribute-rgt-out_binary64
22×difference-of-squares_binary64 unswap-sqr_binary64
20×exp-sum_binary64
18×distribute-lft-out_binary64
17×distribute-lft-neg-out_binary64
16×exp-sqrt_binary64 associate-+l+_binary64
14×exp-diff_binary64 associate-+r+_binary64
10×unpow3_binary64 *-lft-identity_binary64
pow-sqr_binary64 distribute-neg-in_binary64 distribute-rgt-neg-out_binary64
*-rgt-identity_binary64 remove-double-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 associate-+l-_binary64
cube-mult_binary64 +-rgt-identity_binary64 associate-+r-_binary64
log-div_binary64 sub0-neg_binary64 associate--r+_binary64
cube-unmult_binary64 /-rgt-identity_binary64
cube-div_binary64
mul-1-neg_binary64 associate--r-_binary64
unpow1/2_binary64 div-exp_binary64 1-exp_binary64 exp-1-e_binary64 cube-neg_binary64 sqr-neg_binary64 --rgt-identity_binary64 div0_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 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 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-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 +-lft-identity_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-frac-neg_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--l-_binary64 associate--l+_binary64
Counts
111 → 84
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01361784
13811636
213131631
334451631
450921631

prune58.0ms (0.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New75984
Fresh000
Picked011
Done000
Total751085
Error
7.2b
Counts
85 → 10
Compiler

Compiled 1008 to 573 computations (43.2% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (/.f64 (*.f64 x y) (*.f64 a 2)) (*.f64 (/.f64 (*.f64 t z) a) 9/2))
0.3b
(*.f64 (/.f64 (*.f64 t z) a) 9/2)
6.1b
(/.f64 (*.f64 x y) (*.f64 a 2))
6.6b
(/.f64 (*.f64 t z) a)

rewrite144.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
30×add-exp-log_binary64 add-cbrt-cube_binary64
11×add-sqr-sqrt_binary64
prod-exp_binary64 add-cube-cbrt_binary64 cbrt-unprod_binary64 *-un-lft-identity_binary64
div-exp_binary64 cbrt-undiv_binary64
times-frac_binary64 associate-*l*_binary64
pow1_binary64 add-log-exp_binary64
associate-/r*_binary64
div-inv_binary64 associate-*r*_binary64
frac-2neg_binary64 clear-num_binary64 associate-/l*_binary64 associate-*l/_binary64
pow-prod-down_binary64 unswap-sqr_binary64 *-commutative_binary64 diff-log_binary64 frac-sub_binary64 flip3--_binary64 sub-neg_binary64 flip--_binary64 cancel-sign-sub-inv_binary64
Counts
4 → 82
Calls

4 calls:

8.0ms
(/.f64 (*.f64 x y) (*.f64 a 2))
7.0ms
(-.f64 (/.f64 (*.f64 x y) (*.f64 a 2)) (*.f64 (/.f64 (*.f64 t z) a) 9/2))
7.0ms
(*.f64 (/.f64 (*.f64 t z) a) 9/2)
4.0ms
(/.f64 (*.f64 t z) a)
Compiler

Compiled 1822 to 819 computations (55% saved)

series218.0ms (1.3%)

Error
7.2b
Counts
4 → 54
Calls

4 calls:

113.0ms
(-.f64 (/.f64 (*.f64 x y) (*.f64 a 2)) (*.f64 (/.f64 (*.f64 t z) a) 9/2))
34.0ms
(*.f64 (/.f64 (*.f64 t z) a) 9/2)
32.0ms
(/.f64 (*.f64 x y) (*.f64 a 2))
30.0ms
(/.f64 (*.f64 t z) a)
Compiler

Compiled 1438 to 1331 computations (7.4% saved)

simplify132.0ms (0.8%)

Algorithm
egg-herbie
Rules
629×associate-/r*_binary64
486×*-commutative_binary64
374×associate-/l/_binary64
263×associate-/r/_binary64
205×times-frac_binary64
161×sub-neg_binary64
151×associate-*l*_binary64
146×associate-/l*_binary64
126×distribute-rgt-neg-in_binary64
124×neg-sub0_binary64
121×neg-mul-1_binary64
110×distribute-lft-neg-in_binary64
108×associate-*r*_binary64
107×cancel-sign-sub-inv_binary64
94×associate-*l/_binary64
88×log-div_binary64
81×log-prod_binary64
78×distribute-neg-frac_binary64
76×cube-div_binary64
75×associate-*r/_binary64
63×cube-prod_binary64
53×exp-prod_binary64
49×+-commutative_binary64
45×unpow3_binary64
39×div-sub_binary64
35×unsub-neg_binary64 distribute-rgt-in_binary64
33×distribute-lft-in_binary64
31×sqr-pow_binary64
30×associate-+l-_binary64
25×cube-mult_binary64
24×associate-+r-_binary64
23×associate-+r+_binary64
22×associate-+l+_binary64
18×swap-sqr_binary64
17×exp-diff_binary64 distribute-lft-neg-out_binary64
16×*-rgt-identity_binary64
15×distribute-lft-out_binary64
14×distribute-rgt-out_binary64
13×associate--l+_binary64
11×associate--l-_binary64 associate--r+_binary64
exp-sum_binary64
cube-unmult_binary64 distribute-neg-in_binary64
*-lft-identity_binary64
exp-sqrt_binary64
mul-1-neg_binary64 /-rgt-identity_binary64 difference-of-squares_binary64 distribute-rgt-neg-out_binary64 associate--r-_binary64
log-rec_binary64 +-rgt-identity_binary64
unpow1/2_binary64 div-exp_binary64 rec-exp_binary64 1-exp_binary64 exp-1-e_binary64 sqr-neg_binary64 div0_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 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 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-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 remove-double-neg_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 pow-sqr_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 unswap-sqr_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 count-2_binary64
Counts
136 → 79
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01721921
14521815
218571815
343431815
449421815
549641815

prune57.0ms (0.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New75479
Fresh358
Picked101
Done011
Total791089
Error
0.0b
Counts
89 → 10
Compiler

Compiled 894 to 474 computations (47% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.5b
(cbrt.f64 a)
0.5b
(cbrt.f64 a)
4.4b
(*.f64 (/.f64 t (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (*.f64 9/2 (/.f64 z (cbrt.f64 a))))
6.1b
(/.f64 (*.f64 x y) (*.f64 a 2))

rewrite121.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
52×add-exp-log_binary64
43×add-cbrt-cube_binary64
22×prod-exp_binary64 cbrt-unprod_binary64
13×div-exp_binary64 cbrt-undiv_binary64
pow1_binary64
add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
associate-*l*_binary64
cbrt-prod_binary64
add-log-exp_binary64 times-frac_binary64
pow-prod-down_binary64 associate-*r/_binary64
div-inv_binary64 pow1/3_binary64
frac-2neg_binary64 clear-num_binary64 associate-/l*_binary64 associate-/r*_binary64 frac-times_binary64 associate-*l/_binary64 associate-*r*_binary64 *-commutative_binary64
Counts
4 → 82
Calls

4 calls:

13.0ms
(*.f64 (/.f64 t (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (*.f64 9/2 (/.f64 z (cbrt.f64 a))))
5.0ms
(/.f64 (*.f64 x y) (*.f64 a 2))
1.0ms
(cbrt.f64 a)
1.0ms
(cbrt.f64 a)
Compiler

Compiled 2368 to 866 computations (63.4% saved)

series124.0ms (0.7%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

43.0ms
(*.f64 (/.f64 t (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (*.f64 9/2 (/.f64 z (cbrt.f64 a))))
35.0ms
(/.f64 (*.f64 x y) (*.f64 a 2))
18.0ms
(cbrt.f64 a)
18.0ms
(cbrt.f64 a)
Compiler

Compiled 1131 to 905 computations (20% saved)

simplify115.0ms (0.7%)

Algorithm
egg-herbie
Rules
399×associate-/l/_binary64
276×associate-/r/_binary64
253×log-div_binary64
241×times-frac_binary64
191×sub-neg_binary64
188×associate-*l*_binary64
180×log-prod_binary64
170×cube-prod_binary64
162×associate-*r*_binary64
158×cube-div_binary64
149×sqr-pow_binary64
148×associate-/l*_binary64
140×associate-/r*_binary64
125×associate-*l/_binary64
107×associate-*r/_binary64
103×*-commutative_binary64
72×exp-prod_binary64
63×unpow3_binary64
60×cube-mult_binary64
48×unswap-sqr_binary64 associate-+l+_binary64
46×associate--r+_binary64
40×neg-mul-1_binary64 neg-sub0_binary64
38×swap-sqr_binary64
37×associate-+r+_binary64 +-commutative_binary64
36×associate-+l-_binary64
27×associate-+r-_binary64
23×unsub-neg_binary64
22×cancel-sign-sub-inv_binary64
21×distribute-rgt-neg-in_binary64 distribute-lft-neg-in_binary64
20×associate--l+_binary64
18×cube-unmult_binary64
13×pow-sqr_binary64 distribute-neg-in_binary64
11×log-pow_binary64
10×pow-plus_binary64 +-rgt-identity_binary64
associate--r-_binary64
distribute-rgt-in_binary64
div-sub_binary64 distribute-lft-in_binary64
rem-sqrt-square_binary64 sub0-neg_binary64
exp-sqrt_binary64 cube-neg_binary64 *-lft-identity_binary64 div0_binary64 distribute-frac-neg_binary64
log-rec_binary64 unpow1/3_binary64 remove-double-neg_binary64 distribute-neg-frac_binary64 count-2_binary64
1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-cube-cbrt_binary64 mul-1-neg_binary64 distribute-rgt-out_binary64 distribute-lft-out_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 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 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 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 /-rgt-identity_binary64 *-rgt-identity_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-rgt-neg-out_binary64 distribute-lft-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64
Counts
106 → 60
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01711965
14341089
220871073
337641073
449681073
549801073

prune47.0ms (0.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New59160
Fresh178
Picked011
Done101
Total61970
Error
0.0b
Counts
70 → 9
Compiler

Compiled 848 to 449 computations (47.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9))
0.2b
(*.f64 (*.f64 t z) 9)
0.3b
(/.f64 1 (/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2)))
7.1b
(/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2))

rewrite472.0ms (2.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
471×times-frac_binary64
232×add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
57×associate-/r*_binary64
35×add-exp-log_binary64
23×add-cbrt-cube_binary64
22×div-inv_binary64
18×div-exp_binary64
10×pow1_binary64
cbrt-undiv_binary64
add-log-exp_binary64 associate-/r/_binary64 associate-/l*_binary64
1-exp_binary64 rec-exp_binary64 pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 associate-*r*_binary64
frac-2neg_binary64 clear-num_binary64
inv-pow_binary64 pow-flip_binary64 associate-*l*_binary64 *-commutative_binary64 diff-log_binary64 flip3--_binary64 sub-neg_binary64 flip--_binary64 cancel-sign-sub-inv_binary64
Counts
4 → 304
Calls

4 calls:

15.0ms
(/.f64 1 (/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2)))
11.0ms
(/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2))
5.0ms
(*.f64 (*.f64 t z) 9)
4.0ms
(-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9))
Compiler

Compiled 9841 to 5692 computations (42.2% saved)

series337.0ms (2%)

Error
0.0b
Counts
4 → 90
Calls

4 calls:

145.0ms
(/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2))
104.0ms
(/.f64 1 (/.f64 a (/.f64 (-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9)) 2)))
53.0ms
(-.f64 (*.f64 x y) (*.f64 (*.f64 t z) 9))
16.0ms
(*.f64 (*.f64 t z) 9)
Compiler

Compiled 2867 to 2605 computations (9.1% saved)

simplify411.0ms (2.4%)

Algorithm
egg-herbie
Rules
430×associate-/r/_binary64
304×*-commutative_binary64
291×associate-*l/_binary64
268×associate-/l/_binary64
238×associate-*r/_binary64
234×times-frac_binary64
227×associate-/l*_binary64
224×associate-/r*_binary64
211×associate-*r*_binary64
190×associate-*l*_binary64
138×div-sub_binary64
101×exp-prod_binary64
77×unswap-sqr_binary64
71×cube-prod_binary64
70×*-rgt-identity_binary64
63×sub-neg_binary64
58×neg-mul-1_binary64
57×log-prod_binary64 neg-sub0_binary64
53×sqr-pow_binary64
33×log-div_binary64
32×distribute-rgt-neg-in_binary64
30×cube-div_binary64
29×cancel-sign-sub-inv_binary64 +-commutative_binary64
25×distribute-lft-neg-in_binary64
23×/-rgt-identity_binary64 *-lft-identity_binary64
22×distribute-rgt-in_binary64 distribute-lft-in_binary64
21×unpow3_binary64
20×remove-double-div_binary64
16×cube-mult_binary64
15×unsub-neg_binary64 associate-+r+_binary64
14×exp-sum_binary64
13×swap-sqr_binary64
11×exp-diff_binary64 distribute-neg-in_binary64
10×distribute-neg-frac_binary64 associate--r+_binary64
cube-unmult_binary64
log-rec_binary64
associate-+r-_binary64 associate-+l+_binary64
unpow1/2_binary64 unpow1_binary64
log-pow_binary64 unpow2_binary64 pow-plus_binary64 rem-sqrt-square_binary64 associate--r-_binary64
mul-1-neg_binary64 difference-of-squares_binary64 distribute-rgt-out_binary64
exp-lft-sqr_binary64 exp-sqrt_binary64 remove-double-neg_binary64 sub0-neg_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 distribute-lft-neg-out_binary64
div-exp_binary64 prod-exp_binary64 1-exp_binary64 exp-1-e_binary64 cube-neg_binary64 sqr-neg_binary64 div0_binary64 pow-sqr_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-cbrt_binary64 rec-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-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 --rgt-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-rgt-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64 associate--l-_binary64 associate--l+_binary64 associate-+l-_binary64
Counts
394 → 335
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
044913452
1108112731
2443212646
3477312646
4508412646

prune285.0ms (1.7%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New3341335
Fresh167
Picked011
Done011
Total3359344
Error
0.0b
Counts
344 → 9
Compiler

Compiled 6616 to 3589 computations (45.8% saved)

regimes9.9s (58.3%)

Accuracy

Total 0.9b remaining (63.5%)

Threshold costs 0.9b (63.5%)

Compiler

Compiled 92139 to 77540 computations (15.8% saved)

bsearch13.0ms (0.1%)

Compiler

Compiled 13 to 13 computations (0% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
15×*-commutative_binary64
10×sub-neg_binary64 +-commutative_binary64
neg-mul-1_binary64 neg-sub0_binary64 distribute-rgt-neg-in_binary64
distribute-lft-neg-in_binary64
cancel-sign-sub-inv_binary64
distribute-neg-frac_binary64 distribute-lft-neg-out_binary64
if-if-or-not_binary64 unpow1_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 if-if-and-not_binary64 if-if-and_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 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 sqr-abs_binary64 sqr-neg_binary64 unsub-neg_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 remove-double-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-rgt-neg-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035103
156103
281103
3102103
4115103
5120103
6121103
7118103

end47.0ms (0.3%)

Remove

(sort z t)

Compiler

Compiled 476 to 322 computations (32.4% saved)

sample1.6s (9.5%)

Algorithm
intervals
Results
348.0ms8000×body128valid
150.0ms3255×body128invalid
Compiler

Compiled 364 to 297 computations (18.4% saved)

Profiling

Loading profile data...