Details

Time bar (total: 31.1s)

analyze3.5s (11.3%)

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.8s (21.9%)

Alt Table
StatusErrorProgram
51.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)))
Symmetry

(sort A C)

Results
1.6s5722×body128valid
859.0ms914×body1024valid
820.0ms632×body2048valid
794.0ms879×body1024invalid
749.0ms610×body2048invalid
707.0ms2652×body128invalid
440.0ms632×body512valid
400.0ms600×body512invalid
167.0ms354×body256valid
149.0ms312×body256invalid
2.0msbody4096valid
Compiler

Compiled 222 to 162 computations (27% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.7b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
11.8b
(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))))))
21.8b
(/.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)))
34.1b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

series15.2s (48.8%)

Counts
4 → 124
Calls

4 calls:

8.9s
(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))))))
6.1s
(/.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)))
94.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
27.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

rewrite73.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
252×log1p-expm1-u_binary64
252×expm1-log1p-u_binary64
242×add-cbrt-cube_binary64
242×add-exp-log_binary64
242×add-log-exp_binary64
Counts
4 → 82
Calls

4 calls:

70.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
70.0ms
(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))))))
70.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
70.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023136
1525112
24786112
34945112
000
100

prune650.0ms (2.1%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New18818206
Fresh000
Picked101
Done000
Total18918207
Error
30.1b
Counts
207 → 18
Alt Table
StatusErrorProgram
48.8b
(pow.f64 (/.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))))) -1)
51.4b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
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) (expm1.f64 (log1p.f64 (hypot.f64 (-.f64 A C) B))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
52.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (cbrt.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3)))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.0b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (/.f64 (sqrt.f64 2) B)))
48.9b
(/.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (cbrt.f64 (hypot.f64 (-.f64 A C) B)) 3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
47.9b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
54.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
53.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3) 1/3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.0b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
57.9b
(/.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 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
51.2b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
53.5b
(/.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B))) 3/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (sqrt.f64 (hypot.f64 (-.f64 A C) B)) 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
Compiler

Compiled 30505 to 21326 computations (30.1% saved)

localize7.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
14.5b
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

series47.0ms (0.2%)

Counts
2 → 0
Calls

2 calls:

26.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
21.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))

rewrite51.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
899×log1p-expm1-u_binary64
899×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
94×add-log-exp_binary64
93×add-cube-cbrt_binary64
Counts
2 → 42
Calls

2 calls:

50.0ms
(*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))
50.0ms
(sqrt.f64 (*.f64 -1/2 (/.f64 F C)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021
120818
2236118
3550018
000
100

prune76.0ms (0.2%)

Pruning

26 alts after pruning (26 fresh and 0 done)

PrunedKeptTotal
New321042
Fresh11617
Picked101
Done000
Total342660
Error
26.9b
Counts
60 → 26
Alt Table
StatusErrorProgram
48.7b
(*.f64 -1 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
63.0b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.8b
(pow.f64 (/.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))))) -1)
51.4b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.7b
(*.f64 -1 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)))))
52.2b
(*.f64 -1 (*.f64 (pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) 1/3) (sqrt.f64 2)))
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) (expm1.f64 (log1p.f64 (hypot.f64 (-.f64 A C) B))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
42.0b
(*.f64 -1 (*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2)))
52.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (cbrt.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3)))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.0b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (/.f64 (sqrt.f64 2) B)))
51.5b
(*.f64 -1 (cbrt.f64 (*.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) (*.f64 2 (sqrt.f64 2)))))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (sqrt.f64 (hypot.f64 (-.f64 A C) B)) 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (cbrt.f64 (hypot.f64 (-.f64 A C) B)) 3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
54.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
53.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3) 1/3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
47.9b
(*.f64 -1 (pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1))) 2))
48.1b
(*.f64 -1 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1))) 3))
52.2b
(*.f64 -1 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)) 3) 1/3))
54.7b
(*.f64 -1 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)))) 1))
47.8b
(*.f64 -1 (sqrt.f64 (*.f64 (/.f64 F C) -1)))
57.9b
(/.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 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
51.2b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
Compiler

Compiled 2088 to 1562 computations (25.2% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))
0.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))

series61.0ms (0.2%)

Counts
2 → 0
Calls

2 calls:

33.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))
28.0ms
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))

rewrite57.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
541×log-prod_binary64
268×pow2_binary64
189×pow1/3_binary64
186×expm1-udef_binary64
186×log1p-udef_binary64
Counts
2 → 74
Calls

2 calls:

55.0ms
(/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C))
55.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (sqrt.f64 C)) (sqrt.f64 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01123
122621
2261321
3507421
000
100

prune144.0ms (0.5%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New65974
Fresh32225
Picked101
Done000
Total6931100
Error
26.8b
Counts
100 → 31
Alt Table
StatusErrorProgram
48.1b
(*.f64 -1 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1))) 3))
42.1b
(*.f64 -1 (*.f64 (*.f64 (/.f64 1 (pow.f64 C 1/4)) (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (pow.f64 C 1/4))) (sqrt.f64 2)))
42.0b
(*.f64 -1 (/.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)) (pow.f64 C 1/4)) (pow.f64 C 1/4)))
52.2b
(*.f64 -1 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)) 3) 1/3))
42.1b
(*.f64 -1 (/.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)) (cbrt.f64 C)) (cbrt.f64 (sqrt.f64 C))))
42.0b
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (*.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (pow.f64 C -1/2))) (sqrt.f64 2)))
42.0b
(*.f64 -1 (/.f64 1 (/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)))))
48.7b
(*.f64 -1 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
63.0b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.1b
(*.f64 -1 (*.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 F)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (pow.f64 C -1/2))) (sqrt.f64 2)))
57.9b
(/.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 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (/.f64 (sqrt.f64 C) (sqrt.f64 2))))
48.8b
(pow.f64 (/.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))))) -1)
51.4b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
57.5b
(*.f64 -1 (*.f64 (cbrt.f64 (/.f64 (pow.f64 (*.f64 -1/2 F) 3/2) (pow.f64 C 3/2))) (sqrt.f64 2)))
52.2b
(*.f64 -1 (*.f64 (pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) 1/3) (sqrt.f64 2)))
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) (expm1.f64 (log1p.f64 (hypot.f64 (-.f64 A C) B))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
52.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (cbrt.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3)))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.0b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (/.f64 (sqrt.f64 2) B)))
51.5b
(*.f64 -1 (cbrt.f64 (*.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) (*.f64 2 (sqrt.f64 2)))))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (sqrt.f64 (hypot.f64 (-.f64 A C) B)) 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (cbrt.f64 (hypot.f64 (-.f64 A C) B)) 3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
54.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
53.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3) 1/3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.1b
(*.f64 -1 (*.f64 (*.f64 (/.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (cbrt.f64 C)) (/.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (cbrt.f64 (sqrt.f64 C)))) (sqrt.f64 2)))
54.7b
(*.f64 -1 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)))) 1))
51.2b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
59.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
Compiler

Compiled 2927 to 2299 computations (21.5% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2))))
0.3b
(/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)))

series65.0ms (0.2%)

Counts
2 → 0
Calls

2 calls:

37.0ms
(/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)))
28.0ms
(/.f64 1 (/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2))))

rewrite92.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
587×log-prod_binary64
365×prod-diff_binary64
198×expm1-udef_binary64
198×log1p-udef_binary64
187×log-pow_binary64
Counts
2 → 88
Calls

2 calls:

90.0ms
(/.f64 1 (/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2))))
90.0ms
(/.f64 (sqrt.f64 C) (sqrt.f64 (*.f64 (*.f64 -1/2 F) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01227
124918
2282018
3496918
4561918
000
100

prune151.0ms (0.5%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New82688
Fresh62430
Picked101
Done000
Total8930119
Error
26.8b
Counts
119 → 30
Alt Table
StatusErrorProgram
48.7b
(*.f64 -1 (*.f64 (exp.f64 (log.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))) (sqrt.f64 2)))
63.0b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.1b
(*.f64 -1 (*.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 F)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -1/2 F))) (pow.f64 C -1/2))) (sqrt.f64 2)))
57.9b
(/.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 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 -1/2 F)) (/.f64 (sqrt.f64 C) (sqrt.f64 2))))
48.8b
(pow.f64 (/.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))))) -1)
51.4b
(/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
57.5b
(*.f64 -1 (*.f64 (cbrt.f64 (/.f64 (pow.f64 (*.f64 -1/2 F) 3/2) (pow.f64 C 3/2))) (sqrt.f64 2)))
42.1b
(*.f64 -1 (/.f64 1 (*.f64 (cbrt.f64 C) (*.f64 (cbrt.f64 (sqrt.f64 C)) (pow.f64 (*.f64 F -1) -1/2)))))
51.2b
(/.f64 (neg.f64 (*.f64 -1 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
52.2b
(*.f64 -1 (*.f64 (pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) 1/3) (sqrt.f64 2)))
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) (expm1.f64 (log1p.f64 (hypot.f64 (-.f64 A C) B))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
63.1b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
42.1b
(*.f64 -1 (*.f64 (/.f64 (cbrt.f64 (*.f64 F -1)) (pow.f64 C 1/4)) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 F -1))) (pow.f64 C 1/4))))
52.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (cbrt.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3)))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
58.0b
(*.f64 -1 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (/.f64 (sqrt.f64 2) B)))
51.5b
(*.f64 -1 (cbrt.f64 (*.f64 (pow.f64 (*.f64 -1/2 (/.f64 F C)) 3/2) (*.f64 2 (sqrt.f64 2)))))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (sqrt.f64 (hypot.f64 (-.f64 A C) B)) 2))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
42.1b
(*.f64 -1 (*.f64 (/.f64 (cbrt.f64 (*.f64 F -1)) 1) (/.f64 (cbrt.f64 (sqrt.f64 (*.f64 F -1))) (sqrt.f64 C))))
48.9b
(/.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B)))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (cbrt.f64 (hypot.f64 (-.f64 A C) B)) 3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
54.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
47.9b
(*.f64 -1 (/.f64 1 (pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 C (*.f64 F -1)))) 3)))
48.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F) (-.f64 (+.f64 A C) (hypot.f64 (-.f64 A C) B))) 1/2))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
53.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (pow.f64 (pow.f64 (hypot.f64 (-.f64 A C) B) 3) 1/3))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
51.9b
(*.f64 -1 (/.f64 1 (pow.f64 (pow.f64 (sqrt.f64 (/.f64 C (*.f64 F -1))) 3) 1/3)))
42.1b
(*.f64 -1 (*.f64 (*.f64 (/.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (cbrt.f64 C)) (/.f64 (pow.f64 (*.f64 -1/2 F) 1/4) (cbrt.f64 (sqrt.f64 C)))) (sqrt.f64 2)))
42.0b
(*.f64 -1 (*.f64 (pow.f64 C -1/2) (pow.f64 (pow.f64 (*.f64 F -1) -1/2) -1)))
54.7b
(*.f64 -1 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 F C) -1)))) 1))
59.2b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
Compiler

Compiled 2179 to 1703 computations (21.8% saved)

regimes3.2s (10.4%)

Accuracy

Total 3.9b remaining (12.7%)

Threshold costs 0b (0%)

Counts
174 → 5
Compiler

Compiled 31901 to 24819 computations (22.2% saved)

bsearch9.0ms (0%)

Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify53.0ms (0.2%)

Algorithm
egg-herbie
Rules
159×distribute-rgt-neg-in_binary64
126×cancel-sign-sub-inv_binary64
114×distribute-lft-neg-in_binary64
101×neg-sub0_binary64
96×neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
079405
1142394
2208394
3276394
4319394
5355394
6384394
7402394
8408394
9421394
10450394
11485394
12520394
13565394
14609394
15674394
16739394
17786394
18822394
19835394
20837394
21825394

end796.0ms (2.6%)

Compiler

Compiled 1915 to 1371 computations (28.4% saved)

Profiling

Loading profile data...