Details

Time bar (total: 29.8s)

analyze3.3s (11.2%)

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)

sample6.5s (22%)

Results
1.5s5734×body128valid
808.0ms891×body1024valid
805.0ms686×body2048valid
781.0ms881×body1024invalid
761.0ms631×body2048invalid
732.0ms3003×body128invalid
424.0ms601×body512valid
384.0ms569×body512invalid
167.0ms342×body256valid
149.0ms334×body256invalid
3.0msbody4096valid
Compiler

Compiled 90 to 66 computations (26.7% saved)

preprocess34.0ms (0.1%)

Algorithm
egg-herbie
Rules
663×associate-*l*_binary64
649×associate-*r*_binary64
560×distribute-rgt-in_binary64
528×distribute-lft-in_binary64
364×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0109427
1360343
21374343
044
Stop Event
saturated
node limit
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
552×associate-*l*_binary64
520×associate-*r*_binary64
455×distribute-rgt-in_binary64
450×fma-def_binary64
449×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16649
222549
3100349
Stop Event
node limit
Counts
1 → 2

prune7.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
52.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 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 239 to 160 computations (33.1% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.1b
(*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))
5.5b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
15.7b
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))
22.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))

series8.4s (28.3%)

Counts
4 → 136
Calls

48 calls:

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

rewrite43.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
236×add-sqr-sqrt_binary64
228×pow1_binary64
227×*-un-lft-identity_binary64
219×add-exp-log_binary64
219×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020126
1454124
Stop Event
node limit
Counts
4 → 82

simplify270.0ms (0.9%)

Algorithm
egg-herbie
Rules
542×fma-def_binary64
490×associate-*r*_binary64
257×associate-/l*_binary64
210×associate-*l/_binary64
171×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0207436539
Stop Event
node limit
Counts
218 → 242

prune919.0ms (3.1%)

Pruning

25 alts after pruning (24 fresh and 1 done)

PrunedKeptTotal
New21824242
Fresh101
Picked011
Done000
Total21925244
Error
27.7b
Counts
244 → 25
Alt Table
StatusErrorProgram
58.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B))) (*.f64 -8 (*.f64 (*.f64 A A) (*.f64 C F))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
55.8b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.5b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
57.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))) (pow.f64 B 2)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.4b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
63.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (log.f64 (pow.f64 (exp.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) 3)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
48.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.7b
(neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
58.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
45.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
63.4b
(pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2)
56.5b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 53465 to 30608 computations (42.8% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series1.8s (6.1%)

Counts
3 → 76
Calls

33 calls:

381.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
A
0
318.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
B
0
312.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
F
inf
289.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
F
0
202.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
C
0

rewrite39.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
241×add-sqr-sqrt_binary64
233×pow1_binary64
231×*-un-lft-identity_binary64
223×add-exp-log_binary64
223×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02179
147179
Stop Event
node limit
Counts
3 → 57

simplify215.0ms (0.7%)

Algorithm
egg-herbie
Rules
523×*-commutative_binary64
262×+-commutative_binary64
254×fma-def_binary64
242×associate-*r*_binary64
234×associate-+r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0114418983
1470917143
Stop Event
node limit
Counts
133 → 125

prune601.0ms (2%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New1599168
Fresh81523
Picked101
Done101
Total16924193
Error
22.5b
Counts
193 → 24
Alt Table
StatusErrorProgram
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B))
55.8b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.5b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
61.0b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3)
60.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.2b
(/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.7b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
46.0b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
56.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.7b
(neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
58.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
47.4b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
63.4b
(pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2)
60.4b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
53.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.5b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 29312 to 17573 computations (40% saved)

localize34.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.5b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
20.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
20.1b
(sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))
23.5b
(cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))

series1.8s (5.9%)

Counts
2 → 32
Calls

21 calls:

378.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
A
0
325.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
B
0
319.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
F
inf
280.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
F
0
214.0ms
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
C
0

rewrite32.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
260×add-sqr-sqrt_binary64
252×pow1_binary64
249×*-un-lft-identity_binary64
241×add-log-exp_binary64
241×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02462
154162
Stop Event
node limit
Counts
2 → 30

simplify201.0ms (0.7%)

Algorithm
egg-herbie
Rules
522×*-commutative_binary64
262×+-commutative_binary64
254×fma-def_binary64
239×associate-*r*_binary64
234×associate-+r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0116518217
1473416377
Stop Event
node limit
Counts
62 → 86

prune547.0ms (1.8%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New1802182
Fresh02323
Picked101
Done000
Total18125206
Error
22.5b
Counts
206 → 25
Alt Table
StatusErrorProgram
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B))
55.8b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.5b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
61.0b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3)
60.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.2b
(/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.7b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.6b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
58.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.7b
(neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
58.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
47.4b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
63.4b
(pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2)
53.9b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 -4 (*.f64 A (*.f64 C F))))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
60.4b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
53.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.5b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 32408 to 19675 computations (39.3% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))
1.2b
(fma.f64 B B (*.f64 A (*.f64 C -4)))
18.1b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
22.3b
(pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2)

series1.7s (5.7%)

Counts
3 → 76
Calls

30 calls:

386.0ms
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
A
0
317.0ms
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
B
0
308.0ms
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
F
inf
280.0ms
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
F
0
209.0ms
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
C
0

rewrite38.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
259×add-sqr-sqrt_binary64
251×pow1_binary64
249×*-un-lft-identity_binary64
241×add-log-exp_binary64
241×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02382
151682
Stop Event
node limit
Counts
3 → 57

simplify162.0ms (0.5%)

Algorithm
egg-herbie
Rules
565×*-commutative_binary64
332×+-commutative_binary64
297×fma-def_binary64
279×associate-+r+_binary64
246×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0131220056
Stop Event
node limit
Counts
133 → 186

prune555.0ms (1.9%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New2217228
Fresh32124
Picked101
Done000
Total22528253
Error
21.9b
Counts
253 → 28
Alt Table
StatusErrorProgram
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B))
57.3b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
55.8b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.5b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
61.0b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3)
54.9b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.9b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B))
58.1b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (*.f64 2 C)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.2b
(/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
53.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
47.1b
(neg.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (*.f64 (sqrt.f64 F) (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.7b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))))
48.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
47.1b
(pow.f64 (/.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) -1)
56.6b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.3b
(pow.f64 (cbrt.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) 3)
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.7b
(neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
58.0b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
63.4b
(pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2)
53.9b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 -4 (*.f64 A (*.f64 C F))))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
60.4b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
52.5b
(/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.5b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 33547 to 19224 computations (42.7% saved)

regimes1.8s (6.1%)

Accuracy

Total 15.9b remaining (44.7%)

Threshold costs 0b (0%)

Counts
115 → 4
Compiler

Compiled 30178 to 20016 computations (33.7% saved)

bsearch8.0ms (0%)

Algorithm
left-value
Calls

3 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)))
Steps
ItersPointRange
#hash((type . real) (value . +inf))
∈ [
#hash((type . real) (value . +inf))
,
#hash((type . real) (value . NaN))
]
-0.0
∈ [
-0.0
,
2.3275153388053987e-173
]
-4.325573197083108e-208
∈ [
-4.325573197083108e-208
,
-0.0
]
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify13.0ms (0%)

Algorithm
egg-herbie
Rules
54×*-commutative_binary64
39×+-commutative_binary64
32×sub-neg_binary64
30×neg-sub0_binary64
30×neg-mul-1_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
080380
1153380
2231380
3293378
4330378
5345378
6349378
Stop Event
saturated

end609.0ms (2%)

Stop Event
fuel
Compiler

Compiled 1530 to 1021 computations (33.3% saved)

Profiling

Loading profile data...