Details

Time bar (total: 37.9s)

analyze3.2s (8.6%)

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
0%98.2%1.8%7
0%92%8%8
0%91.2%8.8%9
0.4%89.3%10.3%10
7.1%79.2%13.6%11
11.9%70.2%17.9%12
13.8%67.4%18.7%13
16.6%63.3%20.1%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample237.0ms (0.6%)

Algorithm
intervals
Symmetry

(sort A C)

Results
29.0ms173×body128valid
29.0ms35×body1024valid
22.0ms16×body2048valid
15.0ms15×body2048nan
13.0ms76×body128nan
12.0ms24×body512valid
12.0ms17×body1024nan
11.0ms21×body512nan
3.0msbody256nan
3.0msbody256valid
Compiler

Compiled 93 to 69 computations (25.8% saved)

simplify50.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

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
49.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
51.6b
(/.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)))
49.0b
(/.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)

localize16.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.8b
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
5.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))))))
11.2b
(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)))))))
21.7b
(/.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)))

series16.4s (43.3%)

Counts
4 → 124
Calls

4 calls:

9.1s
(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)))))))
7.0s
(/.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)))
195.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))))))
55.0ms
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

rewrite113.0ms (0.3%)

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:

22.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)))))))
17.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))))))
6.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)))

simplify700.0ms (1.8%)

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

prune1.2s (3.2%)

Pruning

26 alts after pruning (26 fresh and 0 done)

PrunedKeptTotal
New47326499
Fresh101
Picked101
Done000
Total47526501
Error
20.0b
Counts
501 → 26
Alt Table
StatusErrorProgram
60.4b
(-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (fma.f64 C C (*.f64 B B)) F) (-.f64 C (hypot.f64 B C)))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (-.f64 C (hypot.f64 B C)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 (*.f64 C C) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))))))))
49.0b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))))
52.2b
(/.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)))
54.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
59.3b
(/.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))))))
46.4b
(/.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)))
63.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.5b
(/.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)))
49.2b
(*.f64 (*.f64 (cbrt.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)))))))) (cbrt.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 (neg.f64 (cbrt.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))))
60.1b
(/.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)))
53.6b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
49.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (neg.f64 (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.7b
(/.f64 (neg.f64 (cbrt.f64 (*.f64 (*.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 (*.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 (*.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)))
51.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (*.f64 B B)))) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B))))) (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 8 (*.f64 (*.f64 A (*.f64 C F)) (hypot.f64 A B)))))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (hypot.f64 A B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.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)))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.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)))
61.4b
(/.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)))
62.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
50.5b
(/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))
Compiler

Compiled 69865 to 36882 computations (47.2% saved)

localize7.0ms (0%)

Local error

Found 2 expressions with local error:

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

series48.0ms (0.1%)

Counts
2 → 0
Calls

2 calls:

27.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
21.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

rewrite11.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×pow1_binary64
add-sqr-sqrt_binary64
associate-*r*_binary64
sqrt-prod_binary64
sqrt-pow1_binary64
Counts
2 → 44
Calls

2 calls:

6.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
3.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

simplify82.0ms (0.2%)

Algorithm
egg-herbie
Rules
408×associate-*l/_binary64
404×associate-*r/_binary64
396×fma-def_binary64
390×associate-/l*_binary64
328×*-commutative_binary64
Counts
44 → 46
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
058636
195600
2236596
3514596
4997596
51905596
62041596
72369596
83387596
94728596
104986596

prune101.0ms (0.3%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New351146
Fresh12425
Picked101
Done000
Total373572
Error
17.8b
Counts
72 → 35
Alt Table
StatusErrorProgram
43.4b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
49.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)))
43.7b
(neg.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (cbrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (cbrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
43.4b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2))))
60.4b
(-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (fma.f64 C C (*.f64 B B)) F) (-.f64 C (hypot.f64 B C)))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (-.f64 C (hypot.f64 B C)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 (*.f64 C C) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))))))))
49.0b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))))
52.2b
(/.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)))
44.6b
(neg.f64 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
54.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
39.1b
(neg.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) (sqrt.f64 C)))
59.3b
(/.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))))))
61.5b
(neg.f64 (*.f64 (log.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
61.4b
(/.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)))
43.3b
(neg.f64 (sqrt.f64 (neg.f64 (/.f64 F C))))
62.9b
(/.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.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
44.6b
(neg.f64 (exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
44.7b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
53.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.5b
(/.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)))
49.2b
(*.f64 (*.f64 (cbrt.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)))))))) (cbrt.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 (neg.f64 (cbrt.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))))
60.1b
(/.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)))
53.6b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.7b
(/.f64 (neg.f64 (cbrt.f64 (*.f64 (*.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 (*.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 (*.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)))
51.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (*.f64 B B)))) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B))))) (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 8 (*.f64 (*.f64 A (*.f64 C F)) (hypot.f64 A B)))))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (hypot.f64 A B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
39.1b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2)))
48.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.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)))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.7b
(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)))))
47.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (neg.f64 (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
50.5b
(/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))
Compiler

Compiled 3276 to 2083 computations (36.4% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

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

series42.0ms (0.1%)

Counts
2 → 0
Calls

2 calls:

34.0ms
(/.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) (sqrt.f64 C))
8.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2))

rewrite14.0ms (0%)

Algorithm
rewrite-expression-head
Rules
13×add-sqr-sqrt_binary64
11×sqrt-prod_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
2 → 59
Calls

2 calls:

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

simplify336.0ms (0.9%)

Algorithm
egg-herbie
Rules
935×div-sub_binary64
607×times-frac_binary64
551×associate-/l*_binary64
461×fma-def_binary64
242×neg-mul-1_binary64
Counts
59 → 69
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0891029
1175903
2612898
32835898
42948898
53706898
64534898
75856898

prune128.0ms (0.3%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New60969
Fresh52934
Picked101
Done000
Total6638104
Error
17.8b
Counts
104 → 38
Alt Table
StatusErrorProgram
40.6b
(neg.f64 (/.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 2)))) (sqrt.f64 C)))
60.4b
(-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (fma.f64 C C (*.f64 B B)) F) (-.f64 C (hypot.f64 B C)))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (-.f64 C (hypot.f64 B C)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 (*.f64 C C) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))))))))
49.0b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))))
52.2b
(/.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)))
44.6b
(neg.f64 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
54.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
41.2b
(neg.f64 (exp.f64 (-.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 2))) (log.f64 (sqrt.f64 C)))))
59.3b
(/.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))))))
39.4b
(neg.f64 (/.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) (*.f64 (cbrt.f64 (sqrt.f64 C)) (cbrt.f64 (sqrt.f64 C)))) (cbrt.f64 (sqrt.f64 C))))
39.8b
(neg.f64 (/.f64 (expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))) (sqrt.f64 C)))
61.5b
(neg.f64 (*.f64 (log.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
61.4b
(/.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)))
39.2b
(neg.f64 (/.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (sqrt.f64 2))) (sqrt.f64 C)))
63.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
39.1b
(neg.f64 (/.f64 1 (/.f64 (sqrt.f64 C) (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))))
44.7b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
53.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.5b
(/.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)))
49.2b
(*.f64 (*.f64 (cbrt.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)))))))) (cbrt.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 (neg.f64 (cbrt.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))))
60.1b
(/.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)))
53.6b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
44.6b
(neg.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) 3)) (sqrt.f64 C)))
53.7b
(/.f64 (neg.f64 (cbrt.f64 (*.f64 (*.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 (*.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 (*.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)))
51.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (*.f64 B B)))) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B))))) (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 8 (*.f64 (*.f64 A (*.f64 C F)) (hypot.f64 A B)))))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (hypot.f64 A B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.3b
(neg.f64 (sqrt.f64 (/.f64 (neg.f64 F) C)))
39.1b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2)))
48.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.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)))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.1b
(neg.f64 (/.f64 (log.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))) (sqrt.f64 C)))
50.5b
(/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))
49.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)))
62.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.7b
(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)))))
47.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (neg.f64 (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 3811 to 2489 computations (34.7% saved)

localize9.0ms (0%)

Local error

Found 3 expressions with local error:

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

series93.0ms (0.2%)

Counts
2 → 0
Calls

2 calls:

59.0ms
(/.f64 (sqrt.f64 C) (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))
34.0ms
(/.f64 1 (/.f64 (sqrt.f64 C) (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2))))

rewrite22.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
60×times-frac_binary64
29×*-un-lft-identity_binary64
29×add-sqr-sqrt_binary64
29×add-cube-cbrt_binary64
28×add-exp-log_binary64
Counts
2 → 100
Calls

2 calls:

9.0ms
(/.f64 1 (/.f64 (sqrt.f64 C) (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2))))
6.0ms
(/.f64 (sqrt.f64 C) (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))

simplify119.0ms (0.3%)

Algorithm
egg-herbie
Rules
883×times-frac_binary64
601×fma-def_binary64
442×associate-/l*_binary64
399×associate-/r*_binary64
307×div-sub_binary64
Counts
100 → 119
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01062419
12002057
27022002
332962002
435442002
548772002
653192002

prune186.0ms (0.5%)

Pruning

39 alts after pruning (39 fresh and 0 done)

PrunedKeptTotal
New1493152
Fresh13637
Picked101
Done000
Total15139190
Error
17.8b
Counts
190 → 39
Alt Table
StatusErrorProgram
40.6b
(neg.f64 (/.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 2)))) (sqrt.f64 C)))
60.4b
(-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (fma.f64 C C (*.f64 B B)) F) (-.f64 C (hypot.f64 B C)))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (-.f64 C (hypot.f64 B C)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 (*.f64 C C) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (hypot.f64 B C))))))))))
49.0b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))))
52.2b
(/.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)))
44.6b
(neg.f64 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
54.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 B C)))) (/.f64 (sqrt.f64 2) B)))
41.2b
(neg.f64 (exp.f64 (-.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 F))) (log.f64 (sqrt.f64 2))) (log.f64 (sqrt.f64 C)))))
59.3b
(/.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))))))
39.4b
(neg.f64 (/.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) (*.f64 (cbrt.f64 (sqrt.f64 C)) (cbrt.f64 (sqrt.f64 C)))) (cbrt.f64 (sqrt.f64 C))))
39.8b
(neg.f64 (/.f64 (expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))) (sqrt.f64 C)))
61.5b
(neg.f64 (*.f64 (log.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
61.4b
(/.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)))
39.2b
(neg.f64 (/.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (sqrt.f64 2))) (sqrt.f64 C)))
63.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
44.7b
(neg.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))) (log.f64 (sqrt.f64 2)))))
53.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (/.f64 (sqrt.f64 2) B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.5b
(/.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)))
49.2b
(*.f64 (*.f64 (cbrt.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)))))))) (cbrt.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 (neg.f64 (cbrt.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))))
60.1b
(/.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)))
53.6b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
44.6b
(neg.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)) 3)) (sqrt.f64 C)))
40.6b
(neg.f64 (/.f64 1 (/.f64 (sqrt.f64 C) (exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))))))
53.7b
(/.f64 (neg.f64 (cbrt.f64 (*.f64 (*.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 (*.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 (*.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)))
51.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (*.f64 B B)))) (sqrt.f64 (/.f64 1 (fma.f64 A A (*.f64 B B))))) (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 8 (*.f64 (*.f64 A (*.f64 C F)) (hypot.f64 A B)))))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (hypot.f64 A B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.3b
(neg.f64 (sqrt.f64 (/.f64 (neg.f64 F) C)))
39.0b
(neg.f64 (/.f64 1 (/.f64 (sqrt.f64 C) (sqrt.f64 (neg.f64 F)))))
43.6b
(neg.f64 (/.f64 1 (sqrt.f64 (/.f64 C (neg.f64 F)))))
48.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.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)))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.1b
(neg.f64 (/.f64 (log.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 2)))) (sqrt.f64 C)))
50.5b
(/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))
49.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)))
62.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
43.7b
(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)))))
47.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (neg.f64 (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 4368 to 3105 computations (28.9% saved)

regimes6.9s (18.3%)

Accuracy

Total 19.7b remaining (52.7%)

Threshold costs 0b (0%)

Counts
217 → 9
Compiler

Compiled 60712 to 38517 computations (36.6% saved)

bsearch898.0ms (2.4%)

Steps
ItersRangePoint
8
1.8022595749629064e+25
3.8923631686048038e+28
1.8232299960392075e+25
7
5.64629812899529e-126
4.687027250864733e-124
1.0293379345528187e-124
8
3.813841930178294e-137
2.3698769330425035e-132
1.6492372060764243e-136
8
5.78560589821425e-249
6.892128875765963e-246
4.975272536947154e-246
8
5.710630143211127e-267
1.8047481032381059e-264
1.0618671080824585e-266
8
2.2593005080985367e-281
1.0626257412418848e-278
7.250586550384806e-280
8
-7.696731405548723e-25
-7.970215291687241e-29
-8.101188799698452e-29
9
-2.9743495255337486e+102
-2.3773675896696645e+95
-2.9228459489893423e+102
Compiler

Compiled 5 to 4 computations (20% saved)

simplify22.0ms (0.1%)

Algorithm
egg-herbie
Rules
43×*-commutative_binary64
42×distribute-rgt-neg-in_binary64
40×neg-sub0_binary64
39×neg-mul-1_binary64
35×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
097319
1159317
2226317
3283317
4326317
5352317
6375317
7391317
8397317
9399317
10395317

end15.0ms (0%)

Compiler

Compiled 636 to 369 computations (42% saved)

sample6.8s (18.1%)

Algorithm
intervals
Results
1.1s5516×body128valid
722.0ms905×body1024valid
687.0ms643×body2048valid
606.0ms801×body1024nan
562.0ms559×body2048nan
533.0ms2482×body128nan
350.0ms606×body512valid
309.0ms552×body512nan
136.0ms352×body256nan
133.0ms330×body256valid
Compiler

Compiled 1614 to 1001 computations (38% saved)

Profiling

Loading profile data...