Details

Time bar (total: 16.5s)

analyze1.4s (8.5%)

Algorithm
search
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
9.4%90.4%0.2%6
17.2%82.7%0.2%7
19.5%80.3%0.2%8
30.8%69%0.2%9
35.5%64.3%0.2%10
42.4%57.4%0.2%11
47.1%52.7%0.2%12
48.9%50.8%0.3%13
50%49.7%0.4%14
Compiler

Compiled 38 to 20 computations (47.4% saved)

sample118.0ms (0.7%)

Algorithm
intervals
Results
41.0ms71×body1024invalid
27.0ms241×body128valid
12.0ms35×body512invalid
3.0ms10×body512valid
3.0ms27×body128invalid
3.0ms13×body256invalid
1.0msbody1024valid
1.0msbody2048valid
1.0msbody2048invalid
0.0msbody256valid
Compiler

Compiled 75 to 43 computations (42.7% saved)

simplify354.0ms (2.1%)

Algorithm
egg-herbie
Rules
533×distribute-rgt-out--_binary64
459×associate-/l*_binary64
318×associate-/r*_binary64
288×associate-*r/_binary64
283×unswap-sqr_binary64 associate-*l/_binary64
216×exp-prod_binary64
183×associate-/r/_binary64
181×sqr-pow_binary64
173×swap-sqr_binary64
160×*-commutative_binary64
155×distribute-rgt-neg-in_binary64
125×associate-/l/_binary64
123×pow-sqr_binary64
98×sub-neg_binary64
74×associate-*l*_binary64
70×associate-*r*_binary64
69×exp-sum_binary64 div-sub_binary64
56×times-frac_binary64
55×cancel-sign-sub-inv_binary64
54×distribute-rgt-out_binary64
44×distribute-lft-out_binary64
43×distribute-lft-neg-in_binary64
40×unsub-neg_binary64 distribute-lft-out--_binary64
37×exp-diff_binary64 *-lft-identity_binary64
34×neg-mul-1_binary64
29×distribute-rgt1-in_binary64 distribute-rgt-in_binary64
26×neg-sub0_binary64
20×distribute-frac-neg_binary64
19×distribute-neg-in_binary64
17×distribute-neg-out_binary64
16×distribute-neg-frac_binary64 distribute-rgt-neg-out_binary64 +-commutative_binary64
15×/-rgt-identity_binary64 distribute-lft-in_binary64
14×pow-plus_binary64
13×*-rgt-identity_binary64
12×cube-prod_binary64 mul0-lft_binary64 distribute-lft-neg-out_binary64
10×cube-unmult_binary64
distribute-lft1-in_binary64 associate--r+_binary64
mul0-rgt_binary64 +-inverses_binary64 associate-+l-_binary64
remove-double-neg_binary64 +-rgt-identity_binary64
sub0-neg_binary64 div0_binary64 associate-+r-_binary64
unpow3_binary64 exp-to-pow_binary64 associate-+l+_binary64
--rgt-identity_binary64 +-lft-identity_binary64 associate-+r+_binary64
div-exp_binary64 prod-exp_binary64 exp-neg_binary64 cube-div_binary64 count-2_binary64
associate--r-_binary64
pow-base-1_binary64 exp-lft-sqr_binary64 exp-sqrt_binary64 1-exp_binary64 rem-exp-log_binary64 rem-sqrt-square_binary64 *-inverses_binary64 associate--l+_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow2_binary64 unpow1/2_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-cbrt_binary64 rec-exp_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 cube-mult_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 mul-1-neg_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 associate--l-_binary64
Counts
1 → 4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02274
13772
26272
310572
424972
597072
6305172
7358372

prune22.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New314
Fresh011
Picked000
Done000
Total325
Error
33.3b
Counts
5 → 2
Compiler

Compiled 218 to 68 computations (68.8% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

1.6b
(*.f64 (atan2.f64 x.im x.re) y.im)
28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
33.9b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite131.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
33.2b
Rules
12×add-sqr-sqrt_binary64
pow1_binary64 add-cube-cbrt_binary64 *-un-lft-identity_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-prod_binary64
add-log-exp_binary64 sqrt-div_binary64
associate-*l*_binary64 associate-*r*_binary64
pow1/2_binary64 sqrt-pow1_binary64 flip3-+_binary64 flip-+_binary64 rem-sqrt-square_binary64
cos-sum_binary64 pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 *-commutative_binary64
Counts
4 → 56
Calls

4 calls:

8.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
5.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2594 to 353 computations (86.4% saved)

series916.0ms (5.5%)

Error
17.3b
Counts
4 → 50
Calls

4 calls:

412.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
210.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
110.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
103.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 5269 to 2666 computations (49.4% saved)

simplify217.0ms (1.3%)

Algorithm
egg-herbie
Rules
459×cancel-sign-sub-inv_binary64
328×distribute-rgt-neg-in_binary64
299×distribute-lft-neg-in_binary64
276×unswap-sqr_binary64
259×associate-*r*_binary64
254×associate-*l*_binary64
218×distribute-neg-frac_binary64
213×distribute-rgt-in_binary64
174×distribute-lft-in_binary64
142×sub-neg_binary64
119×times-frac_binary64
110×associate-/l*_binary64
105×sqr-pow_binary64
102×*-commutative_binary64
101×neg-sub0_binary64
99×neg-mul-1_binary64
83×associate-/r*_binary64
72×associate-*l/_binary64
69×distribute-lft-neg-out_binary64 associate-*r/_binary64
63×pow-sqr_binary64
48×difference-of-squares_binary64
45×+-commutative_binary64
40×pow-plus_binary64 distribute-rgt-neg-out_binary64
39×distribute-rgt-out_binary64
34×unsub-neg_binary64 associate-+r-_binary64
30×div-sub_binary64
28×associate-+l-_binary64
26×associate-/r/_binary64
25×distribute-neg-in_binary64
21×+-rgt-identity_binary64
20×cube-prod_binary64 distribute-rgt-out--_binary64
19×associate-+l+_binary64 associate-+r+_binary64
16×log-prod_binary64 sub0-neg_binary64
15×exp-prod_binary64 cube-unmult_binary64
14×log-div_binary64
unpow3_binary64 *-rgt-identity_binary64 distribute-lft-out--_binary64
exp-sqrt_binary64 *-lft-identity_binary64
cube-div_binary64 distribute-frac-neg_binary64 associate--r+_binary64
swap-sqr_binary64 distribute-lft-out_binary64
cancel-sign-sub_binary64 associate-/l/_binary64 associate--l+_binary64
log-pow_binary64 cube-mult_binary64
rem-sqrt-square_binary64 remove-double-neg_binary64 mul0-lft_binary64 associate--r-_binary64
log-rec_binary64 unpow2_binary64 unpow1_binary64 mul-1-neg_binary64 --rgt-identity_binary64 mul0-rgt_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64
exp-lft-sqr_binary64 prod-exp_binary64 exp-diff_binary64 1-exp_binary64 exp-1-e_binary64 rem-log-exp_binary64 rem-square-sqrt_binary64 *-inverses_binary64 rgt-mult-inverse_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow1/2_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-cbrt_binary64 div-exp_binary64 rec-exp_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-0_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 /-rgt-identity_binary64 +-lft-identity_binary64 div0_binary64 +-inverses_binary64 lft-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-lft1-in_binary64 count-2_binary64 associate--l-_binary64
Counts
106 → 170
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01582237
13462090
29882090
326182090

prune379.0ms (2.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1619170
Fresh011
Picked101
Done000
Total16210172
Error
17.8b
Counts
172 → 10
Compiler

Compiled 8691 to 3016 computations (65.3% saved)

localize28.0ms (0.2%)

Local error

Found 4 expressions with local error:

5.6b
(cbrt.f64 (atan2.f64 x.im x.re))
28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
33.9b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite112.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
17.8b
Rules
add-sqr-sqrt_binary64
add-cube-cbrt_binary64 *-un-lft-identity_binary64
pow1_binary64 sqrt-prod_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-div_binary64
cbrt-prod_binary64
pow1/2_binary64 sqrt-pow1_binary64 flip3-+_binary64 flip-+_binary64 rem-sqrt-square_binary64
cos-sum_binary64 pow1/3_binary64
Counts
4 → 49
Calls

4 calls:

6.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
1.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
Compiler

Compiled 2832 to 332 computations (88.3% saved)

series1.0s (6.3%)

Error
17.2b
Counts
4 → 47
Calls

4 calls:

383.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
255.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
211.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
105.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 6318 to 2848 computations (54.9% saved)

simplify200.0ms (1.2%)

Algorithm
egg-herbie
Rules
513×cancel-sign-sub-inv_binary64
326×distribute-rgt-neg-in_binary64
306×unswap-sqr_binary64
297×distribute-lft-neg-in_binary64
230×distribute-rgt-in_binary64
224×associate-*r*_binary64
216×distribute-neg-frac_binary64
190×distribute-lft-in_binary64
178×associate-*l*_binary64
142×sub-neg_binary64
119×times-frac_binary64
110×associate-/l*_binary64
101×neg-sub0_binary64 sqr-pow_binary64
99×neg-mul-1_binary64
93×*-commutative_binary64
83×associate-/r*_binary64
70×distribute-lft-neg-out_binary64
66×pow-sqr_binary64
55×associate-*l/_binary64 associate-*r/_binary64
48×difference-of-squares_binary64
45×+-commutative_binary64
41×pow-plus_binary64
40×distribute-rgt-neg-out_binary64
38×log-prod_binary64 distribute-rgt-out_binary64
34×unsub-neg_binary64 associate-+r-_binary64
30×div-sub_binary64
28×associate-+l-_binary64
26×associate-/r/_binary64
25×distribute-neg-in_binary64
21×+-rgt-identity_binary64
20×distribute-rgt-out--_binary64
17×associate-+l+_binary64 associate-+r+_binary64
16×sub0-neg_binary64
15×cube-unmult_binary64 cube-prod_binary64
13×log-pow_binary64
distribute-lft-out--_binary64
log-div_binary64 unpow3_binary64
rem-sqrt-square_binary64 distribute-frac-neg_binary64 distribute-lft-out_binary64 associate--r+_binary64
exp-prod_binary64 associate-/l/_binary64
cancel-sign-sub_binary64 associate--l+_binary64
cube-mult_binary64
remove-double-neg_binary64 mul0-lft_binary64 associate--r-_binary64
log-rec_binary64 unpow2_binary64 unpow1_binary64 mul-1-neg_binary64 --rgt-identity_binary64 mul0-rgt_binary64 swap-sqr_binary64 distribute-neg-out_binary64
unpow1/3_binary64 exp-diff_binary64 1-exp_binary64 rem-log-exp_binary64 rem-3cbrt-lft_binary64 rem-square-sqrt_binary64 *-rgt-identity_binary64 *-inverses_binary64 rgt-mult-inverse_binary64 distribute-rgt1-in_binary64 count-2_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/2_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 prod-exp_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_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 sqr-neg_binary64 /-rgt-identity_binary64 *-lft-identity_binary64 +-lft-identity_binary64 div0_binary64 +-inverses_binary64 lft-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-lft1-in_binary64 associate--l-_binary64
Counts
96 → 149
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01442060
13101949
28801949
324921949

prune393.0ms (2.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1463149
Fresh369
Picked101
Done000
Total1509159
Error
17.8b
Counts
159 → 9
Compiler

Compiled 9384 to 2820 computations (69.9% saved)

localize35.0ms (0.2%)

Local error

Found 4 expressions with local error:

5.6b
(cbrt.f64 (atan2.f64 x.im x.re))
28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.1b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
33.9b
(cos.f64 (+.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 y.im (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))))))

rewrite158.0ms (1%)

Algorithm
rewrite-expression-head
Error
17.8b
Rules
11×*-un-lft-identity_binary64
add-sqr-sqrt_binary64
sqrt-prod_binary64
add-cube-cbrt_binary64
pow1_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-div_binary64
cbrt-prod_binary64
pow1/2_binary64 sqrt-pow1_binary64 flip3-+_binary64 flip-+_binary64 unpow-prod-down_binary64 distribute-lft-out_binary64 rem-sqrt-square_binary64
cos-sum_binary64 pow1/3_binary64
Counts
4 → 51
Calls

4 calls:

11.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
6.0ms
(cos.f64 (+.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 y.im (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
1.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
Compiler

Compiled 3089 to 1113 computations (64% saved)

series1.0s (6.2%)

Error
17.2b
Counts
4 → 46
Calls

4 calls:

349.0ms
(cos.f64 (+.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 y.im (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))))))
262.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
221.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
105.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
Compiler

Compiled 6492 to 3486 computations (46.3% saved)

simplify270.0ms (1.6%)

Algorithm
egg-herbie
Rules
468×cancel-sign-sub-inv_binary64
312×unswap-sqr_binary64
228×distribute-rgt-neg-in_binary64
217×distribute-rgt-in_binary64
214×distribute-lft-neg-in_binary64
212×associate-/r/_binary64
174×distribute-lft-in_binary64
171×associate-*r*_binary64
149×associate-*l*_binary64
146×distribute-neg-frac_binary64
135×sub-neg_binary64
126×associate-/l/_binary64
120×sqr-pow_binary64
85×neg-sub0_binary64
84×neg-mul-1_binary64 pow-sqr_binary64
73×*-commutative_binary64
69×distribute-rgt-out_binary64
68×associate-/l*_binary64
62×times-frac_binary64
56×pow-plus_binary64 distribute-lft-neg-out_binary64
53×difference-of-squares_binary64
50×distribute-rgt-out--_binary64
48×associate-/r*_binary64
46×log-prod_binary64
44×+-commutative_binary64
40×associate-*l/_binary64
37×associate-*r/_binary64
35×distribute-rgt-neg-out_binary64
34×unsub-neg_binary64
29×log-pow_binary64 associate-+r-_binary64
27×associate-+l-_binary64
25×distribute-neg-in_binary64
24×div-sub_binary64
20×+-rgt-identity_binary64
19×cube-prod_binary64
17×cube-unmult_binary64 associate-+l+_binary64
15×sub0-neg_binary64
14×log-div_binary64
13×exp-prod_binary64 associate-+r+_binary64
12×distribute-lft-out--_binary64
11×unpow3_binary64
10×distribute-lft-out_binary64
rem-sqrt-square_binary64
associate--r+_binary64
pow-base-1_binary64 cube-div_binary64
cancel-sign-sub_binary64 associate--l+_binary64
log-rec_binary64 cube-mult_binary64 swap-sqr_binary64 count-2_binary64
unpow2_binary64 /-rgt-identity_binary64 remove-double-neg_binary64 mul0-lft_binary64 distribute-rgt1-in_binary64 associate--r-_binary64
unpow1_binary64 mul-1-neg_binary64 --rgt-identity_binary64 mul0-rgt_binary64 distribute-neg-out_binary64
unpow1/3_binary64 exp-to-pow_binary64 exp-lft-sqr_binary64 exp-sqrt_binary64 prod-exp_binary64 exp-diff_binary64 1-exp_binary64 rem-log-exp_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-square-sqrt_binary64 *-rgt-identity_binary64 *-inverses_binary64 rgt-mult-inverse_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/2_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-cbrt_binary64 div-exp_binary64 rec-exp_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 *-lft-identity_binary64 +-lft-identity_binary64 div0_binary64 +-inverses_binary64 lft-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-frac-neg_binary64 distribute-lft1-in_binary64 associate--l-_binary64
Counts
97 → 145
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01652017
12951916
27951914
320611914

prune434.0ms (2.6%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1432145
Fresh178
Picked011
Done000
Total14410154
Error
17.8b
Counts
154 → 10
Compiler

Compiled 9332 to 3996 computations (57.2% saved)

localize46.0ms (0.3%)

Local error

Found 4 expressions with local error:

28.1b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
33.9b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
33.9b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
33.9b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))

rewrite209.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
17.8b
Rules
add-sqr-sqrt_binary64
pow1_binary64 add-cube-cbrt_binary64 *-un-lft-identity_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
cos-sum_binary64 sqrt-prod_binary64
sqrt-div_binary64
pow1/2_binary64 sqrt-pow1_binary64 flip3-+_binary64 flip-+_binary64 rem-sqrt-square_binary64
Counts
4 → 39
Calls

4 calls:

7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 4044 to 1807 computations (55.3% saved)

series1.8s (10.9%)

Error
17.8b
Counts
4 → 57
Calls

4 calls:

452.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
436.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
423.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.im 2) (pow.f64 x.re 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
259.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 14628 to 8063 computations (44.9% saved)

simplify271.0ms (1.6%)

Algorithm
egg-herbie
Rules
449×cancel-sign-sub-inv_binary64
326×distribute-rgt-neg-in_binary64
297×distribute-lft-neg-in_binary64
264×unswap-sqr_binary64
216×distribute-neg-frac_binary64
213×distribute-rgt-in_binary64
201×associate-*r*_binary64
176×associate-/l/_binary64
174×distribute-lft-in_binary64
151×associate-*l*_binary64
142×sub-neg_binary64
119×times-frac_binary64
110×associate-/l*_binary64
101×neg-sub0_binary64
99×neg-mul-1_binary64
86×sqr-pow_binary64
85×*-commutative_binary64
83×associate-/r*_binary64
69×distribute-lft-neg-out_binary64
56×pow-sqr_binary64
55×associate-*l/_binary64
54×associate-*r/_binary64
48×difference-of-squares_binary64
46×+-commutative_binary64
40×pow-plus_binary64 distribute-rgt-neg-out_binary64
37×distribute-rgt-out_binary64
34×unsub-neg_binary64 associate-+r-_binary64
30×div-sub_binary64
28×associate-+l-_binary64
26×associate-/r/_binary64
25×distribute-neg-in_binary64
21×+-rgt-identity_binary64
20×distribute-rgt-out--_binary64
17×associate-+l+_binary64 associate-+r+_binary64
16×sub0-neg_binary64
12×cube-unmult_binary64 cube-prod_binary64
distribute-lft-out--_binary64
log-div_binary64 unpow3_binary64
distribute-frac-neg_binary64 associate--r+_binary64
distribute-lft-out_binary64
cancel-sign-sub_binary64 associate--l+_binary64
log-pow_binary64 log-prod_binary64 cube-mult_binary64
remove-double-neg_binary64 mul0-lft_binary64 associate--r-_binary64
log-rec_binary64 unpow2_binary64 unpow1_binary64 rem-sqrt-square_binary64 mul-1-neg_binary64 --rgt-identity_binary64 mul0-rgt_binary64 swap-sqr_binary64 distribute-neg-out_binary64 count-2_binary64
exp-diff_binary64 1-exp_binary64 rem-log-exp_binary64 rem-square-sqrt_binary64 *-rgt-identity_binary64 *-inverses_binary64 rgt-mult-inverse_binary64 distribute-rgt1-in_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow1/2_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-exp-log_binary64 cube-div_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 /-rgt-identity_binary64 *-lft-identity_binary64 +-lft-identity_binary64 div0_binary64 +-inverses_binary64 lft-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-lft1-in_binary64 associate--l-_binary64
Counts
96 → 142
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01263074
12902829
28272829
323442829

prune780.0ms (4.7%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1402142
Fresh088
Picked011
Done011
Total14012152
Error
17.8b
Counts
152 → 12
Compiler

Compiled 14457 to 6755 computations (53.3% saved)

regimes1.0s (6.1%)

Accuracy

Total 0.5b remaining (2.5%)

Threshold costs 0.5b (2.5%)

Compiler

Compiled 14597 to 8560 computations (41.4% saved)

bsearch0.0ms (0%)

simplify8.0ms (0%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-mul-1_binary64 neg-sub0_binary64 distribute-rgt-neg-in_binary64
distribute-lft-neg-in_binary64
cancel-sign-sub-inv_binary64
distribute-lft-neg-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 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
02372
13472
24772
36072
46872
57272
67372
Proof
(* f64 (exp f64 (- f64 (* f64 (log f64 (sqrt f64 (+ f64 (* f64 (x re) (x re)) (* f64 (x im) (x im))))) (y re)) (* f64 (* f64 (cbrt f64 (atan2 f64 (x im) (x re))) (cbrt f64 (atan2 f64 (x im) (x re)))) (=> (* f64 (y im) (cbrt f64 (atan2 f64 (x im) (x re)))))))) (cos f64 (* f64 (y re) (atan2 f64 (x im) (x re))))) *-commutative_binary64 => (* f64 (exp f64 (- f64 (* f64 (log f64 (sqrt f64 (+ f64 (* f64 (x re) (x re)) (* f64 (x im) (x im))))) (y re)) (* f64 (* f64 (cbrt f64 (atan2 f64 (x im) (x re))) (cbrt f64 (atan2 f64 (x im) (x re)))) (* f64 (cbrt f64 (atan2 f64 (x im) (x re))) (y im))))) (cos f64 (* f64 (y re) (atan2 f64 (x im) (x re)))))

end0.0ms (0%)

sample5.1s (31%)

Algorithm
intervals
Results
1.2s2447×body1024invalid
811.0ms7596×body128valid
340.0ms993×body512invalid
93.0ms394×body256invalid
90.0ms173×body1024valid
66.0ms542×body128invalid
49.0ms148×body512valid
23.0ms31×body2048invalid
17.0ms77×body256valid
5.0msbody2048valid
Compiler

Compiled 2977 to 1742 computations (41.5% saved)

Profiling

Loading profile data...