Details

Time bar (total: 1.0min)

analyze4.8s (7.7%)

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
0%99.8%0.2%6
3.1%95.1%1.8%7
10.9%81.1%8%8
10.9%80.3%8.8%9
12.1%77.6%10.3%10
15.6%70.8%13.6%11
20.5%61.6%17.9%12
20.5%60.8%18.7%13
21.6%58.2%20.1%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample10.1s (16.3%)

Symmetry

(sort A C)

Results
2.3s5721×body128valid
1.3s897×body1024valid
1.3s681×body2048valid
1.2s653×body2048invalid
1.2s807×body1024invalid
1.0s2494×body128invalid
645.0ms615×body512valid
562.0ms561×body512invalid
238.0ms342×body256valid
237.0ms339×body256invalid
Compiler

Compiled 134 to 98 computations (26.9% saved)

simplify56.0ms (0.1%)

Algorithm
egg-herbie
Rules
759×neg-mul-1_binary64
493×associate-*l*_binary64
463×associate-*r*_binary64
420×distribute-rgt-in_binary64
410×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16149
217649
364849
4272749
5486949
6551249

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
47.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
50.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
47.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 239 to 156 computations (34.7% saved)

localize27.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.9b
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
4.5b
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
13.6b
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
20.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series22.9s (36.8%)

Counts
4 → 124
Calls

4 calls:

12.8s
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
9.9s
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
198.0ms
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
54.0ms
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

rewrite116.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
204×distribute-lft-in_binary64
204×distribute-rgt-in_binary64
164×*-un-lft-identity_binary64
108×prod-diff_binary64
105×add-sqr-sqrt_binary64
Counts
4 → 284
Calls

4 calls:

23.0ms
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
15.0ms
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
7.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
5.0ms
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

simplify1.4s (2.2%)

Algorithm
egg-herbie
Rules
721×times-frac_binary64
670×fma-def_binary64
277×associate-/l*_binary64
190×associate-/r*_binary64
93×sub-neg_binary64
Counts
408 → 499
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0276555201
1484249427
2591149427

prune2.7s (4.3%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New47425499
Fresh101
Picked101
Done000
Total47625501
Error
19.0b
Counts
501 → 25
Alt Table
StatusErrorProgram
54.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
48.2b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (*.f64 (*.f64 (+.f64 A C) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (*.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C)))) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.4b
(*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
48.4b
(/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.2b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (/.f64 (sqrt.f64 2) B)))
57.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
51.9b
(/.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
47.8b
(*.f64 (/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
51.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (fma.f64 2 A (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3)))) (fma.f64 1/2 (/.f64 (*.f64 B B) C) (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 A A) (*.f64 B B)) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C))))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (fma.f64 A A (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
57.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
54.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
47.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) (+.f64 C B)))) (/.f64 (*.f64 A C) B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.4b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 -16 (*.f64 (*.f64 A A) (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (+.f64 C (/.f64 (*.f64 A C) B))) (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) B)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 69443 to 36722 computations (47.1% saved)

localize14.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -1/2 (/.f64 F C))
0.4b
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
13.3b
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

series100.0ms (0.2%)

Counts
3 → 0
Calls

3 calls:

43.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
38.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))
18.0ms
(*.f64 -1/2 (/.f64 F C))

rewrite37.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt_binary64
19×associate-*r*_binary64
15×pow1_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
Counts
3 → 78
Calls

3 calls:

14.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
10.0ms
(*.f64 -1/2 (/.f64 F C))
5.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

simplify170.0ms (0.3%)

Algorithm
egg-herbie
Rules
555×associate-/l*_binary64
453×fma-def_binary64
314×*-commutative_binary64
309×sqr-pow_binary64
295×associate-*l*_binary64
Counts
78 → 86
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01181017
1234945
2612941
31450941
42561941
52706941
63099941
73616941
84454941
94923941

prune157.0ms (0.3%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New741286
Fresh12324
Picked101
Done000
Total7635111
Error
16.9b
Counts
111 → 35
Alt Table
StatusErrorProgram
57.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (*.f64 -1/2 (/.f64 (*.f64 (cbrt.f64 F) (cbrt.f64 F)) (sqrt.f64 C))) (/.f64 (cbrt.f64 F) (sqrt.f64 C)))) (sqrt.f64 2)))
46.4b
(neg.f64 (exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (+.f64 C (/.f64 (*.f64 A C) B))) (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) B)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.2b
(neg.f64 (pow.f64 (neg.f64 (/.f64 F C)) 1/2))
54.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
48.2b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (*.f64 (*.f64 (+.f64 A C) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (*.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C)))) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.4b
(*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
48.4b
(/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.2b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (/.f64 (sqrt.f64 2) B)))
57.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.8b
(neg.f64 (expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
47.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.4b
(neg.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (sqrt.f64 2))))
51.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (fma.f64 2 A (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3)))) (fma.f64 1/2 (/.f64 (*.f64 B B) C) (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 A A) (*.f64 B B)) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C))))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.8b
(*.f64 (/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
61.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (fma.f64 A A (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.4b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (sqrt.f64 (sqrt.f64 2))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (sqrt.f64 (sqrt.f64 2)))))
45.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
57.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
54.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
47.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
45.6b
(neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))) (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
46.4b
(neg.f64 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) (+.f64 C B)))) (/.f64 (*.f64 A C) B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.4b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 -16 (*.f64 (*.f64 A A) (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.9b
(neg.f64 (log.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
46.4b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
40.9b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2)))
40.9b
(neg.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) (sqrt.f64 C)))
59.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 3523 to 2361 computations (33% saved)

localize15.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))
0.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))

series92.0ms (0.1%)

Counts
2 → 0
Calls

2 calls:

53.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))
39.0ms
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))

rewrite38.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
52×times-frac_binary64
52×add-sqr-sqrt_binary64
48×sqrt-prod_binary64
36×*-un-lft-identity_binary64
36×add-cube-cbrt_binary64
Counts
2 → 106
Calls

2 calls:

17.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))
7.0ms
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))

simplify264.0ms (0.4%)

Algorithm
egg-herbie
Rules
772×fma-neg_binary64
385×*-commutative_binary64
328×div-sub_binary64
276×associate-*l*_binary64
266×associate-*l/_binary64
Counts
106 → 127
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01312195
12602065
26052065
319322064
421002064
524182064
633752064
749912064
849932064

prune650.0ms (1%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New1189127
Fresh82634
Picked101
Done000
Total12735162
Error
16.9b
Counts
162 → 35
Alt Table
StatusErrorProgram
42.6b
(neg.f64 (*.f64 (exp.f64 (-.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 C)))) (sqrt.f64 2)))
60.9b
(neg.f64 (log.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
57.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
41.5b
(neg.f64 (expm1.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2)))))
40.9b
(neg.f64 (*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
46.4b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (+.f64 C (/.f64 (*.f64 A C) B))) (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) B)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.2b
(neg.f64 (pow.f64 (neg.f64 (/.f64 F C)) 1/2))
54.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
40.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (/.f64 (sqrt.f64 2) (sqrt.f64 C))))
48.2b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (*.f64 (*.f64 (+.f64 A C) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (*.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C)))) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.4b
(*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
48.4b
(/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.2b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (/.f64 (sqrt.f64 2) B)))
41.0b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (/.f64 (sqrt.f64 C) (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))))) (sqrt.f64 2)))
41.2b
(neg.f64 (*.f64 (/.f64 (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F)))) (sqrt.f64 (sqrt.f64 C))) (*.f64 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (sqrt.f64 (sqrt.f64 C))) (sqrt.f64 2))))
57.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.8b
(*.f64 (/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
51.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (fma.f64 2 A (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3)))) (fma.f64 1/2 (/.f64 (*.f64 B B) C) (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 A A) (*.f64 B B)) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C))))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (fma.f64 A A (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
57.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
54.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
41.3b
(neg.f64 (*.f64 (*.f64 (*.f64 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C))) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C)))) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C)))) (sqrt.f64 2)))
47.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) (+.f64 C B)))) (/.f64 (*.f64 A C) B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.4b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 -16 (*.f64 (*.f64 A A) (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
41.0b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))) (sqrt.f64 (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))) (sqrt.f64 (sqrt.f64 2)))))
59.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
42.6b
(neg.f64 (exp.f64 (+.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))) (log.f64 (sqrt.f64 2)))))
Compiler

Compiled 4789 to 3224 computations (32.7% saved)

localize23.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2)))
0.2b
(*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))
0.2b
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))

series136.0ms (0.2%)

Counts
2 → 0
Calls

2 calls:

69.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2)))
66.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))

rewrite68.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
48×sqrt-prod_binary64
47×add-sqr-sqrt_binary64
30×times-frac_binary64
29×associate-*l*_binary64
23×*-un-lft-identity_binary64
Counts
2 → 93
Calls

2 calls:

29.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2)))
23.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))

simplify252.0ms (0.4%)

Algorithm
egg-herbie
Rules
615×associate-/r*_binary64
508×associate-/l/_binary64
499×associate-*l/_binary64
335×associate-*r/_binary64
250×associate-/l*_binary64
Counts
93 → 116
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01272249
12852020
27702020
323682020
439152020
543672020
649002020
750062020

prune389.0ms (0.6%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New1656171
Fresh52934
Picked101
Done000
Total17135206
Error
16.9b
Counts
206 → 35
Alt Table
StatusErrorProgram
41.0b
(neg.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))) (sqrt.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)))) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
60.9b
(neg.f64 (log.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
57.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
41.2b
(neg.f64 (*.f64 (*.f64 (/.f64 (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F)))) (sqrt.f64 (sqrt.f64 C))) (*.f64 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (sqrt.f64 (sqrt.f64 C))) (sqrt.f64 (sqrt.f64 2)))) (sqrt.f64 (sqrt.f64 2))))
41.4b
(neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C))) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C)))) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 C)))) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (+.f64 C (/.f64 (*.f64 A C) B))) (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) B)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.2b
(neg.f64 (pow.f64 (neg.f64 (/.f64 F C)) 1/2))
54.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
40.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (/.f64 (sqrt.f64 2) (sqrt.f64 C))))
48.2b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (*.f64 (*.f64 (+.f64 A C) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (*.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C)))) F) 2) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.4b
(*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
48.4b
(/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.2b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (/.f64 (sqrt.f64 2) B)))
41.2b
(neg.f64 (*.f64 (/.f64 (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F)))) (sqrt.f64 (sqrt.f64 C))) (*.f64 (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (sqrt.f64 (sqrt.f64 C))) (sqrt.f64 2))))
45.4b
(neg.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 (*.f64 -1/2 F) C) (sqrt.f64 2)) (sqrt.f64 2))))
57.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.8b
(*.f64 (/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
51.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (fma.f64 2 A (*.f64 1/8 (/.f64 (pow.f64 B 4) (pow.f64 C 3)))) (fma.f64 1/2 (/.f64 (*.f64 B B) C) (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 A A) (*.f64 B B)) (pow.f64 C 3)) (/.f64 (*.f64 A (*.f64 B B)) (*.f64 C C))))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (fma.f64 A A (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
57.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
54.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
42.6b
(neg.f64 (*.f64 (*.f64 (exp.f64 (-.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 C)))) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
47.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) (+.f64 C B)))) (/.f64 (*.f64 A C) B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.4b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 -16 (*.f64 (*.f64 A A) (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
46.4b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
43.0b
(neg.f64 (exp.f64 (+.f64 (+.f64 (-.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 C))) (log.f64 (sqrt.f64 (sqrt.f64 2)))) (log.f64 (sqrt.f64 (sqrt.f64 2))))))
59.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
42.6b
(neg.f64 (exp.f64 (+.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))) (log.f64 (sqrt.f64 2)))))
Compiler

Compiled 5359 to 3986 computations (25.6% saved)

regimes16.1s (25.9%)

Accuracy

Total 12.7b remaining (41.2%)

Threshold costs 0b (0%)

Counts
289 → 5
Compiler

Compiled 62747 to 44496 computations (29.1% saved)

bsearch31.0ms (0%)

Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify64.0ms (0.1%)

Algorithm
egg-herbie
Rules
186×distribute-rgt-neg-in_binary64
128×distribute-lft-neg-in_binary64
121×cancel-sign-sub-inv_binary64
120×neg-sub0_binary64
120×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079432
1148432
2230432
3294432
4345432
5382432
6422432
7454432
8485432
9522432
10573432
11620432
12669432
13724432
14799432
15868432
16913432
17940432
18946432
19934432

end1.5s (2.4%)

Compiler

Compiled 2286 to 1524 computations (33.3% saved)

Profiling

Loading profile data...