Details

Time bar (total: 7.4s)

analyze835.0ms (11.2%)

Algorithm
search
egg-herbie
Rules
591×neg-mul-1_binary64
519×neg-sub0_binary64
502×div-sub_binary64
497×associate-/l*_binary64
455×associate-/r*_binary64
378×sub-neg_binary64
326×distribute-lft-neg-out_binary64
325×distribute-neg-frac_binary64
240×distribute-rgt-neg-out_binary64
226×distribute-frac-neg_binary64
219×distribute-rgt-neg-in_binary64
175×cancel-sign-sub-inv_binary64
164×unsub-neg_binary64
155×distribute-rgt-in_binary64
151×associate-*r*_binary64
138×cancel-sign-sub_binary64
133×associate-*l*_binary64
118×remove-double-neg_binary64
101×*-commutative_binary64
88×associate-/r/_binary64
77×+-commutative_binary64
76×distribute-neg-in_binary64 associate-*l/_binary64
73×distribute-lft-in_binary64
57×associate--l-_binary64
56×times-frac_binary64 distribute-lft-neg-in_binary64
53×associate-*r/_binary64
52×associate-/l/_binary64
51×/-rgt-identity_binary64 distribute-neg-out_binary64 associate--r+_binary64
46×sub0-neg_binary64 associate-+r-_binary64
45×associate-+l-_binary64
36×*-lft-identity_binary64
35×associate--r-_binary64
32×associate-+r+_binary64
30×div0_binary64
24×associate-+l+_binary64
18×mul0-rgt_binary64
15×*-rgt-identity_binary64 mul0-lft_binary64
14×+-rgt-identity_binary64
13×distribute-lft-out_binary64
12×distribute-rgt-out--_binary64
associate--l+_binary64
mul-1-neg_binary64 +-lft-identity_binary64 swap-sqr_binary64
sqr-neg_binary64 --rgt-identity_binary64 remove-double-div_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-rgt1-in_binary64 distribute-lft1-in_binary64 distribute-rgt-out_binary64 distribute-lft-out--_binary64 count-2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055232
1127224
2250224
3535216
4880216
51586216
63577216
74244216
84751216
94877216
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
0%99.9%0.1%5
12.5%87.4%0.1%6
20.3%73.3%6.4%7
27.3%66.3%6.4%8
38.2%53%8.7%9
46%40.6%13.4%10
49.9%35.1%15%11
54.9%26.9%18.1%12
57.4%22%20.6%13
59.7%18%22.4%14
Compiler

Compiled 39 to 27 computations (30.8% saved)

sample40.0ms (0.5%)

Algorithm
intervals
Results
23.0ms256×body128valid
2.0ms21×body128nan
1.0ms14×body128invalid
Compiler

Compiled 77 to 56 computations (27.3% saved)

simplify604.0ms (8.1%)

Algorithm
egg-herbie
Rules
1534×div-sub_binary64
1283×associate-/l*_binary64
1224×distribute-rgt-in_binary64
767×associate-/r*_binary64
744×distribute-lft-in_binary64
638×sub-neg_binary64
529×unsub-neg_binary64
510×cancel-sign-sub-inv_binary64
488×times-frac_binary64
376×associate-/r/_binary64
308×associate-/l/_binary64
284×associate-*l/_binary64
249×*-commutative_binary64
241×distribute-neg-frac_binary64
237×distribute-rgt-neg-in_binary64
235×neg-mul-1_binary64
206×distribute-lft-neg-in_binary64
202×distribute-rgt-neg-out_binary64
183×distribute-lft-neg-out_binary64
151×distribute-frac-neg_binary64
138×neg-sub0_binary64 associate--r+_binary64
112×distribute-rgt-out_binary64
109×*-lft-identity_binary64
100×distribute-neg-in_binary64
86×+-rgt-identity_binary64
80×associate--l+_binary64
78×mul0-rgt_binary64
75×+-commutative_binary64
74×associate-*l*_binary64
73×div0_binary64 associate-+r-_binary64
72×/-rgt-identity_binary64 mul0-lft_binary64
70×distribute-rgt-out--_binary64
68×associate--l-_binary64
64×associate-*r*_binary64
58×+-lft-identity_binary64
57×remove-double-neg_binary64 associate-+l+_binary64 associate-+r+_binary64
55×associate-*r/_binary64
51×*-rgt-identity_binary64
50×associate--r-_binary64
48×remove-double-div_binary64
34×distribute-neg-out_binary64
30×associate-+l-_binary64
28×sub0-neg_binary64
15×--rgt-identity_binary64
distribute-lft-out_binary64
mul-1-neg_binary64 distribute-lft-out--_binary64
cancel-sign-sub_binary64
swap-sqr_binary64
sqr-neg_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-rgt1-in_binary64 distribute-lft1-in_binary64 count-2_binary64
Counts
1 → 1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14356
29156
319854
430954
551954
691854
7135654
8150554
9218154
10280654
11281254
12281454
13277654
14280054
15398254
16311854
17312654
18313454
19313454
20314254
21314254
22394454
23293454
24312054
25308654
26309054
27310254
28310654
29310654
30326854
31319654
32332454
33342854
34353254
35363654
36303654
37303654
38305654
39309254
40309454
41309454
42278554

prune8.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 72 to 50 computations (30.6% saved)

localize30.0ms (0.4%)

Local error

Found 4 expressions with local error:

1.3b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))) b)
1.6b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite193.0ms (2.6%)

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

4 calls:

8.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))) b)
6.0ms
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))
6.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 2594 to 1526 computations (41.2% saved)

series216.0ms (2.9%)

Error
3.6b
Counts
4 → 51
Calls

4 calls:

48.0ms
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
44.0ms
(-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))) b)
44.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 4098 to 2938 computations (28.3% saved)

simplify153.0ms (2.1%)

Algorithm
egg-herbie
Rules
707×associate-*l*_binary64
592×associate-*r*_binary64
322×unswap-sqr_binary64
190×times-frac_binary64
158×cube-prod_binary64
147×sub-neg_binary64
137×cancel-sign-sub-inv_binary64
131×*-commutative_binary64
118×distribute-rgt-neg-in_binary64
100×associate-/l*_binary64
97×distribute-lft-neg-in_binary64
90×distribute-rgt-in_binary64
83×associate-/r*_binary64
81×neg-sub0_binary64
80×unpow3_binary64
79×distribute-lft-in_binary64
74×neg-mul-1_binary64
69×unsub-neg_binary64
66×+-commutative_binary64
60×sqr-pow_binary64
53×swap-sqr_binary64 associate-+l+_binary64
41×distribute-neg-in_binary64 distribute-rgt-out_binary64
39×associate-+r+_binary64
36×associate-+l-_binary64
35×difference-of-squares_binary64
32×cube-mult_binary64 associate-+r-_binary64
25×exp-prod_binary64 associate-*l/_binary64
23×associate-/r/_binary64
22×distribute-neg-frac_binary64
21×exp-sum_binary64 associate-*r/_binary64
20×cube-unmult_binary64 cancel-sign-sub_binary64 distribute-lft-neg-out_binary64
19×+-rgt-identity_binary64
18×pow-plus_binary64 associate--l+_binary64
17×sub0-neg_binary64
15×distribute-lft-out_binary64
11×mul0-rgt_binary64 mul0-lft_binary64
10×exp-diff_binary64 remove-double-neg_binary64 distribute-neg-out_binary64
div-sub_binary64 distribute-rgt-neg-out_binary64 associate--l-_binary64
rem-sqrt-square_binary64 pow-sqr_binary64 associate-/l/_binary64 associate--r+_binary64
distribute-rgt-out--_binary64
log-prod_binary64 unpow2_binary64 unpow1_binary64 distribute-frac-neg_binary64 distribute-lft-out--_binary64 associate--r-_binary64
unpow1/2_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 mul-1-neg_binary64 *-lft-identity_binary64 +-inverses_binary64
div-exp_binary64 prod-exp_binary64 1-exp_binary64 cube-neg_binary64 rem-3cbrt-lft_binary64 count-2_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 rec-exp_binary64 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 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 /-rgt-identity_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
Counts
110 → 76
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01181886
13021785
28521755
337301755
448141755
549651755
649131755

prune106.0ms (1.4%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New68876
Fresh000
Picked101
Done000
Total69877
Error
3.6b
Counts
77 → 8
Compiler

Compiled 2612 to 1529 computations (41.5% saved)

localize31.0ms (0.4%)

Local error

Found 4 expressions with local error:

10.9b
(-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) b)
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite196.0ms (2.6%)

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

4 calls:

19.0ms
(-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) b)
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 3566 to 1967 computations (44.8% saved)

series220.0ms (3%)

Error
3.6b
Counts
4 → 48
Calls

4 calls:

46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
45.0ms
(-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) b)
40.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
40.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Compiler

Compiled 4992 to 3386 computations (32.2% saved)

simplify106.0ms (1.4%)

Algorithm
egg-herbie
Rules
334×associate-/l/_binary64
329×distribute-rgt-neg-in_binary64
312×distribute-lft-neg-in_binary64
297×cancel-sign-sub-inv_binary64
273×distribute-rgt-in_binary64
234×times-frac_binary64
223×*-commutative_binary64
220×distribute-lft-in_binary64
180×unswap-sqr_binary64
117×associate-/l*_binary64
116×sub-neg_binary64
97×div-sub_binary64
87×distribute-rgt-out_binary64 associate-/r*_binary64
86×associate-*r*_binary64
84×neg-mul-1_binary64
82×neg-sub0_binary64
70×associate-*l*_binary64
68×sqr-pow_binary64
56×cube-prod_binary64
55×+-commutative_binary64
47×unsub-neg_binary64
43×difference-of-squares_binary64
38×exp-prod_binary64
36×exp-sum_binary64
30×distribute-lft-neg-out_binary64
29×swap-sqr_binary64
28×associate-+l+_binary64
25×associate-*l/_binary64
24×associate-+r+_binary64
23×unpow3_binary64 associate-/r/_binary64 associate-+r-_binary64
22×distribute-neg-frac_binary64 associate-+l-_binary64
21×associate-*r/_binary64
18×distribute-lft-out_binary64
17×distribute-rgt-neg-out_binary64
16×+-rgt-identity_binary64
14×pow-plus_binary64 cube-mult_binary64 sub0-neg_binary64
12×cube-unmult_binary64 distribute-neg-in_binary64
11×mul0-rgt_binary64 mul0-lft_binary64 associate--l+_binary64
rem-sqrt-square_binary64 pow-sqr_binary64
exp-diff_binary64
sqr-neg_binary64 distribute-rgt-out--_binary64
unpow2_binary64 cube-neg_binary64 rem-square-sqrt_binary64
unpow1_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 associate--r+_binary64
log-prod_binary64 unpow1/2_binary64 remove-double-neg_binary64 distribute-rgt1-in_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--l-_binary64
div-exp_binary64 1-exp_binary64 rem-3cbrt-lft_binary64 *-lft-identity_binary64 --rgt-identity_binary64 +-inverses_binary64 cancel-sign-sub_binary64 distribute-lft1-in_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 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 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 mul-1-neg_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
Counts
108 → 59
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01271734
12791667
28391664
323981640
447521640
549611640

prune107.0ms (1.4%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New59059
Fresh077
Picked011
Done000
Total59867
Error
3.6b
Counts
67 → 8
Compiler

Compiled 2565 to 1486 computations (42.1% saved)

localize32.0ms (0.4%)

Local error

Found 4 expressions with local error:

10.1b
(+.f64 b (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite154.0ms (2.1%)

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

4 calls:

4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
3.0ms
(+.f64 b (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
Compiler

Compiled 3349 to 1847 computations (44.8% saved)

series217.0ms (2.9%)

Error
3.6b
Counts
4 → 51
Calls

4 calls:

46.0ms
(+.f64 b (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
43.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
43.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
39.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 5061 to 3452 computations (31.8% saved)

simplify79.0ms (1.1%)

Algorithm
egg-herbie
Rules
671×distribute-rgt-in_binary64
619×distribute-lft-in_binary64
357×distribute-rgt-neg-in_binary64
331×distribute-lft-neg-in_binary64
317×cancel-sign-sub-inv_binary64
224×*-commutative_binary64
192×unswap-sqr_binary64
167×times-frac_binary64
109×associate-/l*_binary64
104×sub-neg_binary64
89×distribute-rgt-out_binary64 associate-*r*_binary64
85×neg-sub0_binary64
84×neg-mul-1_binary64
73×associate-*l*_binary64
67×associate-/r*_binary64
58×sqr-pow_binary64
43×distribute-lft-neg-out_binary64
42×+-commutative_binary64
41×cube-prod_binary64
38×distribute-rgt-neg-out_binary64
37×difference-of-squares_binary64
35×distribute-neg-in_binary64
30×unsub-neg_binary64
28×associate-+l+_binary64
26×associate-*l/_binary64
23×associate-/r/_binary64 associate-*r/_binary64 associate-+r+_binary64
20×swap-sqr_binary64
18×distribute-lft-out_binary64 associate-+l-_binary64 associate-+r-_binary64
17×distribute-neg-frac_binary64
14×unpow3_binary64
13×distribute-rgt-out--_binary64
12×+-rgt-identity_binary64
11×cube-mult_binary64
10×remove-double-neg_binary64 sub0-neg_binary64
pow-plus_binary64 associate--l+_binary64
pow-sqr_binary64
rem-sqrt-square_binary64
cube-unmult_binary64
div-sub_binary64 associate-/l/_binary64
mul0-rgt_binary64 mul0-lft_binary64 associate--l-_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 exp-prod_binary64 rem-square-sqrt_binary64 associate--r+_binary64
+-inverses_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--r-_binary64
log-prod_binary64 prod-exp_binary64 1-exp_binary64 cube-neg_binary64 sqr-neg_binary64 mul-1-neg_binary64 *-lft-identity_binary64 cancel-sign-sub_binary64 distribute-frac-neg_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 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 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-div_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 /-rgt-identity_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-lft1-in_binary64
Counts
107 → 57
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01161698
12721634
28251619
322601610
456131610

prune100.0ms (1.3%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New56157
Fresh066
Picked011
Done011
Total56965
Error
3.6b
Counts
65 → 9
Compiler

Compiled 2495 to 1453 computations (41.8% saved)

localize42.0ms (0.6%)

Local error

Found 4 expressions with local error:

19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
19.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
20.5b
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
20.5b
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite231.0ms (3.1%)

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

4 calls:

4.0ms
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 3994 to 2192 computations (45.1% saved)

series328.0ms (4.4%)

Error
3.6b
Counts
4 → 51
Calls

4 calls:

89.0ms
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
75.0ms
(cbrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
49.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
44.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))
Compiler

Compiled 7576 to 5045 computations (33.4% saved)

simplify114.0ms (1.5%)

Algorithm
egg-herbie
Rules
391×distribute-rgt-neg-in_binary64
380×distribute-lft-neg-in_binary64
334×exp-sum_binary64
299×distribute-rgt-in_binary64
270×*-commutative_binary64
248×cancel-sign-sub-inv_binary64
226×unswap-sqr_binary64
167×times-frac_binary64
144×sub-neg_binary64
129×exp-diff_binary64
109×associate-/l*_binary64
106×neg-sub0_binary64
105×neg-mul-1_binary64 associate-/r*_binary64
103×unsub-neg_binary64
96×associate-*r*_binary64
86×exp-prod_binary64
85×sqr-pow_binary64
77×associate-*l*_binary64
76×log-prod_binary64
71×distribute-rgt-out_binary64
53×div-sub_binary64
50×distribute-lft-in_binary64
43×+-commutative_binary64
32×prod-exp_binary64
31×associate-+r-_binary64
30×log-div_binary64
29×exp-to-pow_binary64
26×associate-*l/_binary64
23×difference-of-squares_binary64 associate-/r/_binary64 associate-*r/_binary64
22×associate--l+_binary64
21×cube-prod_binary64 distribute-neg-in_binary64 associate-+r+_binary64
19×+-rgt-identity_binary64 distribute-lft-neg-out_binary64
18×unpow3_binary64 exp-neg_binary64
17×distribute-neg-frac_binary64 distribute-lft-out_binary64 associate-+l-_binary64
16×unpow1/3_binary64 sub0-neg_binary64 associate--r-_binary64
14×log-pow_binary64 associate-+l+_binary64
12×pow-sqr_binary64
11×rem-exp-log_binary64 swap-sqr_binary64 distribute-rgt-neg-out_binary64
10×cube-mult_binary64
pow-plus_binary64
associate-/l/_binary64
rem-sqrt-square_binary64 mul0-rgt_binary64 mul0-lft_binary64
log-rec_binary64 cube-unmult_binary64 distribute-neg-out_binary64 associate--r+_binary64
--rgt-identity_binary64 distribute-rgt-out--_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 distribute-frac-neg_binary64
rem-square-sqrt_binary64 remove-double-neg_binary64 distribute-rgt1-in_binary64 distribute-lft-out--_binary64 associate--l-_binary64
1-exp_binary64 rem-3cbrt-lft_binary64 mul-1-neg_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 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_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 *-rgt-identity_binary64 *-lft-identity_binary64 +-lft-identity_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 cancel-sign-sub_binary64 distribute-lft1-in_binary64 count-2_binary64
Counts
107 → 79
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01471857
13271821
29671821
326931818
446341818
549711818

prune170.0ms (2.3%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New78179
Fresh156
Picked011
Done022
Total79988
Error
3.6b
Counts
88 → 9
Compiler

Compiled 3725 to 2085 computations (44% saved)

regimes1.6s (21.3%)

Accuracy

Total 1.1b remaining (16.4%)

Threshold costs 0b (0%)

Compiler

Compiled 23027 to 15400 computations (33.1% saved)

bsearch30.0ms (0.4%)

Steps
ItersRangePoint
5
1.1221365728914758e+151
1.8729062546330618e+155
9.341172344491133e+151
2
-2.0847941593486977e+154
-4.666712459773738e+150
-3.8179933739837244e+151
Compiler

Compiled 1 to 3 computations (-200% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
15×*-commutative_binary64
11×+-commutative_binary64
10×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
1-exp_binary64 *-lft-identity_binary64 distribute-frac-neg_binary64 distribute-neg-out_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 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 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-neg-in_binary64 distribute-rgt-neg-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041148
157148
270148
388148
498148
5104148
6106148
7104148

end2.0ms (0%)

Compiler

Compiled 99 to 65 computations (34.3% saved)

sample1.5s (20.1%)

Algorithm
intervals
Results
717.0ms8000×body128valid
55.0ms677×body128nan
31.0ms377×body128invalid
Compiler

Compiled 566 to 389 computations (31.3% saved)

Profiling

Loading profile data...