Details

Time bar (total: 7.2s)

analyze699.0ms (9.8%)

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.6s (22.5%)

Results
1.4s8256×body128valid
171.0ms1044×body128invalid
Compiler

Compiled 84 to 54 computations (35.7% saved)

preprocess56.0ms (0.8%)

Algorithm
egg-herbie
Rules
623×fma-neg_binary64
569×div-sub_binary64
307×fma-def_binary64
296×sub-neg_binary64
276×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055232
1143208
2409208
3940200
41724200
53271200
033
Stop Event
saturated
node limit
Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify39.0ms (0.5%)

Algorithm
egg-herbie
Rules
1122×fma-def_binary64
776×fma-neg_binary64
260×associate-/l*_binary64
249×cancel-sign-sub-inv_binary64
205×div-sub_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14752
212352
330450
454650
599350
6205750
7356850
8483450
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
19.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
19.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) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.4b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
Compiler

Compiled 231 to 147 computations (36.4% saved)

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
2.1b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
22.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series114.0ms (1.6%)

Counts
4 → 96
Calls

36 calls:

9.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
a
inf
7.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
c
inf
6.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
b
inf
6.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
c
-inf
6.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
a
-inf

rewrite73.0ms (1%)

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

simplify47.0ms (0.6%)

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

prune577.0ms (8.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New32410334
Fresh011
Picked101
Done000
Total32511336
Error
5.2b
Counts
336 → 11
Alt Table
StatusErrorProgram
19.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 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3))))
37.6b
(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 (*.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))))))))
19.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) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))))
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
19.4b
(if (>=.f64 b 0) (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)) (*.f64 c (/.f64 2 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b))))
19.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 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))))))
20.6b
(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 2 (-.f64 (*.f64 a (/.f64 c b)) b))))
20.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) (*.f64 -1 b))))
18.8b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
18.7b
(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))))))
Compiler

Compiled 16827 to 10009 computations (40.5% saved)

localize20.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
1.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
2.1b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
22.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series137.0ms (1.9%)

Counts
1 → 20
Calls

9 calls:

32.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
a
inf
29.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
c
inf
27.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
a
-inf
27.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
c
-inf
7.0ms
(/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
b
inf

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
278×log1p-udef_binary64
166×add-sqr-sqrt_binary64
162×log1p-expm1-u_binary64
162×expm1-log1p-u_binary64
161×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
134222
2488722
Stop Event
node limit
Counts
1 → 45

simplify38.0ms (0.5%)

Algorithm
egg-herbie
Rules
658×fma-neg_binary64
473×times-frac_binary64
286×associate-/l*_binary64
231×associate-/r*_binary64
223×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
064575
1213556
2701520
34128520
Stop Event
node limit
Counts
65 → 68

prune421.0ms (5.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2375242
Fresh4610
Picked101
Done000
Total24211253
Error
5.2b
Counts
253 → 11
Alt Table
StatusErrorProgram
19.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 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))))))
25.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 3/2)))))
32.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 2 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 c (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))))
18.8b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.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) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
19.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 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3))))
20.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b))))
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
32.6b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 2 c)) 2) (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (*.f64 2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))))
Compiler

Compiled 9966 to 5836 computations (41.4% saved)

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.1b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
4.0b
(/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a))
5.8b
(*.f64 a (/.f64 c b))
22.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series34.0ms (0.5%)

Counts
2 → 72
Calls

18 calls:

3.0ms
(/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a))
a
0
3.0ms
(*.f64 a (/.f64 c b))
a
inf
2.0ms
(/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a))
c
-inf
2.0ms
(/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a))
b
-inf
2.0ms
(/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.f64 2 a))
a
inf

rewrite59.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
249×expm1-udef_binary64
249×log1p-udef_binary64
149×add-sqr-sqrt_binary64
141×log1p-expm1-u_binary64
141×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01329
129227
2437527
Stop Event
node limit
Counts
2 → 66

simplify81.0ms (1.1%)

Algorithm
egg-herbie
Rules
819×fma-def_binary64
461×fma-neg_binary64
327×div-sub_binary64
192×associate-/l*_binary64
173×associate-/l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011566
118566
229566
343566
457566
587566
6151566
7217566
8379566
9786566
101728566
112880566
123630566
133846566
144061566
154127566
164167566
174195566
184195566
Stop Event
saturated
Counts
138 → 71

prune379.0ms (5.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1850185
Fresh01010
Picked011
Done000
Total18511196
Error
5.2b
Counts
196 → 11
Alt Table
StatusErrorProgram
19.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 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))))))
25.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 3/2)))))
32.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 2 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 c (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))))
18.8b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.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) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
19.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 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3))))
20.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b))))
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
32.6b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 2 c)) 2) (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (*.f64 2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))))
Compiler

Compiled 8823 to 4955 computations (43.8% saved)

localize30.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
22.3b
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
22.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
22.3b
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
22.9b
(pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4)
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series93.0ms (1.3%)

Counts
3 → 76
Calls

27 calls:

5.0ms
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
c
inf
5.0ms
(pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4)
b
0
5.0ms
(pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4)
b
inf
4.0ms
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))
c
-inf
4.0ms
(pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4)
c
inf

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
541×log-prod_binary64
198×expm1-udef_binary64
198×log1p-udef_binary64
182×log-pow_binary64
165×prod-diff_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
014108
128838
2319838
Stop Event
node limit
Counts
3 → 87

simplify67.0ms (0.9%)

Algorithm
egg-herbie
Rules
617×fma-def_binary64
511×cancel-sign-sub-inv_binary64
253×distribute-neg-frac_binary64
168×sub-neg_binary64
167×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02133040
17202990
228152916
Stop Event
node limit
Counts
163 → 132

prune626.0ms (8.7%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2570257
Fresh099
Picked011
Done011
Total25711268
Error
5.2b
Counts
268 → 11
Alt Table
StatusErrorProgram
19.3b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 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))))))
25.1b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 3/2)))))
32.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 2 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 c (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))))
18.8b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (fma.f64 (*.f64 a (/.f64 c b)) -2 b)) (*.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) b) (*.f64 2 a)) (*.f64 -1 (/.f64 c b)))
19.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 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3))))
20.0b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (*.f64 a (/.f64 c b)) b))))
19.5b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) 3)) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
32.6b
(if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) b) (*.f64 2 a)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 2 c)) 2) (pow.f64 (cbrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) 2)) (cbrt.f64 (*.f64 2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))))))
19.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) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 1/4) 2))))
Compiler

Compiled 19093 to 12038 computations (37% saved)

regimes1.4s (20%)

Accuracy

Total 1.0b remaining (15.1%)

Threshold costs 1.0b (15.1%)

Counts
126 → 5
Compiler

Compiled 19474 to 12946 computations (33.5% saved)

bsearch7.0ms (0.1%)

Algorithm
left-value
Calls

4 calls:

0.0ms
(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))))))
0.0ms
(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))))))
0.0ms
(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))))))
0.0ms
(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))))))
Steps
ItersPointRange
9.247928143635154e+250
∈ [
9.247928143635154e+250
,
2.4137059065588967e+253
]
0.0
∈ [
0.0
,
4.4069921777477e-303
]
-1.8036196670801813e-254
∈ [
-1.8036196670801813e-254
,
-1.463803794998371e-261
]
#hash((type . real) (value . -inf))
∈ [
#hash((type . real) (value . -inf))
,
-3.174033390139873e+307
]
Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify14.0ms (0.2%)

Algorithm
egg-herbie
Rules
20×*-commutative_binary64
19×+-commutative_binary64
15×sub-neg_binary64
10×neg-sub0_binary64
10×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
062497
189481
2119481
3141481
4156481
5164481
6166481
Stop Event
saturated

end358.0ms (5%)

Stop Event
fuel
Compiler

Compiled 1096 to 689 computations (37.1% saved)

Profiling

Loading profile data...