Details

Time bar (total: 8.6s)

analyze892.0ms (10.4%)

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
12.5%87.4%0.1%6
20.3%73.3%6.4%7
27.3%66.3%6.4%8
38.2%53%8.7%9
46%40.6%13.4%10
49.9%35.1%15%11
54.9%26.9%18.1%12
57.4%22%20.6%13
59.7%18%22.4%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample2.0s (22.7%)

Results
1.7s8256×body128valid
216.0ms1070×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify31.0ms (0.4%)

Algorithm
egg-herbie
Rules
781×fma-neg_binary64
464×times-frac_binary64
353×div-sub_binary64
283×cancel-sign-sub-inv_binary64
251×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14452
29952
324050
443950
578050
6149350
7285650
8430250
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 231 to 143 computations (38.1% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(-.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.3b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
17.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series129.0ms (1.5%)

Counts
4 → 96
Calls

4 calls:

50.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
43.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
26.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite73.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
243×expm1-udef_binary64
243×log1p-udef_binary64
167×egg-rr
147×add-sqr-sqrt_binary64
144×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01368
130156
2430256
Stop Event
node limit
Counts
4 → 167
Calls

4 calls:

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

simplify44.0ms (0.5%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
293×fma-def_binary64
279×associate-*r*_binary64
278×associate-/l*_binary64
253×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0902213
12962123
29732035
Stop Event
node limit
Counts
263 → 226

prune584.0ms (6.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New3268334
Fresh011
Picked101
Done000
Total3279336
Error
6.1b
Counts
336 → 9
Alt Table
StatusErrorProgram
20.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b)) (*.f64 2 a)))
20.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
18.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
14.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
27.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a)))
14.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a)))
16.0b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 16671 to 9901 computations (40.6% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a))
0.9b
(+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
1.3b
(-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
17.1b
(sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series154.0ms (1.8%)

Counts
4 → 80
Calls

4 calls:

54.0ms
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a))
39.0ms
(-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
33.0ms
(+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
27.0ms
(sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))

rewrite69.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
269×expm1-udef_binary64
269×log1p-udef_binary64
237×fma-neg_binary64
152×add-sqr-sqrt_binary64
150×egg-rr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01467
131067
2410567
Stop Event
node limit
Counts
4 → 150
Calls

4 calls:

65.0ms
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a))
65.0ms
(+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
65.0ms
(-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
65.0ms
(sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))

simplify46.0ms (0.5%)

Algorithm
egg-herbie
Rules
725×times-frac_binary64
463×associate-/l*_binary64
402×associate-/r*_binary64
387×fma-def_binary64
161×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01162391
13892360
213342254
Stop Event
node limit
Counts
230 → 226

prune487.0ms (5.7%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2666272
Fresh358
Picked011
Done000
Total26912281
Error
6.1b
Counts
281 → 12
Alt Table
StatusErrorProgram
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -4) (*.f64 b b))) (/.f64 -1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))))
18.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
15.1b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (/.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a)))
14.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 1 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2))))
20.8b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (-.f64 (/.f64 (*.f64 2 a) (/.f64 b c)) b)) (/.f64 -1/2 a)))
20.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 -1 (/.f64 b a)))
27.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
14.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a)))
16.0b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (-.f64 (/.f64 c b) (/.f64 b a)))
Compiler

Compiled 12909 to 7551 computations (41.5% saved)

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))
1.3b
(-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))
17.1b
(sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))
17.1b
(sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series60.0ms (0.7%)

Counts
2 → 40
Calls

2 calls:

35.0ms
(-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))
25.0ms
(sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))

rewrite57.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
783×prod-diff_binary64
334×fma-def_binary64
185×expm1-udef_binary64
185×log1p-udef_binary64
156×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01029
121129
2269329
Stop Event
node limit
Counts
2 → 121
Calls

2 calls:

53.0ms
(-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))
53.0ms
(sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))

simplify47.0ms (0.5%)

Algorithm
egg-herbie
Rules
441×times-frac_binary64
417×fma-neg_binary64
274×associate-/l*_binary64
269×associate-*r*_binary64
240×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0761210
12501196
28081140
344111140
Stop Event
node limit
Counts
161 → 168

prune553.0ms (6.4%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New2591260
Fresh01010
Picked011
Done011
Total25913272
Error
6.1b
Counts
272 → 13
Alt Table
StatusErrorProgram
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -4) (*.f64 b b))) (/.f64 -1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))))
18.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
15.1b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (/.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a)))
14.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 1 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2))))
20.8b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (-.f64 (/.f64 (*.f64 2 a) (/.f64 b c)) b)) (/.f64 -1/2 a)))
20.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 -1 (/.f64 b a)))
20.8b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 1 (/.f64 a (*.f64 (-.f64 b (*.f64 -1 b)) -1/2))))
27.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
14.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a)))
16.0b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (-.f64 (/.f64 c b) (/.f64 b a)))
Compiler

Compiled 14497 to 8395 computations (42.1% saved)

localize27.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.3b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
7.4b
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))
17.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
17.6b
(pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4)
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series74.0ms (0.9%)

Counts
2 → 56
Calls

2 calls:

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

rewrite97.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
828×prod-diff_binary64
196×egg-rr
143×add-sqr-sqrt_binary64
143×log1p-expm1-u_binary64
143×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01433
130729
2373629
Stop Event
node limit
Counts
2 → 196
Calls

2 calls:

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

simplify59.0ms (0.7%)

Algorithm
egg-herbie
Rules
690×fma-def_binary64
482×cancel-sign-sub-inv_binary64
244×distribute-neg-frac_binary64
177×sub-neg_binary64
169×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02262538
17592480
229682444
Stop Event
node limit
Counts
252 → 274

prune933.0ms (10.8%)

Pruning

14 alts after pruning (11 fresh and 3 done)

PrunedKeptTotal
New3853388
Fresh2810
Picked011
Done022
Total38714401
Error
3.3b
Counts
401 → 14
Alt Table
StatusErrorProgram
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
18.0b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (*.f64 2 b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 c (*.f64 a -4) (*.f64 b b))) (/.f64 -1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b))))))
32.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
15.1b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 (/.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a)))
14.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
14.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 1 (/.f64 a (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2))))
20.8b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (-.f64 (/.f64 (*.f64 2 a) (/.f64 b c)) b)) (/.f64 -1/2 a)))
20.7b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 -1 (/.f64 b a)))
20.8b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (/.f64 1 (/.f64 a (*.f64 (-.f64 b (*.f64 -1 b)) -1/2))))
33.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
14.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b)))) (/.f64 -1/2 a)))
20.6b
(if (>=.f64 b 0) (/.f64 (*.f64 c -2) (+.f64 b (sqrt.f64 (fma.f64 c (/.f64 a -1/4) (*.f64 b b))))) (-.f64 (/.f64 c b) (/.f64 b a)))
Compiler

Compiled 27218 to 17200 computations (36.8% saved)

regimes1.7s (19.4%)

Accuracy

Total 4.5b remaining (51.7%)

Threshold costs 0b (0%)

Counts
158 → 5
Compiler

Compiled 28562 to 18482 computations (35.3% saved)

bsearch10.0ms (0.1%)

Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
23×*-commutative_binary64
22×+-commutative_binary64
18×sub-neg_binary64
12×neg-sub0_binary64
11×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
071486
1108474
2149474
3176474
4189474
5192474
Stop Event
saturated

end475.0ms (5.5%)

Compiler

Compiled 1214 to 760 computations (37.4% saved)

Profiling

Loading profile data...