Details

Time bar (total: 9.5s)

analyze779.0ms (8.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
18.7%81.1%0.1%6
26.5%67.1%6.4%7
35.1%58.5%6.4%8
41.3%49.9%8.7%9
46.4%40.2%13.4%10
50.8%34.2%15%11
55.2%26.7%18.1%12
57.4%22%20.6%13
59.8%17.9%22.3%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample1.8s (19.1%)

Results
1.6s8256×body128valid
178.0ms1018×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify67.0ms (0.7%)

Algorithm
egg-herbie
Rules
740×rules-20_binary64
631×fma-neg_binary64
348×rules-15-rev_binary64
249×rules-1_binary64
232×rules-10-rev_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02258
13758
27258
314458
452558
5193558
6459958
7497358
8502358

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
20.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
20.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
Compiler

Compiled 161 to 99 computations (38.5% saved)

localize73.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
0.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.5b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
24.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series176.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

68.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
54.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
42.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
11.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite133.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
254×expm1-udef_binary64
254×log1p-udef_binary64
175×egg-rr
141×add-sqr-sqrt_binary64
138×log1p-expm1-u_binary64
Counts
4 → 175
Calls

4 calls:

129.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
129.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
129.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
129.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01368
132268
2420468
3499665
4488365
000
100

simplify104.0ms (1.1%)

Algorithm
egg-herbie
Rules
483×fma-def_binary64
321×fma-neg_binary64
294×rules-20_binary64
287×rules-11_binary64
272×rules-13_binary64
Counts
271 → 230
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0902275
12592191
210932165
348942165
450002165
549902165

prune696.0ms (7.3%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New33813351
Fresh000
Picked101
Done000
Total33913352
Error
3.9b
Counts
352 → 13
Alt Table
StatusErrorProgram
25.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (exp.f64 (log.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))))))
34.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a)))))))
24.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (*.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (+.f64 1 (/.f64 (neg.f64 b) (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))))))))
29.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
24.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))))
19.6b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
32.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a))))) b)))
21.2b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
25.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
23.2b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 -1 b))))
20.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
Compiler

Compiled 17941 to 10775 computations (39.9% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
0.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
24.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series258.0ms (2.7%)

Counts
1 → 20
Calls

1 calls:

258.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))

rewrite85.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
279×log1p-udef_binary64
156×add-sqr-sqrt_binary64
152×log1p-expm1-u_binary64
152×expm1-log1p-u_binary64
147×add-cbrt-cube_binary64
Counts
1 → 34
Calls

1 calls:

84.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01526
136426
2458526
3490826
000
100

simplify52.0ms (0.5%)

Algorithm
egg-herbie
Rules
797×fma-neg_binary64
538×rules-15-rev_binary64
409×rules-21_binary64
319×fma-def_binary64
206×rules-13_binary64
Counts
54 → 55
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
064597
1193554
2698554
33626554
45850554

prune433.0ms (4.5%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New2204224
Fresh21012
Picked101
Done000
Total22314237
Error
3.6b
Counts
237 → 14
Alt Table
StatusErrorProgram
25.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (exp.f64 (log.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))))))
34.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a)))))))
22.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
32.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a))))) b)))
30.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))) 3)))
24.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))))
36.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 2 (fma.f64 b (/.f64 c (neg.f64 (*.f64 4 (*.f64 a c)))) (/.f64 c (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 a c))))))))
29.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
21.2b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
25.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
30.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (pow.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))))) 2))
Compiler

Compiled 9720 to 5699 computations (41.4% saved)

localize27.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
15.8b
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))
24.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
25.0b
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series167.0ms (1.8%)

Counts
2 → 72
Calls

2 calls:

111.0ms
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))
56.0ms
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
966×prod-diff_binary64
133×add-sqr-sqrt_binary64
131×log1p-expm1-u_binary64
131×expm1-log1p-u_binary64
126×add-cbrt-cube_binary64
Counts
2 → 61
Calls

2 calls:

73.0ms
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))
73.0ms
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01353
131636
2383536
3554736
000
100

simplify100.0ms (1%)

Algorithm
egg-herbie
Rules
371×fma-neg_binary64
300×fma-def_binary64
247×rules-4_binary64
231×rules-20_binary64
219×rules-13_binary64
Counts
133 → 170
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03033926
19823889
245963889
350513889

prune1.1s (11.3%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New3682370
Fresh11213
Picked011
Done000
Total36915384
Error
2.6b
Counts
384 → 15
Alt Table
StatusErrorProgram
25.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (exp.f64 (log.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))))))
34.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a)))))))
22.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
32.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a))))) b)))
30.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))) 3)))
40.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2) b)))
24.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))))
36.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 2 (fma.f64 b (/.f64 c (neg.f64 (*.f64 4 (*.f64 a c)))) (/.f64 c (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 a c))))))))
38.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2) b)))
29.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
21.2b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
30.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (pow.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))))) 2))
Compiler

Compiled 25281 to 15769 computations (37.6% saved)

localize25.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
12.8b
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2))
24.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
25.0b
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series87.0ms (0.9%)

Counts
1 → 20
Calls

1 calls:

87.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2))

rewrite74.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
266×expm1-udef_binary64
266×log1p-udef_binary64
153×log1p-expm1-u_binary64
153×expm1-log1p-u_binary64
149×add-sqr-sqrt_binary64
Counts
1 → 36
Calls

1 calls:

73.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01521
136920
2430720
3490720
000
100

simplify48.0ms (0.5%)

Algorithm
egg-herbie
Rules
855×fma-neg_binary64
426×fma-def_binary64
421×rules-21_binary64
289×rules-4_binary64
242×rules-13_binary64
Counts
56 → 58
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
067608
1190576
2748554
33874554
45001554

prune852.0ms (8.9%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New2441245
Fresh11213
Picked011
Done011
Total24515260
Error
0.7b
Counts
260 → 15
Alt Table
StatusErrorProgram
25.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (exp.f64 (log.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))))))
34.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a)))))))
22.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
32.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a))))) b)))
30.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))) 3)))
40.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2) b)))
30.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 a 4)) (log.f64 (/.f64 -1 c))))) 2)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
30.7b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (pow.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))))) 2))
24.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))))
36.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 2 (fma.f64 b (/.f64 c (neg.f64 (*.f64 4 (*.f64 a c)))) (/.f64 c (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 a c))))))))
38.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2) b)))
29.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (/.f64 (fma.f64 1/2 (*.f64 b b) (neg.f64 (*.f64 4 (*.f64 c a)))) (sqrt.f64 (neg.f64 (*.f64 4 (*.f64 c a)))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
28.9b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
20.4b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) 2)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
Compiler

Compiled 14054 to 8838 computations (37.1% saved)

regimes1.7s (18.1%)

Accuracy

Total 7.1b remaining (91.1%)

Threshold costs 0b (0%)

Counts
143 → 5
Compiler

Compiled 23370 to 16002 computations (31.5% saved)

bsearch10.0ms (0.1%)

Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058487
158487

end566.0ms (5.9%)

Compiler

Compiled 1292 to 822 computations (36.4% saved)

Profiling

Loading profile data...