Details

Time bar (total: 1.4min)

analyze4.3s (5%)

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%89.7%10.3%10
1.3%85.5%13.3%11
2.4%80%17.5%12
3.4%78.3%18.3%13
5.3%75%19.7%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample6.7s (7.9%)

Results
1.6s5781×body128valid
802.0ms867×body1024valid
802.0ms628×body2048valid
787.0ms842×body1024invalid
753.0ms617×body2048invalid
641.0ms2615×body128invalid
462.0ms649×body512valid
417.0ms620×body512invalid
186.0ms326×body256valid
164.0ms361×body256invalid
7.0msbody4096valid
Compiler

Compiled 90 to 66 computations (26.7% saved)

preprocess32.0ms (0%)

Algorithm
egg-herbie
Rules
580×associate-*l*_binary64
566×associate-*r*_binary64
435×distribute-rgt-in_binary64
411×distribute-lft-in_binary64
232×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0109427
1323343
21158343
044
Stop Event
saturated
node limit
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify24.0ms (0%)

Algorithm
egg-herbie
Rules
470×associate-*l*_binary64
454×associate-*r*_binary64
420×distribute-rgt-in_binary64
410×distribute-lft-in_binary64
306×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16149
219549
383649
4445649
Stop Event
node limit
Counts
1 → 2

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
48.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
53.9b
(/.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)))
48.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 239 to 160 computations (33.1% saved)

localize22.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
7.6b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
19.9b
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
23.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))

series8.1s (9.6%)

Counts
4 → 136
Calls

48 calls:

1.8s
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
F
-inf
1.4s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
0
1.4s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
-inf
1.2s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
inf
411.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
A
0

rewrite45.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
232×add-sqr-sqrt_binary64
220×log1p-expm1-u_binary64
220×expm1-log1p-u_binary64
219×add-cbrt-cube_binary64
215×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020129
1455127
Stop Event
node limit
Counts
4 → 97

simplify263.0ms (0.3%)

Algorithm
egg-herbie
Rules
544×fma-def_binary64
492×associate-*r*_binary64
252×associate-*l/_binary64
251×associate-/l*_binary64
166×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0208136919
Stop Event
node limit
Counts
233 → 256

prune915.0ms (1.1%)

Pruning

27 alts after pruning (26 fresh and 1 done)

PrunedKeptTotal
New23026256
Fresh101
Picked011
Done000
Total23127258
Error
26.7b
Counts
258 → 27
Alt Table
StatusErrorProgram
56.8b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)) (neg.f64 (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.2b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 2))) (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 C C) (*.f64 B B)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.2b
(sqrt.f64 (/.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2)))
62.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (expm1.f64 (log1p.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
49.2b
(/.f64 (neg.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 A 2) (*.f64 F (pow.f64 B 2))) C)) (*.f64 8 (*.f64 A (*.f64 F (pow.f64 B 2))))) (+.f64 (*.f64 16 (*.f64 (pow.f64 A 2) (*.f64 C F))) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 -10 (*.f64 (*.f64 A C) (*.f64 F B)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.7b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
48.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
Compiler

Compiled 54552 to 30808 computations (43.5% saved)

localize21.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.6b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
19.9b
(sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
23.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
24.0b
(cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))

series6.2s (7.3%)

Counts
3 → 52
Calls

36 calls:

1.3s
(sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
0
1.2s
(sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
-inf
1.2s
(sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
F
inf
390.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
A
0
301.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
B
0

rewrite45.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
247×add-sqr-sqrt_binary64
238×log1p-expm1-u_binary64
238×expm1-log1p-u_binary64
235×add-cbrt-cube_binary64
230×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02399
151499
Stop Event
node limit
Counts
3 → 64

simplify227.0ms (0.3%)

Algorithm
egg-herbie
Rules
452×fma-def_binary64
420×associate-*r*_binary64
414×associate-+r+_binary64
250×associate-*l/_binary64
241×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0185832609
Stop Event
node limit
Counts
116 → 160

prune788.0ms (0.9%)

Pruning

28 alts after pruning (27 fresh and 1 done)

PrunedKeptTotal
New1766182
Fresh42125
Picked011
Done101
Total18128209
Error
26.7b
Counts
209 → 28
Alt Table
StatusErrorProgram
56.8b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
49.1b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) -1)
58.9b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)) (neg.f64 (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.2b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 C C) (*.f64 B B)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (-.f64 C (sqrt.f64 (+.f64 (*.f64 A A) (-.f64 (*.f64 C C) (*.f64 2 (*.f64 A C))))))) C)))) (sqrt.f64 2)))
61.2b
(sqrt.f64 (/.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2)))
60.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 2) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 A (*.f64 C F)) 1/3) (cbrt.f64 -4)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 A 2) (*.f64 F (pow.f64 B 2))) C)) (*.f64 8 (*.f64 A (*.f64 F (pow.f64 B 2))))) (+.f64 (*.f64 16 (*.f64 (pow.f64 A 2) (*.f64 C F))) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 -10 (*.f64 (*.f64 A C) (*.f64 F B)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)))) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.7b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.2b
(cbrt.f64 (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) 3))
55.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
Compiler

Compiled 49183 to 28572 computations (41.9% saved)

localize18.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.0b
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
7.6b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
16.8b
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
22.3b
(/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))

series49.1s (57.8%)

Counts
3 → 76
Calls

33 calls:

43.8s
(/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
F
-inf
1.2s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
F
0
1.2s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
F
-inf
1.1s
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
F
inf
441.0ms
(/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
A
0

rewrite40.0ms (0%)

Algorithm
batch-egg-rewrite
Rules
224×add-sqr-sqrt_binary64
212×log1p-expm1-u_binary64
212×expm1-log1p-u_binary64
211×add-cbrt-cube_binary64
207×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02096
144494
Stop Event
node limit
Counts
3 → 96

simplify196.0ms (0.2%)

Algorithm
egg-herbie
Rules
441×associate-*r*_binary64
411×fma-def_binary64
229×associate-/l*_binary64
223×associate-/r*_binary64
218×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0195729971
Stop Event
node limit
Counts
172 → 239

prune771.0ms (0.9%)

Pruning

29 alts after pruning (28 fresh and 1 done)

PrunedKeptTotal
New25011261
Fresh91726
Picked101
Done011
Total26029289
Error
25.6b
Counts
289 → 29
Alt Table
StatusErrorProgram
56.8b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.2b
(pow.f64 (neg.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2)) (*.f64 1/4 (/.f64 (/.f64 (*.f64 B B) C) (*.f64 (*.f64 F (sqrt.f64 (/.f64 (*.f64 -2 A) F))) (sqrt.f64 2)))))) -1)
58.9b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)) (neg.f64 (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(pow.f64 (neg.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2))) -1)
61.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.2b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.9b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (*.f64 2 C)))))) -1)
60.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (-.f64 C (sqrt.f64 (+.f64 (*.f64 A A) (-.f64 (*.f64 C C) (*.f64 2 (*.f64 A C))))))) C)))) (sqrt.f64 2)))
62.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
55.0b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))))) -1)
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.7b
(pow.f64 (neg.f64 (fma.f64 1/4 (/.f64 (/.f64 (*.f64 B B) A) (*.f64 (*.f64 F (sqrt.f64 (*.f64 -2 (/.f64 C F)))) (sqrt.f64 2))) (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2)))) -1)
58.3b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (fma.f64 (sqrt.f64 A) (sqrt.f64 A) (-.f64 C (hypot.f64 B (-.f64 A C))))))))) -1)
61.2b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 B))))) -1)
55.2b
(pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2))) -1)
54.2b
(cbrt.f64 (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) 3))
54.4b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) -1)
60.7b
(pow.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 F) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 B (sqrt.f64 2)))) -1)
56.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 A (*.f64 C F)) 1/3) (cbrt.f64 -4)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.7b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.2b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) (sqrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))))) -1)
55.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
Compiler

Compiled 49050 to 27967 computations (43% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.0b
(-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
9.9b
(sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
10.1b
(sqrt.f64 (*.f64 C (*.f64 A -4)))
11.8b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))

series2.0s (2.4%)

Counts
3 → 28
Calls

30 calls:

269.0ms
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
F
-inf
236.0ms
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
F
inf
220.0ms
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
F
0
135.0ms
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
C
-inf
123.0ms
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
A
0

rewrite34.0ms (0%)

Algorithm
batch-egg-rewrite
Rules
240×add-sqr-sqrt_binary64
228×log1p-expm1-u_binary64
228×expm1-log1p-u_binary64
227×add-cbrt-cube_binary64
223×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02280
149077
Stop Event
node limit
Counts
3 → 70

simplify88.0ms (0.1%)

Algorithm
egg-herbie
Rules
666×fma-def_binary64
512×times-frac_binary64
392×associate-/l*_binary64
271×*-commutative_binary64
121×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06048056
121756399
Stop Event
node limit
Counts
98 → 126

prune347.0ms (0.4%)

Pruning

32 alts after pruning (30 fresh and 2 done)

PrunedKeptTotal
New2178225
Fresh52227
Picked011
Done011
Total22232254
Error
21.2b
Counts
254 → 32
Alt Table
StatusErrorProgram
56.8b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.2b
(pow.f64 (neg.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2)) (*.f64 1/4 (/.f64 (/.f64 (*.f64 B B) C) (*.f64 (*.f64 F (sqrt.f64 (/.f64 (*.f64 -2 A) F))) (sqrt.f64 2)))))) -1)
58.1b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 A) (/.f64 (*.f64 1/2 (*.f64 B B)) C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(pow.f64 (neg.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2))) -1)
61.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.2b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.5b
(*.f64 (/.f64 (sqrt.f64 2) B) (neg.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 C B))))))
55.9b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (*.f64 2 C)))))) -1)
55.3b
(*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (neg.f64 (/.f64 (sqrt.f64 2) B)))
60.7b
(pow.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 F) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 B (sqrt.f64 2)))) -1)
53.7b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (cbrt.f64 (pow.f64 (*.f64 (*.f64 F 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) 3/2)))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.8b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
55.0b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))))) -1)
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.0b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
48.8b
(neg.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 F 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))))
56.7b
(pow.f64 (neg.f64 (fma.f64 1/4 (/.f64 (/.f64 (*.f64 B B) A) (*.f64 (*.f64 F (sqrt.f64 (*.f64 -2 (/.f64 C F)))) (sqrt.f64 2))) (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2)))) -1)
58.6b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (+.f64 (*.f64 2 C) (*.f64 -1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.2b
(cbrt.f64 (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) 3))
57.6b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.2b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 B))))) -1)
55.2b
(pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2))) -1)
54.4b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) -1)
60.4b
(*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 A C)))) (*.f64 A C)) (sqrt.f64 (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))))))))
50.7b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.2b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) (sqrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))))) -1)
55.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
Compiler

Compiled 19621 to 11698 computations (40.4% saved)

regimes4.0s (4.7%)

Accuracy

Total 20.1b remaining (49.7%)

Threshold costs 0b (0%)

Counts
198 → 5
Compiler

Compiled 60347 to 38738 computations (35.8% saved)

bsearch14.0ms (0%)

Algorithm
left-value
Calls

4 calls:

0.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)))
0.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)))
0.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)))
0.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)))
Steps
ItersPointRange
#hash((type . real) (value . +inf))
∈ [
#hash((type . real) (value . +inf))
,
#hash((type . real) (value . NaN))
]
0.0
∈ [
0.0
,
3.0175306534206063e-123
]
-1.4924876823199194e-182
∈ [
-1.4924876823199194e-182
,
0.0
]
#hash((type . real) (value . -inf))
∈ [
#hash((type . real) (value . -inf))
,
-2.087812653506548e+267
]
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify13.0ms (0%)

Algorithm
egg-herbie
Rules
44×*-commutative_binary64
34×+-commutative_binary64
31×sub-neg_binary64
24×neg-sub0_binary64
24×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
084462
1151462
2218462
3265462
4287462
5292462
6293462
Stop Event
saturated

end606.0ms (0.7%)

Stop Event
fuel
Compiler

Compiled 1690 to 1134 computations (32.9% saved)

Profiling

Loading profile data...