Details

Time bar (total: 18.2s)

analyze2.9s (15.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
0%99.8%0.2%7
0%98.2%1.8%8
0%94.3%5.7%9
0.4%93%6.6%10
7.4%83.3%9.3%11
12.4%75.2%12.4%12
14.4%68.9%16.7%13
16.8%65.4%17.8%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample149.0ms (0.8%)

Algorithm
intervals
Results
22.0ms167×body128valid
18.0ms26×body2048valid
18.0ms33×body1024valid
17.0ms92×body128nan
14.0ms25×body1024nan
11.0ms15×body2048nan
8.0ms20×body512valid
5.0ms12×body512nan
3.0ms10×body256valid
2.0msbody256nan
Compiler

Compiled 93 to 69 computations (25.8% saved)

simplify40.0ms (0.2%)

Algorithm
egg-herbie
Rules
595×associate-+l+_binary64
560×associate-*l*_binary64
528×associate-*r*_binary64
455×distribute-rgt-in_binary64
449×distribute-lft-in_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02361
16661
219561
367461
4257861
5561761

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
53.2b
Counts
2 → 1
Alt Table
StatusErrorProgram
53.2b
(/.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)))
Compiler

Compiled 132 to 91 computations (31.1% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

6.4b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
13.6b
(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))))))
20.1b
(/.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)))
35.3b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

rewrite863.0ms (4.7%)

Algorithm
rewrite-expression-head
Error
49.8b
Rules
66×sqrt-div_binary64
40×associate-*r/_binary64
39×*-un-lft-identity_binary64
36×times-frac_binary64
35×add-sqr-sqrt_binary64
Counts
4 → 158
Calls

4 calls:

27.0ms
(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))))))
17.0ms
(/.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)))
13.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
11.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
Compiler

Compiled 11279 to 7235 computations (35.9% saved)

series1.9s (10.4%)

Error
28.0b
Counts
4 → 76
Calls

4 calls:

1.1s
(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))))))
465.0ms
(/.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)))
98.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
82.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
Compiler

Compiled 17991 to 13158 computations (26.9% saved)

simplify331.0ms (1.8%)

Algorithm
egg-herbie
Rules
431×times-frac_binary64
312×*-commutative_binary64
309×distribute-rgt-in_binary64
302×distribute-lft-in_binary64
136×associate-*r*_binary64
Counts
234 → 206
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
079715674
1228315176
2495115176
3496915176

prune373.0ms (2%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New18818206
Fresh000
Picked101
Done000
Total18918207
Error
27.5b
Counts
207 → 18
Alt Table
StatusErrorProgram
61.0b
(/.f64 (neg.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 B (sqrt.f64 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 C (*.f64 B (sqrt.f64 2)))))) (+.f64 (*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) B)) (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 (sqrt.f64 2) (*.f64 C (*.f64 B A)))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.8b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
63.4b
(/.f64 (neg.f64 (+.f64 (*.f64 (sqrt.f64 2) (*.f64 A (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 (*.f64 B B) (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
60.7b
(-.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (+.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (sqrt.f64 2)) B))) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))))))
58.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B)))
47.2b
(/.f64 (neg.f64 (+.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8)))) (/.f64 (*.f64 (*.f64 B B) (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (*.f64 B (sqrt.f64 2)))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.4b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))
58.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) F) (*.f64 C A)))) (sqrt.f64 2)))
46.9b
(/.f64 (neg.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 C (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) (*.f64 A F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))))
53.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (-.f64 (+.f64 C (*.f64 1/2 (/.f64 (*.f64 B B) C))) A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
50.2b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))
50.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (neg.f64 C))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
50.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))))
53.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))) (+.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)))
Compiler

Compiled 14084 to 7313 computations (48.1% saved)

localize8.0ms (0%)

Local error

Found 3 expressions with local error:

0.0b
(*.f64 -1/2 (/.f64 F A))
0.5b
(*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))
15.3b
(sqrt.f64 (*.f64 -1/2 (/.f64 F A)))

rewrite115.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
27.4b
Rules
23×add-sqr-sqrt_binary64
17×associate-*r*_binary64
15×pow1_binary64
14×add-cube-cbrt_binary64 *-un-lft-identity_binary64
10×add-exp-log_binary64 add-cbrt-cube_binary64 times-frac_binary64
Counts
3 → 72
Calls

3 calls:

9.0ms
(*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))
7.0ms
(*.f64 -1/2 (/.f64 F A))
4.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F A)))
Compiler

Compiled 1066 to 739 computations (30.7% saved)

series54.0ms (0.3%)

Error
27.5b
Counts
3 → 18
Calls

3 calls:

19.0ms
(*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))
17.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F A)))
16.0ms
(*.f64 -1/2 (/.f64 F A))
Compiler

Compiled 660 to 562 computations (14.8% saved)

simplify114.0ms (0.6%)

Algorithm
egg-herbie
Rules
670×associate-*r/_binary64
353×associate-*l*_binary64
288×associate-/r/_binary64
284×associate-/l/_binary64
276×associate-*r*_binary64
Counts
90 → 42
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01301103
12801045
27641045
318401045
434761045
539201045
648791045
749601045

prune84.0ms (0.5%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New34842
Fresh11617
Picked101
Done000
Total362460
Error
27.4b
Counts
60 → 24
Alt Table
StatusErrorProgram
61.0b
(/.f64 (neg.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 B (sqrt.f64 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 C (*.f64 B (sqrt.f64 2)))))) (+.f64 (*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) B)) (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 (sqrt.f64 2) (*.f64 C (*.f64 B A)))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.8b
(neg.f64 (*.f64 (sqrt.f64 (sqrt.f64 2)) (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A))) (sqrt.f64 (sqrt.f64 2)))))
60.7b
(-.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (+.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (sqrt.f64 2)) B))) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))))))
58.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B)))
49.7b
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) 3)))
60.9b
(neg.f64 (log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 2))))
47.2b
(/.f64 (neg.f64 (+.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8)))) (/.f64 (*.f64 (*.f64 B B) (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (*.f64 B (sqrt.f64 2)))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.4b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))
58.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) F) (*.f64 C A)))) (sqrt.f64 2)))
46.9b
(/.f64 (neg.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 C (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) (*.f64 A F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))))
53.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (-.f64 (+.f64 C (*.f64 1/2 (/.f64 (*.f64 B B) C))) A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.9b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2)))))
44.8b
(neg.f64 (sqrt.f64 (neg.f64 (/.f64 F A))))
45.0b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 F)) (/.f64 (sqrt.f64 F) A)))))
44.9b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 -1/2 (*.f64 (cbrt.f64 F) (cbrt.f64 F))) (/.f64 (cbrt.f64 F) A)))))
50.2b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))
50.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (neg.f64 C))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
50.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))))
53.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))) (+.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.6b
(neg.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A))) 3))))
Compiler

Compiled 2253 to 1451 computations (35.6% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

15.3b
(sqrt.f64 (neg.f64 (/.f64 F A)))

rewrite53.0ms (0.3%)

Algorithm
rewrite-expression-head
Error
24.7b
Rules
30×sqrt-prod_binary64
18×times-frac_binary64
17×add-sqr-sqrt_binary64
16×add-cube-cbrt_binary64 *-un-lft-identity_binary64
13×distribute-rgt-neg-in_binary64 distribute-lft-neg-in_binary64
Counts
1 → 41
Calls

1 calls:

4.0ms
(sqrt.f64 (neg.f64 (/.f64 F A)))
Compiler

Compiled 528 to 217 computations (58.9% saved)

series14.0ms (0.1%)

Error
27.4b
Counts
1 → 6
Calls

1 calls:

13.0ms
(sqrt.f64 (neg.f64 (/.f64 F A)))
Compiler

Compiled 176 to 140 computations (20.5% saved)

simplify248.0ms (1.4%)

Algorithm
egg-herbie
Rules
766×associate-/l*_binary64
667×div-sub_binary64
665×unsub-neg_binary64
544×unswap-sqr_binary64
493×sub-neg_binary64
Counts
47 → 24
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
0115696
1201676
2373676
3576676
41053676
51734676
62095676
72232676
82380676
92702676
102888671
114292671
124188671
134601671
144848671
154866671
164650671

prune77.0ms (0.4%)

Pruning

27 alts after pruning (27 fresh and 0 done)

PrunedKeptTotal
New17724
Fresh32023
Picked101
Done000
Total212748
Error
24.7b
Counts
48 → 27
Alt Table
StatusErrorProgram
61.0b
(/.f64 (neg.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 B (sqrt.f64 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 C (*.f64 B (sqrt.f64 2)))))) (+.f64 (*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) B)) (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 (sqrt.f64 2) (*.f64 C (*.f64 B A)))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.8b
(neg.f64 (*.f64 (sqrt.f64 (sqrt.f64 2)) (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A))) (sqrt.f64 (sqrt.f64 2)))))
60.7b
(-.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (+.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (sqrt.f64 2)) B))) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))))))
58.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B)))
49.7b
(neg.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (neg.f64 (/.f64 F A))) 3)))
60.9b
(neg.f64 (log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 2))))
47.2b
(/.f64 (neg.f64 (+.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8)))) (/.f64 (*.f64 (*.f64 B B) (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (*.f64 B (sqrt.f64 2)))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.4b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))
58.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) F) (*.f64 C A)))) (sqrt.f64 2)))
46.9b
(/.f64 (neg.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 C (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) (*.f64 A F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))))
53.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (-.f64 (+.f64 C (*.f64 1/2 (/.f64 (*.f64 B B) C))) A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
41.4b
(neg.f64 (*.f64 (sqrt.f64 (sqrt.f64 F)) (sqrt.f64 (neg.f64 (/.f64 (sqrt.f64 F) A)))))
44.9b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2)))))
41.0b
(neg.f64 (*.f64 (fabs.f64 (cbrt.f64 F)) (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 F) A)))))
50.2b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))
50.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
39.9b
(neg.f64 (*.f64 (sqrt.f64 F) (sqrt.f64 (/.f64 -1 A))))
40.0b
(neg.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 F) (cbrt.f64 A))) (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 F) (cbrt.f64 A))))))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (neg.f64 C))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
40.5b
(neg.f64 (*.f64 (/.f64 1 (fabs.f64 (cbrt.f64 A))) (sqrt.f64 (/.f64 (neg.f64 F) (cbrt.f64 A)))))
45.0b
(neg.f64 (*.f64 (fabs.f64 (cbrt.f64 (/.f64 F A))) (sqrt.f64 (neg.f64 (cbrt.f64 (/.f64 F A))))))
50.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))))
53.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))) (+.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.6b
(neg.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A))) 3))))
Compiler

Compiled 2263 to 1379 computations (39.1% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

0.1b
(sqrt.f64 (/.f64 -1 A))
0.3b
(*.f64 (sqrt.f64 F) (sqrt.f64 (/.f64 -1 A)))

rewrite98.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
24.7b
Rules
41×add-sqr-sqrt_binary64
36×sqrt-prod_binary64
22×times-frac_binary64
19×add-cube-cbrt_binary64 *-un-lft-identity_binary64
16×associate-*r*_binary64
Counts
2 → 70
Calls

2 calls:

11.0ms
(*.f64 (sqrt.f64 F) (sqrt.f64 (/.f64 -1 A)))
3.0ms
(sqrt.f64 (/.f64 -1 A))
Compiler

Compiled 901 to 610 computations (32.3% saved)

series23.0ms (0.1%)

Error
24.7b
Counts
2 → 9
Calls

2 calls:

17.0ms
(*.f64 (sqrt.f64 F) (sqrt.f64 (/.f64 -1 A)))
6.0ms
(sqrt.f64 (/.f64 -1 A))
Compiler

Compiled 285 to 231 computations (18.9% saved)

simplify152.0ms (0.8%)

Algorithm
egg-herbie
Rules
743×unsub-neg_binary64
405×unswap-sqr_binary64
386×associate-/r*_binary64
360×div-sub_binary64
299×neg-mul-1_binary64
Counts
79 → 36
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01091061
11841016
24421013
36551013
413121013
519881013
625581013
735241013
847221013
949961013
1048411013

prune67.0ms (0.4%)

Pruning

27 alts after pruning (26 fresh and 1 done)

PrunedKeptTotal
New30636
Fresh62026
Picked011
Done000
Total362763
Error
24.7b
Counts
63 → 27
Alt Table
StatusErrorProgram
61.0b
(/.f64 (neg.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 B (sqrt.f64 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (*.f64 C (*.f64 B (sqrt.f64 2)))))) (+.f64 (*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) B)) (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 (sqrt.f64 2) (*.f64 C (*.f64 B A)))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
41.5b
(neg.f64 (exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 -1 A)) (sqrt.f64 F)))))
60.7b
(-.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))) (+.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 C (*.f64 (*.f64 A A) (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A)))))) (/.f64 (*.f64 C (sqrt.f64 2)) B))) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))) (*.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 C A) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 B B) (*.f64 A A)) F) (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))))))
58.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B)))
60.9b
(neg.f64 (log.f64 (pow.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 2))))
40.0b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 F) (fabs.f64 (cbrt.f64 (/.f64 -1 A)))) (sqrt.f64 (cbrt.f64 (/.f64 -1 A)))))
47.2b
(/.f64 (neg.f64 (+.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8)))) (/.f64 (*.f64 (*.f64 B B) (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.6b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (*.f64 B (sqrt.f64 2)))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.4b
(neg.f64 (*.f64 (/.f64 (sqrt.f64 2) B) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 A A))))))))
58.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) F) (*.f64 C A)))) (sqrt.f64 2)))
46.9b
(/.f64 (neg.f64 (*.f64 C (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 A F) -8))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 C (*.f64 (+.f64 C (+.f64 A (sqrt.f64 (-.f64 (+.f64 (*.f64 C C) (*.f64 A A)) (*.f64 2 (*.f64 C A)))))) (*.f64 A F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F C)))))
53.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (-.f64 (+.f64 C (*.f64 1/2 (/.f64 (*.f64 B B) C))) A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.9b
(neg.f64 (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))) (sqrt.f64 (sqrt.f64 2)))))
46.6b
(neg.f64 (*.f64 (sqrt.f64 F) (cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 -1 A)) 3))))
39.9b
(neg.f64 (*.f64 (sqrt.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 (/.f64 -1 A)) (sqrt.f64 (sqrt.f64 F)))))
40.3b
(neg.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 F)) (cbrt.f64 (sqrt.f64 F))) (*.f64 (sqrt.f64 (/.f64 -1 A)) (cbrt.f64 (sqrt.f64 F)))))
50.2b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))
40.2b
(neg.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 -1 A)) (sqrt.f64 F))) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 -1 A)) (sqrt.f64 F)))) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 -1 A)) (sqrt.f64 F)))))
50.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
39.9b
(neg.f64 (*.f64 (sqrt.f64 F) (sqrt.f64 (/.f64 -1 A))))
40.0b
(neg.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 F) (cbrt.f64 A))) (sqrt.f64 (neg.f64 (/.f64 (cbrt.f64 F) (cbrt.f64 A))))))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (neg.f64 C))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
50.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 C A) (sqrt.f64 (+.f64 (*.f64 B B) (pow.f64 (-.f64 A C) 2)))))) (cbrt.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))))
53.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 B B) (*.f64 (*.f64 C A) 4)))) (+.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.6b
(neg.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F A))) 3))))
Compiler

Compiled 1364 to 875 computations (35.9% saved)

regimes4.8s (26.1%)

Accuracy

Total 4.2b remaining (13.7%)

Threshold costs 0b (0%)

Compiler

Compiled 63868 to 44598 computations (30.2% saved)

bsearch16.0ms (0.1%)

Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify17.0ms (0.1%)

Algorithm
egg-herbie
Rules
38×*-commutative_binary64
28×+-commutative_binary64
25×sub-neg_binary64
22×neg-mul-1_binary64 neg-sub0_binary64
16×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066404
1128404
2189404
3231404
4251404
5255404
6254404

end25.0ms (0.1%)

Compiler

Compiled 795 to 543 computations (31.7% saved)

sample5.8s (31.6%)

Algorithm
intervals
Results
772.0ms5455×body128valid
522.0ms706×body2048valid
503.0ms870×body1024valid
474.0ms825×body1024nan
435.0ms586×body2048nan
390.0ms2824×body128nan
307.0ms314×body256nan
267.0ms619×body512valid
262.0ms586×body512nan
101.0ms349×body256valid
1.0msbody4096valid
Compiler

Compiled 1336 to 860 computations (35.6% saved)

Profiling

Loading profile data...