Details

Time bar (total: 10.9s)

analyze1.1s (9.9%)

Algorithm
search
egg-herbie
Rules
944×div-sub_binary64
709×times-frac_binary64
602×unsub-neg_binary64
540×sub-neg_binary64
504×associate-/l*_binary64
466×distribute-rgt-in_binary64
346×distribute-lft-in_binary64
228×cancel-sign-sub-inv_binary64
222×associate-/r*_binary64
216×distribute-rgt-neg-in_binary64
210×neg-mul-1_binary64
201×distribute-lft-neg-in_binary64
195×associate-/l/_binary64
182×associate-/r/_binary64
172×neg-sub0_binary64
149×distribute-lft-neg-out_binary64
137×distribute-rgt-neg-out_binary64
115×associate--r+_binary64
113×distribute-neg-frac_binary64
96×distribute-frac-neg_binary64
94×associate-*r*_binary64
87×*-lft-identity_binary64
84×*-commutative_binary64
83×+-commutative_binary64
76×associate-*l/_binary64
70×remove-double-neg_binary64
64×distribute-rgt-out_binary64
59×associate-*l*_binary64
48×mul0-rgt_binary64 mul0-lft_binary64
46×distribute-neg-in_binary64
36×div0_binary64
30×/-rgt-identity_binary64
29×sub0-neg_binary64
28×associate-+l-_binary64
26×associate-+l+_binary64
24×remove-double-div_binary64 associate--r-_binary64
22×*-rgt-identity_binary64 associate--l-_binary64
20×+-lft-identity_binary64
18×associate-+r-_binary64
15×cancel-sign-sub_binary64
10×+-rgt-identity_binary64 associate-+r+_binary64
distribute-rgt-out--_binary64 associate-*r/_binary64
mul-1-neg_binary64 --rgt-identity_binary64 associate--l+_binary64
sqr-neg_binary64 swap-sqr_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 rem-sqrt-square_binary64 rem-square-sqrt_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03080
15472
28872
316372
423572
540072
664072
790972
8172972
9240472
10228372
11238472
12244972
13248972
14262772
15230772
16231972
17214772
18214772
19197972
20234172
21209772
22210972
23212172
24212172
25212172
26199272
033
133
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
12.5%87.4%0.1%5
18.7%81.1%0.1%6
18.7%76.5%4.8%7
28.1%66.3%5.6%8
35.1%55%9.9%9
36.3%50.9%12.8%10
42.1%42.4%15.5%11
47.5%33.8%18.7%12
48.8%30.7%20.6%13
51.8%25.6%22.5%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample42.0ms (0.4%)

Algorithm
intervals
Results
8.0ms168×body128valid
7.0ms34×body2048valid
4.0ms16×body4096valid
4.0ms23×body1024valid
1.0ms12×body512valid
1.0ms30×body128nan
0.0msbody128invalid
0.0msbody256valid
Compiler

Compiled 27 to 24 computations (11.1% saved)

simplify75.0ms (0.7%)

Algorithm
egg-herbie
Rules
379×associate-/l*_binary64
363×div-sub_binary64
224×times-frac_binary64
196×distribute-rgt-in_binary64
168×cancel-sign-sub-inv_binary64
164×distribute-lft-in_binary64
144×associate-/l/_binary64
122×sub-neg_binary64
111×associate-/r*_binary64
85×distribute-neg-frac_binary64
71×unsub-neg_binary64
70×associate-*r*_binary64
68×distribute-rgt-neg-in_binary64
66×associate-/r/_binary64
60×distribute-lft-neg-in_binary64 associate-*l*_binary64
55×associate-*l/_binary64
37×neg-mul-1_binary64
35×associate-*r/_binary64
33×neg-sub0_binary64
29×+-commutative_binary64
28×associate--r+_binary64
24×distribute-lft-neg-out_binary64 distribute-rgt-out_binary64
23×distribute-frac-neg_binary64 distribute-rgt-neg-out_binary64
21×*-lft-identity_binary64
20×mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-commutative_binary64
16×distribute-neg-in_binary64 distribute-rgt-out--_binary64
15×*-rgt-identity_binary64
13×+-lft-identity_binary64
12×/-rgt-identity_binary64 remove-double-div_binary64
11×sub0-neg_binary64
10×associate-+l-_binary64
remove-double-neg_binary64
associate--r-_binary64 associate-+l+_binary64
associate--l-_binary64
mul-1-neg_binary64
--rgt-identity_binary64 associate-+r-_binary64
+-rgt-identity_binary64 associate-+r+_binary64
associate--l+_binary64
1-exp_binary64 sqr-neg_binary64 swap-sqr_binary64 cancel-sign-sub_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64
Counts
1 → 1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01120
12218
23718
36118
49318
515118
622918
730818
843318
941218
1064918
1198918
1284318
1374518
1475318
1576118
1676318
1777118
1880718
1980918
2071418

prune7.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 24 to 18 computations (25% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
0.8b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
0.9b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
23.0b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

rewrite182.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
33.9b
Rules
38×add-sqr-sqrt_binary64
27×*-un-lft-identity_binary64
18×times-frac_binary64
17×add-cube-cbrt_binary64
10×difference-of-squares_binary64
add-log-exp_binary64 sqrt-prod_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 associate-/l*_binary64
pow1_binary64 distribute-lft-out--_binary64
flip3--_binary64 flip--_binary64 cancel-sign-sub-inv_binary64
associate-/r*_binary64
sqrt-div_binary64 diff-log_binary64 sub-neg_binary64 associate-/l/_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 div-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 div-sub_binary64 clear-num_binary64 div-inv_binary64
Counts
4 → 86
Calls

4 calls:

21.0ms
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
8.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
8.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
6.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 2014 to 333 computations (83.5% saved)

series884.0ms (8.1%)

Error
5.4b
Counts
4 → 65
Calls

4 calls:

276.0ms
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a)
212.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
185.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
157.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 2415 to 1700 computations (29.6% saved)

simplify127.0ms (1.2%)

Algorithm
egg-herbie
Rules
466×associate-*l*_binary64
447×times-frac_binary64
445×associate-*r*_binary64
325×associate-/l*_binary64
235×associate-/r*_binary64
163×associate-*l/_binary64
118×distribute-rgt-neg-in_binary64 associate-*r/_binary64
117×distribute-rgt-in_binary64
113×distribute-lft-in_binary64
111×exp-prod_binary64
101×distribute-lft-neg-in_binary64
92×associate-/r/_binary64
91×cancel-sign-sub-inv_binary64
83×sub-neg_binary64
65×associate-/l/_binary64
58×*-commutative_binary64
54×div-sub_binary64 distribute-neg-frac_binary64
51×neg-mul-1_binary64 neg-sub0_binary64
43×unswap-sqr_binary64
42×+-commutative_binary64
35×sqr-pow_binary64
21×distribute-lft-neg-out_binary64
17×distribute-rgt-out_binary64
13×pow-plus_binary64
11×distribute-rgt-neg-out_binary64 associate--l+_binary64
10×unpow3_binary64 associate-+r-_binary64
cube-prod_binary64 +-rgt-identity_binary64 distribute-neg-in_binary64 associate-+l+_binary64
difference-of-squares_binary64
log-div_binary64 exp-diff_binary64 exp-sum_binary64 /-rgt-identity_binary64
unsub-neg_binary64
log-prod_binary64 cube-unmult_binary64 cube-mult_binary64 associate-+r+_binary64
rem-sqrt-square_binary64 *-rgt-identity_binary64 pow-sqr_binary64 associate--r+_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 cube-div_binary64 mul-1-neg_binary64 swap-sqr_binary64 distribute-lft-out_binary64 associate-+l-_binary64
log-pow_binary64 div-exp_binary64 rem-square-sqrt_binary64
1-exp_binary64 rem-3cbrt-lft_binary64 *-lft-identity_binary64 remove-double-neg_binary64 *-inverses_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 count-2_binary64 associate--r-_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 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 exp-neg_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-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64
Counts
151 → 73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01882994
14582838
211862832
349702832
450442832

prune76.0ms (0.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New631073
Fresh000
Picked011
Done000
Total631174
Error
6.3b
Counts
74 → 11
Compiler

Compiled 1338 to 400 computations (70.1% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.9b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
0.9b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
23.0b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
23.0b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

rewrite111.0ms (1%)

Algorithm
rewrite-expression-head
Error
6.3b
Rules
18×add-sqr-sqrt_binary64
12×*-un-lft-identity_binary64
add-log-exp_binary64 add-cube-cbrt_binary64 sqrt-prod_binary64
pow1_binary64 cancel-sign-sub-inv_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 flip3--_binary64 sqrt-div_binary64 flip--_binary64 difference-of-squares_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 diff-log_binary64 sub-neg_binary64 distribute-lft-out--_binary64
Counts
4 → 64
Calls

4 calls:

9.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
9.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
4.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 2248 to 296 computations (86.8% saved)

series895.0ms (8.2%)

Error
6.3b
Counts
4 → 68
Calls

4 calls:

226.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
223.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2)
187.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
187.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 5210 to 2890 computations (44.5% saved)

simplify124.0ms (1.1%)

Algorithm
egg-herbie
Rules
456×distribute-rgt-neg-in_binary64
387×unswap-sqr_binary64
330×associate-*l*_binary64
329×associate-*r*_binary64
292×times-frac_binary64
257×distribute-neg-frac_binary64
165×associate-/l*_binary64
124×sub-neg_binary64
115×associate-/r*_binary64
87×neg-sub0_binary64
84×neg-mul-1_binary64 distribute-lft-neg-out_binary64 *-commutative_binary64
80×cancel-sign-sub-inv_binary64
79×distribute-lft-neg-in_binary64
78×cube-prod_binary64
74×distribute-rgt-neg-out_binary64
59×associate-*l/_binary64
58×+-commutative_binary64
54×sqr-pow_binary64
50×unsub-neg_binary64
46×associate-*r/_binary64
45×distribute-lft-in_binary64
43×distribute-rgt-in_binary64
37×associate-+l+_binary64
33×exp-prod_binary64 difference-of-squares_binary64 swap-sqr_binary64
30×associate-+l-_binary64
28×unpow3_binary64 associate-/r/_binary64
27×associate-+r-_binary64
25×associate-+r+_binary64
21×cube-unmult_binary64
20×pow-plus_binary64 +-rgt-identity_binary64
19×exp-sum_binary64
18×sub0-neg_binary64
17×div-sub_binary64 distribute-rgt-out_binary64
14×cube-mult_binary64
12×distribute-neg-in_binary64 associate--l+_binary64
11×mul0-rgt_binary64 mul0-lft_binary64
exp-diff_binary64
associate--r+_binary64
rem-sqrt-square_binary64 pow-sqr_binary64 distribute-lft-out_binary64 associate-/l/_binary64
cancel-sign-sub_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 mul-1-neg_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64
rem-square-sqrt_binary64 remove-double-neg_binary64 associate--l-_binary64
div-exp_binary64 1-exp_binary64 rem-3cbrt-lft_binary64 sqr-neg_binary64 *-lft-identity_binary64 --rgt-identity_binary64 +-inverses_binary64 associate--r-_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 rec-exp_binary64 prod-exp_binary64 exp-neg_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 +-lft-identity_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 count-2_binary64
Counts
132 → 66
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01042302
12522210
26932204
330832184
449152184
549322184

prune87.0ms (0.8%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New65166
Fresh189
Picked011
Done011
Total661177
Error
6.3b
Counts
77 → 11
Compiler

Compiled 2157 to 537 computations (75.1% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

8.7b
(-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) b_2)
23.0b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
23.8b
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
23.8b
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

rewrite120.0ms (1.1%)

Algorithm
rewrite-expression-head
Error
6.3b
Rules
add-sqr-sqrt_binary64
add-cube-cbrt_binary64 *-un-lft-identity_binary64
add-log-exp_binary64 cbrt-prod_binary64
pow1_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 flip3--_binary64 cbrt-div_binary64 flip--_binary64
sqrt-prod_binary64 cancel-sign-sub-inv_binary64
pow1/3_binary64 sqrt-div_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 diff-log_binary64 sub-neg_binary64
Counts
4 → 55
Calls

4 calls:

9.0ms
(-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) b_2)
6.0ms
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
4.0ms
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 2662 to 372 computations (86% saved)

series1.6s (15.2%)

Error
6.3b
Counts
4 → 72
Calls

4 calls:

626.0ms
(-.f64 (*.f64 (fabs.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (sqrt.f64 (cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) b_2)
353.0ms
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
346.0ms
(cbrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
200.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 8789 to 4954 computations (43.6% saved)

simplify95.0ms (0.9%)

Algorithm
egg-herbie
Rules
676×associate-/l*_binary64
302×cancel-sign-sub-inv_binary64
276×distribute-rgt-neg-in_binary64
262×distribute-lft-neg-in_binary64
199×associate-/r/_binary64
162×associate-*r*_binary64
149×distribute-neg-frac_binary64
126×unswap-sqr_binary64
115×associate-*l*_binary64
108×sub-neg_binary64
107×*-commutative_binary64
97×distribute-rgt-in_binary64
95×times-frac_binary64
89×sqr-pow_binary64
85×distribute-lft-in_binary64
71×neg-mul-1_binary64
69×neg-sub0_binary64
55×+-commutative_binary64
53×associate-/r*_binary64
51×associate-*r/_binary64
42×associate-/l/_binary64
37×exp-prod_binary64 associate-*l/_binary64
31×exp-sum_binary64 distribute-lft-neg-out_binary64
26×distribute-rgt-out_binary64
23×log-prod_binary64 unsub-neg_binary64
20×distribute-neg-in_binary64
16×distribute-rgt-neg-out_binary64
15×associate--r+_binary64
14×distribute-lft-out_binary64
13×cube-prod_binary64
12×unpow1/3_binary64 pow-sqr_binary64
11×+-rgt-identity_binary64 difference-of-squares_binary64 associate-+r-_binary64
10×rem-sqrt-square_binary64
unpow3_binary64 cube-unmult_binary64 cube-mult_binary64
associate--l+_binary64
exp-diff_binary64 swap-sqr_binary64 associate-+l+_binary64
log-pow_binary64 associate-+r+_binary64
log-div_binary64 div-sub_binary64 distribute-neg-out_binary64 associate--r-_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 rem-square-sqrt_binary64
log-rec_binary64 pow-plus_binary64 rem-3cbrt-lft_binary64 remove-double-neg_binary64 distribute-rgt-out--_binary64
div-exp_binary64 1-exp_binary64 sqr-abs_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--l-_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_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 exp-neg_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-neg_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 sub0-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-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate-+l-_binary64
Counts
127 → 83
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02323355
16273104
220233032
351073032

prune139.0ms (1.3%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New83083
Fresh088
Picked011
Done022
Total831194
Error
6.3b
Counts
94 → 11
Compiler

Compiled 3651 to 845 computations (76.9% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

1.3b
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
6.1b
(/.f64 (-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2))) (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))))
20.0b
(-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2)))
23.0b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

rewrite154.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
6.2b
Rules
28×*-un-lft-identity_binary64
23×add-sqr-sqrt_binary64
16×add-cube-cbrt_binary64 times-frac_binary64
11×add-log-exp_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 difference-of-squares_binary64 distribute-lft-out_binary64
pow1_binary64
associate-/l*_binary64 associate-/r*_binary64
flip3--_binary64 flip--_binary64 sqrt-prod_binary64 cancel-sign-sub-inv_binary64
sqrt-div_binary64 sum-log_binary64 diff-log_binary64 associate-/l/_binary64 flip3-+_binary64 associate-/r/_binary64 flip-+_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 sub-neg_binary64 associate--r+_binary64 div-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 div-sub_binary64 clear-num_binary64 div-inv_binary64 +-commutative_binary64
Counts
4 → 85
Calls

4 calls:

14.0ms
(/.f64 (-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2))) (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))))
7.0ms
(-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2)))
6.0ms
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
5.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Compiler

Compiled 3301 to 412 computations (87.5% saved)

series898.0ms (8.3%)

Error
6.2b
Counts
4 → 60
Calls

4 calls:

349.0ms
(/.f64 (-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2))) (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))))
214.0ms
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
184.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
93.0ms
(-.f64 (*.f64 b_2 b_2) (+.f64 (*.f64 a c) (*.f64 b_2 b_2)))
Compiler

Compiled 3942 to 2148 computations (45.5% saved)

simplify134.0ms (1.2%)

Algorithm
egg-herbie
Rules
590×div-sub_binary64
416×times-frac_binary64
392×associate-/l*_binary64
303×distribute-rgt-in_binary64
283×distribute-lft-in_binary64
211×associate-/r*_binary64
170×associate-*l/_binary64
146×cancel-sign-sub-inv_binary64
121×distribute-rgt-neg-in_binary64
108×associate-/r/_binary64
106×distribute-lft-neg-in_binary64
97×sub-neg_binary64
86×exp-prod_binary64
81×associate-/l/_binary64
65×unswap-sqr_binary64
60×cube-prod_binary64 *-commutative_binary64
51×neg-sub0_binary64
49×exp-sum_binary64 neg-mul-1_binary64 associate-*r*_binary64
46×associate-*l*_binary64
45×distribute-neg-frac_binary64 +-commutative_binary64
39×sqr-pow_binary64
31×distribute-rgt-out_binary64
30×distribute-neg-in_binary64
23×exp-diff_binary64
21×distribute-lft-neg-out_binary64
19×associate-*r/_binary64
18×cube-div_binary64
16×associate-+l+_binary64
15×unpow3_binary64 difference-of-squares_binary64 associate-+r+_binary64
13×associate--r+_binary64
12×log-prod_binary64
11×rem-sqrt-square_binary64 distribute-rgt-neg-out_binary64
10×cube-unmult_binary64
cube-mult_binary64 unsub-neg_binary64
/-rgt-identity_binary64 distribute-lft-out_binary64
associate-+r-_binary64
log-div_binary64 pow-plus_binary64 *-rgt-identity_binary64
sqr-neg_binary64 distribute-frac-neg_binary64 associate--l+_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 mul-1-neg_binary64 swap-sqr_binary64
div-exp_binary64 cube-neg_binary64 rem-square-sqrt_binary64 +-rgt-identity_binary64 div0_binary64 pow-sqr_binary64 cancel-sign-sub_binary64 distribute-rgt-out--_binary64 associate--r-_binary64 associate-+l-_binary64
prod-exp_binary64 remove-double-neg_binary64 distribute-neg-out_binary64 count-2_binary64
log-pow_binary64 exp-neg_binary64 1-exp_binary64 rem-3cbrt-lft_binary64 *-lft-identity_binary64 sub0-neg_binary64 *-inverses_binary64 +-inverses_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 log-rec_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 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64
Counts
145 → 102
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01903910
15053676
213503137
346373137
458133137

prune108.0ms (1%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New975102
Fresh257
Picked101
Done123
Total10112113
Error
6.2b
Counts
113 → 12
Compiler

Compiled 2692 to 489 computations (81.8% saved)

regimes1.3s (11.6%)

Accuracy

Total 5.1b remaining (49%)

Threshold costs 0b (0%)

Compiler

Compiled 9564 to 4722 computations (50.6% saved)

bsearch76.0ms (0.7%)

Steps
ItersRangePoint
11
1.0265605753738292e-178
2.3490362701096966e-157
2.3238040074139788e-157
7
-1.1683914112865132e+153
-6.618675935020947e+150
-6.65161615452373e+151
Compiler

Compiled 1 to 3 computations (-200% saved)

simplify5.0ms (0.1%)

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
unsub-neg_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 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: 1 (0.0ms)

IterNodesCost
02755
14253
25353
36053
46453
56553
66553

end0.0ms (0%)

sample2.5s (22.9%)

Algorithm
intervals
Results
236.0ms1134×body2048valid
232.0ms5199×body128valid
113.0ms689×body1024valid
108.0ms413×body4096valid
46.0ms362×body512valid
32.0ms725×body128nan
23.0ms203×body256valid
11.0ms263×body128invalid
Compiler

Compiled 2433 to 1209 computations (50.3% saved)

Profiling

Loading profile data...