Details

Time bar (total: 44.6s)

analyze3.2s (7.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%98.2%1.8%7
0%92%8%8
0%91.2%8.8%9
0.4%89.3%10.3%10
7.1%79.2%13.6%11
11.9%70.2%17.9%12
13.8%67.4%18.7%13
16.6%63.3%20.1%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample6.3s (14.2%)

Results
1.5s5693×body128valid
850.0ms888×body1024valid
785.0ms698×body2048valid
743.0ms855×body1024invalid
642.0ms2576×body128invalid
585.0ms542×body2048invalid
437.0ms615×body512valid
397.0ms597×body512invalid
168.0ms364×body256invalid
165.0ms360×body256valid
3.0msbody4096valid
Compiler

Compiled 90 to 66 computations (26.7% saved)

preprocess34.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0109427
1323343
21158343
044
Stop Event
saturated
node limit
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify25.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

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

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 239 to 160 computations (33.1% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

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

series7.8s (17.5%)

Counts
4 → 136
Calls

48 calls:

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

rewrite46.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
237×add-sqr-sqrt_binary64
229×pow1_binary64
228×*-un-lft-identity_binary64
220×add-exp-log_binary64
220×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020129
1455127
Stop Event
node limit
Counts
4 → 82

simplify271.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0208136919
Stop Event
node limit
Counts
218 → 241

prune979.0ms (2.2%)

Pruning

30 alts after pruning (29 fresh and 1 done)

PrunedKeptTotal
New21229241
Fresh101
Picked011
Done000
Total21330243
Error
25.6b
Counts
243 → 30
Alt Table
StatusErrorProgram
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
51.0b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.7b
(/.f64 (neg.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 C (*.f64 A -4))))
56.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.0b
(sqrt.f64 (/.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2)))
59.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
55.3b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
45.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
46.0b
(/.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) 3))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (-.f64 (+.f64 A C) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C))))) C)))) (sqrt.f64 2)))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 A F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 F) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 2) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 8 (*.f64 C (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.0b
(/.f64 (neg.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
50.3b
(/.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 3/2))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 4 (*.f64 A (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B) (*.f64 (*.f64 1/2 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2))))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))))))
63.6b
(pow.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) 2)
45.9b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 53848 to 30496 computations (43.4% saved)

localize19.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.3b
(*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))
5.5b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
21.3b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
27.5b
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)

series5.6s (12.6%)

Counts
3 → 116
Calls

36 calls:

1.5s
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
F
-inf
1.2s
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)
F
0
403.0ms
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)
F
inf
402.0ms
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)
F
-inf
362.0ms
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
A
0

rewrite44.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
022117
1500116
Stop Event
node limit
Counts
3 → 51

simplify265.0ms (0.6%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
255×associate-/l*_binary64
182×associate-/r*_binary64
165×associate-*l/_binary64
148×times-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0242738366
Stop Event
node limit
Counts
167 → 239

prune946.0ms (2.1%)

Pruning

34 alts after pruning (34 fresh and 0 done)

PrunedKeptTotal
New24813261
Fresh72128
Picked101
Done101
Total25734291
Error
23.2b
Counts
291 → 34
Alt Table
StatusErrorProgram
58.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
60.7b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.0b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.7b
(/.f64 (neg.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 C (*.f64 A -4))))
60.6b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.9b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 F (*.f64 B B)) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.6b
(pow.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) 2)
56.9b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (-.f64 (+.f64 A C) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C))))) C)))) (sqrt.f64 2)))
62.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 F) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 8 (*.f64 C (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) 3) 1/3)
45.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
58.0b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.0b
(/.f64 (neg.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
58.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.3b
(/.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 3/2))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 4 (*.f64 A (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B) (*.f64 (*.f64 1/2 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2))))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))))))
59.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
59.5b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 56663 to 33710 computations (40.5% saved)

localize18.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.8b
(*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))
5.5b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
15.5b
(sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
22.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))

series7.5s (16.8%)

Counts
3 → 88
Calls

36 calls:

1.6s
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
F
-inf
1.3s
(sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
F
-inf
1.3s
(sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
F
0
1.1s
(sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
F
inf
352.0ms
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
A
0

rewrite52.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
249×add-sqr-sqrt_binary64
241×pow1_binary64
240×*-un-lft-identity_binary64
230×add-cbrt-cube_binary64
230×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022115
1489115
Stop Event
node limit
Counts
3 → 54

simplify274.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0207736136
Stop Event
node limit
Counts
142 → 206

prune1.0s (2.2%)

Pruning

36 alts after pruning (35 fresh and 1 done)

PrunedKeptTotal
New2226228
Fresh42933
Picked011
Done000
Total22636262
Error
23.2b
Counts
262 → 36
Alt Table
StatusErrorProgram
58.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
60.7b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.0b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.6b
(*.f64 (neg.f64 (*.f64 -1 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
55.7b
(/.f64 (neg.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 C (*.f64 A -4))))
60.6b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B) (*.f64 (*.f64 1/2 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2))))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))))))
45.5b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
55.5b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.0b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.7b
(*.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
63.6b
(pow.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) 2)
56.0b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 F (*.f64 B B)) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
55.3b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (-.f64 (+.f64 A C) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C))))) C)))) (sqrt.f64 2)))
62.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 F) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 8 (*.f64 C (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) 3) 1/3)
45.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
58.0b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.0b
(/.f64 (neg.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.4b
(*.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
56.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
58.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.3b
(/.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 3/2))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 4 (*.f64 A (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.5b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 54107 to 30983 computations (42.7% saved)

localize21.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.5b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
15.5b
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
22.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
24.0b
(cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))

series6.0s (13.4%)

Counts
3 → 52
Calls

36 calls:

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

rewrite57.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
267×add-sqr-sqrt_binary64
257×pow1_binary64
255×*-un-lft-identity_binary64
248×add-cbrt-cube_binary64
248×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02599
155599
Stop Event
node limit
Counts
3 → 36

simplify261.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0185832609
Stop Event
node limit
Counts
88 → 132

prune748.0ms (1.7%)

Pruning

36 alts after pruning (34 fresh and 2 done)

PrunedKeptTotal
New1522154
Fresh23234
Picked011
Done011
Total15436190
Error
23.2b
Counts
190 → 36
Alt Table
StatusErrorProgram
58.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.1b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (-.f64 C (sqrt.f64 (+.f64 (*.f64 A A) (-.f64 (*.f64 C C) (*.f64 2 (*.f64 A C))))))) C)))) (sqrt.f64 2)))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
60.7b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.0b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.7b
(/.f64 (neg.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 C (*.f64 A -4))))
60.6b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B) (*.f64 (*.f64 1/2 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2))))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))))))
45.5b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
55.5b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.0b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.7b
(*.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
63.6b
(pow.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) 2)
56.0b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 F (*.f64 B B)) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
62.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 F) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.7b
(/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.2b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 8 (*.f64 C (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.4b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.7b
(pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) 3) 1/3)
45.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
58.0b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.0b
(/.f64 (neg.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.4b
(*.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
56.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
58.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.3b
(/.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 3/2))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 4 (*.f64 A (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 A (*.f64 (pow.f64 C 2) F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.6b
(*.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (*.f64 -8 C) F)))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.5b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 47486 to 27714 computations (41.6% saved)

regimes2.1s (4.7%)

Accuracy

Total 17.8b remaining (42.6%)

Threshold costs 0b (0%)

Counts
132 → 4
Compiler

Compiled 33106 to 22134 computations (33.1% saved)

bsearch289.0ms (0.6%)

Algorithm
binary-search
Calls

3 calls:

118.0ms
A
115.0ms
A
48.0ms
A
Steps
ItersPointRange
7.86622038382639e+31
∈ [
7.791760514814636e+31
,
5.478803703326545e+34
]
-5.45911078926389e-135
∈ [
-7.538577753376542e-130
,
-3.2135562798623948e-136
]
-8.618866089292812e+101
∈ [
-1.903394752541349e+102
,
-4.151310679380862e+101
]
Compiler

Compiled 5 to 4 computations (20% saved)

simplify29.0ms (0.1%)

Algorithm
egg-herbie
Rules
125×distribute-rgt-neg-in_binary64
84×distribute-lft-neg-in_binary64
81×cancel-sign-sub-inv_binary64
76×neg-sub0_binary64
75×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
056172
199169
2139169
3190169
4226169
5270169
6318169
7358169
8393169
9419169
10442169
11479169
12531169
13581169
14634169
15688169
16758169
17825169
18871169
19896169
20904169
Stop Event
saturated

end693.0ms (1.6%)

Stop Event
fuel
Compiler

Compiled 1611 to 1065 computations (33.9% saved)

Profiling

Loading profile data...