Details

Time bar (total: 7.6s)

analyze688.0ms (9.1%)

Algorithm
search
egg-herbie
Rules
672×neg-mul-1_binary64
661×associate-/l*_binary64
602×div-sub_binary64
582×sub-neg_binary64
559×neg-sub0_binary64
522×associate-/r*_binary64
472×distribute-neg-frac_binary64
307×distribute-rgt-neg-in_binary64
294×remove-double-neg_binary64
276×cancel-sign-sub-inv_binary64
274×unsub-neg_binary64
264×distribute-rgt-neg-out_binary64
246×distribute-lft-neg-out_binary64
207×distribute-frac-neg_binary64
193×distribute-rgt-in_binary64
138×distribute-neg-in_binary64
132×associate-*l/_binary64
120×times-frac_binary64 associate-/r/_binary64 +-commutative_binary64
116×associate--r+_binary64
103×cancel-sign-sub_binary64
89×distribute-lft-in_binary64
83×associate-+l-_binary64
80×associate-/l/_binary64
77×*-commutative_binary64
74×sub0-neg_binary64
64×distribute-lft-neg-in_binary64
59×*-lft-identity_binary64
51×/-rgt-identity_binary64
48×distribute-neg-out_binary64
46×+-lft-identity_binary64
45×associate--r-_binary64
44×associate-+r-_binary64
42×associate-+r+_binary64
39×associate-*r/_binary64
36×+-rgt-identity_binary64 distribute-lft-out_binary64 associate--l-_binary64
35×distribute-lft-out--_binary64
33×div0_binary64
28×--rgt-identity_binary64
24×mul0-rgt_binary64 mul0-lft_binary64 distribute-rgt-out--_binary64
23×associate-*r*_binary64
22×associate--l+_binary64
19×*-rgt-identity_binary64
16×distribute-rgt-out_binary64
15×associate-*l*_binary64 associate-+l+_binary64
11×remove-double-div_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 mul-1-neg_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
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055232
1139224
2334224
3735216
41181216
52045216
64000216
74200216
84338216
94371216
104409216
114447216
124751216
134943216
144879216
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
18.7%81.1%0.1%6
26.5%67.1%6.4%7
35.1%58.5%6.4%8
41.3%49.9%8.7%9
46.4%40.2%13.4%10
50.8%34.2%15%11
55.2%26.7%18.1%12
57.4%22%20.6%13
59.8%17.9%22.3%14
Compiler

Compiled 39 to 27 computations (30.8% saved)

sample34.0ms (0.5%)

Algorithm
intervals
Results
21.0ms256×body128valid
1.0ms15×body128nan
1.0msbody128invalid
Compiler

Compiled 77 to 56 computations (27.3% saved)

simplify478.0ms (6.3%)

Algorithm
egg-herbie
Rules
1235×div-sub_binary64
1049×associate-/r*_binary64
840×sub-neg_binary64
758×distribute-neg-frac_binary64
747×distribute-rgt-in_binary64
535×distribute-lft-in_binary64
512×times-frac_binary64
482×unsub-neg_binary64
476×associate-/l/_binary64
440×cancel-sign-sub-inv_binary64
433×*-commutative_binary64
430×associate-/l*_binary64
335×associate-/r/_binary64
316×distribute-rgt-neg-in_binary64
299×neg-mul-1_binary64
285×associate-*l/_binary64
264×distribute-lft-neg-in_binary64
225×neg-sub0_binary64
193×associate--r+_binary64
168×+-commutative_binary64
143×distribute-rgt-neg-out_binary64
120×distribute-frac-neg_binary64
116×distribute-lft-neg-out_binary64
113×div0_binary64
102×distribute-neg-in_binary64
100×distribute-rgt-out_binary64
99×*-lft-identity_binary64
86×mul0-rgt_binary64
84×mul0-lft_binary64
79×distribute-rgt-out--_binary64
56×associate-*r*_binary64
53×+-lft-identity_binary64
52×associate-*r/_binary64
48×associate-*l*_binary64
41×associate--l-_binary64
40×remove-double-div_binary64
38×/-rgt-identity_binary64
37×remove-double-neg_binary64
36×associate--l+_binary64
33×distribute-neg-out_binary64
28×associate-+l-_binary64
26×*-rgt-identity_binary64
24×associate--r-_binary64
23×sub0-neg_binary64
20×associate-+r-_binary64
11×associate-+r+_binary64
associate-+l+_binary64
--rgt-identity_binary64
distribute-lft-out_binary64
+-rgt-identity_binary64
cancel-sign-sub_binary64
mul-1-neg_binary64 swap-sqr_binary64
1-exp_binary64 sqr-neg_binary64 distribute-lft-out--_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 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
14656
211556
325454
439054
563454
6109454
7129554
8156554
9209454
10330754
11276454
12281654
13278454
14279854
15306654
16317654
17321454
18323454
19323654
20323654
21375654
22397454
23407254
24409054
25398654
26398654
27423454
28417854
29440654
30455854
31463454
32466654
33475454
34483454
35493054
36468754

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 72 to 50 computations (30.6% saved)

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

1.1b
(-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) b)
1.2b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite161.0ms (2.1%)

Algorithm
rewrite-expression-head
Error
23.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 (*.f64 4 a) c))) b)
6.0ms
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 2594 to 1526 computations (41.2% saved)

series223.0ms (3%)

Error
6.9b
Counts
4 → 60
Calls

4 calls:

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

Compiled 4581 to 3277 computations (28.5% saved)

simplify128.0ms (1.7%)

Algorithm
egg-herbie
Rules
746×associate-*l*_binary64
665×associate-*r*_binary64
291×times-frac_binary64
175×associate-/l*_binary64
170×cancel-sign-sub-inv_binary64
136×associate-/r*_binary64
124×distribute-rgt-neg-in_binary64
110×neg-sub0_binary64
107×distribute-lft-neg-in_binary64
103×sub-neg_binary64
102×neg-mul-1_binary64
96×distribute-rgt-in_binary64
79×distribute-lft-in_binary64
67×sqr-pow_binary64
63×cube-prod_binary64
59×unsub-neg_binary64
54×unswap-sqr_binary64
53×unpow3_binary64
46×*-commutative_binary64
45×+-commutative_binary64
42×associate-/r/_binary64
41×cube-mult_binary64
38×associate-*l/_binary64 associate-*r/_binary64
31×distribute-rgt-out_binary64
27×exp-prod_binary64
20×distribute-neg-frac_binary64 associate-/l/_binary64
19×distribute-neg-in_binary64 distribute-lft-neg-out_binary64
16×pow-plus_binary64
15×cube-unmult_binary64 distribute-lft-out_binary64
13×associate-+l+_binary64
12×swap-sqr_binary64
11×exp-sum_binary64 mul0-rgt_binary64 mul0-lft_binary64 associate-+r-_binary64
10×difference-of-squares_binary64
div-sub_binary64 remove-double-neg_binary64
+-rgt-identity_binary64 associate--l+_binary64 associate--r+_binary64 associate-+r+_binary64
exp-diff_binary64 distribute-rgt-neg-out_binary64
rem-sqrt-square_binary64 pow-sqr_binary64 distribute-rgt-out--_binary64 associate-+l-_binary64
unpow2_binary64 unpow1_binary64 distribute-lft-out--_binary64
unpow1/2_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 mul-1-neg_binary64 *-lft-identity_binary64 +-inverses_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 associate--l-_binary64
log-prod_binary64 unpow-1_binary64 div-exp_binary64 prod-exp_binary64 1-exp_binary64 cube-neg_binary64 rem-3cbrt-lft_binary64 count-2_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 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 sub0-neg_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-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64
Counts
119 → 82
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01292183
13382073
29852046
346032046
449182046
549222046

prune124.0ms (1.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New701282
Fresh000
Picked101
Done000
Total711283
Error
6.8b
Counts
83 → 12
Compiler

Compiled 2945 to 1718 computations (41.7% saved)

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.1b
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) a)
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
1.2b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite186.0ms (2.5%)

Algorithm
rewrite-expression-head
Error
6.8b
Rules
24×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
14×add-cube-cbrt_binary64
12×times-frac_binary64
add-log-exp_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64 distribute-lft-out_binary64
associate-/l*_binary64
sqrt-prod_binary64 associate-/r*_binary64
flip3--_binary64 sqrt-div_binary64 flip--_binary64 flip3-+_binary64 flip-+_binary64 associate-/l/_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 sum-log_binary64 +-commutative_binary64 diff-log_binary64 sub-neg_binary64 cancel-sign-sub-inv_binary64 div-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 clear-num_binary64 div-inv_binary64
Counts
4 → 72
Calls

4 calls:

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

Compiled 2683 to 1483 computations (44.7% saved)

series219.0ms (2.9%)

Error
6.7b
Counts
4 → 60
Calls

4 calls:

48.0ms
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) a)
47.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
42.0ms
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
38.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 3308 to 2474 computations (25.2% saved)

simplify109.0ms (1.4%)

Algorithm
egg-herbie
Rules
698×associate-*l*_binary64
593×associate-*r*_binary64
376×unswap-sqr_binary64
248×times-frac_binary64
195×associate-/l*_binary64
143×associate-/r*_binary64
141×*-commutative_binary64
128×cancel-sign-sub-inv_binary64
119×sub-neg_binary64
117×exp-prod_binary64
113×distribute-rgt-in_binary64
105×distribute-rgt-neg-in_binary64
104×distribute-lft-in_binary64
96×distribute-lft-neg-in_binary64
91×sqr-pow_binary64
81×associate-*l/_binary64
76×neg-sub0_binary64
66×neg-mul-1_binary64
64×associate-*r/_binary64
60×cube-prod_binary64
58×unsub-neg_binary64
54×associate-/r/_binary64
51×associate-/l/_binary64
47×+-commutative_binary64
36×div-sub_binary64
30×exp-sum_binary64
28×distribute-rgt-out_binary64 associate-+l+_binary64
27×difference-of-squares_binary64
24×associate-+l-_binary64 associate-+r-_binary64
23×associate-+r+_binary64
18×distribute-lft-neg-out_binary64
16×+-rgt-identity_binary64
14×sub0-neg_binary64
13×pow-plus_binary64 exp-diff_binary64 pow-sqr_binary64 distribute-lft-out_binary64
12×cube-unmult_binary64
11×unpow3_binary64 distribute-neg-frac_binary64
10×/-rgt-identity_binary64 swap-sqr_binary64
remove-double-neg_binary64 associate--l+_binary64
cube-mult_binary64 mul0-rgt_binary64 mul0-lft_binary64 distribute-rgt-neg-out_binary64
log-prod_binary64
distribute-neg-in_binary64 associate--l-_binary64
unpow2_binary64 cube-div_binary64 rem-sqrt-square_binary64 *-rgt-identity_binary64 *-lft-identity_binary64
log-div_binary64 associate--r+_binary64
unpow1/2_binary64 unpow1_binary64 mul-1-neg_binary64 distribute-rgt-out--_binary64
log-pow_binary64 +-inverses_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--r-_binary64
div-exp_binary64 prod-exp_binary64 exp-neg_binary64 1-exp_binary64 cube-neg_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 cancel-sign-sub_binary64 distribute-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 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-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_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-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64
Counts
132 → 102
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01532636
13632462
210162444
339922444
450242444

prune158.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New966102
Fresh6511
Picked101
Done000
Total10311114
Error
6.7b
Counts
114 → 11
Compiler

Compiled 2682 to 1469 computations (45.2% saved)

localize22.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.2b
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
0.8b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
1.2b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite340.0ms (4.5%)

Algorithm
rewrite-expression-head
Error
6.7b
Rules
102×times-frac_binary64
82×*-un-lft-identity_binary64
57×add-sqr-sqrt_binary64
56×add-cube-cbrt_binary64
18×associate-/r*_binary64
15×add-exp-log_binary64
13×distribute-lft-out_binary64
add-cbrt-cube_binary64 associate-/r/_binary64
add-log-exp_binary64
div-exp_binary64
pow1_binary64
flip3-+_binary64 flip-+_binary64 div-inv_binary64
sqrt-prod_binary64 cbrt-undiv_binary64 associate-/l*_binary64
flip3--_binary64 sqrt-div_binary64 flip--_binary64 1-exp_binary64 rec-exp_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 sum-log_binary64 +-commutative_binary64 diff-log_binary64 sub-neg_binary64 cancel-sign-sub-inv_binary64 inv-pow_binary64 pow-flip_binary64 frac-2neg_binary64 clear-num_binary64
Counts
4 → 135
Calls

4 calls:

10.0ms
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
6.0ms
(+.f64 b (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
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
Compiler

Compiled 5596 to 3055 computations (45.4% saved)

series220.0ms (2.9%)

Error
6.7b
Counts
4 → 60
Calls

4 calls:

48.0ms
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
47.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
42.0ms
(+.f64 b (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 3507 to 2663 computations (24.1% saved)

simplify208.0ms (2.7%)

Algorithm
egg-herbie
Rules
506×times-frac_binary64
346×associate-/l*_binary64
298×associate-/r*_binary64
281×associate-/r/_binary64
266×associate-*l/_binary64
226×associate-/l/_binary64
202×associate-*r/_binary64
200×unswap-sqr_binary64
194×distribute-rgt-in_binary64
183×distribute-lft-in_binary64
147×exp-prod_binary64
128×cube-prod_binary64
107×cancel-sign-sub-inv_binary64
97×sqr-pow_binary64
92×neg-mul-1_binary64 distribute-rgt-neg-in_binary64
91×neg-sub0_binary64
90×*-commutative_binary64
83×distribute-lft-neg-in_binary64
79×associate-*r*_binary64
67×sub-neg_binary64
62×*-rgt-identity_binary64
60×associate-*l*_binary64
49×exp-sum_binary64
37×unsub-neg_binary64
35×unpow3_binary64
34×log-prod_binary64 cube-div_binary64 +-commutative_binary64
33×*-lft-identity_binary64
32×distribute-rgt-out_binary64
30×log-div_binary64
26×cube-mult_binary64
25×exp-diff_binary64
24×/-rgt-identity_binary64
23×div-sub_binary64
15×distribute-lft-neg-out_binary64
14×pow-sqr_binary64
13×cube-unmult_binary64 difference-of-squares_binary64 swap-sqr_binary64
12×pow-plus_binary64 distribute-neg-frac_binary64
10×mul0-rgt_binary64 mul0-lft_binary64 associate-+r+_binary64
log-rec_binary64
unpow2_binary64 remove-double-neg_binary64 distribute-rgt-neg-out_binary64 distribute-lft-out_binary64
distribute-neg-in_binary64 associate-+r-_binary64
unpow1/2_binary64 rem-sqrt-square_binary64
unpow1_binary64 remove-double-div_binary64 associate-+l+_binary64
log-pow_binary64 distribute-rgt-out--_binary64 count-2_binary64 associate--r-_binary64 associate--l+_binary64 associate--r+_binary64
prod-exp_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 div0_binary64 +-inverses_binary64 distribute-lft-out--_binary64 associate-+l-_binary64
div-exp_binary64 1-exp_binary64 exp-1-e_binary64 cube-neg_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 mul-1-neg_binary64 sub0-neg_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 associate--l-_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 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-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 --rgt-identity_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-frac-neg_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64
Counts
195 → 139
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02185410
15065029
215534930
341414930
447614930
549204930

prune165.0ms (2.2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1372139
Fresh2810
Picked101
Done000
Total14010150
Error
6.7b
Counts
150 → 10
Compiler

Compiled 3199 to 1778 computations (44.4% saved)

localize27.0ms (0.4%)

Local error

Found 4 expressions with local error:

1.2b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
1.2b
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
27.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Compiler

Compiled 765 to 1275 computations (-66.7% saved)

rewrite152.0ms (2%)

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

4 calls:

6.0ms
(+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
6.0ms
(+.f64 b (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 4 (*.f64 a c))))
Compiler

Compiled 2766 to 1431 computations (48.3% saved)

series240.0ms (3.2%)

Error
6.7b
Counts
4 → 56
Calls

4 calls:

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

Compiled 5184 to 3592 computations (30.7% saved)

simplify82.0ms (1.1%)

Algorithm
egg-herbie
Rules
756×distribute-rgt-in_binary64
421×distribute-rgt-neg-in_binary64
404×associate-*l*_binary64
400×cancel-sign-sub-inv_binary64
387×distribute-lft-neg-in_binary64
352×associate-*r*_binary64
162×unswap-sqr_binary64
138×times-frac_binary64
100×associate-/l*_binary64
99×*-commutative_binary64
88×sub-neg_binary64
83×distribute-rgt-out_binary64
81×distribute-lft-neg-out_binary64
78×distribute-rgt-neg-out_binary64
59×neg-sub0_binary64
54×neg-mul-1_binary64 associate-/r*_binary64
48×distribute-lft-in_binary64
46×cube-prod_binary64
42×sqr-pow_binary64
38×+-commutative_binary64
37×distribute-lft-out_binary64
31×distribute-neg-in_binary64
30×unsub-neg_binary64
27×swap-sqr_binary64
26×associate-+l+_binary64
24×associate-*l/_binary64
22×associate-*r/_binary64
21×associate-/r/_binary64
20×associate-+r+_binary64
18×associate-+l-_binary64 associate-+r-_binary64
14×distribute-neg-frac_binary64
13×difference-of-squares_binary64
12×+-rgt-identity_binary64
11×unpow3_binary64
10×sub0-neg_binary64
cube-mult_binary64 distribute-rgt-out--_binary64 associate--l+_binary64
pow-plus_binary64 cube-unmult_binary64
remove-double-neg_binary64
associate-/l/_binary64
rem-sqrt-square_binary64 div-sub_binary64 mul0-rgt_binary64 mul0-lft_binary64 associate--l-_binary64
unpow2_binary64 pow-sqr_binary64 associate--r+_binary64
unpow1/2_binary64 unpow1_binary64 mul-1-neg_binary64 +-inverses_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft-out--_binary64 associate--r-_binary64
prod-exp_binary64 1-exp_binary64 cube-neg_binary64 sqr-neg_binary64 rem-square-sqrt_binary64 *-lft-identity_binary64 cancel-sign-sub_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 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 exp-prod_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-frac-neg_binary64 distribute-lft1-in_binary64
Counts
110 → 52
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0821830
12231738
26171708
323851690
451381690

prune90.0ms (1.2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New52052
Fresh099
Picked011
Done000
Total521062
Error
6.7b
Counts
62 → 10
Compiler

Compiled 1698 to 917 computations (46% saved)

regimes1.9s (25.4%)

Accuracy

Total 2.0b remaining (27.3%)

Threshold costs 0b (0%)

Compiler

Compiled 19903 to 14252 computations (28.4% saved)

bsearch12.0ms (0.2%)

Compiler

Compiled 38 to 26 computations (31.6% saved)

simplify19.0ms (0.3%)

Algorithm
egg-herbie
Rules
21×*-commutative_binary64
17×+-commutative_binary64
15×sub-neg_binary64
11×neg-mul-1_binary64 neg-sub0_binary64
distribute-rgt-neg-in_binary64
distribute-lft-neg-in_binary64
cancel-sign-sub-inv_binary64
unsub-neg_binary64 distribute-neg-out_binary64
1-exp_binary64 distribute-frac-neg_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 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-neg-in_binary64 distribute-rgt-neg-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
061465
188465
2115465
3141465
4157465
5164465
6165465
7163465

end6.0ms (0.1%)

Compiler

Compiled 308 to 189 computations (38.6% saved)

sample1.5s (19.8%)

Algorithm
intervals
Results
674.0ms8000×body128valid
52.0ms642×body128nan
29.0ms370×body128invalid
Compiler

Compiled 711 to 483 computations (32.1% saved)

Profiling

Loading profile data...